11 #ifndef EIGEN_FORWARDDECLARATIONS_H 12 #define EIGEN_FORWARDDECLARATIONS_H 15 #include "../InternalHeaderCheck.h" 28 struct traits<const T> : traits<T> {};
30 template <
typename Derived>
31 struct has_direct_access {
35 template <
typename Derived>
36 struct accessors_level {
39 has_write_access = (traits<Derived>::Flags &
LvalueBit) ? 1 : 0,
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>
63 class DenseCoeffsBase;
65 template <
typename Scalar_,
int Rows_,
int Cols_,
68 : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION),
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>
84 class ForceAlignedAccess;
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>
95 class ArithmeticSequence;
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>
126 class DiagonalProduct;
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>
142 class TranspositionsBase;
143 template <
typename IndicesType_>
145 template <
typename IndicesType_>
146 class TranspositionsWrapper;
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 Derived>
176 template <
typename MatrixType>
178 template <
typename ExpressionType>
180 template <
typename MatrixType>
182 template <
typename Derived>
184 template <
typename ExpressionType>
186 template <
typename ExpressionType>
188 template <
typename Derived>
190 template <
typename XprType>
194 template <
typename XprType>
195 class generic_randaccess_stl_iterator;
196 template <
typename XprType>
197 class pointer_based_stl_iterator;
198 template <
typename XprType, DirectionType Direction>
199 class subvector_stl_iterator;
200 template <
typename XprType, DirectionType Direction>
201 class subvector_stl_reverse_iterator;
202 template <
typename DecompositionType>
203 struct kernel_retval_base;
204 template <
typename DecompositionType>
205 struct kernel_retval;
206 template <
typename DecompositionType>
207 struct image_retval_base;
208 template <
typename DecompositionType>
219 template <
typename Lhs,
typename Rhs>
230 template <typename T, int ProductTag = internal::product_type<typename T::Lhs, typename T::Rhs>::ret,
231 typename LhsShape =
typename evaluator_traits<typename T::Lhs>::Shape,
232 typename RhsShape =
typename evaluator_traits<typename T::Rhs>::Shape,
233 typename LhsScalar =
typename traits<typename T::Lhs>::Scalar,
234 typename RhsScalar =
typename traits<typename T::Rhs>::Scalar>
235 struct product_evaluator;
238 template <typename Lhs, typename Rhs, int ProductType = internal::product_type<Lhs, Rhs>::value>
239 struct ProductReturnType;
242 template <
typename Lhs,
typename Rhs>
243 struct LazyProductReturnType;
249 template <
typename LhsScalar,
typename RhsScalar,
bool ConjLhs = false,
bool ConjRhs = false>
252 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
253 struct scalar_sum_op;
254 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
255 struct scalar_difference_op;
256 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
257 struct scalar_conj_product_op;
258 template <
typename LhsScalar,
typename RhsScalar = LhsScalar,
int NaNPropagation = PropagateFast>
259 struct scalar_min_op;
260 template <
typename LhsScalar,
typename RhsScalar = LhsScalar,
int NaNPropagation = PropagateFast>
261 struct scalar_max_op;
262 template <
typename Scalar>
263 struct scalar_opposite_op;
264 template <
typename Scalar>
265 struct scalar_conjugate_op;
266 template <
typename Scalar>
267 struct scalar_real_op;
268 template <
typename Scalar>
269 struct scalar_imag_op;
270 template <
typename Scalar>
271 struct scalar_abs_op;
272 template <
typename Scalar>
273 struct scalar_abs2_op;
274 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
275 struct scalar_absolute_difference_op;
276 template <
typename Scalar>
277 struct scalar_sqrt_op;
278 template <
typename Scalar>
279 struct scalar_cbrt_op;
280 template <
typename Scalar>
281 struct scalar_rsqrt_op;
282 template <
typename Scalar>
283 struct scalar_exp_op;
284 template <
typename Scalar>
285 struct scalar_log_op;
286 template <
typename Scalar>
287 struct scalar_cos_op;
288 template <
typename Scalar>
289 struct scalar_sin_op;
290 template <
typename Scalar>
291 struct scalar_acos_op;
292 template <
typename Scalar>
293 struct scalar_asin_op;
294 template <
typename Scalar>
295 struct scalar_tan_op;
296 template <
typename Scalar>
297 struct scalar_atan_op;
298 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
299 struct scalar_atan2_op;
300 template <
typename Scalar>
301 struct scalar_inverse_op;
302 template <
typename Scalar>
303 struct scalar_square_op;
304 template <
typename Scalar>
305 struct scalar_cube_op;
306 template <
typename Scalar,
typename NewType>
307 struct scalar_cast_op;
308 template <
typename Scalar>
309 struct scalar_random_op;
310 template <
typename Scalar>
311 struct scalar_constant_op;
312 template <
typename Scalar>
313 struct scalar_identity_op;
314 template <
typename Scalar>
315 struct scalar_sign_op;
316 template <
typename Scalar,
typename ScalarExponent>
317 struct scalar_pow_op;
318 template <
typename Scalar,
typename ScalarExponent,
bool BaseIsInteger,
bool ExponentIsInteger,
bool BaseIsComplex,
319 bool ExponentIsComplex>
320 struct scalar_unary_pow_op;
321 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
322 struct scalar_hypot_op;
323 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
324 struct scalar_product_op;
325 template <
typename LhsScalar,
typename RhsScalar = LhsScalar>
326 struct scalar_quotient_op;
328 template <
typename Scalar>
329 struct scalar_boolean_and_op;
330 template <
typename Scalar>
331 struct scalar_boolean_or_op;
332 template <
typename Scalar>
333 struct scalar_boolean_xor_op;
334 template <
typename Scalar>
335 struct scalar_boolean_not_op;
336 template <
typename Scalar>
337 struct scalar_bitwise_and_op;
338 template <
typename Scalar>
339 struct scalar_bitwise_or_op;
340 template <
typename Scalar>
341 struct scalar_bitwise_xor_op;
342 template <
typename Scalar>
343 struct scalar_bitwise_not_op;
346 template <
typename Scalar>
347 struct scalar_lgamma_op;
348 template <
typename Scalar>
349 struct scalar_digamma_op;
350 template <
typename Scalar>
351 struct scalar_erf_op;
352 template <
typename Scalar>
353 struct scalar_erfc_op;
354 template <
typename Scalar>
355 struct scalar_ndtri_op;
356 template <
typename Scalar>
357 struct scalar_igamma_op;
358 template <
typename Scalar>
359 struct scalar_igammac_op;
360 template <
typename Scalar>
361 struct scalar_zeta_op;
362 template <
typename Scalar>
363 struct scalar_betainc_op;
366 template <
typename Scalar>
367 struct scalar_bessel_i0_op;
368 template <
typename Scalar>
369 struct scalar_bessel_i0e_op;
370 template <
typename Scalar>
371 struct scalar_bessel_i1_op;
372 template <
typename Scalar>
373 struct scalar_bessel_i1e_op;
374 template <
typename Scalar>
375 struct scalar_bessel_j0_op;
376 template <
typename Scalar>
377 struct scalar_bessel_y0_op;
378 template <
typename Scalar>
379 struct scalar_bessel_j1_op;
380 template <
typename Scalar>
381 struct scalar_bessel_y1_op;
382 template <
typename Scalar>
383 struct scalar_bessel_k0_op;
384 template <
typename Scalar>
385 struct scalar_bessel_k0e_op;
386 template <
typename Scalar>
387 struct scalar_bessel_k1_op;
388 template <
typename Scalar>
389 struct scalar_bessel_k1e_op;
396 template <
typename Scalar_,
int Rows_,
int Cols_,
399 : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION),
400 int MaxRows_ = Rows_,
int MaxCols_ = Cols_>
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) 413 typedef lapack_int DefaultPermutationIndex;
415 typedef int DefaultPermutationIndex;
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>
485 struct MatrixExponentialReturnValue;
486 template <
typename Derived>
487 class MatrixFunctionReturnValue;
488 template <
typename Derived>
489 class MatrixSquareRootReturnValue;
490 template <
typename Derived>
491 class MatrixLogarithmReturnValue;
492 template <
typename Derived>
493 class MatrixPowerReturnValue;
494 template <
typename Derived>
495 class MatrixComplexPowerReturnValue;
498 template <
typename Scalar>
499 struct stem_function {
500 typedef internal::make_complex_t<Scalar> ComplexScalar;
501 typedef ComplexScalar type(ComplexScalar,
int);
505 template <
typename XprType,
typename Device>
506 struct DeviceWrapper;
509 template <
typename Xpr>
510 struct eigen_fill_helper;
511 template <typename Xpr, bool use_fill = eigen_fill_helper<Xpr>::value>
512 struct eigen_fill_impl;
513 template <
typename Xpr>
514 struct eigen_memset_helper;
515 template <typename Xpr, bool use_memset = eigen_memset_helper<Xpr>::value>
516 struct eigen_zero_impl;
518 template <
typename Packet>
519 struct has_packet_segment : std::false_type {};
524 #endif // EIGEN_FORWARDDECLARATIONS_H Generic expression of a matrix where all coefficients are defined by a functor.
Definition: CwiseNullaryOp.h:63
Robust Cholesky decomposition of a matrix with pivoting.
Definition: LDLT.h:63
Definition: Constants.h:374
Definition: Constants.h:318
Expression of the product of two arbitrary matrices or vectors.
Definition: Product.h:198
Expression of a mathematical vector or matrix as an array object.
Definition: ArrayWrapper.h:43
Householder rank-revealing QR decomposition of a matrix with full pivoting.
Definition: ForwardDeclarations.h:431
A matrix or vector expression mapping an existing array of data.
Definition: Map.h:96
Base class for triangular part in a matrix.
Definition: TriangularMatrix.h:32
Expression of the transpose of a matrix.
Definition: Transpose.h:56
const unsigned int DirectAccessBit
Definition: Constants.h:159
const unsigned int LvalueBit
Definition: Constants.h:148
Represents a diagonal matrix with its storage.
Definition: DiagonalMatrix.h:172
LU decomposition of a matrix with partial pivoting, and related features.
Definition: ForwardDeclarations.h:421
Namespace containing all symbols from the Eigen library.
Definition: B01_Experimental.dox:1
Holds strides information for Map.
Definition: Stride.h:55
Rotation given by a cosine-sine pair.
Definition: ForwardDeclarations.h:447
Generic expression of a partially reduxed matrix.
Definition: ForwardDeclarations.h:403
Pseudo expression providing broadcasting and partial reduction operations.
Definition: ForwardDeclarations.h:405
Complete orthogonal decomposition (COD) of a matrix.
Definition: ForwardDeclarations.h:433
An axis aligned box.
Definition: ForwardDeclarations.h:465
Base class for permutations.
Definition: PermutationMatrix.h:49
Helper class used by the comma initializer operator.
Definition: CommaInitializer.h:31
Represents a 3x3 skew symmetric matrix with its storage.
Definition: SkewSymmetricMatrix3.h:183
Sequence of Householder reflections acting on subspaces with decreasing size.
Definition: ForwardDeclarations.h:445
Represents a translation transformation.
Definition: ForwardDeclarations.h:463
Expression of the inverse of another expression.
Definition: Inverse.h:43
Permutation matrix.
Definition: PermutationMatrix.h:282
Generic lvalue expression of a coefficient-wise unary operator of a matrix or a vector.
Definition: CwiseUnaryView.h:134
Expression of an array as a mathematical vector or matrix.
Definition: ArrayBase.h:19
Expression of a fixed-size or dynamic-size sub-vector.
Definition: ForwardDeclarations.h:98
Generic expression where a coefficient-wise binary operator is applied to two expressions.
Definition: CwiseBinaryOp.h:75
Definition: Constants.h:372
Definition: Constants.h:322
Base class of any sparse matrices or sparse expressions.
Definition: ForwardDeclarations.h:481
Base class of SVD algorithms.
Definition: ForwardDeclarations.h:435
A hyperplane.
Definition: ForwardDeclarations.h:473
Householder rank-revealing QR decomposition of a matrix with column-pivoting.
Definition: ForwardDeclarations.h:429
Standard Cholesky decomposition (LL^T) of a matrix and associated features.
Definition: LLT.h:70
Convenience specialization of Stride to specify only an inner stride See class Map for some examples...
Definition: Stride.h:93
Generic expression where a coefficient-wise ternary operator is applied to two expressions.
Definition: CwiseTernaryOp.h:84
Expression of the multiple replication of a matrix or vector.
Definition: Replicate.h:64
Base class for skew symmetric matrices and expressions.
Definition: SkewSymmetricMatrix3.h:35
Definition: Constants.h:376
Common base class for compact rotation representations.
Definition: ForwardDeclarations.h:455
Expression of a selfadjoint matrix from a triangular part of a dense matrix.
Definition: SelfAdjointView.h:51
Expression of a dense or sparse matrix with zero or too small values removed.
Definition: ForwardDeclarations.h:177
Class to view a vector of integers as a permutation matrix.
Definition: PermutationMatrix.h:453
Expression of a skew symmetric matrix.
Definition: SkewSymmetricMatrix3.h:286
Base class for quaternion expressions.
Definition: ForwardDeclarations.h:457
Definition: Constants.h:378
class Bidiagonal Divide and Conquer SVD
Definition: ForwardDeclarations.h:439
A matrix or vector expression mapping an existing expression.
Definition: Ref.h:264
Represents a rotation/orientation in a 2 dimensional space.
Definition: ForwardDeclarations.h:459
The quaternion class used to represent 3D orientations and rotations.
Definition: ForwardDeclarations.h:467
LU decomposition of a matrix with complete pivoting, and related features.
Definition: ForwardDeclarations.h:419
Householder QR decomposition of a matrix.
Definition: ForwardDeclarations.h:427
Base class for diagonal matrices and expressions.
Definition: DiagonalMatrix.h:33
Definition: Constants.h:320
Two-sided Jacobi SVD decomposition of a rectangular matrix.
Definition: ForwardDeclarations.h:437
Expression of a triangular part in a matrix.
Definition: TriangularMatrix.h:166
Expression of a diagonal matrix.
Definition: DiagonalMatrix.h:320
Expression of a diagonal/subdiagonal/superdiagonal in a matrix.
Definition: Diagonal.h:68
const int Dynamic
Definition: Constants.h:25
Pseudo expression representing a solving operation.
Definition: Solve.h:62
Generic expression where a coefficient-wise unary operator is applied to an expression.
Definition: CwiseUnaryOp.h:52
Convenience specialization of Stride to specify only an outer stride See class Map for some examples...
Definition: Stride.h:104
Expression of the reverse of a vector or matrix.
Definition: Reverse.h:65
A base class for matrix decomposition and solvers.
Definition: SolverBase.h:72
A parametrized line.
Definition: ForwardDeclarations.h:471
Represents a 3D rotation as a rotation angle around an arbitrary 3D axis.
Definition: ForwardDeclarations.h:461
Represents a sequence of transpositions (row/column interchange)
Definition: Transpositions.h:140
Expression of one (or a set of) homogeneous vector(s)
Definition: ForwardDeclarations.h:477
An InnerIterator allows to loop over the element of any matrix expression.
Definition: CoreIterators.h:37