00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef EIGEN_CONSTANTS_H
00027 #define EIGEN_CONSTANTS_H
00028
00034 const int Dynamic = -1;
00035
00039 const int Infinity = -1;
00040
00061 const unsigned int RowMajorBit = 0x1;
00062
00066 const unsigned int EvalBeforeNestingBit = 0x2;
00067
00071 const unsigned int EvalBeforeAssigningBit = 0x4;
00072
00089 const unsigned int PacketAccessBit = 0x8;
00090
00091 #ifdef EIGEN_VECTORIZE
00092
00100 const unsigned int ActualPacketAccessBit = PacketAccessBit;
00101 #else
00102 const unsigned int ActualPacketAccessBit = 0x0;
00103 #endif
00104
00125 const unsigned int LinearAccessBit = 0x10;
00126
00139 const unsigned int LvalueBit = 0x20;
00140
00150 const unsigned int DirectAccessBit = 0x40;
00151
00155 const unsigned int AlignedBit = 0x80;
00156
00157 const unsigned int NestByRefBit = 0x100;
00158
00159
00160 const unsigned int HereditaryBits = RowMajorBit
00161 | EvalBeforeNestingBit
00162 | EvalBeforeAssigningBit;
00163
00173 enum {
00175 Lower=0x1,
00177 Upper=0x2,
00179 UnitDiag=0x4,
00181 ZeroDiag=0x8,
00183 UnitLower=UnitDiag|Lower,
00185 UnitUpper=UnitDiag|Upper,
00187 StrictlyLower=ZeroDiag|Lower,
00189 StrictlyUpper=ZeroDiag|Upper,
00191 SelfAdjoint=0x10
00192 };
00193
00196 enum {
00198 Unaligned=0,
00200 Aligned=1
00201 };
00202
00203 enum { ConditionalJumpCost = 5 };
00204
00207
00208
00209 enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
00210
00214 enum DirectionType {
00217 Vertical,
00220 Horizontal,
00223 BothDirections
00224 };
00225
00226 enum ProductEvaluationMode { NormalProduct, CacheFriendlyProduct };
00227
00230 enum {
00232 DefaultTraversal,
00234 LinearTraversal,
00237 InnerVectorizedTraversal,
00240 LinearVectorizedTraversal,
00243 SliceVectorizedTraversal,
00245 InvalidTraversal
00246 };
00247
00250 enum {
00252 NoUnrolling,
00254 InnerUnrolling,
00257 CompleteUnrolling
00258 };
00259
00263 enum {
00265 ColMajor = 0,
00267 RowMajor = 0x1,
00269 AutoAlign = 0,
00271 DontAlign = 0x2
00272 };
00273
00276 enum {
00278 OnTheLeft = 1,
00280 OnTheRight = 2
00281 };
00282
00283
00284
00285
00286
00287
00288
00289 struct NoChange_t {};
00290 namespace {
00291 EIGEN_UNUSED NoChange_t NoChange;
00292 }
00293
00294 struct Sequential_t {};
00295 namespace {
00296 EIGEN_UNUSED Sequential_t Sequential;
00297 }
00298
00299 struct Default_t {};
00300 namespace {
00301 EIGEN_UNUSED Default_t Default;
00302 }
00303
00306 enum {
00307 IsDense = 0,
00308 IsSparse
00309 };
00310
00314 enum AccessorLevels {
00316 ReadOnlyAccessors,
00318 WriteAccessors,
00320 DirectAccessors,
00322 DirectWriteAccessors
00323 };
00324
00327 enum DecompositionOptions {
00329 Pivoting = 0x01,
00331 NoPivoting = 0x02,
00333 ComputeFullU = 0x04,
00335 ComputeThinU = 0x08,
00337 ComputeFullV = 0x10,
00339 ComputeThinV = 0x20,
00342 EigenvaluesOnly = 0x40,
00345 ComputeEigenvectors = 0x80,
00347 EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
00350 Ax_lBx = 0x100,
00353 ABx_lx = 0x200,
00356 BAx_lx = 0x400,
00358 GenEigMask = Ax_lBx | ABx_lx | BAx_lx
00359 };
00360
00363 enum QRPreconditioners {
00365 NoQRPreconditioner,
00367 HouseholderQRPreconditioner,
00369 ColPivHouseholderQRPreconditioner,
00371 FullPivHouseholderQRPreconditioner
00372 };
00373
00374 #ifdef Success
00375 #error The preprocessor symbol 'Success' is defined, possibly by the X11 header file X.h
00376 #endif
00377
00380 enum ComputationInfo {
00382 Success = 0,
00384 NumericalIssue = 1,
00386 NoConvergence = 2
00387 };
00388
00392 enum TransformTraits {
00394 Isometry = 0x1,
00397 Affine = 0x2,
00399 AffineCompact = 0x10 | Affine,
00401 Projective = 0x20
00402 };
00403
00406 namespace Architecture
00407 {
00408 enum Type {
00409 Generic = 0x0,
00410 SSE = 0x1,
00411 AltiVec = 0x2,
00412 #if defined EIGEN_VECTORIZE_SSE
00413 Target = SSE
00414 #elif defined EIGEN_VECTORIZE_ALTIVEC
00415 Target = AltiVec
00416 #else
00417 Target = Generic
00418 #endif
00419 };
00420 }
00421
00424 enum { CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
00425
00428 enum Action {GetAction, SetAction};
00429
00431 struct Dense {};
00432
00434 struct MatrixXpr {};
00435
00437 struct ArrayXpr {};
00438
00439 #endif // EIGEN_CONSTANTS_H