Line data Source code
1 : #include "ProximalOperator.h" 2 : #include "Timer.h" 3 : #include "elsaDefines.h" 4 : 5 : namespace elsa 6 : { 7 : template <typename data_t> 8 : ProximalOperator<data_t>::ProximalOperator(const ProximalOperator& other) 9 : : ptr_(other.ptr_->clone()) 10 52 : { 11 52 : } 12 : 13 : template <typename data_t> 14 : ProximalOperator<data_t>& ProximalOperator<data_t>::operator=(const ProximalOperator& other) 15 0 : { 16 0 : ptr_ = other.ptr_->clone(); 17 0 : return *this; 18 0 : } 19 : 20 : template <typename data_t> 21 : auto ProximalOperator<data_t>::apply(const DataContainer<data_t>& v, SelfType_t<data_t> t) const 22 : -> DataContainer<data_t> 23 116 : { 24 116 : return ptr_->apply(v, t); 25 116 : } 26 : 27 : template <typename data_t> 28 : void ProximalOperator<data_t>::apply(const DataContainer<data_t>& v, SelfType_t<data_t> t, 29 : DataContainer<data_t>& prox) const 30 20 : { 31 20 : Timer timeguard("ProximalOperator", "apply"); 32 20 : ptr_->apply(v, t, prox); 33 20 : } 34 : 35 : // ------------------------------------------ 36 : // explicit template instantiation 37 : template class ProximalOperator<float>; 38 : template class ProximalOperator<double>; 39 : } // namespace elsa