ProSHADE  0.7.6.2 (DEC 2021)
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 C4996 Warnings caused by Gemmi code
62 #if defined ( _MSC_VER )
63  #pragma warning ( disable:4996 )
64 #endif
65 
66 //==================================================== Gemmi
67 #ifndef __PROSHADE_GEMMI_INCLUDE__
68  #define __PROSHADE_GEMMI_INCLUDE__
69  #include <gemmi/mmread.hpp>
70  #include <gemmi/ccp4.hpp>
71  #include <gemmi/it92.hpp>
72  #include <gemmi/dencalc.hpp>
73  #include <gemmi/fprime.hpp>
74  #include <gemmi/gz.hpp>
75 #endif
76 
77 //==================================================== Enable MSVC C4996 Warnings for the rest of the code
78 #if defined ( _MSC_VER )
79  #pragma warning ( default:4996 )
80 #endif
81 
82 //==================================================== FFTW3
83 #ifdef __cplusplus
84 extern "C" {
85 #endif
86 
87 #include <fftw3.h>
88 
89 #ifdef __cplusplus
90 }
91 #endif
92 
93 //==================================================== SOFT
94 #ifdef __cplusplus
95 extern "C" {
96 #endif
97 
98 #include <wrap_fftw.h>
99 #include <makeweights.h>
100 #include <s2_primitive.h>
101 #include <s2_cospmls.h>
102 #include <s2_legendreTransforms.h>
103 #include <s2_semi_fly.h>
104 #include <rotate_so3_utils.h>
105 #include <utils_so3.h>
106 #include <soft_fftw.h>
107 #include <rotate_so3_fftw.h>
108 
109 #ifdef __cplusplus
110 }
111 #endif
112 
113 //==================================================== Now the flags can be restored and used as per the CMakeLists.txt file.
114 #if defined ( __GNUC__ )
115  #pragma GCC diagnostic pop
116 #endif
117 
118 //==================================================== Now the flags can be restored and used as per the CMakeLists.txt file.
119 #if defined ( __clang__ )
120  #pragma clang diagnostic pop
121 #endif
122 
123 //==================================================== GetOpt port (BSD License, works on Windows as well as linux)
124 #include <getopt_port/getopt_port.h>
125 
126 
127 //==================================================== Define maths constants in case cmath fails to have them
128 #ifndef M_PI
129  #define M_PI 3.14159265358979323846
130 #endif
131 
132 #ifndef M_SQRT1_2
133  #define M_SQRT1_2 0.707106781186547524401
134 #endif
135 
136 //==================================================== Overinclusion protection
137 #ifndef PROSHADE_TYPEDEFS
138 #define PROSHADE_TYPEDEFS
139 
140 //==================================================== The Task data type
141 enum ProSHADE_Task { NA, Distances, Symmetry, OverlayMap, MapManip };
142 
143 //==================================================== ProSHADE Typedefs
144 typedef float proshade_single;
145 typedef double proshade_double;
146 typedef signed long int proshade_signed;
147 typedef unsigned long int proshade_unsign;
148 typedef double proshade_complex[2];
149 typedef double proshade_triplet[3];
150 
151 #endif
152