Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
looptools_extension.h
Go to the documentation of this file.
1 // This file is part of MARTY.
2 //
3 // MARTY is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // MARTY is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with MARTY. If not, see <https://www.gnu.org/licenses/>.
15 
23 #ifndef LOOPTOOLS_EXTENSION_H_INCLUDED
24 #define LOOPTOOLS_EXTENSION_H_INCLUDED
25 
26 #include <csl.h>
27 #include <complex>
28 
29 namespace mty {
30 
31 using ComplexType = std::complex<double>;
32 using RealType = double;
33 
35 // Conversion functions
37 
38 csl::Expr complexToExpr(ComplexType const& complexNumber);
39 
40 ComplexType exprToComplexType(csl::Expr const& init);
41 
42 double exprToRealType(csl::Expr const& init);
43 
44 std::vector<ComplexType> exprToComplexType(std::vector<csl::Expr> const& init);
45 
46 std::vector<double> exprToRealType(std::vector<csl::Expr> const& init);
47 
48 std::optional<std::vector<RealType>> isReal(
49  std::vector<ComplexType> const& init);
50 
52 // Functions taking RealType
54 
55 ComplexType A0i_runtime(int id,
56  std::vector<RealType> const& arguments);
57 
58 ComplexType B0i_runtime(int id,
59  std::vector<RealType> const& arguments);
60 
61 ComplexType C0i_runtime(int id,
62  std::vector<RealType> const& arguments);
63 
64 ComplexType D0i_runtime(int id,
65  std::vector<RealType> const& arguments);
66 
67 ComplexType E0i_runtime(int id,
68  std::vector<RealType> const& arguments);
69 
71 // Fucntions taking complex
73 
74 ComplexType A0i_runtime(int id,
75  std::vector<ComplexType> const& arguments);
76 
77 ComplexType B0i_runtime(int id,
78  std::vector<ComplexType> const& arguments);
79 
80 ComplexType C0i_runtime(int id,
81  std::vector<ComplexType> const& arguments);
82 
83 ComplexType D0i_runtime(int id,
84  std::vector<ComplexType> const& arguments);
85 
86 ComplexType E0i_runtime(int id,
87  std::vector<ComplexType> const& arguments);
88 
90 // Functions taking csl::Expr
92 
93 ComplexType A0i_runtime(int id,
94  std::vector<csl::Expr> const& arguments);
95 
96 ComplexType B0i_runtime(int id,
97  std::vector<csl::Expr> const& arguments);
98 
99 ComplexType C0i_runtime(int id,
100  std::vector<csl::Expr> const& arguments);
101 
102 ComplexType D0i_runtime(int id,
103  std::vector<csl::Expr> const& arguments);
104 
105 ComplexType E0i_runtime(int id,
106  std::vector<csl::Expr> const& arguments);
107 
108 } // End of namespace mty
109 
110 #endif /* ifndef LOOPTOOLS_EXTENSION_H_INCLUDED */
Namespace of MARTY.
Definition: 2HDM.h:31