⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globals.cpp

📁 支持向量机(4)mySVM
💻 CPP
字号:
#include "globals.h"

SVMFLOAT string2svmfloat(char* s){
  // number =~ [+-]?\d+([.]\d+)?([Ee][+-]?\d+)?
  int size = 0;
  while(s[size] != '\0') 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"<<endl;
  }
  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;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -