From 013d54c230a738c6f3d275f6877e8122fc6ed92b Mon Sep 17 00:00:00 2001 From: LeonidBeynenson Date: Fri, 1 Feb 2013 14:26:02 +0400 Subject: [PATCH] Changed types of some variables from int64 back to int. Also corrected some indexes to be size_t. --- modules/ml/src/ertrees.cpp | 26 +++++++++++++------------- modules/ml/src/tree.cpp | 30 +++++++++++++++--------------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/modules/ml/src/ertrees.cpp b/modules/ml/src/ertrees.cpp index 380d87a79..31d20398a 100644 --- a/modules/ml/src/ertrees.cpp +++ b/modules/ml/src/ertrees.cpp @@ -75,13 +75,13 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag, int sample_all = 0, r_type, cv_n; int total_c_count = 0; int tree_block_size, temp_block_size, max_split_size, nv_size, cv_size = 0; - int64 ds_step, dv_step, ms_step = 0, mv_step = 0; // {data|mask}{sample|var}_step - int64 vi, i, size; + int ds_step, dv_step, ms_step = 0, mv_step = 0; // {data|mask}{sample|var}_step + int vi, i, size; char err[100]; const int *sidx = 0, *vidx = 0; - uint64 effective_buf_size = -1; - int effective_buf_height = -1, effective_buf_width = -1; + uint64 effective_buf_size = 0; + int effective_buf_height = 0, effective_buf_width = 0; if ( _params.use_surrogates ) CV_ERROR(CV_StsBadArg, "CvERTrees do not support surrogate splits"); @@ -312,17 +312,17 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag, for( i = 0; i < sample_count; i++ ) { int val = INT_MAX, si = sidx ? sidx[i] : i; - if( !mask || !mask[si*m_step] ) + if( !mask || !mask[(size_t)si*m_step] ) { if( idata ) - val = idata[si*step]; + val = idata[(size_t)si*step]; else { - float t = fdata[si*step]; + float t = fdata[(size_t)si*step]; val = cvRound(t); if( val != t ) { - sprintf( err, "%ld-th value of %ld-th (categorical) " + sprintf( err, "%d-th value of %d-th (categorical) " "variable is not an integer", i, vi ); CV_ERROR( CV_StsBadArg, err ); } @@ -330,7 +330,7 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag, if( val == INT_MAX ) { - sprintf( err, "%ld-th value of %ld-th (categorical) " + sprintf( err, "%d-th value of %d-th (categorical) " "variable is too large", i, vi ); CV_ERROR( CV_StsBadArg, err ); } @@ -424,16 +424,16 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag, { float val = ord_nan; int si = sidx ? sidx[i] : i; - if( !mask || !mask[si*m_step] ) + if( !mask || !mask[(size_t)si*m_step] ) { if( idata ) - val = (float)idata[si*step]; + val = (float)idata[(size_t)si*step]; else - val = fdata[si*step]; + val = fdata[(size_t)si*step]; if( fabs(val) >= ord_nan ) { - sprintf( err, "%ld-th value of %ld-th (ordered) " + sprintf( err, "%d-th value of %d-th (ordered) " "variable (=%g) is too large", i, vi, val ); CV_ERROR( CV_StsBadArg, err ); } diff --git a/modules/ml/src/tree.cpp b/modules/ml/src/tree.cpp index aef4a3523..583cd33ba 100644 --- a/modules/ml/src/tree.cpp +++ b/modules/ml/src/tree.cpp @@ -154,8 +154,8 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag, int sample_all = 0, r_type, cv_n; int total_c_count = 0; int tree_block_size, temp_block_size, max_split_size, nv_size, cv_size = 0; - int64 ds_step, dv_step, ms_step = 0, mv_step = 0; // {data|mask}{sample|var}_step - int64 vi, i, size; + int ds_step, dv_step, ms_step = 0, mv_step = 0; // {data|mask}{sample|var}_step + int vi, i, size; char err[100]; const int *sidx = 0, *vidx = 0; @@ -421,17 +421,17 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag, for( i = 0; i < sample_count; i++ ) { int val = INT_MAX, si = sidx ? sidx[i] : i; - if( !mask || !mask[si*m_step] ) + if( !mask || !mask[(size_t)si*m_step] ) { if( idata ) - val = idata[si*step]; + val = idata[(size_t)si*step]; else { - float t = fdata[si*step]; + float t = fdata[(size_t)si*step]; val = cvRound(t); if( fabs(t - val) > FLT_EPSILON ) { - sprintf( err, "%ld-th value of %ld-th (categorical) " + sprintf( err, "%d-th value of %d-th (categorical) " "variable is not an integer", i, vi ); CV_ERROR( CV_StsBadArg, err ); } @@ -439,7 +439,7 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag, if( val == INT_MAX ) { - sprintf( err, "%ld-th value of %ld-th (categorical) " + sprintf( err, "%d-th value of %d-th (categorical) " "variable is too large", i, vi ); CV_ERROR( CV_StsBadArg, err ); } @@ -537,16 +537,16 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag, { float val = ord_nan; int si = sidx ? sidx[i] : i; - if( !mask || !mask[si*m_step] ) + if( !mask || !mask[(size_t)si*m_step] ) { if( idata ) - val = (float)idata[si*step]; + val = (float)idata[(size_t)si*step]; else - val = fdata[si*step]; + val = fdata[(size_t)si*step]; if( fabs(val) >= ord_nan ) { - sprintf( err, "%ld-th value of %ld-th (ordered) " + sprintf( err, "%d-th value of %d-th (ordered) " "variable (=%g) is too large", i, vi, val ); CV_ERROR( CV_StsBadArg, err ); } @@ -3333,7 +3333,7 @@ float CvDTree::calc_error( CvMLData* _data, int type, vector *resp ) float r = (float)predict( &sample, missing ? &miss : 0 )->value; if( pred_resp ) pred_resp[i] = r; - int d = fabs((double)r - response->data.fl[si*r_step]) <= FLT_EPSILON ? 0 : 1; + int d = fabs((double)r - response->data.fl[(size_t)si*r_step]) <= FLT_EPSILON ? 0 : 1; err += d; } err = sample_count ? err / (float)sample_count * 100 : -FLT_MAX; @@ -3350,7 +3350,7 @@ float CvDTree::calc_error( CvMLData* _data, int type, vector *resp ) float r = (float)predict( &sample, missing ? &miss : 0 )->value; if( pred_resp ) pred_resp[i] = r; - float d = r - response->data.fl[si*r_step]; + float d = r - response->data.fl[(size_t)si*r_step]; err += d*d; } err = sample_count ? err / (float)sample_count : -FLT_MAX; @@ -3656,8 +3656,8 @@ CvDTreeNode* CvDTree::predict( const CvMat* _sample, int vi = split->var_idx; int ci = vtype[vi]; i = vidx ? vidx[vi] : vi; - float val = sample[i*step]; - if( m && m[i*mstep] ) + float val = sample[(size_t)i*step]; + if( m && m[(size_t)i*mstep] ) continue; if( ci < 0 ) // ordered dir = val <= split->ord.c ? -1 : 1;