LCOV - code coverage report
Current view: top level - src/Numeric - Function.H (source / functions) Coverage Total Hit
Test: coverage_merged.info Lines: 100.0 % 11 11
Test Date: 2025-02-27 04:17:48 Functions: 100.0 % 3 3

            Line data    Source code
       1              : #ifndef NUMERIC_FUNCTION_H
       2              : #define NUMERIC_FUNCTION_H
       3              : 
       4              : 
       5              : namespace Numeric
       6              : {
       7              : namespace Function
       8              : {
       9              : 
      10              : template<int d> class Polynomial;
      11              : 
      12              : template<>
      13              : class Polynomial<3>
      14              : {
      15              : public:
      16        69892 :     Polynomial(Set::Scalar a0, Set::Scalar a1, Set::Scalar a2, Set::Scalar a3)
      17        69892 :     {
      18        69892 :         a[0] = a0; a[1] = a1; a[2] = a2; a[3] = a3;
      19        69892 :     }
      20              :     AMREX_FORCE_INLINE
      21              :         Set::Scalar operator() (const Set::Scalar x) const
      22              :     {
      23    107645136 :         return a[0] + x * (a[1] + x * (a[2] + x * a[3]));
      24              :     }
      25              : private:
      26              :     std::array<Set::Scalar, 4> a;
      27              : };
      28              : 
      29              : template<>
      30              : class Polynomial<4>
      31              : {
      32              : public:
      33        69892 :     Polynomial(Set::Scalar a0, Set::Scalar a1, Set::Scalar a2, Set::Scalar a3, Set::Scalar a4)
      34        69892 :     {
      35        69892 :         a[0] = a0; a[1] = a1; a[2] = a2; a[3] = a3; a[4] = a4;
      36        69892 :     }
      37              :     AMREX_FORCE_INLINE
      38              :         Set::Scalar operator() (const Set::Scalar x) const
      39              :     {
      40              :         return a[0] + x * (a[1] + x * (a[2] + x * (a[3] + x * a[4])));
      41              :     }
      42        69892 :     Polynomial<3> D() const
      43              :     {
      44        69892 :         return Polynomial<3>(a[1], 2. * a[2], 3 * a[3], 4 * a[4]);
      45              :     }
      46              : private:
      47              :     std::array<Set::Scalar, 5> a;
      48              : };
      49              : 
      50              : }
      51              : }
      52              : 
      53              : 
      54              : 
      55              : 
      56              : 
      57              : 
      58              : #endif
        

Generated by: LCOV version 2.0-1