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
00164
00165 enum {
00166 Lower=0x1, Upper=0x2, UnitDiag=0x4, ZeroDiag=0x8,
00167 UnitLower=UnitDiag|Lower, UnitUpper=UnitDiag|Upper,
00168 StrictlyLower=ZeroDiag|Lower, StrictlyUpper=ZeroDiag|Upper,
00169 SelfAdjoint=0x10};
00170
00171 enum { Unaligned=0, Aligned=1 };
00172 enum { ConditionalJumpCost = 5 };
00173
00174
00175
00176 enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
00177
00178 enum DirectionType { Vertical, Horizontal, BothDirections };
00179 enum ProductEvaluationMode { NormalProduct, CacheFriendlyProduct };
00180
00181 enum {
00183 DefaultTraversal,
00185 LinearTraversal,
00188 InnerVectorizedTraversal,
00191 LinearVectorizedTraversal,
00194 SliceVectorizedTraversal,
00196 InvalidTraversal
00197 };
00198
00199 enum {
00200 NoUnrolling,
00201 InnerUnrolling,
00202 CompleteUnrolling
00203 };
00204
00205 enum {
00206 ColMajor = 0,
00207 RowMajor = 0x1,
00209 AutoAlign = 0,
00211 DontAlign = 0x2
00212 };
00213
00216 enum {
00217 OnTheLeft = 1,
00218 OnTheRight = 2
00219 };
00220
00221
00222
00223
00224
00225
00226
00227 struct NoChange_t {};
00228 namespace {
00229 EIGEN_UNUSED NoChange_t NoChange;
00230 }
00231
00232 struct Sequential_t {};
00233 namespace {
00234 EIGEN_UNUSED Sequential_t Sequential;
00235 }
00236
00237 struct Default_t {};
00238 namespace {
00239 EIGEN_UNUSED Default_t Default;
00240 }
00241
00242 enum {
00243 IsDense = 0,
00244 IsSparse
00245 };
00246
00247 enum AccessorLevels {
00248 ReadOnlyAccessors, WriteAccessors, DirectAccessors, DirectWriteAccessors
00249 };
00250
00251 enum DecompositionOptions {
00252 Pivoting = 0x01,
00253 NoPivoting = 0x02,
00254 ComputeFullU = 0x04,
00255 ComputeThinU = 0x08,
00256 ComputeFullV = 0x10,
00257 ComputeThinV = 0x20,
00258 EigenvaluesOnly = 0x40,
00259 ComputeEigenvectors = 0x80,
00260 EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
00261 Ax_lBx = 0x100,
00262 ABx_lx = 0x200,
00263 BAx_lx = 0x400,
00264 GenEigMask = Ax_lBx | ABx_lx | BAx_lx
00265 };
00266
00267 enum QRPreconditioners {
00268 NoQRPreconditioner,
00269 HouseholderQRPreconditioner,
00270 ColPivHouseholderQRPreconditioner,
00271 FullPivHouseholderQRPreconditioner
00272 };
00273
00276 enum ComputationInfo {
00277 Success = 0,
00278 NumericalIssue = 1,
00279 NoConvergence = 2
00280 };
00281
00282 enum TransformTraits {
00283 Isometry = 0x1,
00284 Affine = 0x2,
00285 AffineCompact = 0x10 | Affine,
00286 Projective = 0x20
00287 };
00288
00289 namespace Architecture
00290 {
00291 enum Type {
00292 Generic = 0x0,
00293 SSE = 0x1,
00294 AltiVec = 0x2,
00295 #if defined EIGEN_VECTORIZE_SSE
00296 Target = SSE
00297 #elif defined EIGEN_VECTORIZE_ALTIVEC
00298 Target = AltiVec
00299 #else
00300 Target = Generic
00301 #endif
00302 };
00303 }
00304
00305 enum { CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
00306
00307 enum Action {GetAction, SetAction};
00308
00310 struct Dense {};
00311
00313 struct MatrixXpr {};
00314
00316 struct ArrayXpr {};
00317
00318 #endif // EIGEN_CONSTANTS_H