// This -*- C++ -*- file has been generated by the Python package
// ninjanumgen, which is distributed with the Ninja library.

#ifndef QUADDIAGRAM_HH
#define QUADDIAGRAM_HH

#include <quadninja/num_defs.hh>

#define QUADNINJA_NUM QuadDiagram
#define QUADNINJA_NUM_NAMESPACE 0

#if QUADNINJA_NUM_NAMESPACE
namespace QUADNINJA_NUM_NAMESPACE {
#endif


  class QUADNINJA_NUM : public quadninja::Numerator {

  public:

    virtual quadninja::Complex evaluate(const quadninja::ComplexMomentum & q,
                                    const quadninja::Complex & muq,
                                    int cut,
                                    const quadninja::PartitionInt part[]);

    virtual void muExpansion(const quadninja::ComplexMomentum v_perp[],
                             const quadninja::PartitionInt part[],
                             quadninja::Complex c[]);

    virtual void t3Expansion(const quadninja::ComplexMomentum & a,
                             const quadninja::ComplexMomentum & e3,
                             const quadninja::ComplexMomentum & e4,
                             const quadninja::Complex & param,
                             int mindeg,
                             int cut, const quadninja::PartitionInt part[],
                             quadninja::Complex c[]);

    virtual void t2Expansion(const quadninja::ComplexMomentum & a0,
                             const quadninja::ComplexMomentum & a1,
                             const quadninja::ComplexMomentum & e3,
                             const quadninja::ComplexMomentum & e4,
                             const quadninja::Complex param[],
                             int mindeg,
                             int cut, const quadninja::PartitionInt part[],
                             quadninja::Complex c[]);
  
  public:

    // Add other public methods and data here
    quadninja::ComplexMomentum v1,v2,v3,v4;

  private:

    // Add other private methods and data here

  };


#if QUADNINJA_NUM_NAMESPACE
} // namespace QUADNINJA_NUM_NAMESPACE
#endif

#undef QUADNINJA_NUM
#undef QUADNINJA_NUM_NAMESPACE

#endif // DIAGRAM_HH

