EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
EvtComplex.cpp
Go to the documentation of this file.
1
2/***********************************************************************
3* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4* *
5* This file is part of EvtGen. *
6* *
7* EvtGen is free software: you can redistribute it and/or modify *
8* it under the terms of the GNU General Public License as published by *
9* the Free Software Foundation, either version 3 of the License, or *
10* (at your option) any later version. *
11* *
12* EvtGen is distributed in the hope that it will be useful, *
13* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15* GNU General Public License for more details. *
16* *
17* You should have received a copy of the GNU General Public License *
18* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19***********************************************************************/
20
22
23#include <iostream>
24#include <math.h>
25using std::ostream;
26
27ostream& operator<<( ostream& s, const EvtComplex& c )
28{
29 s << "(" << c.m_rpart << "," << c.m_ipart << ")";
30 return s;
31}
32
34{
35 double r = m_rpart * c.m_rpart - m_ipart * c.m_ipart;
36 double i = m_rpart * c.m_ipart + m_ipart * c.m_rpart;
37
38 m_rpart = r;
39 m_ipart = i;
40
41 return *this;
42}
43
45{
46 double inv = 1.0 / ( c.m_rpart * c.m_rpart + c.m_ipart * c.m_ipart );
47
48 double r = inv * ( m_rpart * c.m_rpart + m_ipart * c.m_ipart );
49 double i = inv * ( m_ipart * c.m_rpart - m_rpart * c.m_ipart );
50
51 m_rpart = r;
52 m_ipart = i;
53
54 return *this;
55}
ostream & operator<<(ostream &s, const EvtComplex &c)
EvtComplex & operator*=(double d)
double m_rpart
Definition EvtComplex.hh:75
double m_ipart
Definition EvtComplex.hh:75
EvtComplex & operator/=(double d)