11 #ifndef EIGEN_FORWARDDECLARATIONS_H
12 #define EIGEN_FORWARDDECLARATIONS_H
15 #include "../InternalHeaderCheck.h"
30 template <
typename Derived>
35 template <
typename Derived>
46 struct evaluator_traits;
56 template <
typename Derived>
58 template <
typename Derived>
60 template <
typename Derived>
61 class PlainObjectBase;
62 template <
typename Derived,
int Level>
65 template <
typename Scalar_,
int Rows_,
int Cols_,
69 int MaxRows_ = Rows_,
int MaxCols_ = Cols_>
72 template <
typename Derived>
74 template <
typename Derived>
77 template <
typename ExpressionType,
unsigned int Added,
unsigned int Removed>
79 template <
typename ExpressionType,
template <
typename>
class StorageBase>
81 template <
typename ExpressionType>
83 template <
typename ExpressionType>
85 template <
typename ExpressionType>
88 template <
typename XprType,
int BlockRows = Dynamic,
int BlockCols = Dynamic,
bool InnerPanel = false>
90 template <
typename XprType,
typename RowIndices,
typename ColIndices>
92 template <
typename XprType,
int Rows = Dynamic,
int Cols = Dynamic,
int Order = 0>
94 template <
typename FirstType,
typename SizeType,
typename IncrType>
97 template <
typename MatrixType,
int Size = Dynamic>
99 template <
typename MatrixType>
101 template <
typename MatrixType>
103 template <
typename NullaryOp,
typename MatrixType>
105 template <
typename UnaryOp,
typename MatrixType>
107 template <
typename BinaryOp,
typename Lhs,
typename Rhs>
109 template <
typename TernaryOp,
typename Arg1,
typename Arg2,
typename Arg3>
111 template <
typename Decomposition,
typename Rhstype>
113 template <
typename XprType>
116 template <
typename Lhs,
typename Rhs,
int Option = DefaultProduct>
119 template <
typename Derived>
121 template <
typename DiagonalVectorType_>
123 template <
typename Scalar_,
int SizeAtCompileTime,
int MaxSizeAtCompileTime = SizeAtCompileTime>
125 template <
typename MatrixType,
typename DiagonalType,
int ProductOrder>
127 template <
typename MatrixType,
int Index = 0>
129 template <
typename Derived>
131 template <
typename VectorType_>
133 template <
typename Scalar_>
135 template <
int SizeAtCompileTime,
int MaxSizeAtCompileTime = SizeAtCompileTime,
typename IndexType =
int>
137 template <
int SizeAtCompileTime,
int MaxSizeAtCompileTime = SizeAtCompileTime,
typename IndexType =
int>
139 template <
typename Derived>
141 template <
typename Derived>
143 template <
typename IndicesType_>
145 template <
typename IndicesType_>
148 template <
typename Derived,
151 template <
int OuterStr
ideAtCompileTime,
int InnerStr
ideAtCompileTime>
153 template <
int Value = Dynamic>
155 template <
int Value = Dynamic>
157 template <
typename MatrixType,
int MapOptions = Unaligned,
typename Str
ideType = Str
ide<0, 0>>
159 template <
typename Derived>
161 template <
typename PlainObjectType,
int Options = 0,
162 typename StrideType =
163 typename std::conditional_t<PlainObjectType::IsVectorAtCompileTime, InnerStride<1>,
OuterStride<>>>
165 template <
typename ViewOp,
typename MatrixType,
typename Str
ideType = Str
ide<0, 0>>
168 template <
typename Derived>
170 template <
typename MatrixType,
unsigned int Mode>
172 template <
typename MatrixType,
unsigned int Mode>
174 template <
typename MatrixType>
176 template <
typename ExpressionType>
178 template <
typename MatrixType>
180 template <
typename Derived>
182 template <
typename ExpressionType>
184 template <
typename ExpressionType>
186 template <
typename Derived>
188 template <
typename XprType>
192 template <
typename XprType>
193 class generic_randaccess_stl_iterator;
194 template <
typename XprType>
195 class pointer_based_stl_iterator;
196 template <
typename XprType, DirectionType Direction>
197 class subvector_stl_iterator;
198 template <
typename XprType, DirectionType Direction>
199 class subvector_stl_reverse_iterator;
200 template <
typename DecompositionType>
201 struct kernel_retval_base;
202 template <
typename DecompositionType>
204 template <
typename DecompositionType>
206 template <
typename DecompositionType>
217 template <
typename Lhs,
typename Rhs>
240 template <
typename Lhs,
typename Rhs>
247 template <
typename LhsScalar,
typename RhsScalar,
bool ConjLhs = false,
bool ConjRhs = false>
250 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
251 struct scalar_sum_op;
252 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
253 struct scalar_difference_op;
254 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
255 struct scalar_conj_product_op;
256 template <
typename LhsScalar,
typename RhsScalar = LhsScalar,
int NaNPropagation = PropagateFast>
257 struct scalar_min_op;
258 template <
typename LhsScalar,
typename RhsScalar = LhsScalar,
int NaNPropagation = PropagateFast>
259 struct scalar_max_op;
260 template <
typename Scalar>
261 struct scalar_opposite_op;
262 template <
typename Scalar>
263 struct scalar_conjugate_op;
264 template <
typename Scalar>
265 struct scalar_real_op;
266 template <
typename Scalar>
267 struct scalar_imag_op;
268 template <
typename Scalar>
269 struct scalar_abs_op;
270 template <
typename Scalar>
272 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
273 struct scalar_absolute_difference_op;
274 template <
typename Scalar>
275 struct scalar_sqrt_op;
276 template <
typename Scalar>
277 struct scalar_cbrt_op;
278 template <
typename Scalar>
279 struct scalar_rsqrt_op;
280 template <
typename Scalar>
281 struct scalar_exp_op;
282 template <
typename Scalar>
283 struct scalar_log_op;
284 template <
typename Scalar>
285 struct scalar_cos_op;
286 template <
typename Scalar>
287 struct scalar_sin_op;
288 template <
typename Scalar>
289 struct scalar_acos_op;
290 template <
typename Scalar>
291 struct scalar_asin_op;
292 template <
typename Scalar>
293 struct scalar_tan_op;
294 template <
typename Scalar>
295 struct scalar_atan_op;
296 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
297 struct scalar_atan2_op;
298 template <
typename Scalar>
299 struct scalar_inverse_op;
300 template <
typename Scalar>
302 template <
typename Scalar>
303 struct scalar_cube_op;
304 template <
typename Scalar,
typename NewType>
305 struct scalar_cast_op;
306 template <
typename Scalar>
307 struct scalar_random_op;
308 template <
typename Scalar>
309 struct scalar_constant_op;
310 template <
typename Scalar>
311 struct scalar_identity_op;
312 template <
typename Scalar>
313 struct scalar_sign_op;
314 template <
typename Scalar,
typename ScalarExponent>
315 struct scalar_pow_op;
316 template <
typename Scalar,
typename ScalarExponent,
bool BaseIsInteger,
bool ExponentIsInteger,
bool BaseIsComplex,
317 bool ExponentIsComplex>
318 struct scalar_unary_pow_op;
319 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
321 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
323 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
326 template <
typename Scalar>
328 template <
typename Scalar>
330 template <
typename Scalar>
332 template <
typename Scalar>
334 template <
typename Scalar>
336 template <
typename Scalar>
338 template <
typename Scalar>
340 template <
typename Scalar>
344 template <
typename Scalar>
346 template <
typename Scalar>
348 template <
typename Scalar>
350 template <
typename Scalar>
352 template <
typename Scalar>
354 template <
typename Scalar>
356 template <
typename Scalar>
358 template <
typename Scalar>
360 template <
typename Scalar>
364 template <
typename Scalar>
366 template <
typename Scalar>
368 template <
typename Scalar>
370 template <
typename Scalar>
372 template <
typename Scalar>
374 template <
typename Scalar>
376 template <
typename Scalar>
378 template <
typename Scalar>
380 template <
typename Scalar>
382 template <
typename Scalar>
384 template <
typename Scalar>
386 template <
typename Scalar>
394 template <
typename Scalar_,
int Rows_,
int Cols_,
398 int MaxRows_ = Rows_,
int MaxCols_ = Cols_>
400 template <
typename ConditionMatrixType,
typename ThenMatrixType,
typename ElseMatrixType>
402 template <
typename MatrixType,
typename BinaryOp,
int Direction>
404 template <
typename ExpressionType,
int Direction>
406 template <
typename MatrixType,
int RowFactor,
int ColFactor>
408 template <
typename MatrixType,
int Direction = BothDirections>
411 #if defined(EIGEN_USE_LAPACKE) && defined(lapack_int)
418 template <
typename MatrixType,
typename PermutationIndex = DefaultPermutationIndex>
420 template <
typename MatrixType,
typename PermutationIndex = DefaultPermutationIndex>
423 template <
typename MatrixType>
426 template <
typename MatrixType>
428 template <
typename MatrixType,
typename PermutationIndex = DefaultPermutationIndex>
430 template <
typename MatrixType,
typename PermutationIndex = DefaultPermutationIndex>
432 template <
typename MatrixType,
typename PermutationIndex = DefaultPermutationIndex>
434 template <
typename MatrixType>
436 template <
typename MatrixType,
int Options = 0>
438 template <
typename MatrixType,
int Options = 0>
440 template <
typename MatrixType,
int UpLo = Lower>
442 template <
typename MatrixType,
int UpLo = Lower>
444 template <
typename VectorsType,
typename CoeffsType,
int S
ide = OnTheLeft>
446 template <
typename Scalar>
451 template <typename Derived, typename OtherDerived, int Size = MatrixBase<Derived>::SizeAtCompileTime>
454 template <
typename Derived,
int Dim_>
456 template <
typename Derived>
458 template <
typename Scalar>
460 template <
typename Scalar>
462 template <
typename Scalar,
int Dim>
464 template <
typename Scalar,
int Dim>
466 template <
typename Scalar,
int Options = AutoAlign>
468 template <
typename Scalar,
int Dim,
int Mode,
int Options_ = AutoAlign>
470 template <
typename Scalar_,
int AmbientDim_,
int Options = AutoAlign>
472 template <
typename Scalar_,
int AmbientDim_,
int Options = AutoAlign>
474 template <
typename Scalar>
476 template <
typename MatrixType,
int Direction>
480 template <
typename Derived>
484 template <
typename Derived>
486 template <
typename Derived>
488 template <
typename Derived>
490 template <
typename Derived>
492 template <
typename Derived>
494 template <
typename Derived>
498 template <
typename Scalar>
505 template <
typename XprType,
typename Device>
509 template <
typename Xpr>
510 struct eigen_fill_helper;
513 template <
typename Xpr>
#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION
Definition: Macros.h:31
SCALAR Scalar
Definition: bench_gemm.cpp:45
boost::multiprecision::number< boost::multiprecision::cpp_dec_float< 100 >, boost::multiprecision::et_on > Real
Definition: boostmultiprec.cpp:77
An axis aligned box.
Definition: AlignedBox.h:69
Represents a 3D rotation as a rotation angle around an arbitrary 3D axis.
Definition: AngleAxis.h:52
Definition: ArithmeticSequence.h:62
Base class for all 1D and 2D array, and related expressions.
Definition: ArrayBase.h:44
Expression of a mathematical vector or matrix as an array object.
Definition: ArrayWrapper.h:43
General-purpose arrays with easy API for coefficient-wise operations.
Definition: Array.h:48
class Bidiagonal Divide and Conquer SVD
Definition: BDCSVD.h:85
Expression of a fixed-size or dynamic-size block.
Definition: Block.h:110
Householder rank-revealing QR decomposition of a matrix with column-pivoting.
Definition: ColPivHouseholderQR.h:54
Complete orthogonal decomposition (COD) of a matrix.
Definition: CompleteOrthogonalDecomposition.h:54
Definition: ForwardDeclarations.h:102
Generic expression where a coefficient-wise binary operator is applied to two expressions.
Definition: CwiseBinaryOp.h:79
Generic expression of a matrix where all coefficients are defined by a functor.
Definition: CwiseNullaryOp.h:64
Generic expression where a coefficient-wise ternary operator is applied to two expressions.
Definition: CwiseTernaryOp.h:86
Generic expression where a coefficient-wise unary operator is applied to an expression.
Definition: CwiseUnaryOp.h:53
Generic lvalue expression of a coefficient-wise unary operator of a matrix or a vector.
Definition: CwiseUnaryView.h:135
Definition: ForwardDeclarations.h:63
Base class for diagonal matrices and expressions.
Definition: DiagonalMatrix.h:33
Represents a diagonal matrix with its storage.
Definition: DiagonalMatrix.h:172
Definition: ForwardDeclarations.h:126
Expression of a diagonal matrix.
Definition: DiagonalMatrix.h:320
Expression of a diagonal/subdiagonal/superdiagonal in a matrix.
Definition: Diagonal.h:68
Definition: ForwardDeclarations.h:78
Enforce aligned packet loads and stores regardless of what is requested.
Definition: ForceAlignedAccess.h:37
Householder rank-revealing QR decomposition of a matrix with full pivoting.
Definition: FullPivHouseholderQR.h:63
LU decomposition of a matrix with complete pivoting, and related features.
Definition: FullPivLU.h:63
Expression of one (or a set of) homogeneous vector(s)
Definition: Homogeneous.h:62
Householder QR decomposition of a matrix.
Definition: HouseholderQR.h:59
Sequence of Householder reflections acting on subspaces with decreasing size.
Definition: HouseholderSequence.h:117
A hyperplane.
Definition: Hyperplane.h:37
Expression of a non-sequential sub-matrix defined by arbitrary sequences of row and column indices.
Definition: IndexedView.h:124
An InnerIterator allows to loop over the element of any matrix expression.
Definition: CoreIterators.h:37
Convenience specialization of Stride to specify only an inner stride See class Map for some examples.
Definition: Stride.h:93
Expression of the inverse of another expression.
Definition: Inverse.h:43
Rotation given by a cosine-sine pair.
Definition: Jacobi.h:38
Two-sided Jacobi SVD decomposition of a rectangular matrix.
Definition: JacobiSVD.h:500
Robust Cholesky decomposition of a matrix with pivoting.
Definition: LDLT.h:63
Standard Cholesky decomposition (LL^T) of a matrix and associated features.
Definition: LLT.h:70
Definition: ForwardDeclarations.h:150
A matrix or vector expression mapping an existing array of data.
Definition: Map.h:96
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:52
Proxy for the matrix power of some matrix (expression).
Definition: MatrixPower.h:628
Proxy for the matrix function of some matrix (expression).
Definition: MatrixFunction.h:454
Proxy for the matrix logarithm of some matrix (expression).
Definition: MatrixLogarithm.h:309
Proxy for the matrix power of some matrix (expression).
Definition: MatrixPower.h:582
Proxy for the matrix square root of some matrix (expression).
Definition: MatrixSquareRoot.h:299
Expression of an array as a mathematical vector or matrix.
Definition: ArrayWrapper.h:122
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
Expression which must be nested by value.
Definition: NestByValue.h:39
Pseudo expression providing an operator = assuming no aliasing.
Definition: NoAlias.h:34
Convenience specialization of Stride to specify only an outer stride See class Map for some examples.
Definition: Stride.h:104
A parametrized line.
Definition: ParametrizedLine.h:33
LU decomposition of a matrix with partial pivoting, and related features.
Definition: PartialPivLU.h:77
Generic expression of a partially reduxed matrix.
Definition: VectorwiseOp.h:58
Base class for permutations.
Definition: PermutationMatrix.h:49
Permutation matrix.
Definition: PermutationMatrix.h:280
Class to view a vector of integers as a permutation matrix.
Definition: PermutationMatrix.h:450
Expression of the product of two arbitrary matrices or vectors.
Definition: Product.h:202
Base class for quaternion expressions.
Definition: Eigen/Eigen/src/Geometry/Quaternion.h:35
The quaternion class used to represent 3D orientations and rotations.
Definition: Eigen/Eigen/src/Geometry/Quaternion.h:285
A matrix or vector expression mapping an existing expression.
Definition: Ref.h:264
Expression of the multiple replication of a matrix or vector.
Definition: Replicate.h:64
Expression of a fixed-size or dynamic-size reshape.
Definition: Reshaped.h:99
Definition: ReturnByValue.h:50
Expression of the reverse of a vector or matrix.
Definition: Reverse.h:65
Represents a rotation/orientation in a 2 dimensional space.
Definition: Rotation2D.h:44
Common base class for compact rotation representations.
Definition: RotationBase.h:32
Base class of SVD algorithms.
Definition: SVDBase.h:119
Expression of a coefficient wise version of the C++ ternary operator ?:
Definition: Select.h:54
Expression of a selfadjoint matrix from a triangular part of a dense matrix.
Definition: SelfAdjointView.h:51
Base class for skew symmetric matrices and expressions.
Definition: SkewSymmetricMatrix3.h:35
Represents a 3x3 skew symmetric matrix with its storage.
Definition: SkewSymmetricMatrix3.h:183
Expression of a skew symmetric matrix.
Definition: SkewSymmetricMatrix3.h:287
Pseudo expression representing a solving operation.
Definition: Solve.h:62
A base class for matrix decomposition and solvers.
Definition: SolverBase.h:72
Base class of any sparse matrices or sparse expressions.
Definition: SparseMatrixBase.h:30
Expression of a dense or sparse matrix with zero or too small values removed.
Definition: SparseView.h:45
Holds strides information for Map.
Definition: Stride.h:55
Definition: ForwardDeclarations.h:86
Represents a translation transformation.
Definition: Translation.h:33
Expression of the transpose of a matrix.
Definition: Transpose.h:56
Definition: Transpositions.h:19
Definition: Transpositions.h:237
Represents a sequence of transpositions (row/column interchange)
Definition: Transpositions.h:141
Base class for triangular part in a matrix.
Definition: TriangularMatrix.h:32
Expression of a triangular part in a matrix.
Definition: TriangularMatrix.h:167
Expression of a fixed-size or dynamic-size sub-vector.
Definition: VectorBlock.h:58
Pseudo expression providing broadcasting and partial reduction operations.
Definition: VectorwiseOp.h:192
Represents a rectangular matrix with a banded storage.
Definition: BandMatrix.h:193
@ DirectAccessors
Definition: Constants.h:376
@ ReadOnlyAccessors
Definition: Constants.h:372
@ WriteAccessors
Definition: Constants.h:374
@ DirectWriteAccessors
Definition: Constants.h:378
@ ColMajor
Definition: Constants.h:318
@ RowMajor
Definition: Constants.h:320
@ AutoAlign
Definition: Constants.h:322
const unsigned int DirectAccessBit
Definition: Constants.h:159
const unsigned int LvalueBit
Definition: Constants.h:148
#define lapack_int
Definition: lapacke.h:52
Eigen::DenseIndex ret
Definition: level1_cplx_impl.h:43
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
scalar_abs2_op
Definition: GlobalFunctions.h:86
squared absolute value
Definition: GlobalFunctions.h:87
squared absolute sa ArrayBase::abs2 DOXCOMMA MatrixBase::cwiseAbs2 scalar_square_op
Definition: GlobalFunctions.h:94
const int Dynamic
Definition: Constants.h:25
int DefaultPermutationIndex
Definition: ForwardDeclarations.h:409
Definition: Eigen_Colamd.h:49
Helper class used by the comma initializer operator.
Definition: CommaInitializer.h:31
Definition: DeviceWrapper.h:15
Definition: ForwardDeclarations.h:241
Proxy for the matrix exponential of some matrix (expression).
Definition: MatrixExponential.h:404
Definition: ForwardDeclarations.h:237
Definition: ForwardDeclarations.h:221
Definition: ForwardDeclarations.h:36
@ has_write_access
Definition: ForwardDeclarations.h:39
@ value
Definition: ForwardDeclarations.h:40
Definition: OrthoMethods.h:23
Definition: ForwardDeclarations.h:512
Definition: ForwardDeclarations.h:516
storage_kind_to_shape< typename traits< T >::StorageKind >::Shape Shape
Definition: CoreEvaluators.h:90
Definition: ForwardDeclarations.h:31
@ ret
Definition: ForwardDeclarations.h:32
Definition: ForwardDeclarations.h:207
Definition: ForwardDeclarations.h:424
Definition: ForwardDeclarations.h:203
Definition: ForwardDeclarations.h:221
Template functor to compute the modified Bessel function of the first kind of order zero.
Definition: BesselFunctionsFunctors.h:27
Template functor to compute the exponentially scaled modified Bessel function of the first kind of or...
Definition: BesselFunctionsFunctors.h:52
Template functor to compute the modified Bessel function of the first kind of order one.
Definition: BesselFunctionsFunctors.h:76
Template functor to compute the exponentially scaled modified Bessel function of the first kind of or...
Definition: BesselFunctionsFunctors.h:101
Template functor to compute the Bessel function of the second kind of order zero.
Definition: BesselFunctionsFunctors.h:125
Template functor to compute the Bessel function of the first kind of order one.
Definition: BesselFunctionsFunctors.h:175
Template functor to compute the modified Bessel function of the second kind of order zero.
Definition: BesselFunctionsFunctors.h:225
Template functor to compute the exponentially scaled modified Bessel function of the second kind of o...
Definition: BesselFunctionsFunctors.h:250
Template functor to compute the modified Bessel function of the second kind of order one.
Definition: BesselFunctionsFunctors.h:275
Template functor to compute the exponentially scaled modified Bessel function of the second kind of o...
Definition: BesselFunctionsFunctors.h:300
Template functor to compute the Bessel function of the second kind of order zero.
Definition: BesselFunctionsFunctors.h:150
Template functor to compute the Bessel function of the second kind of order one.
Definition: BesselFunctionsFunctors.h:200
Template functor to compute the incomplete beta integral betainc(a, b, x)
Definition: SpecialFunctionsFunctors.h:129
Template functor to compute the bitwise and of two scalars.
Definition: BinaryFunctors.h:588
Template functor to compute the bitwise not of a scalar.
Definition: functors/UnaryFunctors.h:1145
Template functor to compute the bitwise or of two scalars.
Definition: BinaryFunctors.h:612
Template functor to compute the bitwise xor of two scalars.
Definition: BinaryFunctors.h:636
Template functor to compute the and of two scalars as if they were booleans.
Definition: BinaryFunctors.h:461
Template functor to compute the logical not of a scalar as if it were a boolean.
Definition: functors/UnaryFunctors.h:1099
Template functor to compute the or of two scalars as if they were booleans.
Definition: BinaryFunctors.h:489
Template functor to compute the xor of two scalars as if they were booleans.
Definition: BinaryFunctors.h:516
Template functor to compute psi, the derivative of lgamma of a scalar.
Definition: SpecialFunctionsFunctors.h:177
Template functor to compute the error function of a scalar.
Definition: SpecialFunctionsFunctors.h:247
Template functor to compute the Complementary Error Function of a scalar.
Definition: SpecialFunctionsFunctors.h:280
Definition: ForwardDeclarations.h:320
Template functor to compute the incomplete gamma function igamma(a, x)
Definition: SpecialFunctionsFunctors.h:27
Template functor to compute the complementary incomplete gamma function igammac(a,...
Definition: SpecialFunctionsFunctors.h:105
Template functor to compute the natural log of the absolute value of Gamma of a scalar.
Definition: SpecialFunctionsFunctors.h:155
Template functor to compute the Inverse of the normal distribution function of a scalar.
Definition: SpecialFunctionsFunctors.h:303
Template functor to compute the product of two scalars.
Definition: BinaryFunctors.h:73
Template functor to compute the quotient of two scalars.
Definition: BinaryFunctors.h:430
Template functor to compute the Riemann Zeta function of two arguments.
Definition: SpecialFunctionsFunctors.h:199
Definition: ForwardDeclarations.h:499
ComplexScalar type(ComplexScalar, int)
Definition: ForwardDeclarations.h:501
std::complex< typename NumTraits< Scalar >::Real > ComplexScalar
Definition: ForwardDeclarations.h:500
Definition: ForwardDeclarations.h:21