cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
Math.cpp
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 2023 Laurent Forthomme
4
*
5
* This program is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation, either version 3 of the License, or
8
* any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#include <cmath>
20
21
#include "
CepGen/Utils/Math.h
"
22
23
namespace
cepgen
{
24
namespace
utils {
25
template
<
typename
T>
26
bool
positive
(
const
T& val) {
27
return
val > T{} && std::isfinite(val);
28
}
29
template
bool
positive<double>
(
const
double
&);
30
template
bool
positive<float>
(
const
float
&);
31
template
bool
positive<int>
(
const
int
&);
32
33
double
fastHypot
(
double
x,
double
y) {
34
x *= x, y *= y;
35
return
std::sqrt(x + y);
36
}
37
38
double
fastHypot
(
double
x,
double
y,
double
z) {
39
x *= x, y *= y, z *= z;
40
return
std::sqrt(x + y + z);
41
}
42
43
double
fastSqrtSqDiff
(
double
x,
double
y) {
44
if
(std::fabs(x) == std::fabs(y))
45
return
0.;
46
return
std::sqrt((x + y) * (x - y));
47
}
48
}
// namespace utils
49
}
// namespace cepgen
Math.h
cepgen::utils::positive< double >
template bool positive< double >(const double &)
cepgen::utils::positive< float >
template bool positive< float >(const float &)
cepgen::utils::positive< int >
template bool positive< int >(const int &)
cepgen::utils::positive
bool positive(const T &val)
Check if a number is positive and finite.
Definition
Math.cpp:26
cepgen::utils::fastSqrtSqDiff
double fastSqrtSqDiff(double x, double y)
Compute the square root of the squared difference (sqrt(a^2-b^2))
Definition
Math.cpp:43
cepgen::utils::fastHypot
double fastHypot(double x, double y)
Definition
Math.cpp:33
cepgen
Common namespace for this Monte Carlo generator.
Definition
CommandLineHandler.cpp:36
CepGen
Utils
Math.cpp
Generated on Mon Jul 29 2024 for CepGen by
1.9.7