LCOV - code coverage report
Current view: top level - functionals - Residual.cpp (source / functions) Hit Total Coverage
Test: test_coverage.info.cleaned Lines: 0 23 0.0 %
Date: 2022-08-04 03:43:28 Functions: 0 28 0.0 %

          Line data    Source code
       1             : #include "Residual.h"
       2             : 
       3             : #include <stdexcept>
       4             : 
       5             : namespace elsa
       6             : {
       7             :     template <typename data_t>
       8           0 :     Residual<data_t>::Residual(const DataDescriptor& domainDescriptor,
       9             :                                const DataDescriptor& rangeDescriptor)
      10           0 :         : _domainDescriptor{domainDescriptor.clone()}, _rangeDescriptor{rangeDescriptor.clone()}
      11             :     {
      12           0 :     }
      13             : 
      14             :     template <typename data_t>
      15           0 :     const DataDescriptor& Residual<data_t>::getDomainDescriptor() const
      16             :     {
      17           0 :         return *_domainDescriptor;
      18             :     }
      19             : 
      20             :     template <typename data_t>
      21           0 :     const DataDescriptor& Residual<data_t>::getRangeDescriptor() const
      22             :     {
      23           0 :         return *_rangeDescriptor;
      24             :     }
      25             : 
      26             :     template <typename data_t>
      27           0 :     DataContainer<data_t> Residual<data_t>::evaluate(const DataContainer<data_t>& x) const
      28             :     {
      29           0 :         DataContainer<data_t> result(*_rangeDescriptor, x.getDataHandlerType());
      30           0 :         evaluate(x, result);
      31           0 :         return result;
      32           0 :     }
      33             : 
      34             :     template <typename data_t>
      35           0 :     void Residual<data_t>::evaluate(const DataContainer<data_t>& x,
      36             :                                     DataContainer<data_t>& result) const
      37             :     {
      38           0 :         if (x.getSize() != getDomainDescriptor().getNumberOfCoefficients()
      39           0 :             || result.getSize() != getRangeDescriptor().getNumberOfCoefficients())
      40           0 :             throw InvalidArgumentError("Residual::evaluate: argument sizes do not match residual");
      41             : 
      42           0 :         evaluateImpl(x, result);
      43           0 :     }
      44             : 
      45             :     template <typename data_t>
      46           0 :     LinearOperator<data_t> Residual<data_t>::getJacobian(const DataContainer<data_t>& x)
      47             :     {
      48           0 :         return getJacobianImpl(x);
      49             :     }
      50             : 
      51             :     template <typename data_t>
      52           0 :     bool Residual<data_t>::isEqual(const Residual<data_t>& other) const
      53             :     {
      54           0 :         return !static_cast<bool>(*_domainDescriptor != *other._domainDescriptor
      55           0 :                                   || *_rangeDescriptor != *other._rangeDescriptor);
      56             :     }
      57             : 
      58             :     // ------------------------------------------
      59             :     // explicit template instantiation
      60             :     template class Residual<float>;
      61             :     template class Residual<double>;
      62             :     template class Residual<complex<float>>;
      63             :     template class Residual<complex<double>>;
      64             : 
      65             : } // namespace elsa

Generated by: LCOV version 1.14