99 void SurvRateGroup::all_surviving_words_recorded(const G1Predictions& predictor, bool update_predictors) {
100 if (update_predictors) {
101 fill_in_last_surv_rates();
102 }
103 finalize_predictions(predictor);
104 }
105
106 void SurvRateGroup::fill_in_last_surv_rates() {
107 if (_region_num > 0) { // conservative
108 double surv_rate = _surv_rate_pred[_region_num-1]->last();
109 for (size_t i = _region_num; i < _stats_arrays_length; ++i) {
110 _surv_rate_pred[i]->add(surv_rate);
111 }
112 }
113 }
114
115 void SurvRateGroup::finalize_predictions(const G1Predictions& predictor) {
116 double accum = 0.0;
117 double pred = 0.0;
118 for (size_t i = 0; i < _stats_arrays_length; ++i) {
119 pred = predictor.get_new_prediction(_surv_rate_pred[i]);
120 if (pred > 1.0) pred = 1.0;
121 accum += pred;
122 _accum_surv_rate_pred[i] = accum;
123 }
124 _last_pred = pred;
125 }
|
99 void SurvRateGroup::all_surviving_words_recorded(const G1Predictions& predictor, bool update_predictors) {
100 if (update_predictors) {
101 fill_in_last_surv_rates();
102 }
103 finalize_predictions(predictor);
104 }
105
106 void SurvRateGroup::fill_in_last_surv_rates() {
107 if (_region_num > 0) { // conservative
108 double surv_rate = _surv_rate_pred[_region_num-1]->last();
109 for (size_t i = _region_num; i < _stats_arrays_length; ++i) {
110 _surv_rate_pred[i]->add(surv_rate);
111 }
112 }
113 }
114
115 void SurvRateGroup::finalize_predictions(const G1Predictions& predictor) {
116 double accum = 0.0;
117 double pred = 0.0;
118 for (size_t i = 0; i < _stats_arrays_length; ++i) {
119 pred = predictor.get_new_unit_prediction(_surv_rate_pred[i]);
120 accum += pred;
121 _accum_surv_rate_pred[i] = accum;
122 }
123 _last_pred = pred;
124 }
|