#include "METOOLS/Explicit/Color_Calculator.H" #include "METOOLS/Explicit/Vertex.H" #define COMPILE__Getter_Function #define PARAMETER_TYPE METOOLS::Vertex_Key #define OBJECT_TYPE METOOLS::Color_Calculator #define SORT_CRITERION std::less #include "ATOOLS/Org/Getter_Function.C" using namespace METOOLS; size_t Color_Calculator::s_cimin(1); size_t Color_Calculator::s_cimax(3); Color_Calculator::~Color_Calculator() {} bool Color_Calculator::Evaluate(const CObject_Vector &j) { THROW(fatal_error,"Pure virtual method called"); return false; } void Color_Calculator::AddJ(CObject *const j) { CObject *cc(j), *dd(NULL); for (std::vector::const_iterator c(m_c.begin());c!=m_c.end();++c) { if (c<--m_c.end()) dd=cc->Copy(); (*cc)(0)=c->m_cr; (*cc)(1)=c->m_ca; if (c->m_s!=Complex(1.0)) { if (c->m_s==Complex(-1.0)) cc->Invert(); else if (c->m_s.imag()==0.0) cc->Multiply(c->m_s.real()); else cc->Multiply(c->m_s); } p_v->AddJ(cc); cc=dd; } } std::ostream &METOOLS::operator<< (std::ostream &s,const Color_Calculator::CInfo &i) { return s<<"("<