9 #ifndef ThePEG_Complex_H
10 #define ThePEG_Complex_H
27 template <
typename T,
typename U>
28 struct BinaryOpTraits;
31 template <
typename T,
typename U>
32 struct BinaryOpTraits<complex<T>, 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;