Eigen  3.2.10
 
Loading...
Searching...
No Matches
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
14namespace Eigen {
15
21const int Dynamic = -1;
22
26const int DynamicIndex = 0xffffff;
27
31const int Infinity = -1;
32
45
53const unsigned int RowMajorBit = 0x1;
54
58const unsigned int EvalBeforeNestingBit = 0x2;
59
63const unsigned int EvalBeforeAssigningBit = 0x4;
64
81const unsigned int PacketAccessBit = 0x8;
82
83#ifdef EIGEN_VECTORIZE
93#else
94const unsigned int ActualPacketAccessBit = 0x0;
95#endif
96
117const unsigned int LinearAccessBit = 0x10;
118
131const unsigned int LvalueBit = 0x20;
132
142const unsigned int DirectAccessBit = 0x40;
143
147const unsigned int AlignedBit = 0x80;
148
149const unsigned int NestByRefBit = 0x100;
150
151// list of flags that are inherited by default
152const unsigned int HereditaryBits = RowMajorBit
155
161
187
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 ?
201enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
202
217
220enum TraversalType {
222 DefaultTraversal,
224 LinearTraversal,
227 InnerVectorizedTraversal,
230 LinearVectorizedTraversal,
233 SliceVectorizedTraversal,
235 InvalidTraversal,
237 AllAtOnceTraversal
238};
239
242enum UnrollingType {
244 NoUnrolling,
246 InnerUnrolling,
249 CompleteUnrolling
250};
251
254enum SpecializedType {
255 Specialized,
256 BuiltIn
257};
258
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
271};
272
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
294enum NoChange_t { NoChange };
295enum Sequential_t { Sequential };
296enum Default_t { Default };
297
300enum {
301 IsDense = 0,
302 IsSparse
303};
304
318
323 Pivoting = 0x01,
325 NoPivoting = 0x02,
344 Ax_lBx = 0x100,
347 ABx_lx = 0x200,
350 BAx_lx = 0x400,
352 GenEigMask = Ax_lBx | ABx_lx | BAx_lx
353};
354
367
368#ifdef Success
369#error The preprocessor symbol 'Success' is defined, possibly by the X11 header file X.h
370#endif
371
385
400
403namespace 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
421enum ProductImplType { CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
422
425enum Action {GetAction, SetAction};
426
428struct Dense {};
429
431struct MatrixXpr {};
432
434struct ArrayXpr {};
435
436namespace 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
SideType
Definition Constants.h:275
DecompositionOptions
Definition Constants.h:321
TransformTraits
Definition Constants.h:389
ComputationInfo
Definition Constants.h:374
CornerType
Definition Constants.h:201
UpLoType
Definition Constants.h:165
AccessorLevels
Definition Constants.h:308
StorageOptions
Definition Constants.h:262
DirectionType
Definition Constants.h:206
AlignmentType
Definition Constants.h:190
QRPreconditioners
Definition Constants.h:357
@ OnTheLeft
Definition Constants.h:277
@ OnTheRight
Definition Constants.h:279
@ ComputeFullV
Definition Constants.h:331
@ Ax_lBx
Definition Constants.h:344
@ BAx_lx
Definition Constants.h:350
@ ComputeFullU
Definition Constants.h:327
@ ComputeEigenvectors
Definition Constants.h:339
@ ComputeThinV
Definition Constants.h:333
@ ComputeThinU
Definition Constants.h:329
@ EigenvaluesOnly
Definition Constants.h:336
@ ABx_lx
Definition Constants.h:347
@ Projective
Definition Constants.h:398
@ Affine
Definition Constants.h:394
@ Isometry
Definition Constants.h:391
@ AffineCompact
Definition Constants.h:396
@ NoConvergence
Definition Constants.h:380
@ NumericalIssue
Definition Constants.h:378
@ InvalidInput
Definition Constants.h:383
@ Success
Definition Constants.h:376
@ UnitLower
Definition Constants.h:175
@ StrictlyLower
Definition Constants.h:179
@ Symmetric
Definition Constants.h:185
@ UnitUpper
Definition Constants.h:177
@ ZeroDiag
Definition Constants.h:173
@ UnitDiag
Definition Constants.h:171
@ StrictlyUpper
Definition Constants.h:181
@ SelfAdjoint
Definition Constants.h:183
@ Upper
Definition Constants.h:169
@ Lower
Definition Constants.h:167
@ WriteAccessors
Definition Constants.h:312
@ ReadOnlyAccessors
Definition Constants.h:310
@ DirectWriteAccessors
Definition Constants.h:316
@ DirectAccessors
Definition Constants.h:314
@ AutoAlign
Definition Constants.h:268
@ RowMajor
Definition Constants.h:266
@ DontAlign
Definition Constants.h:270
@ ColMajor
Definition Constants.h:264
@ Vertical
Definition Constants.h:209
@ BothDirections
Definition Constants.h:215
@ Horizontal
Definition Constants.h:212
@ Aligned
Definition Constants.h:194
@ Unaligned
Definition Constants.h:192
@ ColPivHouseholderQRPreconditioner
Definition Constants.h:363
@ FullPivHouseholderQRPreconditioner
Definition Constants.h:365
@ HouseholderQRPreconditioner
Definition Constants.h:361
@ NoQRPreconditioner
Definition Constants.h:359
const unsigned int DirectAccessBit
Definition Constants.h:142
const unsigned int LvalueBit
Definition Constants.h:131
const unsigned int RowMajorBit
Definition Constants.h:53
const unsigned int AlignedBit
Definition Constants.h:147
const unsigned int PacketAccessBit
Definition Constants.h:81
const unsigned int ActualPacketAccessBit
Definition Constants.h:92
const unsigned int LinearAccessBit
Definition Constants.h:117
const unsigned int EvalBeforeAssigningBit
Definition Constants.h:63
const unsigned int EvalBeforeNestingBit
Definition Constants.h:58
Definition LDLT.h:18
Definition Constants.h:434
Definition Constants.h:428
Definition Constants.h:431