4 #include <boost/bind.hpp>
7 #include <boost/numeric/ublas/vector.hpp>
8 #include <boost/numeric/ublas/vector_expression.hpp>
10 namespace ublas = boost::numeric::ublas;
12 using namespace gplib;
17 void f(vector<double> &v1, vector<double> &v2, vector<double> &v3, vector<
20 transform(v1.begin(), v1.end(), v2.begin(), v3.begin(), boost::bind(
21 std::multiplies<double>(), boost::bind<double>(std::minus<double>(),
22 _1, _2), boost::bind<double>(std::minus<double>(), _1, _2)));
23 copy(v2.begin(), v2.end(), v4.begin());
24 double value = accumulate(v3.begin(), v3.end(), 0.0);
27 void g(vector<double> &v1, vector<double> &v2, vector<double> &v3, vector<
31 for (
size_t i = 0; i < v1.size(); ++i)
33 v3.at(i) = pow(v1.at(i) - v2.at(i), 2);
40 void h(vector<double> &v1, vector<double> &v2, vector<double> &v3, vector<
43 typedef vector<double>::iterator tit;
45 for (tit it1 = v1.begin(), it2 = v2.begin(), it3 = v3.begin(), it4 =
46 v4.begin(); it1 != v1.end(); ++it1, ++it2, ++it3, ++it4)
48 *it3 = (*it1 - *it2) * (*it1 - *it2);
54 void ublasf(ublas::vector<double> &v1, ublas::vector<double> &v2,
55 ublas::vector<double> &v3, ublas::vector<double> &v4)
57 transform(v1.begin(), v1.end(), v2.begin(), v3.begin(), boost::bind(
58 std::multiplies<double>(), boost::bind<double>(std::minus<double>(),
59 _1, _2), boost::bind<double>(std::minus<double>(), _1, _2)));
61 double value = ublas::sum(v3);
64 void ublasg(ublas::vector<double> &v1, ublas::vector<double> &v2,
65 ublas::vector<double> &v3, ublas::vector<double> &v4)
68 for (
size_t i = 0; i < v1.size(); ++i)
70 v3(i) = pow(v1(i) - v2(i), 2);
77 void ublash(ublas::vector<double> &v1, ublas::vector<double> &v2,
78 ublas::vector<double> &v3, ublas::vector<double> &v4)
80 typedef ublas::vector<double>::iterator tit;
82 for (tit it1 = v1.begin(), it2 = v2.begin(), it3 = v3.begin(), it4 =
83 v4.begin(); it1 != v1.end(); ++it1, ++it2, ++it3, ++it4)
85 *it3 = (*it1 - *it2) * (*it1 - *it2);
void f(vector< double > &v1, vector< double > &v2, vector< double > &v3, vector< double > &v4)
void ublasf(ublas::vector< double > &v1, ublas::vector< double > &v2, ublas::vector< double > &v3, ublas::vector< double > &v4)
void ublash(ublas::vector< double > &v1, ublas::vector< double > &v2, ublas::vector< double > &v3, ublas::vector< double > &v4)
void h(vector< double > &v1, vector< double > &v2, vector< double > &v3, vector< double > &v4)
void ublasg(ublas::vector< double > &v1, ublas::vector< double > &v2, ublas::vector< double > &v3, ublas::vector< double > &v4)
void g(vector< double > &v1, vector< double > &v2, vector< double > &v3, vector< double > &v4)