thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
PhysicalQtyComplex.h File Reference

Overloads for operations on complex physical quantities. More...

#include "PhysicalQty.h"
#include "PhysicalQtyOps.h"
#include <complex>

Go to the source code of this file.

Classes

class  std::complex< ThePEG::QtyDouble >
 Template specialization for std::complex<Qty<0,0,0> > with conversions to complex<double> More...
 

Namespaces

 ThePEG
 This is the main namespace within which all identifiers in ThePEG are declared.
 

Functions

Overloads for mathematical operations
template<typename L1 , typename E1 , typename Q1 , typename L2 , typename E2 , typename Q2 >
constexpr auto ThePEG::operator* (std::complex< Qty< L1, E1, Q1 >> q1, std::complex< Qty< L2, E2, Q2 >> q2) -> std::complex< decltype(q1.real() *q2.real())>
 
template<typename L , typename E , typename Q >
constexpr std::complex< typename Qty< L, E, Q >::Squared > ThePEG::operator* (std::complex< Qty< L, E, Q >> q1, std::complex< Qty< L, E, Q >> q2)
 
constexpr std::complex< double > ThePEG::operator- (std::complex< double > q1, std::complex< QtyDouble > q2)
 
constexpr std::complex< double > ThePEG::operator+ (std::complex< double > q1, std::complex< QtyDouble > q2)
 
template<typename L , typename E , typename Q >
constexpr std::complex< Qty< L, E, Q > > ThePEG::operator* (std::complex< double > q1, std::complex< Qty< L, E, Q >> q2)
 
template<typename L , typename E , typename Q >
std::complex< typename Qty< L, E, Q >::Inverse > ThePEG::operator/ (std::complex< double > q1, std::complex< Qty< L, E, Q >> q2)
 
template<typename L , typename E , typename Q >
constexpr std::complex< typename Qty< L, E, Q >::Inverse > ThePEG::operator/ (std::complex< double > q1, Qty< L, E, Q > q2)
 
template<typename L , typename E , typename Q >
std::complex< Qty< L, E, Q > > ThePEG::operator/ (std::complex< Qty< L, E, Q >> q1, std::complex< double > q2)
 
template<typename L , typename E , typename Q >
std::complex< Qty< L, E, Q > > ThePEG::operator/ (Qty< L, E, Q > q1, std::complex< double > q2)
 
template<typename L , typename E , typename Q >
std::complex< double > ThePEG::operator/ (std::complex< Qty< L, E, Q >> q1, std::complex< Qty< L, E, Q >> q2)
 
template<typename L , typename E , typename Q >
std::complex< double > ThePEG::operator/ (Qty< L, E, Q > q1, std::complex< Qty< L, E, Q >> q2)
 
template<typename L , typename E , typename Q >
constexpr std::complex< double > ThePEG::operator/ (std::complex< Qty< L, E, Q >> q1, Qty< L, E, Q > q2)
 
template<typename L1 , typename E1 , typename Q1 , typename L2 , typename E2 , typename Q2 >
auto ThePEG::operator/ (std::complex< Qty< L1, E1, Q1 >> q1, std::complex< Qty< L2, E2, Q2 >> q2) -> std::complex< decltype(q1.real()/q2.real())>
 
template<typename L1 , typename E1 , typename Q1 , typename L2 , typename E2 , typename Q2 >
auto ThePEG::operator/ (Qty< L1, E1, Q1 > q1, std::complex< Qty< L2, E2, Q2 >> q2) -> std::complex< decltype(q1/q2.real())>
 
template<typename L1 , typename E1 , typename Q1 , typename L2 , typename E2 , typename Q2 >
constexpr auto ThePEG::operator/ (std::complex< Qty< L1, E1, Q1 >> q1, Qty< L2, E2, Q2 > q2) -> std::complex< decltype(q1.real()/q2)>
 
template<typename L , typename E , typename Q >
constexpr std::complex< Qty< L, E, Q > > ThePEG::operator* (std::complex< Qty< L, E, Q >> q1, std::complex< double > q2)
 
template<typename L1 , typename E1 , typename Q1 , typename L2 , typename E2 , typename Q2 >
constexpr auto ThePEG::operator* (Qty< L1, E1, Q1 > q1, std::complex< Qty< L2, E2, Q2 >> q2) -> std::complex< decltype(q1 *q2.real())>
 
template<typename L , typename E , typename Q >
constexpr std::complex< typename Qty< L, E, Q >::Squared > ThePEG::operator* (Qty< L, E, Q > q1, std::complex< Qty< L, E, Q >> q2)
 
template<typename L , typename E , typename Q >
constexpr std::complex< Qty< L, E, Q > > ThePEG::operator* (Qty< L, E, Q > q1, std::complex< double > q2)
 
template<typename L , typename E , typename Q >
constexpr std::complex< Qty< L, E, Q > > ThePEG::operator* (std::complex< double > q1, Qty< L, E, Q > q2)
 
template<typename L1 , typename E1 , typename Q1 , typename L2 , typename E2 , typename Q2 >
constexpr auto ThePEG::operator* (std::complex< Qty< L1, E1, Q1 >> q1, Qty< L2, E2, Q2 > q2) -> decltype(q2 *q1)
 
template<typename L , typename E , typename Q >
constexpr std::complex< typename Qty< L, E, Q >::Squared > ThePEG::operator* (std::complex< Qty< L, E, Q >> q1, Qty< L, E, Q > q2)
 
template<typename L , typename E , typename Q >
constexpr std::complex< Qty< L, E, Q > > & ThePEG::operator*= (std::complex< Qty< L, E, Q >> &q1, double q2)
 
template<typename L , typename E , typename Q >
constexpr std::complex< Qty< L, E, Q > > & ThePEG::operator/= (std::complex< Qty< L, E, Q >> &q1, double q2)
 

Detailed Description

Overloads for operations on complex physical quantities.

Definition in file PhysicalQtyComplex.h.