# DCT Type IV TablesDCT Type IV Functions

## Variables

static const float32_t Weights_128 

static const float32_t Weights_512 

static const float32_t Weights_2048 

static const float32_t Weights_8192 

static const float32_t cos_factors_128 

static const float32_t cos_factors_512 

static const float32_t cos_factors_2048 

static const float32_t cos_factors_8192 

static const q15_t ALIGN4 WeightsQ15_128 

static const q15_t ALIGN4 WeightsQ15_512 

static const q15_t ALIGN4 WeightsQ15_2048 

static const q15_t ALIGN4 WeightsQ15_8192 

static const q15_t ALIGN4 cos_factorsQ15_128 

static const q15_t ALIGN4 cos_factorsQ15_512 

static const q15_t ALIGN4 cos_factorsQ15_2048 

static const q15_t ALIGN4 cos_factorsQ15_8192 

static const q31_t WeightsQ31_128 

static const q31_t WeightsQ31_512 

static const q31_t WeightsQ31_2048 

static const q31_t WeightsQ31_8192 

static const q31_t cos_factorsQ31_128 

static const q31_t cos_factorsQ31_512 

static const q31_t cos_factorsQ31_2048 

static const q31_t cos_factorsQ31_8192 

## Variable Documentation

 const float32_t cos_factors_128
static
cosFactor tables are generated using the formula :
`cos_factors[n] = 2 * cos((2n+1)*pi/(4*N))`
C command to generate the table
``` for(i = 0; i< N; i++)
{
cos_factors[i]= 2 * cos((2*i+1)*c/2);
} ```
where `N` is the number of factors to generate and `c` is `pi/(2*N)`

Referenced by arm_dct4_init_f32().

 const float32_t cos_factors_2048
static

Referenced by arm_dct4_init_f32().

 const float32_t cos_factors_512
static

Referenced by arm_dct4_init_f32().

 const float32_t cos_factors_8192
static

Referenced by arm_dct4_init_f32().

 const q15_t ALIGN4 cos_factorsQ15_128
static
cosFactor tables are generated using the formula :
` cos_factors[n] = 2 * cos((2n+1)*pi/(4*N)) `
C command to generate the table
```for(i = 0; i< N; i++)
{
cos_factors[i]= 2 * cos((2*i+1)*c/2);
} ```
where `N` is the number of factors to generate and `c` is `pi/(2*N)`
Then converted to q15 format by multiplying with 2^31 and saturated if required.

Referenced by arm_dct4_init_q15().

 const q15_t ALIGN4 cos_factorsQ15_2048
static

Referenced by arm_dct4_init_q15().

 const q15_t ALIGN4 cos_factorsQ15_512
static

Referenced by arm_dct4_init_q15().

 const q15_t ALIGN4 cos_factorsQ15_8192
static

Referenced by arm_dct4_init_q15().

 const q31_t cos_factorsQ31_128
static
cosFactor tables are generated using the formula :
`cos_factors[n] = 2 * cos((2n+1)*pi/(4*N))`
C command to generate the table
```for(i = 0; i< N; i++)
{
cos_factors[i]= 2 * cos((2*i+1)*c/2);
} ```
where `N` is the number of factors to generate and `c` is `pi/(2*N)`
Then converted to q31 format by multiplying with 2^31 and saturated if required.

Referenced by arm_dct4_init_q31().

 const q31_t cos_factorsQ31_2048
static

Referenced by arm_dct4_init_q31().

 const q31_t cos_factorsQ31_512
static

Referenced by arm_dct4_init_q31().

 const q31_t cos_factorsQ31_8192
static

Referenced by arm_dct4_init_q31().

 const float32_t Weights_128
static
Weights tables are generated using the formula :
`weights[n] = e^(-j*n*pi/(2*N))`
C command to generate the table
```for(i = 0; i< N; i++)
{
weights[2*i]= cos(i*c);
weights[(2*i)+1]= -sin(i * c);
} ```
Where `N` is the Number of weights to be calculated and `c` is `pi/(2*N)`
In the tables below the real and imaginary values are placed alternatively, hence the array length is `2*N`.

Referenced by arm_dct4_init_f32().

 const float32_t Weights_2048
static

Referenced by arm_dct4_init_f32().

 const float32_t Weights_512
static

Referenced by arm_dct4_init_f32().

 const float32_t Weights_8192
static

Referenced by arm_dct4_init_f32().

 const q15_t ALIGN4 WeightsQ15_128
static
Weights tables are generated using the formula :
`weights[n] = e^(-j*n*pi/(2*N))`
C command to generate the table
```for(i = 0; i< N; i++)
{
weights[2*i]= cos(i*c);
weights[(2*i)+1]= -sin(i * c);
} ```
where `N` is the Number of weights to be calculated and `c` is `pi/(2*N)`
Converted the output to q15 format by multiplying with 2^31 and saturated if required.
In the tables below the real and imaginary values are placed alternatively, hence the array length is `2*N`.

Referenced by arm_dct4_init_q15().

 const q15_t ALIGN4 WeightsQ15_2048
static

Referenced by arm_dct4_init_q15().

 const q15_t ALIGN4 WeightsQ15_512
static

Referenced by arm_dct4_init_q15().

 const q15_t ALIGN4 WeightsQ15_8192
static

Referenced by arm_dct4_init_q15().

 const q31_t WeightsQ31_128
static
Weights tables are generated using the formula :
`weights[n] = e^(-j*n*pi/(2*N))`
C command to generate the table
```for(i = 0; i< N; i++)
{
weights[2*i]= cos(i*c);
weights[(2*i)+1]= -sin(i * c);
} ```
where `N` is the Number of weights to be calculated and `c` is `pi/(2*N)`
Convert the output to q31 format by multiplying with 2^31 and saturated if required.
In the tables below the real and imaginary values are placed alternatively, hence the array length is `2*N`.

Referenced by arm_dct4_init_q31().

 const q31_t WeightsQ31_2048
static

Referenced by arm_dct4_init_q31().

 const q31_t WeightsQ31_512
static

Referenced by arm_dct4_init_q31().

 const q31_t WeightsQ31_8192
static

Referenced by arm_dct4_init_q31().