Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // This file is included by ninja/ninja.hh.  It contains some forward
0002 // declarations for private methods and some options.  It is neither
0003 // supposed to be used nor included directly by the user.
0004 
0005 
0006 #ifndef NINJA_NINJA_IN_HH
0007 #define NINJA_NINJA_IN_HH
0008 
0009 #ifndef NINJA_NINJA_HH_INSIDE
0010 # error "Do not include <ninja/ninja_in.hh> directly.  Include <ninja/ninja.h> instead."
0011 #endif
0012 
0013 namespace ninja {
0014 
0015   // Forward declarations
0016 
0017   template <typename T> class CutsVector;
0018   class IntegralLibrary;
0019 
0020   void printBanner(std::ostream & banner_out, bool force_print);
0021   void setDefaultIntegralLibrary(ninja::IntegralLibrary & lib);
0022   ninja::IntegralLibrary * getIntegralLibrary();
0023   void setTest(unsigned flag);
0024   void setTestTolerance(Real test_tolerance);
0025   void setOutputStream(std::ostream & outs);
0026   void setVerbosity(unsigned flag);
0027   void setChopTolerance(Real chop_tolerance);
0028 
0029   namespace cuts {
0030     class Pentagon;
0031     class Box;
0032     class Triangle;
0033     class Bubble;
0034     class Tadpole;
0035     void print (const CutsVector<Pentagon> & pentagon);
0036     void print (const CutsVector<Box> & box);
0037     void print (const CutsVector<Triangle> & triangle);
0038     void print (const CutsVector<Bubble> & bubble);
0039     void print (const CutsVector<Tadpole> & tadpole);
0040   } // namespace cuts
0041 
0042   //higher rank
0043   namespace x1cuts {
0044     class Pentagon;
0045     class Box;
0046     class Triangle;
0047     class Bubble;
0048     class Tadpole;
0049     void print (const CutsVector<Pentagon> & pentagon);
0050     void print (const CutsVector<Box> & box);
0051     void print (const CutsVector<Triangle> & triangle);
0052     void print (const CutsVector<Bubble> & bubble);
0053     void print (const CutsVector<Tadpole> & tadpole);
0054   } // namespace x1cuts
0055 
0056 
0057   class Options {
0058   private:
0059 
0060     // data options
0061     static std::ostream * out;
0062     static IntegralLibrary * mis;
0063     static Real chop_tol, test_tol, fp_threshold;
0064     static unsigned verb, test;
0065     static bool quiet;
0066 
0067     // private methods using options
0068     static Real chop(Real x);
0069     static Complex chop(const Complex & z);
0070 
0071     // friends
0072     friend void setDefaultIntegralLibrary(IntegralLibrary & lib);
0073     friend ninja::IntegralLibrary * getIntegralLibrary();
0074     friend void printBanner(std::ostream & banner_out, bool force_print);
0075     friend void setTest(unsigned flag);
0076     friend void setChopTolerance(Real chop_tolerance);
0077     friend void setTestTolerance(Real test_tolerance);
0078     friend void setOutputStream(std::ostream & outs);
0079     friend void setVerbosity(unsigned flag);
0080     friend void setDefaultFloatingPointThreshold(Real threshold);
0081     template<typename MassType> friend class Amplitude;
0082     friend void cuts::print (const CutsVector<cuts::Pentagon> & pentagon);
0083     friend void cuts::print (const CutsVector<cuts::Box> & box);
0084     friend void cuts::print (const CutsVector<cuts::Triangle> & triangle);
0085     friend void cuts::print (const CutsVector<cuts::Bubble> & bubble);
0086     friend void cuts::print (const CutsVector<cuts::Tadpole> & tadpole);
0087     friend void x1cuts::print (const CutsVector<x1cuts::Pentagon> & pentagon);
0088     friend void x1cuts::print (const CutsVector<x1cuts::Box> & box);
0089     friend void x1cuts::print (const CutsVector<x1cuts::Triangle> & triangle);
0090     friend void x1cuts::print (const CutsVector<x1cuts::Bubble> & bubble);
0091     friend void x1cuts::print (const CutsVector<x1cuts::Tadpole> & tadpole);
0092 
0093     // do not instantiate
0094     Options();
0095   }; // class Options
0096 
0097 } // namespace ninja
0098 
0099 #endif // NINJA_NINJA_IN_HH