#ifndef EX_H #define EX_H #include #include #include "v_array.h" struct label_data { float label; float weight; float initial; }; struct feature { float x; uint32_t weight_index; bool operator==(feature j){return weight_index == j.weight_index;} }; struct audit_data { char* space; char* feature; size_t weight_index; float x; bool alloced; }; struct example // core example datatype. { void* ld; v_array tag;//An identifier for the example. size_t example_counter; v_array indices; v_array atomics[256]; // raw parsed data v_array audit_features[256]; size_t num_features;//precomputed, cause it's fast&easy. size_t pass; float partial_prediction;//shared data for prediction. v_array topic_predictions; float final_prediction; float loss; float eta_round; float eta_global; float global_weight; float example_t;//sum of importance weights so far. float sum_feat_sq[256];//helper for total_sum_feat_sq. float total_sum_feat_sq;//precomputed, cause it's kind of fast & easy. float revert_weight; bool sorted;//Are the features sorted or not? bool in_use; //in use or not (for the parser) bool done; //set to false by setup_example() }; #endif