- 论坛徽章:
- 0
|
本帖最后由 reiase 于 2011-06-15 13:42 编辑
头文件
- typedef struct {
- int length;
- double threshold;
- double alpha;
- vector< pair<int, int> > svector;
- } cc1;
- typedef struct {
- int length;
- double threshold;
- vector< cc1> cls;
- } cc2;
- typedef struct {
- int length;
- vector< cc2> cls;
- } cc3;
复制代码 代码
- inline int run_cc1(cc1&h, int *im){
- double retval = 0;
- for (auto i = h.svector.begin(); i != h.svector.end(); i++){
- retval += im[i->first] * i->second;
- }
- return (retval > (h.threshold)) ? +1 : -1;
- }
- inline int run_cc2(cc2&v, int *im){
- double val = 0;
- for (auto i = v.cls.begin(); i != v.cls.end(); i++)
- val += i->alpha * run_cc1(*i, im);
- predict_result = val;
- return (val > (v.threshold)) ? +1 : -1;
- }
- int run_cc3(cc3*c, int *im)
- {
- int count = 0;
- for (auto i = c->cls.begin(); i != c->cls.end(); i++){
- if (run_cc2(*i, im) == -1)
- return -count;
- count++;
- }
- return +1;
- }
复制代码 硬件配置:core2/2G
Linux环境:Gentoo/gcc4.5.2
Windows环境两个:VC2008/VC2010+Win7,或者mingw gcc4.5.2+Win7
使用GCC时的编译选项:g++ -std=c++0x -march=native -O2
Win7和Linux下都是这个选项
程序跑了一个小时还没结果,郁闷死了啊 |
|