Deterministic Gaussian Sampling
Loading...
Searching...
No Matches
gsl_utils_compare.h
1
#ifndef GSL_UTILS_COMPARE_H
2
#define GSL_UTILS_COMPARE_H
3
4
#include <gsl/gsl_matrix.h>
5
#include <gsl/gsl_vector.h>
6
7
#include <cmath>
8
9
/******************************************************************************/
10
/*********************************** double ***********************************/
11
/******************************************************************************/
20
[[
maybe_unused
]]
21
static
bool
gsl_utils_compare_eq(
const
gsl_vector
*
a
,
const
gsl_vector
*
b
,
22
double
tol
= 1
e
-6) {
23
if
(
a
->size !=
b
->size)
return
false
;
24
for
(
size_t
i
= 0;
i
<
a
->size; ++
i
) {
25
if
(std::fabs(
gsl_vector_get
(
a
,
i
) -
gsl_vector_get
(
b
,
i
)) >
tol
)
26
return
false
;
27
}
28
return
true
;
29
}
30
40
[[
maybe_unused
]]
41
static
bool
gsl_utils_compare_eq(
const
gsl_matrix
*
a
,
const
gsl_matrix
*
b
,
42
double
tol
= 1
e
-6) {
43
if
(
a
->size1 !=
b
->size1 ||
a
->size2 !=
b
->size2)
return
false
;
44
for
(
size_t
i
= 0;
i
<
a
->size1; ++
i
) {
45
for
(
size_t
j
= 0;
j
<
a
->size2; ++
j
) {
46
if
(std::fabs(
gsl_matrix_get
(
a
,
i
,
j
) -
gsl_matrix_get
(
b
,
i
,
j
)) >
tol
)
47
return
false
;
48
}
49
}
50
return
true
;
51
}
52
53
/******************************************************************************/
54
/************************************ float ***********************************/
55
/******************************************************************************/
64
[[
maybe_unused
]]
65
static
bool
gsl_utils_compare_eq(
const
gsl_vector_float
*
a
,
66
const
gsl_vector_float
*
b
,
double
tol
= 1
e
-6) {
67
if
(
a
->size !=
b
->size)
return
false
;
68
for
(
size_t
i
= 0;
i
<
a
->size; ++
i
) {
69
if
(std::fabs(
gsl_vector_float_get
(
a
,
i
) -
gsl_vector_float_get
(
b
,
i
)) >
70
(
float
)
tol
)
71
return
false
;
72
}
73
return
true
;
74
}
75
85
[[
maybe_unused
]]
86
static
bool
gsl_utils_compare_eq(
const
gsl_matrix_float
*
a
,
87
const
gsl_matrix_float
*
b
,
double
tol
= 1
e
-6) {
88
if
(
a
->size1 !=
b
->size1 ||
a
->size2 !=
b
->size2)
return
false
;
89
for
(
size_t
i
= 0;
i
<
a
->size1; ++
i
) {
90
for
(
size_t
j
= 0;
j
<
a
->size2; ++
j
) {
91
if
(std::fabs(
gsl_matrix_float_get
(
a
,
i
,
j
) -
92
gsl_matrix_float_get
(
b
,
i
,
j
)) > (
float
)
tol
)
93
return
false
;
94
}
95
}
96
return
true
;
97
}
98
99
/******************************************************************************/
100
/********************************* long double ********************************/
101
/******************************************************************************/
110
[[
maybe_unused
]]
111
static
bool
gsl_utils_compare_eq(
const
gsl_vector_long_double
*
a
,
112
const
gsl_vector_long_double
*
b
,
113
double
tol
= 1
e
-6) {
114
if
(
a
->size !=
b
->size)
return
false
;
115
for
(
size_t
i
= 0;
i
<
a
->size; ++
i
) {
116
if
(std::fabs(
gsl_vector_long_double_get
(
a
,
i
) -
117
gsl_vector_long_double_get
(
b
,
i
)) >
tol
)
118
return
false
;
119
}
120
return
true
;
121
}
122
133
[[
maybe_unused
]]
134
static
bool
gsl_utils_compare_eq(
const
gsl_matrix_long_double
*
a
,
135
const
gsl_matrix_long_double
*
b
,
136
double
tol
= 1
e
-6) {
137
if
(
a
->size1 !=
b
->size1 ||
a
->size2 !=
b
->size2)
return
false
;
138
for
(
size_t
i
= 0;
i
<
a
->size1; ++
i
) {
139
for
(
size_t
j
= 0;
j
<
a
->size2; ++
j
) {
140
if
(std::fabs(
gsl_matrix_long_double_get
(
a
,
i
,
j
) -
141
gsl_matrix_long_double_get
(
b
,
i
,
j
)) >
tol
)
142
return
false
;
143
}
144
}
145
return
true
;
146
}
147
148
/******************************************************************************/
149
/************************************ char ************************************/
150
/******************************************************************************/
158
[[
maybe_unused
]]
159
inline
static
bool
gsl_utils_compare_eq(
const
gsl_vector_char
*
a
,
160
const
gsl_vector_char
*
b
) {
161
return
gsl_vector_char_equal
(
a
,
b
);
162
}
163
172
[[
maybe_unused
]]
173
inline
static
bool
gsl_utils_compare_eq(
const
gsl_matrix_char
*
a
,
174
const
gsl_matrix_char
*
b
) {
175
return
gsl_matrix_char_equal
(
a
,
b
);
176
}
177
178
/******************************************************************************/
179
/************************************ int *************************************/
180
/******************************************************************************/
188
[[
maybe_unused
]]
189
inline
static
bool
gsl_utils_compare_eq(
const
gsl_vector_int
*
a
,
190
const
gsl_vector_int
*
b
) {
191
return
gsl_vector_int_equal
(
a
,
b
);
192
}
193
202
[[
maybe_unused
]]
203
inline
static
bool
gsl_utils_compare_eq(
const
gsl_matrix_int
*
a
,
204
const
gsl_matrix_int
*
b
) {
205
return
gsl_matrix_int_equal
(
a
,
b
);
206
}
207
208
/******************************************************************************/
209
/************************************ long ************************************/
210
/******************************************************************************/
218
[[
maybe_unused
]]
219
inline
static
bool
gsl_utils_compare_eq(
const
gsl_vector_long
*
a
,
220
const
gsl_vector_long
*
b
) {
221
return
gsl_vector_long_equal
(
a
,
b
);
222
}
223
232
[[
maybe_unused
]]
233
inline
static
bool
gsl_utils_compare_eq(
const
gsl_matrix_long
*
a
,
234
const
gsl_matrix_long
*
b
) {
235
return
gsl_matrix_long_equal
(
a
,
b
);
236
}
237
238
/******************************************************************************/
239
/************************************ short ***********************************/
240
/******************************************************************************/
248
inline
static
bool
gsl_utils_compare_eq(
const
gsl_vector_short
*
a
,
249
const
gsl_vector_short
*
b
) {
250
return
gsl_vector_short_equal
(
a
,
b
);
251
}
252
261
[[
maybe_unused
]]
262
inline
static
bool
gsl_utils_compare_eq(
const
gsl_matrix_short
*
a
,
263
const
gsl_matrix_short
*
b
) {
264
return
gsl_matrix_short_equal
(
a
,
b
);
265
}
266
267
/******************************************************************************/
268
/************************************ uchar ***********************************/
269
/******************************************************************************/
277
[[
maybe_unused
]]
278
inline
static
bool
gsl_utils_compare_eq(
const
gsl_vector_uchar
*
a
,
279
const
gsl_vector_uchar
*
b
) {
280
return
gsl_vector_uchar_equal
(
a
,
b
);
281
}
282
291
[[
maybe_unused
]]
292
inline
static
bool
gsl_utils_compare_eq(
const
gsl_matrix_uchar
*
a
,
293
const
gsl_matrix_uchar
*
b
) {
294
return
gsl_matrix_uchar_equal
(
a
,
b
);
295
}
296
297
/******************************************************************************/
298
/************************************ uint ************************************/
299
/******************************************************************************/
307
[[
maybe_unused
]]
308
inline
static
bool
gsl_utils_compare_eq(
const
gsl_vector_uint
*
a
,
309
const
gsl_vector_uint
*
b
) {
310
return
gsl_vector_uint_equal
(
a
,
b
);
311
}
312
321
[[
maybe_unused
]]
322
inline
static
bool
gsl_utils_compare_eq(
const
gsl_matrix_uint
*
a
,
323
const
gsl_matrix_uint
*
b
) {
324
return
gsl_matrix_uint_equal
(
a
,
b
);
325
}
326
327
/******************************************************************************/
328
/************************************ ulong ***********************************/
329
/******************************************************************************/
337
[[
maybe_unused
]]
338
inline
static
bool
gsl_utils_compare_eq(
const
gsl_vector_ulong
*
a
,
339
const
gsl_vector_ulong
*
b
) {
340
return
gsl_vector_ulong_equal
(
a
,
b
);
341
}
342
351
[[
maybe_unused
]]
352
inline
static
bool
gsl_utils_compare_eq(
const
gsl_matrix_ulong
*
a
,
353
const
gsl_matrix_ulong
*
b
) {
354
return
gsl_matrix_ulong_equal
(
a
,
b
);
355
}
356
357
/******************************************************************************/
358
/*********************************** ushort ***********************************/
359
/******************************************************************************/
367
[[
maybe_unused
]]
368
inline
static
bool
gsl_utils_compare_eq(
const
gsl_vector_ushort
*
a
,
369
const
gsl_vector_ushort
*
b
) {
370
return
gsl_vector_ushort_equal
(
a
,
b
);
371
}
372
381
[[
maybe_unused
]]
382
inline
static
bool
gsl_utils_compare_eq(
const
gsl_matrix_ushort
*
a
,
383
const
gsl_matrix_ushort
*
b
) {
384
return
gsl_matrix_ushort_equal
(
a
,
b
);
385
}
386
387
#endif
// GSL_UTILS_COMPARE_H
dirac_to_dirac_approx_short
Definition
dirac_to_dirac_approx_short.h:9
lib
gsl_utils
gsl_utils_compare.h
Generated by
1.9.8