ATLAS Offline Software
EventPrimitives.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // EventPrimitives.h, (c) ATLAS Detector software
8 
9 #ifndef EVENT_EVENTPRIMITIVES_H
10 #define EVENT_EVENTPRIMITIVES_H
11 
12 #define EIGEN_MATRIXBASE_PLUGIN "EventPrimitives/AmgMatrixBasePlugin.h"
13 #define EIGEN_MATRIX_PLUGIN "EventPrimitives/AmgMatrixPlugin.h"
14 #define EIGEN_TRANSFORM_PLUGIN "EventPrimitives/AmgTransformPlugin.h"
15 
16 #include <unistd.h>
17 
18 #include <Eigen/Core>
19 #include <Eigen/Dense>
20 
21 // These are the typedefs from Eigen to AMG ( Atlas Math and Geometry )
22 // some of those can be refined when switching to C++11
23 // @author: Eigen
24 // @responsible: Andreas.Salzburger -at- cern.ch
25 
26 namespace Amg {
27 
29 using MatrixX = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>;
30 using SymMatrixX = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>;
32 using VectorX = Eigen::Matrix<double, Eigen::Dynamic, 1>;
33 
37 template <int MaxRows, int MaxCols>
38 using MatrixMaxX =
39  Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxRows, MaxCols>;
40 
41 template <int MaxDim>
43  Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxDim, MaxDim>;
44 
45 template <int MaxRows>
46 using VectorMaxX = Eigen::Matrix<double, Eigen::Dynamic, 1, 0, MaxRows, 1>;
47 
49 #ifndef AmgMatrixDef
50 #define AmgMatrixDef
51 #define AmgMatrix(rows, cols) Eigen::Matrix<double, rows, cols, 0, rows, cols>
52 #define AmgSymMatrix(dim) Eigen::Matrix<double, dim, dim, 0, dim, dim>
53 #endif
54 
55 #ifndef AmgVectorDef
56 #define AmgVectorDef
57 #define AmgVector(rows) Eigen::Matrix<double, rows, 1, 0, rows, 1>
58 #define AmgRowVector(cols) Eigen::Matrix<double, 1, cols, Eigen::RowMajor, 1, cols>
59 #endif
60 
61 } // namespace Amg
62 
63 #endif /* EVENT_EVENTPRIMITIVES_H */
Amg::VectorX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Definition: EventPrimitives.h:32
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Amg::SymMatrixMaxX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxDim, MaxDim > SymMatrixMaxX
Definition: EventPrimitives.h:43
Amg::MatrixMaxX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxRows, MaxCols > MatrixMaxX
Fixed capacity dynamic size types.
Definition: EventPrimitives.h:39
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
Amg::VectorMaxX
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, MaxRows, 1 > VectorMaxX
Definition: EventPrimitives.h:46
Amg::SymMatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > SymMatrixX
Definition: EventPrimitives.h:30