27#ifndef quantlib_linear_least_squares_regression_hpp
28#define quantlib_linear_least_squares_regression_hpp
30#include <ql/math/generallinearleastsquares.hpp>
31#include <ql/functional.hpp>
38 template <
class Container>
63 template <
class xContainer,
bool>
82 template <
class xContainer>
89 Size m = x.begin()->size();
90 for (
Size i = 0; i < m; ++i)
105 template <
class xContainer,
class yContainer>
107 const yContainer& y,
Real intercept = 1.0);
109 template <
class xContainer,
class yContainer,
class vContainer>
111 const yContainer& y,
const vContainer &v);
115 template <
class xContainer,
class yContainer>
inline
117 const yContainer& y,
Real intercept)
119 details::LinearFcts<xContainer,
120 std::is_arithmetic<typename xContainer::value_type>::value>
121 (x, intercept).fcts()) {
124 template <
class xContainer,
class yContainer,
class vContainer>
inline
134 template <
class ArgumentType = Real>
138 const std::vector<ArgumentType> & x,
139 const std::vector<Real> & y,
140 const std::vector<ext::function<
Real(ArgumentType)> > & v)
general linear least squares regression
LinearLeastSquaresRegression(const std::vector< ArgumentType > &x, const std::vector< Real > &y, const std::vector< ext::function< Real(ArgumentType)> > &v)
LinearRegression(const xContainer &x, const yContainer &y, Real intercept=1.0)
linear regression y_i = a_0 + a_1*x_0 +..+a_n*x_{n-1} + eps
Real operator()(const Container &x) const
QL_DEPRECATED typedef Container argument_type
QL_DEPRECATED typedef Real result_type
xContainer::value_type ArgumentType
LinearFcts(const xContainer &x, Real intercept)
std::vector< ext::function< Real(ArgumentType)> > v
const std::vector< ext::function< Real(ArgumentType)> > & fcts()
xContainer::value_type ArgumentType
LinearFcts(const xContainer &x, Real intercept)
std::vector< ext::function< Real(ArgumentType)> > v
const std::vector< ext::function< Real(ArgumentType)> > & fcts()
std::size_t Size
size of a container