Mprime4.h (752B)
1 // File : Mprime4.h 2 // Date : Thu Nov 24 08:33:08 2016 3 // Author : Fabian Wermelinger 4 // Description: M^\prime_4 interpolation kernel (3rd order) 5 // Copyright 2016 ETH Zurich. All Rights Reserved. 6 #ifndef MPRIME4_H_KXJZRENA 7 #define MPRIME4_H_KXJZRENA 8 9 #include <cmath> 10 #include "common.h" 11 12 class Mprime4 13 { 14 public: 15 static constexpr int start = -1; 16 static constexpr int end = 3; 17 18 inline Real operator()(const Real x) const 19 { 20 const Real IxI = std::abs(x); 21 if (IxI < 1.0) 22 return 0.5*(IxI - 1.0)*(3.0*IxI*IxI - 2.0*IxI - 2.0); 23 else if (IxI < 2.0) 24 return -0.5*(IxI - 1.0)*(IxI - 2.0)*(IxI - 2.0); 25 else 26 return 0.0; 27 } 28 }; 29 30 #endif /* MPRIME4_H_KXJZRENA */