case ABSOLUTE_LOSS:\r
{\r
float* residuals = new float[n];\r
- for (int i=0; i<n; ++i)\r
- residuals[i] = (resp_data[*idx] - cur_data[*idx++]);\r
+ for (int i=0; i<n; ++i, ++idx)\r
+ residuals[i] = (resp_data[*idx] - cur_data[*idx]);\r
icvSortFloat(residuals, n, 0.0f);\r
if (n % 2) \r
gamma = residuals[n/2];\r
case HUBER_LOSS:\r
{\r
float* residuals = new float[n];\r
- for (int i=0; i<n; ++i)\r
- residuals[i] = (resp_data[*idx] - cur_data[*idx++]);\r
+ for (int i=0; i<n; ++i, ++idx)\r
+ residuals[i] = (resp_data[*idx] - cur_data[*idx]);\r
icvSortFloat(residuals, n, 0.0f);\r
\r
int n_half = n >> 1;\r
\r
void CvGBTrees::write_params( CvFileStorage* fs ) const\r
{\r
- CV_FUNCNAME( "CvGBTrees::write_params" );\r
- __BEGIN__;\r
- \r
const char* loss_function_type_str =\r
params.loss_function_type == SQUARED_LOSS ? "SquaredLoss" :\r
params.loss_function_type == ABSOLUTE_LOSS ? "AbsoluteLoss" :\r
data->is_classifier = !problem_type();\r
data->write_params( fs );\r
data->is_classifier = 0;\r
-\r
- __END__;\r
}\r
\r
\r