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)17 get_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