nexus-am/apps/maprobe/resultmat.c

55 lines
1.8 KiB
C

#include "resultmat.h"
void print_float_result_matrix(struct result_matrix_meta* meta)
{
assert(meta);
printf("---------- %s matrix start ----------\n", meta->name);
printf("%s (row) \\ %s (column)\n", meta->row_name, meta->column_name);
if (meta->column_array) {
if (meta->row_array) {
printf("\\ , \t");
}
for (int c = 0; c < meta->column_size; c++) {
printf(" %d,\t", *((int*)meta->column_array + c));
}
printf("\n");
}
for (int r = 0; r < meta->row_size; r++) {
if (meta->row_array) {
printf("%3d,\t", *((int*)meta->row_array + r));
}
for (int c = 0; c < meta->column_size; c++) {
printf("%f,\t", *((float*)meta->result_array + r * meta->column_size + c));
}
printf("\n");
}
printf("---------- %s matrix end ----------\n");
}
void matrix_print_example()
{
DEFINE_FLOAT_RESULT_MATRIX(test,testrow,5,testcol,10);
// ({
// struct result_matrix_meta test_matrix_meta;
// float test_result_array[5][10] = {0};
// int test_column_array[10] = {0};
// int testrow_array[5] = {0};
// test_matrix_meta.name = "test";
// test_matrix_meta.column_name = "testcol";
// test_matrix_meta.row_name = "testrow";
// test_matrix_meta.column_size = 10;
// test_matrix_meta.row_size = 5;
// test_matrix_meta.result_array = test_result_array;
// test_matrix_meta.column_array = test_column_array;
// test_matrix_meta.row_array = test_row_array;
// })
FOR(x,5) { test_row_array[x] = x; }
FOR(x,10) { test_column_array[x] = x; }
FOR(x,5) {
FOR(y,10) {
test_result_array[x][y] = rand();
}
}
print_float_result_matrix(&test_matrix_meta);
}