1 #ifndef NPSTAT_SEQUENTIALPOLYFILTERND_HH_
2 #define NPSTAT_SEQUENTIALPOLYFILTERND_HH_
17 #include "geners/ClassId.hh"
18 #include "geners/CPP11_auto_ptr.hh"
54 unsigned nFilters,
bool takeOwnership);
65 {
return !(*
this == r);}
69 inline unsigned dim()
const {
return nFilters_;}
70 inline bool takesOwnership()
const {
return takeOwnership_;}
85 const unsigned* index,
unsigned lenIndex)
const;
91 template <
class Triplet>
95 template <
class Array>
105 const unsigned* index,
unsigned lenIndex)
const;
110 template <
class ArrIn,
class ArrOut>
111 void filter(
const ArrIn& in, ArrOut* out)
const;
120 template <
class ArrIn,
class ArrOut>
124 inline virtual gs::ClassId classId()
const {
return gs::ClassId(*
this);}
125 virtual bool write(std::ostream& os)
const;
127 static inline const char* classname()
128 {
return "npstat::SequentialPolyFilterND";}
129 static inline unsigned version() {
return 1;}
136 void copyFilters(
const SequentialPolyFilterND& r);
138 const LocalPolyFilter1D** filters_;
140 std::vector<unsigned long> strides_;
141 mutable std::vector<unsigned> indexBuf_;
144 template <
typename T2,
unsigned StackLen2,
unsigned StackDim2>
145 void filterLoop(
bool useConvolve,
unsigned level,
unsigned long idx,
146 unsigned dimNumber, T2* inbuf, T2* outbuf,
147 ArrayND<T2,StackLen2,StackDim2>* out)
const;
151 #include "npstat/stat/SequentialPolyFilterND.icc"
Interface definition for multivariate smoothers that can be cross-validated.
Complete set of parameters for building 1-d filters from the symmetric beta family.
Arbitrary-dimensional array template.
Local polynomial filtering (regression) on 1-d equidistant grids.
Definition: LocalPolyFilter1D.hh:38
Definition: SequentialPolyFilterND.hh:33
Matrix< double > getFilterMatrix() const
void convolve(const ArrIn &in, ArrOut *out) const
ArrayShape dataShape() const
unsigned dim() const
Definition: SequentialPolyFilterND.hh:69
void filter(const ArrIn &in, ArrOut *out) const
SequentialPolyFilterND(const LocalPolyFilter1D **filters, unsigned nFilters, bool takeOwnership)
CPP11_auto_ptr< std::vector< Triplet > > sparseFilterTriplets() const
double linearSelfContribution(unsigned long index) const
ArrayND< double > getFilter(const unsigned *index, unsigned lenIndex) const
bool isCompatible(const Array &in) const
const LocalPolyFilter1D * filter(unsigned dimNumber) const
double selfContribution(const unsigned *index, unsigned lenIndex) const
Definition: AbsArrayProjector.hh:14
std::vector< unsigned > ArrayShape
Definition: ArrayShape.hh:21
Definition: AbsPolyFilterND.hh:27