Commit 013d54c2 authored by LeonidBeynenson's avatar LeonidBeynenson

Changed types of some variables from int64 back to int.

Also corrected some indexes to be size_t.
parent 6de42270
...@@ -75,13 +75,13 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag, ...@@ -75,13 +75,13 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag,
int sample_all = 0, r_type, cv_n; int sample_all = 0, r_type, cv_n;
int total_c_count = 0; int total_c_count = 0;
int tree_block_size, temp_block_size, max_split_size, nv_size, cv_size = 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 int ds_step, dv_step, ms_step = 0, mv_step = 0; // {data|mask}{sample|var}_step
int64 vi, i, size; int vi, i, size;
char err[100]; char err[100];
const int *sidx = 0, *vidx = 0; const int *sidx = 0, *vidx = 0;
uint64 effective_buf_size = -1; uint64 effective_buf_size = 0;
int effective_buf_height = -1, effective_buf_width = -1; int effective_buf_height = 0, effective_buf_width = 0;
if ( _params.use_surrogates ) if ( _params.use_surrogates )
CV_ERROR(CV_StsBadArg, "CvERTrees do not support surrogate splits"); CV_ERROR(CV_StsBadArg, "CvERTrees do not support surrogate splits");
...@@ -312,17 +312,17 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag, ...@@ -312,17 +312,17 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag,
for( i = 0; i < sample_count; i++ ) for( i = 0; i < sample_count; i++ )
{ {
int val = INT_MAX, si = sidx ? sidx[i] : 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 ) if( idata )
val = idata[si*step]; val = idata[(size_t)si*step];
else else
{ {
float t = fdata[si*step]; float t = fdata[(size_t)si*step];
val = cvRound(t); val = cvRound(t);
if( val != 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 ); "variable is not an integer", i, vi );
CV_ERROR( CV_StsBadArg, err ); CV_ERROR( CV_StsBadArg, err );
} }
...@@ -330,7 +330,7 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag, ...@@ -330,7 +330,7 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag,
if( val == INT_MAX ) 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 ); "variable is too large", i, vi );
CV_ERROR( CV_StsBadArg, err ); CV_ERROR( CV_StsBadArg, err );
} }
...@@ -424,16 +424,16 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag, ...@@ -424,16 +424,16 @@ void CvERTreeTrainData::set_data( const CvMat* _train_data, int _tflag,
{ {
float val = ord_nan; float val = ord_nan;
int si = sidx ? sidx[i] : i; int si = sidx ? sidx[i] : i;
if( !mask || !mask[si*m_step] ) if( !mask || !mask[(size_t)si*m_step] )
{ {
if( idata ) if( idata )
val = (float)idata[si*step]; val = (float)idata[(size_t)si*step];
else else
val = fdata[si*step]; val = fdata[(size_t)si*step];
if( fabs(val) >= ord_nan ) 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 ); "variable (=%g) is too large", i, vi, val );
CV_ERROR( CV_StsBadArg, err ); CV_ERROR( CV_StsBadArg, err );
} }
......
...@@ -154,8 +154,8 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag, ...@@ -154,8 +154,8 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag,
int sample_all = 0, r_type, cv_n; int sample_all = 0, r_type, cv_n;
int total_c_count = 0; int total_c_count = 0;
int tree_block_size, temp_block_size, max_split_size, nv_size, cv_size = 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 int ds_step, dv_step, ms_step = 0, mv_step = 0; // {data|mask}{sample|var}_step
int64 vi, i, size; int vi, i, size;
char err[100]; char err[100];
const int *sidx = 0, *vidx = 0; const int *sidx = 0, *vidx = 0;
...@@ -421,17 +421,17 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag, ...@@ -421,17 +421,17 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag,
for( i = 0; i < sample_count; i++ ) for( i = 0; i < sample_count; i++ )
{ {
int val = INT_MAX, si = sidx ? sidx[i] : 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 ) if( idata )
val = idata[si*step]; val = idata[(size_t)si*step];
else else
{ {
float t = fdata[si*step]; float t = fdata[(size_t)si*step];
val = cvRound(t); val = cvRound(t);
if( fabs(t - val) > FLT_EPSILON ) 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 ); "variable is not an integer", i, vi );
CV_ERROR( CV_StsBadArg, err ); CV_ERROR( CV_StsBadArg, err );
} }
...@@ -439,7 +439,7 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag, ...@@ -439,7 +439,7 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag,
if( val == INT_MAX ) 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 ); "variable is too large", i, vi );
CV_ERROR( CV_StsBadArg, err ); CV_ERROR( CV_StsBadArg, err );
} }
...@@ -537,16 +537,16 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag, ...@@ -537,16 +537,16 @@ void CvDTreeTrainData::set_data( const CvMat* _train_data, int _tflag,
{ {
float val = ord_nan; float val = ord_nan;
int si = sidx ? sidx[i] : i; int si = sidx ? sidx[i] : i;
if( !mask || !mask[si*m_step] ) if( !mask || !mask[(size_t)si*m_step] )
{ {
if( idata ) if( idata )
val = (float)idata[si*step]; val = (float)idata[(size_t)si*step];
else else
val = fdata[si*step]; val = fdata[(size_t)si*step];
if( fabs(val) >= ord_nan ) 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 ); "variable (=%g) is too large", i, vi, val );
CV_ERROR( CV_StsBadArg, err ); CV_ERROR( CV_StsBadArg, err );
} }
...@@ -3333,7 +3333,7 @@ float CvDTree::calc_error( CvMLData* _data, int type, vector<float> *resp ) ...@@ -3333,7 +3333,7 @@ float CvDTree::calc_error( CvMLData* _data, int type, vector<float> *resp )
float r = (float)predict( &sample, missing ? &miss : 0 )->value; float r = (float)predict( &sample, missing ? &miss : 0 )->value;
if( pred_resp ) if( pred_resp )
pred_resp[i] = r; 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 += d;
} }
err = sample_count ? err / (float)sample_count * 100 : -FLT_MAX; err = sample_count ? err / (float)sample_count * 100 : -FLT_MAX;
...@@ -3350,7 +3350,7 @@ float CvDTree::calc_error( CvMLData* _data, int type, vector<float> *resp ) ...@@ -3350,7 +3350,7 @@ float CvDTree::calc_error( CvMLData* _data, int type, vector<float> *resp )
float r = (float)predict( &sample, missing ? &miss : 0 )->value; float r = (float)predict( &sample, missing ? &miss : 0 )->value;
if( pred_resp ) if( pred_resp )
pred_resp[i] = r; 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 += d*d;
} }
err = sample_count ? err / (float)sample_count : -FLT_MAX; err = sample_count ? err / (float)sample_count : -FLT_MAX;
...@@ -3656,8 +3656,8 @@ CvDTreeNode* CvDTree::predict( const CvMat* _sample, ...@@ -3656,8 +3656,8 @@ CvDTreeNode* CvDTree::predict( const CvMat* _sample,
int vi = split->var_idx; int vi = split->var_idx;
int ci = vtype[vi]; int ci = vtype[vi];
i = vidx ? vidx[vi] : vi; i = vidx ? vidx[vi] : vi;
float val = sample[i*step]; float val = sample[(size_t)i*step];
if( m && m[i*mstep] ) if( m && m[(size_t)i*mstep] )
continue; continue;
if( ci < 0 ) // ordered if( ci < 0 ) // ordered
dir = val <= split->ord.c ? -1 : 1; dir = val <= split->ord.c ? -1 : 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment