Line data Source code
1 : #include "BSplines.h" 2 : 3 : namespace elsa 4 : { 5 : template <typename data_t> 6 0 : BSpline<data_t>::BSpline(index_t dim, index_t order) : dim_(dim), order_(order) 7 : { 8 0 : } 9 : 10 : template <typename data_t> 11 0 : data_t BSpline<data_t>::operator()(Vector_t<data_t> x) 12 : { 13 0 : ELSA_VERIFY(dim_ == x.size()); 14 0 : return bspline::nd_bspline_evaluate(x, order_); 15 : } 16 : 17 : template <typename data_t> 18 0 : index_t BSpline<data_t>::order() const 19 : { 20 0 : return order_; 21 : } 22 : 23 : template <typename data_t> 24 0 : index_t BSpline<data_t>::dim() const 25 : { 26 0 : return dim_; 27 : } 28 : 29 : template <typename data_t> 30 : 31 0 : ProjectedBSpline<data_t>::ProjectedBSpline(index_t dim, index_t order) 32 0 : : dim_(dim), order_(order) 33 : { 34 0 : } 35 : 36 : template <typename data_t> 37 0 : data_t ProjectedBSpline<data_t>::operator()(data_t x) 38 : { 39 0 : return bspline::nd_bspline_centered(x, order_, dim_ - 1); 40 : } 41 : 42 : template <typename data_t> 43 0 : index_t ProjectedBSpline<data_t>::order() const 44 : { 45 0 : return order_; 46 : } 47 : 48 : template <typename data_t> 49 0 : index_t ProjectedBSpline<data_t>::dim() const 50 : { 51 0 : return dim_; 52 : } 53 : 54 : // ------------------------------------------ 55 : // explicit template instantiation 56 : template class BSpline<float>; 57 : template class BSpline<double>; 58 : 59 : template class ProjectedBSpline<float>; 60 : template class ProjectedBSpline<double>; 61 : } // namespace elsa