13#include <OpenMS/config.h>
75 const std::vector<double>& y,
115 bool ok()
const {
return ok_; }
125 double rss()
const {
return rss_; }
134 int num_interior_knots_ = 0;
138 std::vector<double>
x_;
139 std::vector<double>
y_;
163 const std::vector<double>& y,
172 const std::vector<double>& y,
180 const std::vector<double>& x,
181 const std::vector<double>& y)
const;
187 const std::vector<double>& y)
const;
b spline interpolation
Definition BSpline2d.h:31
Smoothing spline implementation using B-spline basis.
Definition BSplineSmoothingSpline.h:56
bool ok() const
Check if spline fit was successful.
Definition BSplineSmoothingSpline.h:115
void fit_smoothing_spline(const std::vector< double > &x, const std::vector< double > &y, double s_target)
Find optimal wavelength/nodes combination to match smoothing target.
std::vector< double > poly_coeffs_
Definition BSplineSmoothingSpline.h:146
FitType
Definition BSplineSmoothingSpline.h:142
BSplineSmoothingSpline(BSplineSmoothingSpline &&)=default
Defaulted move constructor.
double smoothing_param() const
Get the smoothing parameter used.
Definition BSplineSmoothingSpline.h:130
double eval(double x) const
Evaluate the smoothing spline at x.
int num_interior_knots() const
Get the number of interior knots selected.
Definition BSplineSmoothingSpline.h:120
BSplineSmoothingSpline(const BSplineSmoothingSpline &)=delete
Deleted copy constructor (cannot copy owned resources)
double compute_polynomial_rss(const std::vector< double > &x, const std::vector< double > &y) const
Compute RSS for polynomial fit.
std::vector< double > y_
Definition BSplineSmoothingSpline.h:139
std::vector< double > x_
Definition BSplineSmoothingSpline.h:138
BSplineSmoothingSpline & operator=(BSplineSmoothingSpline &&)=default
Defaulted move assignment.
BSplineSmoothingSpline(const std::vector< double > &x, const std::vector< double > &y, double s=-1.0, int k=3)
Construct a smoothing spline with automatic knot selection.
~BSplineSmoothingSpline()
Destructor - cleans up internal BSpline2d if used.
bool try_polynomial_fit(const std::vector< double > &x, const std::vector< double > &y, double s_target, int degree=3)
Try polynomial fit (matches scipy when 0 interior knots)
double compute_rss(const BSpline2d *spl, const std::vector< double > &x, const std::vector< double > &y) const
Compute RSS for given spline.
std::unique_ptr< BSpline2d > spline_
Definition BSplineSmoothingSpline.h:149
double eval_polynomial(double x) const
Evaluate polynomial at x.
double rss() const
Get the achieved RSS.
Definition BSplineSmoothingSpline.h:125
BSplineSmoothingSpline & operator=(const BSplineSmoothingSpline &)=delete
Deleted copy assignment (cannot copy owned resources)
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19