Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
Related Functions
:
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
v
w
x
z
Files
File List
File Members
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Variables
$
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
v
x
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
GitLab
LXR
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
DetectorDescription
GeoModel
GeoSpecialShapes
GeoSpecialShapes
vec_parametrized_sincos.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
10
#ifndef VEC_PARAMETRIZED_SINCOS_H
11
#define VEC_PARAMETRIZED_SINCOS_H
12
13
#include "
CxxUtils/restrict.h
"
14
#include "
CxxUtils/vec.h
"
15
struct
vsincos_par
16
{
17
18
CxxUtils::vec<double, 4>
param_0
= {};
19
CxxUtils::vec<double, 4>
param_1
= {};
20
CxxUtils::vec<double, 4>
param_2
= {};
21
22
#if HAVE_FUNCTION_MULTIVERSIONING
23
#if defined(__x86_64__)
24
[[
gnu::target
(
"avx2"
)]]
25
void
26
eval
(
const
double
r
,
27
double
&
ATH_RESTRICT
sin_a,
28
double
&
ATH_RESTRICT
cos_a)
const
ATH_RESTRICT
29
{
30
const
double
r2 =
r
*
r
;
31
CxxUtils::vec<double, 4>
P
= r2 *
param_0
+
param_1
;
32
P
= r2 *
P
+
param_2
;
33
CxxUtils::vec<double, 4>
P2 = {
P
[1],
P
[0],
P
[3],
P
[2]};
34
CxxUtils::vec<double, 4>
res
=
r
* P2 +
P
;
35
sin_a =
res
[0];
36
cos_a =
res
[2];
37
}
38
39
[[
gnu::target
(
"default"
)]]
40
#endif // x86
41
#endif // FMV
42
43
void
44
eval
(
const
double
r
,
45
double
&
ATH_RESTRICT
sin_a,
46
double
&
ATH_RESTRICT
cos_a)
const
ATH_RESTRICT
47
{
48
const
double
r2 =
r
*
r
;
49
CxxUtils::vec<double, 4>
P
= r2 *
param_0
+
param_1
;
50
P
= r2 *
P
+
param_2
;
51
sin_a =
r
*
P
[1] +
P
[0];
52
cos_a =
r
*
P
[3] +
P
[2];
53
}
54
};
55
56
#endif
beamspotman.r
def r
Definition:
beamspotman.py:676
DMTest::P
P_v1 P
Definition:
P.h:23
vsincos_par::eval
void eval(const double r, double &ATH_RESTRICT sin_a, double &ATH_RESTRICT cos_a) const ATH_RESTRICT
Definition:
vec_parametrized_sincos.h:44
vsincos_par::param_2
CxxUtils::vec< double, 4 > param_2
Definition:
vec_parametrized_sincos.h:20
ATH_RESTRICT
#define ATH_RESTRICT
Definition:
restrict.h:31
CxxUtils::vec
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition:
vec.h:207
res
std::pair< std::vector< unsigned int >, bool > res
Definition:
JetGroupProductTest.cxx:11
vsincos_par
vectorized version of parametrized sincos see ATLASSIM-4753 for details
Definition:
vec_parametrized_sincos.h:16
restrict.h
Macro wrapping the nonstandard restrict keyword.
vsincos_par::param_1
CxxUtils::vec< double, 4 > param_1
Definition:
vec_parametrized_sincos.h:19
vec.h
Vectorization helpers.
copySelective.target
string target
Definition:
copySelective.py:37
vsincos_par::param_0
CxxUtils::vec< double, 4 > param_0
Definition:
vec_parametrized_sincos.h:18
Generated on Fri Mar 28 2025 21:22:54 for ATLAS Offline Software by
1.8.18