ATLAS Offline Software
Loading...
Searching...
No Matches
EventPrimitives.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 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_TRANSFORM_PLUGIN "EventPrimitives/AmgTransformPlugin.h"
14
15
16#include <Eigen/Core>
17#include <Eigen/Dense>
18
19// These are the typedefs from Eigen to AMG ( Atlas Math and Geometry )
20// some of those can be refined when switching to C++11
21// @author: Eigen
22// @responsible: Andreas.Salzburger -at- cern.ch
23
24namespace Amg {
25
27using MatrixX = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>;
28using SymMatrixX = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>;
30using VectorX = Eigen::Matrix<double, Eigen::Dynamic, 1>;
31
35template <int MaxRows, int MaxCols>
37 Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxRows, MaxCols>;
38
39template <int MaxDim>
41 Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxDim, MaxDim>;
42
43template <int MaxRows>
44using VectorMaxX = Eigen::Matrix<double, Eigen::Dynamic, 1, 0, MaxRows, 1>;
45
47#ifndef AmgMatrixDef
48#define AmgMatrixDef
49#define AmgMatrix(rows, cols) Eigen::Matrix<double, rows, cols, 0, rows, cols>
50#define AmgSymMatrix(dim) Eigen::Matrix<double, dim, dim, 0, dim, dim>
51#endif
52
53#ifndef AmgVectorDef
54#define AmgVectorDef
55#define AmgVector(rows) Eigen::Matrix<double, rows, 1, 0, rows, 1>
56#define AmgRowVector(cols) Eigen::Matrix<double, 1, cols, Eigen::RowMajor, 1, cols>
57#endif
58
59} // namespace Amg
60
61#endif /* EVENT_EVENTPRIMITIVES_H */
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, MaxRows, 1 > VectorMaxX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxDim, MaxDim > SymMatrixMaxX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > SymMatrixX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxRows, MaxCols > MatrixMaxX
Fixed capacity dynamic size types.