Clipper
Main Page
Related Pages
Namespaces
Classes
Files
File List
clipper
core
hkl_compute.h
1
4
//C Copyright (C) 2000-2006 Kevin Cowtan and University of York
5
//L
6
//L This library is free software and is distributed under the terms
7
//L and conditions of version 2.1 of the GNU Lesser General Public
8
//L Licence (LGPL) with the following additional clause:
9
//L
10
//L `You may also combine or link a "work that uses the Library" to
11
//L produce a work containing portions of the Library, and distribute
12
//L that work under terms of your choice, provided that you give
13
//L prominent notice with each copy of the work that the specified
14
//L version of the Library is used in it, and that you include or
15
//L provide public access to the complete corresponding
16
//L machine-readable source code for the Library including whatever
17
//L changes were used in the work. (i.e. If you make changes to the
18
//L Library you must distribute those, but you do not need to
19
//L distribute source or object code to those portions of the work
20
//L not covered by this licence.)'
21
//L
22
//L Note that this clause grants an additional right and does not impose
23
//L any additional restriction, and so does not affect compatibility
24
//L with the GNU General Public Licence (GPL). If you wish to negotiate
25
//L other terms, please contact the maintainer.
26
//L
27
//L You can redistribute it and/or modify the library under the terms of
28
//L the GNU Lesser General Public License as published by the Free Software
29
//L Foundation; either version 2.1 of the License, or (at your option) any
30
//L later version.
31
//L
32
//L This library is distributed in the hope that it will be useful, but
33
//L WITHOUT ANY WARRANTY; without even the implied warranty of
34
//L MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
35
//L Lesser General Public License for more details.
36
//L
37
//L You should have received a copy of the CCP4 licence and/or GNU
38
//L Lesser General Public License along with this library; if not, write
39
//L to the CCP4 Secretary, Daresbury Laboratory, Warrington WA4 4AD, UK.
40
//L The GNU Lesser General Public can also be obtained by writing to the
41
//L Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
42
//L MA 02111-1307 USA
43
44
45
#ifndef CLIPPER_HKL_COMPUTE
46
#define CLIPPER_HKL_COMPUTE
47
48
#include "hkl_datatypes.h"
49
50
51
namespace
clipper
52
{
53
54
namespace
datatypes
55
{
56
// Define conversion operators
57
59
template
<
class
dtype>
class
Compute_phifom_from_abcd
60
{
61
public
:
62
// constructor: sets up integration tables
63
Compute_phifom_from_abcd
();
64
const
Phi_fom<dtype>
operator()
(
const
HKL_info::HKL_reference_index
& ih,
const
ABCD<dtype>
& abcd )
const
;
65
private
:
66
ftype
costab[144], sintab[144];
67
};
68
70
template
<
class
dtype>
class
Compute_abcd_from_phifom
71
{
72
public
:
73
const
ABCD<dtype>
operator()
(
const
HKL_info::HKL_reference_index
& ih,
const
Phi_fom<dtype>
& phifom )
const
;
74
};
75
77
template
<
class
dtype>
class
Compute_fphi_from_fsigf_phifom
78
{
79
public
:
80
const
F_phi<dtype>
operator()
(
const
HKL_info::HKL_reference_index
& ih,
const
F_sigF<dtype>
& fsigf,
const
Phi_fom<dtype>
& phifom )
const
;
81
};
82
84
template
<
class
dtype>
class
Compute_EsigE_from_FsigF
85
{
86
public
:
87
const
E_sigE<dtype>
operator()
(
const
HKL_info::HKL_reference_index
& ih,
const
F_sigF<dtype>
& fsigf )
const
;
88
};
89
91
template
<
class
dtype>
class
Compute_mean_fsigf_from_fsigfano
92
{
93
public
:
94
const
F_sigF<dtype>
operator()
(
const
HKL_info::HKL_reference_index
& ih,
const
F_sigF_ano<dtype>
& fsigfano )
const
;
95
};
96
98
template
<
class
dtype>
class
Compute_diff_fsigf_from_fsigfano
99
{
100
public
:
101
const
F_sigF<dtype>
operator()
(
const
HKL_info::HKL_reference_index
& ih,
const
F_sigF_ano<dtype>
& fsigfano )
const
;
102
};
103
105
template
<
class
dtype>
class
Compute_neg_fphi
106
{
107
public
:
108
const
F_phi<dtype>
operator()
(
const
HKL_info::HKL_reference_index
& ih,
const
F_phi<dtype>
& fphi1 )
const
;
109
};
110
112
template
<
class
dtype>
class
Compute_add_fphi
113
{
114
public
:
115
const
F_phi<dtype>
operator()
(
const
HKL_info::HKL_reference_index
& ih,
const
F_phi<dtype>
& fphi1,
const
F_phi<dtype>
& fphi2 )
const
;
116
};
117
119
template
<
class
dtype>
class
Compute_sub_fphi
120
{
121
public
:
122
const
F_phi<dtype>
operator()
(
const
HKL_info::HKL_reference_index
& ih,
const
F_phi<dtype>
& fphi1,
const
F_phi<dtype>
& fphi2 )
const
;
123
};
124
126
template
<
class
dtype>
class
Compute_add_abcd
127
{
128
public
:
129
const
ABCD<dtype>
operator()
(
const
HKL_info::HKL_reference_index
& ih,
const
ABCD<dtype>
& abcd1,
const
ABCD<dtype>
& abcd2 )
const
;
130
};
131
133
template
<
class
T>
class
Compute_scale_u
134
{
135
public
:
137
Compute_scale_u
(
const
ftype
& s,
const
ftype
& u );
138
const
T
operator()
(
const
HKL_info::HKL_reference_index
& ih, T data )
const
;
139
private
:
140
ftype
s_, u_;
141
};
142
144
template
<
class
T>
class
Compute_scale_u_iso
145
{
146
public
:
148
Compute_scale_u_iso
(
const
ftype
& s,
const
ftype
& u );
149
const
T
operator()
(
const
HKL_info::HKL_reference_index
& ih, T data )
const
;
150
private
:
151
ftype
s_, u_;
152
};
153
155
template
<
class
T>
class
Compute_scale_u_aniso
156
{
157
public
:
159
Compute_scale_u_aniso
(
const
ftype
& s,
const
U_aniso_orth
& u );
160
const
T
operator()
(
const
HKL_info::HKL_reference_index
& ih, T data )
const
;
161
private
:
162
ftype
s_;
163
U_aniso_orth
u_;
164
};
165
167
169
template
<
class
dtype,
class
T>
class
Compute_FsigF
170
{
171
public
:
172
const
F_sigF<dtype>
operator()
(
const
HKL_info::HKL_reference_index
& ih,
const
T& fsigf )
const
;
173
};
174
175
176
}
177
178
179
namespace
data32
180
{
181
typedef
datatypes::Compute_phifom_from_abcd<ftype32>
Compute_phifom_from_abcd
;
182
typedef
datatypes::Compute_abcd_from_phifom<ftype32>
Compute_abcd_from_phifom
;
183
typedef
datatypes::Compute_fphi_from_fsigf_phifom<ftype32>
Compute_fphi_from_fsigf_phifom
;
184
typedef
datatypes::Compute_EsigE_from_FsigF<ftype32>
Compute_EsigE_from_FsigF
;
185
typedef
datatypes::Compute_mean_fsigf_from_fsigfano<ftype32>
Compute_mean_fsigf_from_fsigfano
;
186
typedef
datatypes::Compute_diff_fsigf_from_fsigfano<ftype32>
Compute_diff_fsigf_from_fsigfano
;
187
typedef
datatypes::Compute_neg_fphi<ftype32>
Compute_neg_fphi
;
188
typedef
datatypes::Compute_add_fphi<ftype32>
Compute_add_fphi
;
189
typedef
datatypes::Compute_sub_fphi<ftype32>
Compute_sub_fphi
;
190
typedef
datatypes::Compute_add_abcd<ftype32>
Compute_add_abcd
;
191
typedef
datatypes::Compute_scale_u_iso<datatypes::I_sigI<ftype32>
>
Compute_scale_u_iso_isigi
;
192
typedef
datatypes::Compute_scale_u_iso<datatypes::F_sigF<ftype32>
>
Compute_scale_u_iso_fsigf
;
193
typedef
datatypes::Compute_scale_u_iso<datatypes::F_sigF_ano<ftype32>
>
Compute_scale_u_iso_fsigfano
;
194
typedef
datatypes::Compute_scale_u_iso<datatypes::F_phi<ftype32>
>
Compute_scale_u_iso_fphi
;
195
typedef
datatypes::Compute_scale_u_aniso<datatypes::I_sigI<ftype32>
>
Compute_scale_u_aniso_isigi
;
196
typedef
datatypes::Compute_scale_u_aniso<datatypes::F_sigF<ftype32>
>
Compute_scale_u_aniso_fsigf
;
197
typedef
datatypes::Compute_scale_u_aniso<datatypes::F_sigF_ano<ftype32>
>
Compute_scale_u_aniso_fsigfano
;
198
typedef
datatypes::Compute_scale_u_aniso<datatypes::F_phi<ftype32>
>
Compute_scale_u_aniso_fphi
;
199
typedef
datatypes::Compute_FsigF<ftype32, datatypes::F_sigF<ftype32>
>
Compute_FsigF
;
200
typedef
datatypes::Compute_FsigF<ftype32, datatypes::F_sigF_ano<ftype32>
>
Compute_FsigF_from_ano
;
201
202
typedef
datatypes::Compute_scale_u<datatypes::I_sigI<ftype32>
>
Compute_scale_u_isigi
;
// DEPRECATED
203
typedef
datatypes::Compute_scale_u<datatypes::F_sigF<ftype32>
>
Compute_scale_u_fsigf
;
// DEPRECATED
204
typedef
datatypes::Compute_scale_u<datatypes::F_sigF_ano<ftype32>
>
Compute_scale_u_fsigfano
;
// DEPRECATED
205
typedef
datatypes::Compute_scale_u<datatypes::F_phi<ftype32>
>
Compute_scale_u_fphi
;
// DEPRECATED
206
}
207
208
namespace
data64
209
{
210
typedef
datatypes::Compute_phifom_from_abcd<ftype64>
Compute_phifom_from_abcd
;
211
typedef
datatypes::Compute_abcd_from_phifom<ftype64>
Compute_abcd_from_phifom
;
212
typedef
datatypes::Compute_fphi_from_fsigf_phifom<ftype64>
Compute_fphi_from_fsigf_phifom
;
213
typedef
datatypes::Compute_EsigE_from_FsigF<ftype64>
Compute_EsigE_from_FsigF
;
214
typedef
datatypes::Compute_mean_fsigf_from_fsigfano<ftype64>
Compute_mean_fsigf_from_fsigfano
;
215
typedef
datatypes::Compute_diff_fsigf_from_fsigfano<ftype64>
Compute_diff_fsigf_from_fsigfano
;
216
typedef
datatypes::Compute_neg_fphi<ftype64>
Compute_neg_fphi
;
217
typedef
datatypes::Compute_add_fphi<ftype64>
Compute_add_fphi
;
218
typedef
datatypes::Compute_sub_fphi<ftype64>
Compute_sub_fphi
;
219
typedef
datatypes::Compute_add_abcd<ftype64>
Compute_add_abcd
;
220
typedef
datatypes::Compute_scale_u_iso<datatypes::I_sigI<ftype64>
>
Compute_scale_u_iso_isigi
;
221
typedef
datatypes::Compute_scale_u_iso<datatypes::F_sigF<ftype64>
>
Compute_scale_u_iso_fsigf
;
222
typedef
datatypes::Compute_scale_u_iso<datatypes::F_sigF_ano<ftype64>
>
Compute_scale_u_iso_fsigfano
;
223
typedef
datatypes::Compute_scale_u_iso<datatypes::F_phi<ftype64>
>
Compute_scale_u_iso_fphi
;
224
typedef
datatypes::Compute_scale_u_aniso<datatypes::I_sigI<ftype64>
>
Compute_scale_u_aniso_isigi
;
225
typedef
datatypes::Compute_scale_u_aniso<datatypes::F_sigF<ftype64>
>
Compute_scale_u_aniso_fsigf
;
226
typedef
datatypes::Compute_scale_u_aniso<datatypes::F_sigF_ano<ftype64>
>
Compute_scale_u_aniso_fsigfano
;
227
typedef
datatypes::Compute_scale_u_aniso<datatypes::F_phi<ftype64>
>
Compute_scale_u_aniso_fphi
;
228
typedef
datatypes::Compute_FsigF<ftype64, datatypes::F_sigF<ftype64>
>
Compute_FsigF
;
229
typedef
datatypes::Compute_FsigF<ftype64, datatypes::F_sigF_ano<ftype64>
>
Compute_FsigF_from_ano
;
230
231
typedef
datatypes::Compute_scale_u<datatypes::I_sigI<ftype64>
>
Compute_scale_u_isigi
;
// DEPRECATED
232
typedef
datatypes::Compute_scale_u<datatypes::F_sigF<ftype64>
>
Compute_scale_u_fsigf
;
// DEPRECATED
233
typedef
datatypes::Compute_scale_u<datatypes::F_sigF_ano<ftype64>
>
Compute_scale_u_fsigfano
;
// DEPRECATED
234
typedef
datatypes::Compute_scale_u<datatypes::F_phi<ftype64>
>
Compute_scale_u_fphi
;
// DEPRECATED
235
}
236
237
238
239
}
// namespace clipper
240
241
#endif
Generated on Fri Sep 6 2013 19:58:35 for Clipper by
1.8.4