ATTPCROOT
0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
|
Go to the documentation of this file.
38 #endif // HAVE_SSTREAM
114 double deriv(
int order,
double x)
const;
115 double integrate(
double x0,
double x1)
const;
118 std::vector<double>
solve(
double y,
bool ignore_extrapolation =
true)
const;
125 assert(!
m_x.empty());
130 assert(!
m_x.empty());
136 std::string info()
const;
137 #endif // HAVE_SSTREAM
145 std::vector<std::vector<double>> m_upper;
146 std::vector<std::vector<double>> m_lower;
153 int num_upper()
const {
return (
int)m_upper.size() - 1; }
154 int num_lower()
const {
return (
int)m_lower.size() - 1; }
162 std::vector<double>
r_solve(
const std::vector<double> &b)
const;
163 std::vector<double>
l_solve(
const std::vector<double> &b)
const;
164 std::vector<double>
lu_solve(
const std::vector<double> &b,
bool is_lu_decomposed =
false);
169 std::vector<double>
solve_cubic(
double a,
double b,
double c,
double d,
int newton_iter = 0);
void resize(int dim, int n_u, int n_l)
std::vector< double > m_x
std::vector< double > get_x() const
double & operator()(int i, int j)
void set_boundary(bd_type left, double left_value, bd_type right, double right_value)
std::vector< double > m_y
std::vector< double > m_c
void set_points_cspline()
std::vector< double > solve_cubic(double a, double b, double c, double d, int newton_iter)
std::vector< double > m_d
void set_points_cspline_hermite()
std::vector< double > solve(double y, bool ignore_extrapolation=true) const
double integrate(double x0, double x1) const
void set_points(const std::vector< double > &x, const std::vector< double > &y, spline_type type=cspline)
double deriv(int order, double x) const
std::vector< double > l_solve(const std::vector< double > &b) const
std::vector< double > m_b
std::vector< double > r_solve(const std::vector< double > &b) const
spline(const std::vector< double > &X, const std::vector< double > &Y, spline_type type=cspline, bool make_monotonic=false, bd_type left=second_deriv, double left_value=0.0, bd_type right=second_deriv, double right_value=0.0)
std::vector< double > m_integral
double operator()(double x) const
size_t find_closest(double x) const
double & saved_diag(int i)
std::vector< double > get_y() const
std::vector< double > lu_solve(const std::vector< double > &b, bool is_lu_decomposed=false)