12#include "algebra/impl/eigen_getter.hpp"
13#include "algebra/impl/eigen_matrix.hpp"
14#include "algebra/impl/eigen_types.hpp"
15#include "algebra/impl/eigen_vector.hpp"
16#include "detray/algebra/common/boolean.hpp"
17#include "detray/algebra/common/math.hpp"
18#include "detray/algebra/generic/generic.hpp"
22#pragma warning(push, 0)
33template <concepts::value V>
39 template <concepts::element T>
51 using point2D = algebra::eigen::point2<value_type>;
53 using point3D = algebra::eigen::point3<value_type>;
55 using vector2D = algebra::eigen::vector2<value_type>;
57 using vector3D = algebra::eigen::vector3<value_type>;
60 template <std::
size_t ROWS, std::
size_t COLS>
62 using matrix = algebra::eigen::matrix_type<value_type, ROWS, COLS>;
71using algebra::eigen::storage::block;
72using algebra::eigen::storage::element;
73using algebra::eigen::storage::set_block;
74using algebra::eigen::storage::vector;
85using algebra::eigen::math::cross;
86using algebra::eigen::math::dot;
87using algebra::eigen::math::eta;
88using algebra::eigen::math::norm;
89using algebra::eigen::math::normalize;
90using algebra::eigen::math::perp;
91using algebra::eigen::math::phi;
92using algebra::eigen::math::theta;
101using algebra::eigen::math::cholesky_decomposition;
102using algebra::eigen::math::column_wise_cross;
103using algebra::eigen::math::column_wise_multiply;
104using algebra::eigen::math::determinant;
105using algebra::eigen::math::identity;
106using algebra::eigen::math::inverse;
107using algebra::eigen::math::outer_product;
108using algebra::eigen::math::set_identity;
109using algebra::eigen::math::set_zero;
110using algebra::eigen::math::transpose;
111using algebra::eigen::math::zero;
113using algebra::generic::math::cross_matrix;
114using algebra::generic::math::set_inplace_product_left;
115using algebra::generic::math::set_inplace_product_left_transpose;
116using algebra::generic::math::set_inplace_product_right;
117using algebra::generic::math::set_inplace_product_right_transpose;
118using algebra::generic::math::set_product;
119using algebra::generic::math::set_product_left_transpose;
120using algebra::generic::math::set_product_right_transpose;
121using algebra::generic::math::transposed_product;
Detray include(s).
Definition array_operators.hpp:18
Define the plugin types.
Definition eigen.hpp:34
algebra::eigen::index_type index_type
Index type used for matrix and vector access.
Definition eigen.hpp:47
algebra::eigen::point2< value_type > point2D
Two-dimensional point type.
Definition eigen.hpp:51
algebra::eigen::matrix_type< value_type, ROWS, COLS > matrix
Fixed-size matrix type with the requested dimensions.
Definition eigen.hpp:62
algebra::eigen::vector3< value_type > vector3D
Three-dimensional vector type.
Definition eigen.hpp:57
algebra::eigen::vector2< value_type > vector2D
Two-dimensional vector type.
Definition eigen.hpp:55
V value_type
Define scalar type.
Definition eigen.hpp:36
value_type scalar
Scalar type represented by this backend.
Definition eigen.hpp:45
algebra::eigen::point3< value_type > point3D
Three-dimensional point type.
Definition eigen.hpp:53
T simd
Backend vectorized representation of an element type.
Definition eigen.hpp:40
algebra::eigen::transform3< value_type > transform3D
Three-dimensional transform type.
Definition eigen.hpp:49
bool boolean
Boolean type used for element-wise predicates.
Definition eigen.hpp:43