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 Infinity = -1;
27
40
48const unsigned int RowMajorBit = 0x1;
49
53const unsigned int EvalBeforeNestingBit = 0x2;
54
58const unsigned int EvalBeforeAssigningBit = 0x4;
59
76const unsigned int PacketAccessBit = 0x8;
77
78#ifdef EIGEN_VECTORIZE
88#else
89const unsigned int ActualPacketAccessBit = 0x0;
90#endif
91
112const unsigned int LinearAccessBit = 0x10;
113
126const unsigned int LvalueBit = 0x20;
127
137const unsigned int DirectAccessBit = 0x40;
138
142const unsigned int AlignedBit = 0x80;
143
144const unsigned int NestByRefBit = 0x100;
145
146// list of flags that are inherited by default
147const unsigned int HereditaryBits = RowMajorBit
150
156
160enum {
162 Lower=0x1,
164 Upper=0x2,
181};
182
185enum {
190};
191
194// FIXME after the corner() API change, this was not needed anymore, except by AlignedBox
195// TODO: find out what to do with that. Adapt the AlignedBox API ?
196enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
197
212
215enum {
217 DefaultTraversal,
219 LinearTraversal,
222 InnerVectorizedTraversal,
225 LinearVectorizedTraversal,
228 SliceVectorizedTraversal,
230 InvalidTraversal
231};
232
235enum {
237 NoUnrolling,
239 InnerUnrolling,
242 CompleteUnrolling
243};
244
247enum {
248 Specialized,
249 BuiltIn
250};
251
255enum {
259 RowMajor = 0x1, // it is only a coincidence that this is equal to RowMajorBit -- don't rely on that
261 AutoAlign = 0, // FIXME --- clarify the situation
263 DontAlign = 0x2
264};
265
268enum {
273};
274
275/* the following used to be written as:
276 *
277 * struct NoChange_t {};
278 * namespace {
279 * EIGEN_UNUSED NoChange_t NoChange;
280 * }
281 *
282 * on the ground that it feels dangerous to disambiguate overloaded functions on enum/integer types.
283 * However, this leads to "variable declared but never referenced" warnings on Intel Composer XE,
284 * and we do not know how to get rid of them (bug 450).
285 */
286
287enum NoChange_t { NoChange };
288enum Sequential_t { Sequential };
289enum Default_t { Default };
290
293enum {
294 IsDense = 0,
295 IsSparse
296};
297
311
316 Pivoting = 0x01,
318 NoPivoting = 0x02,
337 Ax_lBx = 0x100,
340 ABx_lx = 0x200,
343 BAx_lx = 0x400,
345 GenEigMask = Ax_lBx | ABx_lx | BAx_lx
346};
347
360
361#ifdef Success
362#error The preprocessor symbol 'Success' is defined, possibly by the X11 header file X.h
363#endif
364
378
393
396namespace Architecture
397{
398 enum Type {
399 Generic = 0x0,
400 SSE = 0x1,
401 AltiVec = 0x2,
402#if defined EIGEN_VECTORIZE_SSE
403 Target = SSE
404#elif defined EIGEN_VECTORIZE_ALTIVEC
405 Target = AltiVec
406#else
407 Target = Generic
408#endif
409 };
410}
411
414enum { CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
415
418enum Action {GetAction, SetAction};
419
421struct Dense {};
422
424struct MatrixXpr {};
425
427struct ArrayXpr {};
428
429} // end namespace Eigen
430
431#endif // EIGEN_CONSTANTS_H
DecompositionOptions
Definition Constants.h:314
TransformTraits
Definition Constants.h:382
ComputationInfo
Definition Constants.h:367
CornerType
Definition Constants.h:196
AccessorLevels
Definition Constants.h:301
DirectionType
Definition Constants.h:201
QRPreconditioners
Definition Constants.h:350
@ RowMajor
Definition Constants.h:259
@ ColMajor
Definition Constants.h:257
@ ComputeFullV
Definition Constants.h:324
@ Ax_lBx
Definition Constants.h:337
@ BAx_lx
Definition Constants.h:343
@ ComputeFullU
Definition Constants.h:320
@ ComputeEigenvectors
Definition Constants.h:332
@ ComputeThinV
Definition Constants.h:326
@ ComputeThinU
Definition Constants.h:322
@ EigenvaluesOnly
Definition Constants.h:329
@ ABx_lx
Definition Constants.h:340
@ Projective
Definition Constants.h:391
@ Affine
Definition Constants.h:387
@ Isometry
Definition Constants.h:384
@ AffineCompact
Definition Constants.h:389
@ NoConvergence
Definition Constants.h:373
@ NumericalIssue
Definition Constants.h:371
@ InvalidInput
Definition Constants.h:376
@ Success
Definition Constants.h:369
@ UnitLower
Definition Constants.h:170
@ StrictlyLower
Definition Constants.h:174
@ Symmetric
Definition Constants.h:180
@ UnitUpper
Definition Constants.h:172
@ ZeroDiag
Definition Constants.h:168
@ UnitDiag
Definition Constants.h:166
@ StrictlyUpper
Definition Constants.h:176
@ SelfAdjoint
Definition Constants.h:178
@ Upper
Definition Constants.h:164
@ Lower
Definition Constants.h:162
@ Aligned
Definition Constants.h:189
@ Unaligned
Definition Constants.h:187
@ WriteAccessors
Definition Constants.h:305
@ ReadOnlyAccessors
Definition Constants.h:303
@ DirectWriteAccessors
Definition Constants.h:309
@ DirectAccessors
Definition Constants.h:307
@ Vertical
Definition Constants.h:204
@ BothDirections
Definition Constants.h:210
@ Horizontal
Definition Constants.h:207
@ OnTheLeft
Definition Constants.h:270
@ OnTheRight
Definition Constants.h:272
@ ColPivHouseholderQRPreconditioner
Definition Constants.h:356
@ FullPivHouseholderQRPreconditioner
Definition Constants.h:358
@ HouseholderQRPreconditioner
Definition Constants.h:354
@ NoQRPreconditioner
Definition Constants.h:352
const unsigned int DirectAccessBit
Definition Constants.h:137
const unsigned int LvalueBit
Definition Constants.h:126
const unsigned int RowMajorBit
Definition Constants.h:48
const unsigned int AlignedBit
Definition Constants.h:142
const unsigned int PacketAccessBit
Definition Constants.h:76
const unsigned int ActualPacketAccessBit
Definition Constants.h:87
const unsigned int LinearAccessBit
Definition Constants.h:112
const unsigned int EvalBeforeAssigningBit
Definition Constants.h:58
const unsigned int EvalBeforeNestingBit
Definition Constants.h:53
Definition Constants.h:427
Definition Constants.h:421
Definition Constants.h:424