exceptions.cpp File Reference
#include "main.h"
#include "AnnoyingScalar.h"

Macros

#define EIGEN_STACK_ALLOCATION_LIMIT   100000000
 
#define CHECK_MEMLEAK(OP)
 

Functions

 EIGEN_DECLARE_TEST (exceptions)
 

Macro Definition Documentation

◆ CHECK_MEMLEAK

#define CHECK_MEMLEAK (   OP)
Value:
{ \
int before = AnnoyingScalar::instances; \
bool exception_thrown = false; \
try { \
OP; \
} catch (my_exception) { \
exception_thrown = true; \
VERIFY(AnnoyingScalar::instances == before && "memory leak detected in " && EIGEN_MAKESTRING(OP)); \
} \
VERIFY((AnnoyingScalar::dont_throw) || (exception_thrown && " no exception thrown in " && EIGEN_MAKESTRING(OP))); \
}
#define EIGEN_MAKESTRING(a)
Definition: Macros.h:825
static int instances
Definition: AnnoyingScalar.h:124
static int countdown
Definition: AnnoyingScalar.h:126
static bool dont_throw
Definition: AnnoyingScalar.h:127
#define OP(X)
Definition: common.h:54
Definition: AnnoyingScalar.h:20

◆ EIGEN_STACK_ALLOCATION_LIMIT

#define EIGEN_STACK_ALLOCATION_LIMIT   100000000

Function Documentation

◆ EIGEN_DECLARE_TEST()

EIGEN_DECLARE_TEST ( exceptions  )
33  {
36 
37  {
39  int n = 50;
40  VectorType v0(n), v1(n);
41  MatrixType m0(n, n), m1(n, n), m2(n, n);
42  v0.setOnes();
43  v1.setOnes();
44  m0.setOnes();
45  m1.setOnes();
46  m2.setOnes();
47  CHECK_MEMLEAK(v0 = m0 * m1 * v1);
48  CHECK_MEMLEAK(m2 = m0 * m1 * m2);
49  CHECK_MEMLEAK((v0 + v1).dot(v0 + v1));
50  }
51  VERIFY(AnnoyingScalar::instances == 0 && "global memory leak detected in " && EIGEN_MAKESTRING(OP));
52 }
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
Matrix3d m1
Definition: IOFormat.cpp:2
MatrixType m2(n_dims)
M1<< 1, 2, 3, 4, 5, 6, 7, 8, 9;Map< RowVectorXf > v1(M1.data(), M1.size())
MatrixXf MatrixType
Definition: benchmark-blocking-sizes.cpp:52
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
#define CHECK_MEMLEAK(OP)
Definition: exceptions.cpp:19
Scalar EIGEN_BLAS_FUNC_NAME() dot(int *n, Scalar *px, int *incx, Scalar *py, int *incy)
Definition: level1_real_impl.h:52
#define VERIFY(a)
Definition: main.h:362
Definition: fft_test_shared.h:66

References CHECK_MEMLEAK, AnnoyingScalar::dont_throw, dot(), EIGEN_MAKESTRING, AnnoyingScalar::instances, m1, m2(), n, OP, v1(), and VERIFY.