Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:25:33

0001 // This header defines the abstract class ninja::Numerator.  The
0002 // numerator provided by the user should be a class inherited from
0003 // this one and it should overload its methods `evaluate',
0004 // `tExpansion' and if nedded `muExpansion'.
0005 
0006 
0007 #ifndef NINJA_NUM_DEFS_HH
0008 #define NINJA_NUM_DEFS_HH
0009 
0010 #include <ninja/types.hh>
0011 #include <ninja/momentum.hh>
0012 
0013 namespace ninja {
0014 
0015   typedef unsigned char PartitionInt;
0016 
0017 }
0018 
0019 
0020 namespace samurai {
0021 
0022   class Numerator {
0023 
0024   public:
0025 
0026     virtual ninja::Complex evaluate(const ninja::ComplexMomentum & q,
0027                                     const ninja::Complex & muq,
0028                                     int cut,
0029                                     const ninja::PartitionInt part[]) = 0;
0030 
0031     virtual ~Numerator() {}
0032 
0033   };
0034 
0035 } // namespace samurai
0036 
0037 
0038 namespace ninja {
0039 
0040   class Numerator : public samurai::Numerator {
0041 
0042   public:
0043 
0044     virtual Complex evaluate(const ninja::ComplexMomentum & q,
0045                              const ninja::Complex & muq,
0046                              int cut, const ninja::PartitionInt part[]) = 0;
0047 
0048     virtual void muExpansion(const ninja::ComplexMomentum v_perp[],
0049                              const ninja::PartitionInt part[],
0050                              ninja::Complex c[])
0051     {
0052       (void)(v_perp); (void)(part); (void)(c);
0053     }
0054 
0055     virtual void t3Expansion(const ninja::ComplexMomentum & a,
0056                              const ninja::ComplexMomentum & e3,
0057                              const ninja::ComplexMomentum & e4,
0058                              const ninja::Complex & param,
0059                              int mindeg,
0060                              int cut, const ninja::PartitionInt part[],
0061                              ninja::Complex c[]) = 0;
0062 
0063     virtual void t2Expansion(const ninja::ComplexMomentum & a0,
0064                              const ninja::ComplexMomentum & a1,
0065                              const ninja::ComplexMomentum & e3,
0066                              const ninja::ComplexMomentum & e4,
0067                              const ninja::Complex param[],
0068                              int mindeg,
0069                              int cut, const ninja::PartitionInt part[],
0070                              ninja::Complex c[]) = 0;
0071 
0072     virtual ~Numerator() {}
0073 
0074   };
0075 
0076 } // nammespace ninja
0077 
0078 #endif // NINJA_NUM_DEFS_HH