#include "riscv_math.h"
#include <stdio.h>
#include <math.h>
#define USE_STATIC_INIT
#define TEST_LENGTH_SAMPLES (20*4)
const float32_t testMarks_f32[TEST_LENGTH_SAMPLES] =
{
42.000000, 37.000000, 81.000000, 28.000000,
83.000000, 72.000000, 36.000000, 38.000000,
32.000000, 51.000000, 63.000000, 64.000000,
97.000000, 82.000000, 95.000000, 90.000000,
66.000000, 51.000000, 54.000000, 42.000000,
67.000000, 56.000000, 45.000000, 57.000000,
67.000000, 69.000000, 35.000000, 52.000000,
29.000000, 81.000000, 58.000000, 47.000000,
38.000000, 76.000000, 100.000000, 29.000000,
33.000000, 47.000000, 29.000000, 50.000000,
34.000000, 41.000000, 61.000000, 46.000000,
52.000000, 50.000000, 48.000000, 36.000000,
47.000000, 55.000000, 44.000000, 40.000000,
100.000000, 94.000000, 84.000000, 37.000000,
32.000000, 71.000000, 47.000000, 77.000000,
31.000000, 50.000000, 49.000000, 35.000000,
63.000000, 67.000000, 40.000000, 31.000000,
29.000000, 68.000000, 61.000000, 38.000000,
31.000000, 28.000000, 28.000000, 76.000000,
55.000000, 33.000000, 29.000000, 39.000000
};
{
1.000, 1.000, 1.000, 1.000
};
static float32_t testOutput[TEST_LENGTH_SAMPLES];
#define NUMSTUDENTS 20
#define NUMSUBJECTS 4
uint32_t numStudents = 20;
uint32_t numSubjects = 4;
float32_t max_marks, min_marks, mean, std, var;
uint32_t student_num;
int32_t main()
{
#if (defined(__riscv_vector))
__RV_CSR_SET(CSR_MSTATUS, 0x200);
#endif
#ifndef USE_STATIC_INIT
#else
#endif
riscv_max_f32(testOutput, numStudents, &max_marks, &student_num);
riscv_min_f32(testOutput, numStudents, &min_marks, &student_num);
printf("Passed\n");
return 0;
}
void riscv_mat_init_f32(riscv_matrix_instance_f32 *S, uint16_t nRows, uint16_t nColumns, float32_t *pData)
Floating-point matrix initialization.
Definition: riscv_mat_init_f32.c:58
riscv_status riscv_mat_mult_f32(const riscv_matrix_instance_f32 *pSrcA, const riscv_matrix_instance_f32 *pSrcB, riscv_matrix_instance_f32 *pDst)
Floating-point matrix multiplication.
Definition: riscv_mat_mult_f32.c:90
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:57
void riscv_min_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult, uint32_t *pIndex)
Minimum value of a floating-point vector.
Definition: riscv_min_f32.c:59
void riscv_std_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Standard deviation of the elements of a floating-point vector.
Definition: riscv_std_f32.c:71
float float32_t
32-bit floating-point type definition.
Definition: riscv_math_types.h:257
void riscv_mean_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Mean value of a floating-point vector.
Definition: riscv_mean_f32.c:48
void riscv_var_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Variance of the elements of a floating-point vector.
Definition: riscv_var_f32.c:62
Instance structure for the floating-point matrix structure.
Definition: matrix_functions.h:120