/*
 * Copyright (c) 2018, Intel Corporation
 * All rights reserved.
 *
 * Author:	Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
 *		Sathish Kuttan <sathish.k.kuttan@intel.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <zephyr.h>

#include "pdm_decim_fir.h"

static const int32_t fir_int32_06_4156_5100_010_095[249] = {
	-145670,
	-159762,
	-183049,
	-132077,
	40047,
	375196,
	897258,
	1599108,
	2433074,
	3308273,
	4097062,
	4651618,
	4829700,
	4525669,
	3700263,
	2402258,
	776038,
	-950161,
	-2496541,
	-3579851,
	-3970442,
	-3547641,
	-2337956,
	-529617,
	1547925,
	3476297,
	4827277,
	5253398,
	4572039,
	2823110,
	284249,
	-2564887,
	-5127174,
	-6808166,
	-7148614,
	-5940791,
	-3300873,
	324045,
	4222816,
	7553233,
	9518313,
	9550081,
	7459490,
	3515883,
	-1570147,
	-6764980,
	-10915019,
	-12995804,
	-12355318,
	-8895306,
	-3143626,
	3808819,
	10504528,
	15416643,
	17288185,
	15439779,
	9973227,
	1815303,
	-7421871,
	-15747713,
	-21211963,
	-22349384,
	-18551421,
	-10274491,
	976318,
	12902423,
	22867792,
	28468157,
	28093650,
	21356476,
	9275878,
	-5840836,
	-20818261,
	-32262581,
	-37311768,
	-34324420,
	-23346677,
	-6234152,
	13625405,
	31957173,
	44495096,
	47945809,
	40808741,
	23856504,
	140921,
	-25513494,
	-47455167,
	-60412143,
	-60710132,
	-47229950,
	-21869611,
	10631696,
	43519737,
	69370312,
	81696614,
	76484113,
	53307373,
	15747228,
	-29042608,
	-71597234,
	-102026296,
	-112167649,
	-97565632,
	-58831316,
	-2036750,
	62029440,
	119693403,
	157031723,
	162840122,
	131357475,
	64171528,
	-29147598,
	-131921532,
	-222701994,
	-278742412,
	-280032642,
	-213184166,
	-74440208,
	128790505,
	378234661,
	646928572,
	902966510,
	1114231037,
	1253321369,
	1301843153,
	1253321369,
	1114231037,
	902966510,
	646928572,
	378234661,
	128790505,
	-74440208,
	-213184166,
	-280032642,
	-278742412,
	-222701994,
	-131921532,
	-29147598,
	64171528,
	131357475,
	162840122,
	157031723,
	119693403,
	62029440,
	-2036750,
	-58831316,
	-97565632,
	-112167649,
	-102026296,
	-71597234,
	-29042608,
	15747228,
	53307373,
	76484113,
	81696614,
	69370312,
	43519737,
	10631696,
	-21869611,
	-47229950,
	-60710132,
	-60412143,
	-47455167,
	-25513494,
	140921,
	23856504,
	40808741,
	47945809,
	44495096,
	31957173,
	13625405,
	-6234152,
	-23346677,
	-34324420,
	-37311768,
	-32262581,
	-20818261,
	-5840836,
	9275878,
	21356476,
	28093650,
	28468157,
	22867792,
	12902423,
	976318,
	-10274491,
	-18551421,
	-22349384,
	-21211963,
	-15747713,
	-7421871,
	1815303,
	9973227,
	15439779,
	17288185,
	15416643,
	10504528,
	3808819,
	-3143626,
	-8895306,
	-12355318,
	-12995804,
	-10915019,
	-6764980,
	-1570147,
	3515883,
	7459490,
	9550081,
	9518313,
	7553233,
	4222816,
	324045,
	-3300873,
	-5940791,
	-7148614,
	-6808166,
	-5127174,
	-2564887,
	284249,
	2823110,
	4572039,
	5253398,
	4827277,
	3476297,
	1547925,
	-529617,
	-2337956,
	-3547641,
	-3970442,
	-3579851,
	-2496541,
	-950161,
	776038,
	2402258,
	3700263,
	4525669,
	4829700,
	4651618,
	4097062,
	3308273,
	2433074,
	1599108,
	897258,
	375196,
	40047,
	-132077,
	-183049,
	-159762,
	-145670

};

struct pdm_decim pdm_decim_int32_06_4156_5100_010_095 = {
	6, 249, 2, 4156, 5100, 10, 95, fir_int32_06_4156_5100_010_095
};
