Line data Source code
1 : #include "Blobs.h" 2 : #include "Bessel.h" 3 : 4 : namespace elsa 5 : { 6 : template <typename data_t> 7 : constexpr Blob<data_t>::Blob(data_t radius, SelfType_t<data_t> alpha, int order) 8 : : radius_(radius), alpha_(alpha), order_(order) 9 96 : { 10 96 : } 11 : 12 : template <typename data_t> 13 : constexpr data_t Blob<data_t>::operator()(data_t s) 14 9696 : { 15 9696 : return blobs::blob_evaluate(s, radius_, alpha_, order_); 16 9696 : } 17 : 18 : template <typename data_t> 19 : constexpr data_t Blob<data_t>::radius() const 20 0 : { 21 0 : return radius_; 22 0 : } 23 : 24 : template <typename data_t> 25 : constexpr data_t Blob<data_t>::alpha() const 26 0 : { 27 0 : return alpha_; 28 0 : } 29 : 30 : template <typename data_t> 31 : constexpr int Blob<data_t>::order() const 32 0 : { 33 0 : return order_; 34 0 : } 35 : // ------------------------------------------ 36 : // explicit template instantiation 37 : namespace blobs 38 : { 39 : template float blob_evaluate<float>(float, SelfType_t<float>, SelfType_t<float>, int); 40 : template double blob_evaluate<double>(double, SelfType_t<double>, SelfType_t<double>, int); 41 : 42 : template float blob_projected<float>(float, SelfType_t<float>, SelfType_t<float>, int); 43 : template double blob_projected<double>(double, SelfType_t<double>, SelfType_t<double>, int); 44 : 45 : template float blob_projected<float>(float); 46 : template double blob_projected<double>(double); 47 : } // namespace blobs 48 : 49 : template class Blob<float>; 50 : template class Blob<double>; 51 : } // namespace elsa