ProSHADE  0.7.6.6 (JUL 2022)
Protein Shape Detection
ProSHADE_typedefs.hpp
Go to the documentation of this file.
1 
22 //==================================================== ProSHADE
23 #include "ProSHADE_version.hpp"
24 
25 //==================================================== Standard library
26 #include <iostream>
27 #include <fstream>
28 #include <ctime>
29 #include <cmath>
30 #include <numeric>
31 #include <string>
32 #include <vector>
33 #include <exception>
34 #include <complex>
35 #include <algorithm>
36 #include <iomanip>
37 #include <utility>
38 
39 //==================================================== Do not use the following flags for the included files - this causes a lot of warnings that have nothing to do with ProSHADE
40 #if defined ( __GNUC__ )
41  #pragma GCC diagnostic push
42  #pragma GCC diagnostic ignored "-Wpedantic"
43  #pragma GCC diagnostic ignored "-Wshadow"
44  #pragma GCC diagnostic ignored "-Wall"
45  #pragma GCC diagnostic ignored "-Wextra"
46  #pragma GCC diagnostic ignored "-Wdouble-promotion"
47  #pragma GCC diagnostic ignored "-Wconversion"
48 #endif
49 
50 //==================================================== Do not use the following flags for the included files - this causes a lot of warnings that have nothing to do with ProSHADE
51 #if defined ( __clang__ )
52  #pragma clang diagnostic push
53  #pragma clang diagnostic ignored "-Wpedantic"
54  #pragma clang diagnostic ignored "-Wshadow"
55  #pragma clang diagnostic ignored "-Wall"
56  #pragma clang diagnostic ignored "-Wextra"
57  #pragma clang diagnostic ignored "-Wdouble-promotion"
58  #pragma clang diagnostic ignored "-Weverything"
59 #endif
60 
61 //==================================================== Remove MSVC C4127, C4244, C4996 Warnings caused by Gemmi code
62 #if defined ( _MSC_VER )
63  #pragma warning ( disable : 4127 )
64  #pragma warning ( disable : 4244 )
65  #pragma warning ( disable : 4996 )
66 #endif
67 
68 //==================================================== Gemmi
69 #ifndef __PROSHADE_GEMMI_INCLUDE__
70  #define __PROSHADE_GEMMI_INCLUDE__
71  #include <gemmi/mmread.hpp>
72  #include <gemmi/ccp4.hpp>
73  #include <gemmi/it92.hpp>
74  #include <gemmi/dencalc.hpp>
75  #include <gemmi/fprime.hpp>
76  #include <gemmi/gz.hpp>
77 #endif
78 
79 //==================================================== Enable MSVC C4127, C4244, C4996 Warnings for the rest of the code
80 #if defined ( _MSC_VER )
81  #pragma warning ( default : 4127 )
82  #pragma warning ( default : 4244 )
83  #pragma warning ( default : 4996 )
84 #endif
85 
86 //==================================================== FFTW3
87 #ifdef __cplusplus
88 extern "C" {
89 #endif
90 
91 #include <fftw3.h>
92 
93 #ifdef __cplusplus
94 }
95 #endif
96 
97 //==================================================== SOFT
98 #ifdef __cplusplus
99 extern "C" {
100 #endif
101 
102 #include <wrap_fftw.h>
103 #include <makeweights.h>
104 #include <s2_primitive.h>
105 #include <s2_cospmls.h>
106 #include <s2_legendreTransforms.h>
107 #include <s2_semi_fly.h>
108 #include <rotate_so3_utils.h>
109 #include <utils_so3.h>
110 #include <soft_fftw.h>
111 #include <rotate_so3_fftw.h>
112 
113 #ifdef __cplusplus
114 }
115 #endif
116 
117 //==================================================== Now the flags can be restored and used as per the CMakeLists.txt file.
118 #if defined ( __GNUC__ )
119  #pragma GCC diagnostic pop
120 #endif
121 
122 //==================================================== Now the flags can be restored and used as per the CMakeLists.txt file.
123 #if defined ( __clang__ )
124  #pragma clang diagnostic pop
125 #endif
126 
127 //==================================================== GetOpt port (BSD License, works on Windows as well as linux)
128 #include <getopt_port/getopt_port.h>
129 
130 
131 //==================================================== Define maths constants in case cmath fails to have them
132 #ifndef M_PI
133  #define M_PI 3.14159265358979323846
134 #endif
135 
136 #ifndef M_SQRT1_2
137  #define M_SQRT1_2 0.707106781186547524401
138 #endif
139 
140 //==================================================== Overinclusion protection
141 #ifndef PROSHADE_TYPEDEFS
142 #define PROSHADE_TYPEDEFS
143 
144 //==================================================== The Task data type
145 enum ProSHADE_Task { NA, Distances, Symmetry, OverlayMap, MapManip };
146 
147 //==================================================== ProSHADE Typedefs
148 typedef float proshade_single;
149 typedef double proshade_double;
150 typedef signed long int proshade_signed;
151 typedef unsigned long int proshade_unsign;
152 typedef double proshade_complex[2];
153 typedef double proshade_triplet[3];
154 
155 #endif
156