ATLAS Offline Software
Control
CxxUtils
CxxUtils
sincos.h
Go to the documentation of this file.
1
// This file's extension implies that it's C, but it's really -*- C++ -*-.
2
/*
3
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
4
*/
13
#ifndef CXXUTILS_SINCOS_H
14
#define CXXUTILS_SINCOS_H
15
16
17
#include <cmath>
18
19
20
namespace
CxxUtils
{
21
22
38
struct
sincos
39
{
41
sincos
(
double
x
)
42
#if defined(__USE_GNU)
43
// Version using the GNU sincos() function.
44
{
::sincos
(
x
, &
sn
, &
cs
); }
45
#else
46
// Generic version.
47
:
sn
(
std::sin
(
x
)),
cs
(
std::cos
(
x
)) {}
48
#endif
49
51
double
sn
;
52
54
double
cs
;
55
57
double
apply
(
double
a
,
double
b
)
const
{
return
a
*
sn
+
b
*
cs
; }
58
60
double
apply2
(
double
a
,
double
b
,
double
c
)
const
61
{
return
a
*
sn
*
sn
+
b
*
sn
*
cs
+
c
*
cs
*
cs
; }
62
};
63
64
65
}
// namespace CxxUtils
66
67
68
#endif //not CXXUTILS_SINCOS_H
CxxUtils::sincos::apply
double apply(double a, double b) const
Definition:
sincos.h:57
CxxUtils::sincos::sincos
sincos(double x)
Calculate sine and cosine of x.
Definition:
sincos.h:41
drawFromPickle.cos
cos
Definition:
drawFromPickle.py:36
x
#define x
CxxUtils::sincos::cs
double cs
Definition:
sincos.h:54
CxxUtils
Definition:
aligned_vector.h:29
CxxUtils::sincos::apply2
double apply2(double a, double b, double c) const
Definition:
sincos.h:60
plotBeamSpotMon.b
b
Definition:
plotBeamSpotMon.py:76
CxxUtils::sincos::sn
double sn
Definition:
sincos.h:51
a
TList * a
Definition:
liststreamerinfos.cxx:10
CxxUtils::sincos
Helper to simultaneously calculate sin and cos of the same angle.
Definition:
sincos.h:39
drawFromPickle.sin
sin
Definition:
drawFromPickle.py:36
python.compressB64.c
def c
Definition:
compressB64.py:93
Generated on Sun Aug 31 2025 21:19:00 for ATLAS Offline Software by
1.8.18