#include <stdlib.h>
#include <string.h>
#include "riscv_math.h"
#include "riscv_const_structs.h"
#include <stdio.h>
#define TEST_LENGTH_SAMPLES 2048
extern float32_t testInput_f32_10khz[TEST_LENGTH_SAMPLES];
static float32_t testOutput[TEST_LENGTH_SAMPLES/2];
uint32_t fftSize = 1024;
uint32_t ifftFlag = 0;
uint32_t doBitReverse = 1;
uint32_t refIndex = 213, testIndex = 0;
int32_t main(void)
{
#if (defined(__riscv_vector))
__RV_CSR_SET(CSR_MSTATUS, 0x200);
#endif
#if !defined(RISCV_MATH_VECTOR)
riscv_cfft_f32(&riscv_cfft_sR_f32_len1024, testInput_f32_10khz, ifftFlag, doBitReverse);
#else
if (tmp_buf != NULL && output_buf != NULL) {
memset(output_buf, 0, output_buf_size *
sizeof(
float32_t));
riscv_cfft_f32(&S, testInput_f32_10khz, output_buf, tmp_buf, ifftFlag);
free(tmp_buf);
free(output_buf);
} else {
}
#endif
if (testIndex != refIndex)
{
}
{
printf("failed\n");
return 1;
}
printf("passed\n");
return 0;
}
int32_t riscv_cfft_output_buffer_size(riscv_math_datatype dt, uint32_t nb_samples)
Calculate required length for the output buffer.
Definition: riscv_transform_buffer_sizes.c:66
int32_t riscv_cfft_tmp_buffer_size(riscv_math_datatype dt, uint32_t nb_samples)
Calculate required length for the temporary buffer.
Definition: riscv_transform_buffer_sizes.c:45
void riscv_cfft_f32(const riscv_cfft_instance_f32 *S, float32_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag)
Processing function for the floating-point complex FFT.
Definition: riscv_cfft_f32.c:776
riscv_status riscv_cfft_init_f32(riscv_cfft_instance_f32 *S, uint16_t fftLen)
Initialization function for the cfft f32 function with 4096 samples.
Definition: riscv_cfft_init_f32.c:258
void riscv_max_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult, uint32_t *pIndex)
Maximum value of a floating-point vector.
Definition: riscv_max_f32.c:59
@ RISCV_MATH_F32
Definition: riscv_math_types.h:346
void riscv_cmplx_mag_f32(const float32_t *pSrc, float32_t *pDst, uint32_t numSamples)
Floating-point complex magnitude.
Definition: riscv_cmplx_mag_f32.c:75
float float32_t
32-bit floating-point type definition.
Definition: riscv_math_types.h:267
riscv_status
vector types
Definition: riscv_math_types.h:281
@ RISCV_MATH_TEST_FAILURE
Definition: riscv_math_types.h:288
@ RISCV_MATH_SUCCESS
Definition: riscv_math_types.h:282
Instance structure for the floating-point CFFT/CIFFT function.
Definition: transform_functions.h:380