File indexing completed on 2026-08-06 09:25:33
0001
0002
0003
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
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 }
0041
0042
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 }
0055
0056
0057 class Options {
0058 private:
0059
0060
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
0068 static Real chop(Real x);
0069 static Complex chop(const Complex & z);
0070
0071
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
0094 Options();
0095 };
0096
0097 }
0098
0099 #endif