Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
include
hebi
Eigen
Eigen
src
Core
util
StaticAssert.h
Go to the documentation of this file.
1
// This file is part of Eigen, a lightweight C++ template library
2
// for linear algebra.
3
//
4
// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
5
// Copyright (C) 2008 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_STATIC_ASSERT_H
12
#define EIGEN_STATIC_ASSERT_H
13
14
/* Some notes on Eigen's static assertion mechanism:
15
*
16
* - in EIGEN_STATIC_ASSERT(CONDITION,MSG) the parameter CONDITION must be a compile time boolean
17
* expression, and MSG an enum listed in struct internal::static_assertion<true>
18
*
19
* - define EIGEN_NO_STATIC_ASSERT to disable them (and save compilation time)
20
* in that case, the static assertion is converted to the following runtime assert:
21
* eigen_assert(CONDITION && "MSG")
22
*
23
* - currently EIGEN_STATIC_ASSERT can only be used in function scope
24
*
25
*/
26
27
#ifndef EIGEN_NO_STATIC_ASSERT
28
29
#if EIGEN_MAX_CPP_VER>=11 && (__has_feature(cxx_static_assert) || (defined(__cplusplus) && __cplusplus >= 201103L) || (EIGEN_COMP_MSVC >= 1600))
30
31
// if native static_assert is enabled, let's use it
32
#define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
33
34
#else // not CXX0X
35
36
namespace
Eigen
{
37
38
namespace
internal
{
39
40
template
<
bool
condition>
41
struct
static_assertion
{};
42
43
template
<>
44
struct
static_assertion
<true>
45
{
46
enum
{
47
YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX
,
48
YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES
,
49
YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES
,
50
THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE
,
51
THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE
,
52
THIS_METHOD_IS_ONLY_FOR_OBJECTS_OF_A_SPECIFIC_SIZE
,
53
OUT_OF_RANGE_ACCESS
,
54
YOU_MADE_A_PROGRAMMING_MISTAKE
,
55
EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT
,
56
EIGEN_INTERNAL_COMPILATION_ERROR_OR_YOU_MADE_A_PROGRAMMING_MISTAKE
,
57
YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR
,
58
YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR
,
59
UNALIGNED_LOAD_AND_STORE_OPERATIONS_UNIMPLEMENTED_ON_ALTIVEC
,
60
THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES
,
61
FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED
,
62
NUMERIC_TYPE_MUST_BE_REAL
,
63
COEFFICIENT_WRITE_ACCESS_TO_SELFADJOINT_NOT_SUPPORTED
,
64
WRITING_TO_TRIANGULAR_PART_WITH_UNIT_DIAGONAL_IS_NOT_SUPPORTED
,
65
THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE
,
66
INVALID_MATRIX_PRODUCT
,
67
INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS
,
68
INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION
,
69
YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY
,
70
THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES
,
71
THIS_METHOD_IS_ONLY_FOR_ROW_MAJOR_MATRICES
,
72
INVALID_MATRIX_TEMPLATE_PARAMETERS
,
73
INVALID_MATRIXBASE_TEMPLATE_PARAMETERS
,
74
BOTH_MATRICES_MUST_HAVE_THE_SAME_STORAGE_ORDER
,
75
THIS_METHOD_IS_ONLY_FOR_DIAGONAL_MATRIX
,
76
THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE
,
77
THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_WITH_DIRECT_MEMORY_ACCESS_SUCH_AS_MAP_OR_PLAIN_MATRICES
,
78
YOU_ALREADY_SPECIFIED_THIS_STRIDE
,
79
INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION
,
80
THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD
,
81
PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1
,
82
THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS
,
83
YOU_CANNOT_MIX_ARRAYS_AND_MATRICES
,
84
YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION
,
85
THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
,
86
YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT
,
87
THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS
,
88
THIS_METHOD_IS_ONLY_FOR_INNER_OR_LAZY_PRODUCTS
,
89
THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL
,
90
THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES
,
91
YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED
,
92
YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED
,
93
THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE
,
94
THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH
,
95
OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG
,
96
IMPLICIT_CONVERSION_TO_SCALAR_IS_FOR_INNER_PRODUCT_ONLY
,
97
STORAGE_LAYOUT_DOES_NOT_MATCH
,
98
EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT__INVALID_COST_VALUE
,
99
THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS
,
100
MATRIX_FREE_CONJUGATE_GRADIENT_IS_COMPATIBLE_WITH_UPPER_UNION_LOWER_MODE_ONLY
,
101
THIS_TYPE_IS_NOT_SUPPORTED
,
102
STORAGE_KIND_MUST_MATCH
,
103
STORAGE_INDEX_MUST_MATCH
,
104
CHOLMOD_SUPPORTS_DOUBLE_PRECISION_ONLY
105
};
106
};
107
108
}
// end namespace internal
109
110
}
// end namespace Eigen
111
112
// Specialized implementation for MSVC to avoid "conditional
113
// expression is constant" warnings. This implementation doesn't
114
// appear to work under GCC, hence the multiple implementations.
115
#if EIGEN_COMP_MSVC
116
117
#define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
118
{Eigen::internal::static_assertion<bool(CONDITION)>::MSG;}
119
120
#else
121
// In some cases clang interprets bool(CONDITION) as function declaration
122
#define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
123
if (Eigen::internal::static_assertion<static_cast<bool>(CONDITION)>::MSG) {}
124
125
#endif
126
127
#endif // not CXX0X
128
129
#else // EIGEN_NO_STATIC_ASSERT
130
131
#define EIGEN_STATIC_ASSERT(CONDITION,MSG) eigen_assert((CONDITION) && #MSG);
132
133
#endif // EIGEN_NO_STATIC_ASSERT
134
135
136
// static assertion failing if the type \a TYPE is not a vector type
137
#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE) \
138
EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime, \
139
YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX)
140
141
// static assertion failing if the type \a TYPE is not fixed-size
142
#define EIGEN_STATIC_ASSERT_FIXED_SIZE(TYPE) \
143
EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime!=Eigen::Dynamic, \
144
YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR)
145
146
// static assertion failing if the type \a TYPE is not dynamic-size
147
#define EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(TYPE) \
148
EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime==Eigen::Dynamic, \
149
YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR)
150
151
// static assertion failing if the type \a TYPE is not a vector type of the given size
152
#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE) \
153
EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime && TYPE::SizeAtCompileTime==SIZE, \
154
THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE)
155
156
// static assertion failing if the type \a TYPE is not a vector type of the given size
157
#define EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(TYPE, ROWS, COLS) \
158
EIGEN_STATIC_ASSERT(TYPE::RowsAtCompileTime==ROWS && TYPE::ColsAtCompileTime==COLS, \
159
THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE)
160
161
// static assertion failing if the two vector expression types are not compatible (same fixed-size or dynamic size)
162
#define EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(TYPE0,TYPE1) \
163
EIGEN_STATIC_ASSERT( \
164
(int(TYPE0::SizeAtCompileTime)==Eigen::Dynamic \
165
|| int(TYPE1::SizeAtCompileTime)==Eigen::Dynamic \
166
|| int(TYPE0::SizeAtCompileTime)==int(TYPE1::SizeAtCompileTime)),\
167
YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES)
168
169
#define EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
170
( \
171
(int(Eigen::internal::size_of_xpr_at_compile_time<TYPE0>::ret)==0 && int(Eigen::internal::size_of_xpr_at_compile_time<TYPE1>::ret)==0) \
172
|| (\
173
(int(TYPE0::RowsAtCompileTime)==Eigen::Dynamic \
174
|| int(TYPE1::RowsAtCompileTime)==Eigen::Dynamic \
175
|| int(TYPE0::RowsAtCompileTime)==int(TYPE1::RowsAtCompileTime)) \
176
&& (int(TYPE0::ColsAtCompileTime)==Eigen::Dynamic \
177
|| int(TYPE1::ColsAtCompileTime)==Eigen::Dynamic \
178
|| int(TYPE0::ColsAtCompileTime)==int(TYPE1::ColsAtCompileTime))\
179
) \
180
)
181
182
#define EIGEN_STATIC_ASSERT_NON_INTEGER(TYPE) \
183
EIGEN_STATIC_ASSERT(!NumTraits<TYPE>::IsInteger, THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
184
185
186
// static assertion failing if it is guaranteed at compile-time that the two matrix expression types have different sizes
187
#define EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
188
EIGEN_STATIC_ASSERT( \
189
EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1),\
190
YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES)
191
192
#define EIGEN_STATIC_ASSERT_SIZE_1x1(TYPE) \
193
EIGEN_STATIC_ASSERT((TYPE::RowsAtCompileTime == 1 || TYPE::RowsAtCompileTime == Dynamic) && \
194
(TYPE::ColsAtCompileTime == 1 || TYPE::ColsAtCompileTime == Dynamic), \
195
THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS)
196
197
#define EIGEN_STATIC_ASSERT_LVALUE(Derived) \
198
EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, \
199
THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
200
201
#define EIGEN_STATIC_ASSERT_ARRAYXPR(Derived) \
202
EIGEN_STATIC_ASSERT((Eigen::internal::is_same<typename Eigen::internal::traits<Derived>::XprKind, ArrayXpr>::value), \
203
THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES)
204
205
#define EIGEN_STATIC_ASSERT_SAME_XPR_KIND(Derived1, Derived2) \
206
EIGEN_STATIC_ASSERT((Eigen::internal::is_same<typename Eigen::internal::traits<Derived1>::XprKind, \
207
typename Eigen::internal::traits<Derived2>::XprKind \
208
>::value), \
209
YOU_CANNOT_MIX_ARRAYS_AND_MATRICES)
210
211
// Check that a cost value is positive, and that is stay within a reasonable range
212
// TODO this check could be enabled for internal debugging only
213
#define EIGEN_INTERNAL_CHECK_COST_VALUE(C) \
214
EIGEN_STATIC_ASSERT((C)>=0 && (C)<=HugeCost*HugeCost, EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT__INVALID_COST_VALUE);
215
216
#endif // EIGEN_STATIC_ASSERT_H
Eigen::internal::static_assertion< true >::YOU_ALREADY_SPECIFIED_THIS_STRIDE
Definition:
StaticAssert.h:78
Eigen::internal::static_assertion< true >::EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT
Definition:
StaticAssert.h:55
Eigen::internal::static_assertion< true >::STORAGE_KIND_MUST_MATCH
Definition:
StaticAssert.h:102
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES
Definition:
StaticAssert.h:70
Eigen::internal::static_assertion< true >::THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE
Definition:
StaticAssert.h:93
Eigen::internal::static_assertion< true >::NUMERIC_TYPE_MUST_BE_REAL
Definition:
StaticAssert.h:62
Eigen::internal::static_assertion< true >::THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY
Definition:
StaticAssert.h:85
Eigen::internal::static_assertion< true >::OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG
Definition:
StaticAssert.h:95
Eigen::internal::static_assertion< true >::BOTH_MATRICES_MUST_HAVE_THE_SAME_STORAGE_ORDER
Definition:
StaticAssert.h:74
Eigen::internal::static_assertion< true >::YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY
Definition:
StaticAssert.h:69
Eigen::internal::static_assertion< true >::STORAGE_INDEX_MUST_MATCH
Definition:
StaticAssert.h:103
Eigen::internal::static_assertion
Definition:
StaticAssert.h:41
Eigen
Definition:
LDLT.h:16
Eigen::internal::static_assertion< true >::INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION
Definition:
StaticAssert.h:68
Eigen::internal::static_assertion< true >::THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE
Definition:
StaticAssert.h:76
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_OBJECTS_OF_A_SPECIFIC_SIZE
Definition:
StaticAssert.h:52
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS
Definition:
StaticAssert.h:82
Eigen::internal::static_assertion< true >::YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED
Definition:
StaticAssert.h:91
Eigen::internal::static_assertion< true >::INVALID_MATRIXBASE_TEMPLATE_PARAMETERS
Definition:
StaticAssert.h:73
Eigen::internal::static_assertion< true >::YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED
Definition:
StaticAssert.h:92
Eigen::internal::static_assertion< true >::WRITING_TO_TRIANGULAR_PART_WITH_UNIT_DIAGONAL_IS_NOT_SUPPORTED
Definition:
StaticAssert.h:64
Eigen::internal::static_assertion< true >::INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS
Definition:
StaticAssert.h:67
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE
Definition:
StaticAssert.h:50
Eigen::internal::static_assertion< true >::INVALID_MATRIX_TEMPLATE_PARAMETERS
Definition:
StaticAssert.h:72
Eigen::internal::static_assertion< true >::EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT__INVALID_COST_VALUE
Definition:
StaticAssert.h:98
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_ROW_MAJOR_MATRICES
Definition:
StaticAssert.h:71
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE
Definition:
StaticAssert.h:51
Eigen::internal::static_assertion< true >::EIGEN_INTERNAL_COMPILATION_ERROR_OR_YOU_MADE_A_PROGRAMMING_MISTAKE
Definition:
StaticAssert.h:56
Eigen::internal::static_assertion< true >::YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR
Definition:
StaticAssert.h:57
Eigen::internal::static_assertion< true >::THIS_TYPE_IS_NOT_SUPPORTED
Definition:
StaticAssert.h:101
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS
Definition:
StaticAssert.h:87
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL
Definition:
StaticAssert.h:89
Eigen::internal::static_assertion< true >::THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH
Definition:
StaticAssert.h:94
Eigen::internal::static_assertion< true >::THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD
Definition:
StaticAssert.h:80
Eigen::internal::static_assertion< true >::YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT
Definition:
StaticAssert.h:86
Eigen::internal::static_assertion< true >::INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION
Definition:
StaticAssert.h:79
Eigen::internal::static_assertion< true >::YOU_CANNOT_MIX_ARRAYS_AND_MATRICES
Definition:
StaticAssert.h:83
Eigen::internal::static_assertion< true >::PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1
Definition:
StaticAssert.h:81
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE
Definition:
StaticAssert.h:65
Eigen::internal::static_assertion< true >::IMPLICIT_CONVERSION_TO_SCALAR_IS_FOR_INNER_PRODUCT_ONLY
Definition:
StaticAssert.h:96
Eigen::internal::static_assertion< true >::YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES
Definition:
StaticAssert.h:48
Eigen::internal::static_assertion< true >::FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED
Definition:
StaticAssert.h:61
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES
Definition:
StaticAssert.h:90
internal
Definition:
Eigen_Colamd.h:50
Eigen::internal::static_assertion< true >::YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX
Definition:
StaticAssert.h:47
Eigen::internal::static_assertion< true >::COEFFICIENT_WRITE_ACCESS_TO_SELFADJOINT_NOT_SUPPORTED
Definition:
StaticAssert.h:63
Eigen::internal::static_assertion< true >::OUT_OF_RANGE_ACCESS
Definition:
StaticAssert.h:53
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_INNER_OR_LAZY_PRODUCTS
Definition:
StaticAssert.h:88
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_DIAGONAL_MATRIX
Definition:
StaticAssert.h:75
Eigen::internal::static_assertion< true >::YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION
Definition:
StaticAssert.h:84
Eigen::internal::static_assertion< true >::INVALID_MATRIX_PRODUCT
Definition:
StaticAssert.h:66
Eigen::internal::static_assertion< true >::THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES
Definition:
StaticAssert.h:60
Eigen::internal::static_assertion< true >::YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR
Definition:
StaticAssert.h:58
Eigen::internal::static_assertion< true >::UNALIGNED_LOAD_AND_STORE_OPERATIONS_UNIMPLEMENTED_ON_ALTIVEC
Definition:
StaticAssert.h:59
Eigen::internal::static_assertion< true >::THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_WITH_DIRECT_MEMORY_ACCESS_SUCH_AS_MAP_OR_PLAIN_MATRICES
Definition:
StaticAssert.h:77
Eigen::internal::static_assertion< true >::THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS
Definition:
StaticAssert.h:99
Eigen::internal::static_assertion< true >::STORAGE_LAYOUT_DOES_NOT_MATCH
Definition:
StaticAssert.h:97
Eigen::internal::static_assertion< true >::YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES
Definition:
StaticAssert.h:49
Eigen::internal::static_assertion< true >::YOU_MADE_A_PROGRAMMING_MISTAKE
Definition:
StaticAssert.h:54
Eigen::internal::static_assertion< true >::MATRIX_FREE_CONJUGATE_GRADIENT_IS_COMPATIBLE_WITH_UPPER_UNION_LOWER_MODE_ONLY
Definition:
StaticAssert.h:100
hebiros
Author(s): Xavier Artache
, Matthew Tesch
autogenerated on Thu Sep 3 2020 04:09:03