22 #ifndef _LINEARLEASTSQUARES_HPP_ 23 #define _LINEARLEASTSQUARES_HPP_ 36 template <LinearLeastSquaresType lls_type = LinearLeastSquaresType_LU>
44 boost::numeric::ublas::vector<T>
solve(
const boost::numeric::ublas::matrix<T>&
A,
45 const boost::numeric::ublas::vector<T>&
y)
47 boost::numeric::ublas::permutation_matrix<std::size_t> m(A.size1());
48 boost::numeric::ublas::matrix<T> AtA = prod(trans(A), A);
49 boost::numeric::ublas::vector<T> b =
y;
50 boost::numeric::ublas::vector<T> r;
54 if (boost::numeric::ublas::lu_factorize(AtA, m) == 0.)
56 r = prod(trans(A), b);
58 boost::numeric::ublas::lu_substitute(AtA, m, r);
71 boost::numeric::ublas::vector<T>
solve(
72 const boost::numeric::ublas::matrix<T>&
A,
73 const boost::numeric::ublas::vector<T>&
x)
77 boost::numeric::ublas::vector<T>
y = solver.
solve(A, x);
86 #endif // _LINEARLEASTSQUARES_HPP_
vector_type solve(const matrix_type &A, const vector_type &y)
solve system of linear equations Ax = y using boost::ublas; note: extra copying inefficiencies for ea...
LinearLeastSquaresType_LU
boost::numeric::ublas::vector< T > solve(const boost::numeric::ublas::matrix< T > &A, const boost::numeric::ublas::vector< T > &x)
KernelTraitsBase< Kernel >::space_type::abscissa_type x
KernelTraitsBase< Kernel >::space_type::ordinate_type y
boost::numeric::ublas::vector< T > solve(const boost::numeric::ublas::matrix< T > &A, const boost::numeric::ublas::vector< T > &y)