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
src
EvtGenBase
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
21
#include "
EvtGenBase/EvtComplex.hh
"
22
23
#include <iostream>
24
#include <math.h>
25
using
std::ostream;
26
27
ostream&
operator<<
( ostream& s,
const
EvtComplex
& c )
28
{
29
s <<
"("
<< c.
m_rpart
<<
","
<< c.
m_ipart
<<
")"
;
30
return
s;
31
}
32
33
EvtComplex
&
EvtComplex::operator*=
(
EvtComplex
c )
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
44
EvtComplex
&
EvtComplex::operator/=
(
EvtComplex
c )
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
}
operator<<
ostream & operator<<(ostream &s, const EvtComplex &c)
Definition
EvtComplex.cpp:27
EvtComplex.hh
EvtComplex
Definition
EvtComplex.hh:29
EvtComplex::EvtComplex
EvtComplex()
Definition
EvtComplex.hh:53
EvtComplex::operator*=
EvtComplex & operator*=(double d)
Definition
EvtComplex.hh:135
EvtComplex::m_rpart
double m_rpart
Definition
EvtComplex.hh:75
EvtComplex::m_ipart
double m_ipart
Definition
EvtComplex.hh:75
EvtComplex::operator/=
EvtComplex & operator/=(double d)
Definition
EvtComplex.hh:143
Generated by
1.16.1