Eigen
3.2.0
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
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
154
|
EvalBeforeAssigningBit
;
155
165
enum
{
167
Lower
=0x1,
169
Upper
=0x2,
171
UnitDiag
=0x4,
173
ZeroDiag
=0x8,
175
UnitLower
=
UnitDiag
|
Lower
,
177
UnitUpper
=
UnitDiag
|
Upper
,
179
StrictlyLower
=
ZeroDiag
|
Lower
,
181
StrictlyUpper
=
ZeroDiag
|
Upper
,
183
SelfAdjoint
=0x10,
185
Symmetric
=0x20
186
};
187
190
enum
{
192
Unaligned
=0,
194
Aligned
=1
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
206
enum
DirectionType
{
209
Vertical
,
212
Horizontal
,
215
BothDirections
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,
279
OnTheRight
= 2
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
308
enum
AccessorLevels
{
310
ReadOnlyAccessors
,
312
WriteAccessors
,
314
DirectAccessors
,
316
DirectWriteAccessors
317
};
318
321
enum
DecompositionOptions
{
323
Pivoting = 0x01,
325
NoPivoting = 0x02,
327
ComputeFullU
= 0x04,
329
ComputeThinU
= 0x08,
331
ComputeFullV
= 0x10,
333
ComputeThinV
= 0x20,
336
EigenvaluesOnly
= 0x40,
339
ComputeEigenvectors
= 0x80,
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
357
enum
QRPreconditioners
{
359
NoQRPreconditioner
,
361
HouseholderQRPreconditioner
,
363
ColPivHouseholderQRPreconditioner
,
365
FullPivHouseholderQRPreconditioner
366
};
367
368
#ifdef Success
369
#error The preprocessor symbol 'Success' is defined, possibly by the X11 header file X.h
370
#endif
371
374
enum
ComputationInfo
{
376
Success
= 0,
378
NumericalIssue
= 1,
380
NoConvergence
= 2,
383
InvalidInput
= 3
384
};
385
389
enum
TransformTraits
{
391
Isometry
= 0x1,
394
Affine
= 0x2,
396
AffineCompact
= 0x10 |
Affine
,
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
}
// end namespace Eigen
437
438
#endif // EIGEN_CONSTANTS_H
Eigen
src
Core
util
Constants.h
Generated on Sun Aug 11 2013 19:27:26 for Eigen by
1.8.4