globals.cpp
上传用户:xgw_05
上传日期:2014-12-08
资源大小:2726k
文件大小:3k
源码类别:

.net编程

开发平台:

Java

  1. #include "stdafx.h"
  2. #include "globals.h" SVMFLOAT x_i(const svm_example x, const SVMINT i){   // return x[i] by binary search   SVMINT low=0;   SVMINT high=x.length;   SVMINT med;   SVMFLOAT result;   while(low<high){     med = (low+high)/2;     if(x.example[med].index>=i){       high=med;     }     else{       low=med+1;     };   };   if((high < x.length) && (x.example[high].index==i)){     result = x.example[high].att;   }   else{     result = 0;   };   return result; }; SVMFLOAT string2svmfloat(char* s){   // number =~ [+-]?d+([.]d+)?([Ee][+-]?d+)?   int size = 0;   while(s[size] != '') size++;   int char_read=0;   SVMFLOAT number=0;   int sign = 1;   // sign   if((size > 0) && ('+' == s[0])){     char_read++;   }   else if((size > 0) && ('-' ==s[0])){     char_read++;     sign = -1;   };   // digits before "."   while((char_read<size) && (s[char_read] >= '0') && (s[char_read] <= '9')){     number=number*10+(s[char_read]-'0');     char_read++;   };   // digits after "."   if((char_read<size) && (('.' == s[char_read]) || (',' == s[char_read]))){     SVMFLOAT factor = 0.1;     char_read++;     while((char_read<size) && (s[char_read] >= '0') && (s[char_read] <= '9')){       number=number+factor*(s[char_read]-'0');       char_read++;       factor *= 0.1;     };       };   if(sign<0){     number = -number;   };   // exponent   if((char_read<size) && (('e' == s[char_read]) || ('E' == s[char_read]))){     sign = 1;     char_read++;     if((char_read<size) && ('+' == s[char_read])){       char_read++;     }     else if((char_read<size) && ('-' == s[char_read])){       char_read++;       sign = -1;     };     int exponent=0;     while((char_read<size) && (s[char_read] >= '0') && (s[char_read] <= '9')){       exponent = exponent*10+(s[char_read]-'0');       char_read++;     };     number = number*pow(10,sign*exponent);   };   if(char_read<size){     throw no_number_exception();   };   return number; }; long get_time(){ #ifdef use_time   struct tms the_time;   times(&the_time);   return(the_time.tms_utime); #else   return 0; #endif }; general_exception::general_exception(char* the_error){ error_msg = the_error; } general_exception::general_exception(){ error_msg = ""; } read_exception::read_exception(char* the_error){ error_msg = the_error; } read_exception::read_exception(){ error_msg = ""; } ostream& operator<< (ostream& data_stream, example_format& format){   if(format.sparse){     data_stream<<"sparse";   }   else{     for(int i=1;i<=5;i++){       if(format.where_x == i){ data_stream<<"x";       }       else if(format.where_y == i){ data_stream<<"y";       }       else if (format.where_alpha == i){ data_stream<<"a";       };     };   };   return data_stream; };