33 lines
655 B
C
33 lines
655 B
C
/* We used to ICE because EXPAND_SUM was being used for all recursive calls
|
|
to expand_expr. */
|
|
struct TSparseEntry
|
|
{
|
|
int feat_index;
|
|
double entry;
|
|
};
|
|
|
|
struct TSparse
|
|
{
|
|
int vec_index;
|
|
int num_feat_entries;
|
|
struct TSparseEntry *features;
|
|
};
|
|
|
|
void
|
|
get_full_feature_matrix (struct TSparse* sparse_feature_matrix, int num_vec)
|
|
{
|
|
double *fm;
|
|
int v, f;
|
|
|
|
for (v=0; v < num_vec; v++)
|
|
{
|
|
for (f=0; f < sparse_feature_matrix[v].num_feat_entries; f++)
|
|
{
|
|
long long offs = sparse_feature_matrix[v].vec_index
|
|
+ sparse_feature_matrix[v].features[f].feat_index;
|
|
fm[offs] = sparse_feature_matrix[v].features[f].entry;
|
|
}
|
|
}
|
|
}
|
|
|