Linopt
Linear optics circuit calculator
types.h
1 /* Copyright © 2018, 2019, Quantum Optical Technologies Laboratories
2  * <https://www.qotlabs.org/en/>
3  * Contributed by: Struchalin Gleb <struchalin.gleb@physics.msu.ru>
4  * Dyakonov Ivan <iv.dyakonov@physics.msu.ru>
5  *
6  * This file is part of Linopt.
7  *
8  * Linopt is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU Lesser General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * Linopt is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with Linopt. If not, see <https://www.gnu.org/licenses/>.
20  */
21 
22 #ifndef TYPES_H
23 #define TYPES_H
24 
25 #include <complex>
26 
27 namespace linopt
28 {
29 
30 using Real = double;
31 using Complex = std::complex<Real>;
32 
36 constexpr Real defaultEpsilon = 1e-15;
37 
42 namespace execution
43 {
44  class Seq {};
45  class Par {};
46 } // Namespace execution
47 
48 } // Namespace linopt
49 
50 #endif // TYPES_H
The main namespace containing all library classes, functions, etc.
Definition: circuit.h:28
Parallel execution policy.
Definition: types.h:45
Sequential execution policy.
Definition: types.h:44
constexpr Real defaultEpsilon
Default precision for numeric comparison operations.
Definition: types.h:36