OSVR-Core
Constants.h
1 // This file is part of Eigen, a lightweight C++ template library
2 // for linear algebra.
3 //
4 // Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
5 // Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
6 //
7 // This Source Code Form is subject to the terms of the Mozilla
8 // Public License v. 2.0. If a copy of the MPL was not distributed
9 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 
11 #ifndef EIGEN_CONSTANTS_H
12 #define EIGEN_CONSTANTS_H
13 
14 namespace Eigen {
15 
21 const int Dynamic = -1;
22 
26 const int DynamicIndex = 0xffffff;
27 
31 const int Infinity = -1;
32 
53 const unsigned int RowMajorBit = 0x1;
54 
58 const unsigned int EvalBeforeNestingBit = 0x2;
59 
63 const unsigned int EvalBeforeAssigningBit = 0x4;
64 
81 const unsigned int PacketAccessBit = 0x8;
82 
83 #ifdef EIGEN_VECTORIZE
84 
92 const unsigned int ActualPacketAccessBit = PacketAccessBit;
93 #else
94 const unsigned int ActualPacketAccessBit = 0x0;
95 #endif
96 
117 const unsigned int LinearAccessBit = 0x10;
118 
131 const unsigned int LvalueBit = 0x20;
132 
142 const unsigned int DirectAccessBit = 0x40;
143 
147 const unsigned int AlignedBit = 0x80;
148 
149 const unsigned int NestByRefBit = 0x100;
150 
151 // list of flags that are inherited by default
152 const unsigned int HereditaryBits = RowMajorBit
153  | EvalBeforeNestingBit
155 
165 enum {
167  Lower=0x1,
169  Upper=0x2,
171  UnitDiag=0x4,
173  ZeroDiag=0x8,
186 };
187 
190 enum {
195 };
196 
199 // FIXME after the corner() API change, this was not needed anymore, except by AlignedBox
200 // TODO: find out what to do with that. Adapt the AlignedBox API ?
201 enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
202 
216 };
217 
220 enum {
222  DefaultTraversal,
224  LinearTraversal,
227  InnerVectorizedTraversal,
230  LinearVectorizedTraversal,
233  SliceVectorizedTraversal,
235  InvalidTraversal,
237  AllAtOnceTraversal
238 };
239 
242 enum {
244  NoUnrolling,
246  InnerUnrolling,
249  CompleteUnrolling
250 };
251 
254 enum {
255  Specialized,
256  BuiltIn
257 };
258 
262 enum {
264  ColMajor = 0,
266  RowMajor = 0x1, // it is only a coincidence that this is equal to RowMajorBit -- don't rely on that
268  AutoAlign = 0, // FIXME --- clarify the situation
270  DontAlign = 0x2
271 };
272 
275 enum {
277  OnTheLeft = 1,
280 };
281 
282 /* the following used to be written as:
283  *
284  * struct NoChange_t {};
285  * namespace {
286  * EIGEN_UNUSED NoChange_t NoChange;
287  * }
288  *
289  * on the ground that it feels dangerous to disambiguate overloaded functions on enum/integer types.
290  * However, this leads to "variable declared but never referenced" warnings on Intel Composer XE,
291  * and we do not know how to get rid of them (bug 450).
292  */
293 
294 enum NoChange_t { NoChange };
295 enum Sequential_t { Sequential };
296 enum Default_t { Default };
297 
300 enum {
301  IsDense = 0,
302  IsSparse
303 };
304 
317 };
318 
323  Pivoting = 0x01,
325  NoPivoting = 0x02,
327  ComputeFullU = 0x04,
329  ComputeThinU = 0x08,
331  ComputeFullV = 0x10,
333  ComputeThinV = 0x20,
341  EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
344  Ax_lBx = 0x100,
347  ABx_lx = 0x200,
350  BAx_lx = 0x400,
352  GenEigMask = Ax_lBx | ABx_lx | BAx_lx
353 };
354 
366 };
367 
368 #ifdef Success
369 #error The preprocessor symbol 'Success' is defined, possibly by the X11 header file X.h
370 #endif
371 
376  Success = 0,
384 };
385 
391  Isometry = 0x1,
394  Affine = 0x2,
398  Projective = 0x20
399 };
400 
403 namespace Architecture
404 {
405  enum Type {
406  Generic = 0x0,
407  SSE = 0x1,
408  AltiVec = 0x2,
409 #if defined EIGEN_VECTORIZE_SSE
410  Target = SSE
411 #elif defined EIGEN_VECTORIZE_ALTIVEC
412  Target = AltiVec
413 #else
414  Target = Generic
415 #endif
416  };
417 }
418 
421 enum { CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
422 
425 enum Action {GetAction, SetAction};
426 
428 struct Dense {};
429 
431 struct MatrixXpr {};
432 
434 struct ArrayXpr {};
435 
436 namespace internal {
440  enum ComparisonName {
441  cmp_EQ = 0,
442  cmp_LT = 1,
443  cmp_LE = 2,
444  cmp_UNORD = 3,
445  cmp_NEQ = 4
446  };
447 }
448 
449 } // end namespace Eigen
450 
451 #endif // EIGEN_CONSTANTS_H
View matrix as an upper triangular matrix with ones on the diagonal.
Definition: Constants.h:177
Used to support symmetric, non-selfadjoint, complex matrices.
Definition: Constants.h:185
Object is not correctly aligned for vectorization.
Definition: Constants.h:192
Read/write access via member functions.
Definition: Constants.h:312
Used in JacobiSVD to indicate that the square matrix U is to be computed.
Definition: Constants.h:327
AccessorLevels
Used as template parameter in DenseCoeffBase and MapBase to indicate which accessors should be provid...
Definition: Constants.h:308
Apply transformation on the right.
Definition: Constants.h:279
CornerType
Enum used by DenseBase::corner() in Eigen2 compatibility mode.
Definition: Constants.h:201
Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that only the eigenva...
Definition: Constants.h:336
View matrix as a lower triangular matrix with zeros on the diagonal.
Definition: Constants.h:179
For Reverse, all columns are reversed; for PartialReduxExpr and VectorwiseOp, act on columns...
Definition: Constants.h:209
Do not specify what is to be done if the SVD of a non-square matrix is asked for. ...
Definition: Constants.h:359
Used in JacobiSVD to indicate that the thin matrix V is to be computed.
Definition: Constants.h:333
const unsigned int DirectAccessBit
Means that the underlying array of coefficients can be directly accessed as a plain strided array...
Definition: Constants.h:142
const unsigned int LvalueBit
Means the expression has a coeffRef() method, i.e.
Definition: Constants.h:131
DirectionType
Enum containing possible values for the Direction parameter of Reverse, PartialReduxExpr and Vectorwi...
Definition: Constants.h:206
View matrix as a lower triangular matrix with ones on the diagonal.
Definition: Constants.h:175
iterative scaling algorithm to equilibrate rows and column norms in matrices
Definition: TestIMU_Common.h:87
const int DynamicIndex
This value means that a signed quantity (e.g., a signed index) is not known at compile-time, and that instead its value has to be specified at runtime.
Definition: Constants.h:26
Transformation is an isometry.
Definition: Constants.h:391
Matrix has ones on the diagonal; to be used in combination with Lower or Upper.
Definition: Constants.h:171
Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenprobl...
Definition: Constants.h:347
Matrix has zeros on the diagonal; to be used in combination with Lower or Upper.
Definition: Constants.h:173
Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenprobl...
Definition: Constants.h:350
Use a QR decomposition without pivoting as the first step.
Definition: Constants.h:361
const unsigned int RowMajorBit
for a matrix, this means that the storage order is row-major.
Definition: Constants.h:53
Object is aligned for vectorization.
Definition: Constants.h:194
const unsigned int PacketAccessBit
Short version: means the expression might be vectorized.
Definition: Constants.h:81
Transformation is a general projective transformation stored as a (Dim+1)^2 matrix.
Definition: Constants.h:398
Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenprobl...
Definition: Constants.h:344
The type used to identify a matrix expression.
Definition: Constants.h:431
const unsigned int AlignedBit
means the first coefficient packet is guaranteed to be aligned
Definition: Constants.h:147
View matrix as an upper triangular matrix.
Definition: Constants.h:169
Read-only access via a member function.
Definition: Constants.h:310
Transformation is an affine transformation stored as a (Dim) x (Dim+1) matrix.
Definition: Constants.h:396
Used in BandMatrix and SelfAdjointView to indicate that the matrix is self-adjoint.
Definition: Constants.h:183
Use a QR decomposition with column pivoting as the first step.
Definition: Constants.h:363
Storage order is column major (see TopicStorageOrders).
Definition: Constants.h:264
Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that both the eigenva...
Definition: Constants.h:339
TransformTraits
Enum used to specify how a particular transformation is stored in a matrix.
Definition: Constants.h:389
View matrix as an upper triangular matrix with zeros on the diagonal.
Definition: Constants.h:181
The provided data did not satisfy the prerequisites.
Definition: Constants.h:378
Direct read-only access to the coefficients.
Definition: Constants.h:314
Use a QR decomposition with full pivoting as the first step.
Definition: Constants.h:365
const unsigned int EvalBeforeAssigningBit
means the expression should be evaluated before any assignment
Definition: Constants.h:63
The inputs are invalid, or the algorithm has been improperly called.
Definition: Constants.h:383
Direct read/write access to the coefficients.
Definition: Constants.h:316
Computation was successful.
Definition: Constants.h:376
For Reverse, all rows are reversed; for PartialReduxExpr and VectorwiseOp, act on rows...
Definition: Constants.h:212
For Reverse, both rows and columns are reversed; not used for PartialReduxExpr and VectorwiseOp...
Definition: Constants.h:215
Definition: BandTriangularSolver.h:13
Storage order is row major (see TopicStorageOrders).
Definition: Constants.h:266
Don&#39;t require alignment for the matrix itself (the array of coefficients, if dynamically allocated...
Definition: Constants.h:270
QRPreconditioners
Possible values for the QRPreconditioner template parameter of JacobiSVD.
Definition: Constants.h:357
View matrix as a lower triangular matrix.
Definition: Constants.h:167
The type used to identify a dense storage.
Definition: Constants.h:428
The type used to identify an array expression.
Definition: Constants.h:434
DecompositionOptions
Enum with options to give to various decompositions.
Definition: Constants.h:321
const int Dynamic
This value means that a positive quantity (e.g., a size) is not known at compile-time, and that instead the value is stored in some runtime variable.
Definition: Constants.h:21
const unsigned int EvalBeforeNestingBit
means the expression should be evaluated by the calling expression
Definition: Constants.h:58
Used in JacobiSVD to indicate that the square matrix V is to be computed.
Definition: Constants.h:331
Used in JacobiSVD to indicate that the thin matrix U is to be computed.
Definition: Constants.h:329
ComputationInfo
Enum for reporting the status of a computation.
Definition: Constants.h:374
Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is assumed to ...
Definition: Constants.h:394
Iterative procedure did not converge.
Definition: Constants.h:380
const unsigned int LinearAccessBit
Short version: means the expression can be seen as 1D vector.
Definition: Constants.h:117
Apply transformation on the left.
Definition: Constants.h:277
Align the matrix itself if it is vectorizable fixed-size.
Definition: Constants.h:268
const int Infinity
This value means +Infinity; it is currently used only as the p parameter to MatrixBase::lpNorm<int>()...
Definition: Constants.h:31