1 /* We used to ICE because EXPAND_SUM was being used for all recursive calls 2 to expand_expr. */ 3 struct TSparseEntry 4 { 5 int feat_index; 6 double entry; 7 }; 8 9 struct TSparse 10 { 11 int vec_index; 12 int num_feat_entries; 13 struct TSparseEntry *features; 14 }; 15 16 void get_full_feature_matrix(struct TSparse * sparse_feature_matrix,int num_vec)17get_full_feature_matrix (struct TSparse* sparse_feature_matrix, int num_vec) 18 { 19 double *fm; 20 int v, f; 21 22 for (v=0; v < num_vec; v++) 23 { 24 for (f=0; f < sparse_feature_matrix[v].num_feat_entries; f++) 25 { 26 long long offs = sparse_feature_matrix[v].vec_index 27 + sparse_feature_matrix[v].features[f].feat_index; 28 fm[offs] = sparse_feature_matrix[v].features[f].entry; 29 } 30 } 31 } 32 33