EOL BSpline Library  v2.2
All Classes Files Functions Variables Enumerations Enumerator Pages
BSpline.h
1 /* -*- mode: c++; c-basic-offset: 4; -*- */
2 /************************************************************************
3  * Copyright 2022 University Corporation for Atmospheric Research.
4  * All rights reserved.
5  *
6  * Use of this code is subject to the standard BSD license:
7  *
8  * http://www.opensource.org/licenses/bsd-license.html
9  *
10  * See the COPYRIGHT file in the source distribution for the license text,
11  * or see this web page:
12  *
13  * http://www.eol.ucar.edu/homes/granger/bspline/doc/
14  *
15  *************************************************************************/
16 
17 #ifndef BSPLINE_H
18 #define BSPLINE_H
19 
20 #include "BSplineBase.h"
21 #include <vector>
22 
23 template <class T> struct BSplineP;
24 
31 template <class T> class BSpline : public BSplineBase<T>
32 {
33 public:
57  BSpline(const T* x, int nx, /* independent variable */
58  const T* y, /* dependent values @ ea X */
59  double wl, /* cutoff wavelength */
60  int bc_type = BSplineBase<T>::BC_ZERO_SECOND, int num_nodes = 0);
61 
66  BSpline(BSplineBase<T>& base, const T* y);
67 
75  bool solve(const T* y);
76 
81  T evaluate(T x);
82 
87  T slope(T x);
88 
93  T coefficient(int n);
94 
95  virtual ~BSpline();
96 
100 
101 protected:
102  using BSplineBase<T>::OK;
103  using BSplineBase<T>::M;
104  using BSplineBase<T>::NX;
105  using BSplineBase<T>::DX;
106  using BSplineBase<T>::base;
107  using BSplineBase<T>::xmin;
108  using BSplineBase<T>::xmax;
109 
110  // Our hidden state structure
111  BSplineP<T>* s;
112  T mean; // Fit without mean and add it in later
113 };
114 
115 #endif
Definition: BSplineBase.h:167
Definition: BSpline.h:32
T slope(T x)
Definition: BSpline.cpp:172
bool solve(const T *y)
Definition: BSpline.cpp:70
T evaluate(T x)
Definition: BSpline.cpp:155
T coefficient(int n)
Definition: BSpline.cpp:145
BSpline(const T *x, int nx, const T *y, double wl, int bc_type=BSplineBase< T >::BC_ZERO_SECOND, int num_nodes=0)
Definition: BSpline.cpp:47
Definition: BSpline.cpp:36