13 for(i = 0; i < m.
rows; ++i) free(m.
vals[i]);
19 int *indexes = calloc(k,
sizeof(
int));
23 for(i = 0; i < truth.
rows; ++i){
25 for(j = 0; j < k; ++j){
26 int class = indexes[j];
27 if(truth.
vals[i][
class]){
34 return (
float)correct/truth.
rows;
40 for(i = 0; i < m.
rows; ++i){
41 for(j = 0; j < m.
cols; ++j){
42 m.
vals[i][j] *= scale;
50 if (m.
rows == size)
return m;
52 m.
vals = realloc(m.
vals, size*
sizeof(
float*));
53 for (i = m.
rows; i < size; ++i) {
54 m.
vals[i] = calloc(m.
cols,
sizeof(
float));
56 }
else if (m.
rows > size) {
57 for (i = size; i < m.
rows; ++i) {
60 m.
vals = realloc(m.
vals, size*
sizeof(
float*));
70 for(i = 0; i < from.
rows; ++i){
71 for(j = 0; j < from.
cols; ++j){
82 c.
vals = calloc(c.
rows,
sizeof(
float *));
84 for(i = 0; i < c.
rows; ++i){
85 c.
vals[i] = calloc(c.
cols,
sizeof(
float));
97 m.
vals = calloc(m.
rows,
sizeof(
float *));
98 for(i = 0; i < m.
rows; ++i){
99 m.
vals[i] = calloc(m.
cols,
sizeof(
float));
110 h.
vals = calloc(h.
rows,
sizeof(
float *));
111 for(i = 0; i < n; ++i){
112 int index = rand()%m->
rows;
121 float *col = calloc(m->
rows,
sizeof(
float));
123 for(i = 0; i < m->
rows; ++i){
124 col[i] = m->
vals[i][c];
125 for(j = c; j < m->
cols-1; ++j){
135 FILE *fp = fopen(filename,
"r");
145 m.
vals = calloc(size,
sizeof(
float*));
146 while((line =
fgetl(fp))){
150 m.
vals = realloc(m.
vals, size*
sizeof(
float*));
156 m.
vals = realloc(m.
vals, n*
sizeof(
float*));
165 for(i = 0; i < m.
rows; ++i){
166 for(j = 0; j < m.
cols; ++j){
167 if(j > 0) printf(
",");
168 printf(
"%.17g", m.
vals[i][j]);
177 printf(
"%d X %d Matrix:\n",m.
rows, m.
cols);
179 for(j = 0; j < 16*m.
cols-1; ++j) printf(
" ");
183 for(j = 0; j < 16*m.
cols-1; ++j) printf(
" ");
186 for(i = 0; i < m.
rows; ++i){
188 for(j = 0; j < m.
cols; ++j){
189 printf(
"%15.7f ", m.
vals[i][j]);
194 for(j = 0; j < 16*m.
cols-1; ++j) printf(
" ");
float * parse_fields(char *line, int n)
matrix csv_to_matrix(char *filename)
matrix make_matrix(int rows, int cols)
matrix hold_out_matrix(matrix *m, int n)
matrix resize_matrix(matrix m, int size)
void top_k(float *a, int n, int k, int *index)
matrix copy_matrix(matrix m)
void print_matrix(matrix m)
float matrix_topk_accuracy(matrix truth, matrix guess, int k)
void scale_matrix(matrix m, float scale)
void copy_cpu(int N, float *X, int INCX, float *Y, int INCY)
void free_matrix(matrix m)
int count_fields(char *line)
void matrix_add_matrix(matrix from, matrix to)
void matrix_to_csv(matrix m)
float * pop_column(matrix *m, int c)