9 #ifndef ThePEG_Complex_H
10 #define ThePEG_Complex_H
27 template <
typename T,
typename U>
31 template <
typename T,
typename U>
35 typedef complex<typename BinaryOpTraits<T,U>::MulT> MulT;
38 typedef complex<typename BinaryOpTraits<T,U>::DivT> DivT;
42 template <
typename T,
typename U>
43 struct BinaryOpTraits<T, complex<U> > {
46 typedef complex<typename BinaryOpTraits<T,U>::MulT> MulT;
49 typedef complex<typename BinaryOpTraits<T,U>::DivT> DivT;
53 template <
typename T,
typename U>
54 struct BinaryOpTraits<complex<T>, complex<U> > {
57 typedef complex<typename BinaryOpTraits<T,U>::MulT> MulT;
60 typedef complex<typename BinaryOpTraits<T,U>::DivT> DivT;
65 struct BinaryOpTraits<complex<T>, complex<T> > {
68 typedef complex<typename BinaryOpTraits<T,T>::MulT> MulT;
71 typedef complex<typename BinaryOpTraits<T,T>::DivT> DivT;
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
This is the main namespace within which all identifiers in ThePEG are declared.
BinaryOpTraits should be specialized with typdefs called MulT and DivT which gives the type resulting...