svZeroDSolver
Loading...
Searching...
No Matches
Assertions.h File Reference

eigen_assert override for builds configured with ENABLE_ASSERTIONS More...

#include <stdexcept>
#include <string>
Include dependency graph for Assertions.h:

Go to the source code of this file.

Macros

#define eigen_assert(condition)
 Eigen assertion that throws instead of aborting.

Functions

void svzerod_eigen_assertion_failed (const char *condition, const char *file, int line)
 Report a violated Eigen assertion.

Detailed Description

eigen_assert override for builds configured with ENABLE_ASSERTIONS

Macro Definition Documentation

◆ eigen_assert

#define eigen_assert ( condition)
Value:
((condition) \
? static_cast<void>(0) \
: svzerod_eigen_assertion_failed(#condition, __FILE__, __LINE__))
void svzerod_eigen_assertion_failed(const char *condition, const char *file, int line)
Report a violated Eigen assertion.
Definition Assertions.h:24

Eigen assertion that throws instead of aborting.

An expression, not a statement, because Eigen also uses eigen_assert inside larger expressions.

Parameters
conditionCondition that must hold

Function Documentation

◆ svzerod_eigen_assertion_failed()

void svzerod_eigen_assertion_failed ( const char * condition,
const char * file,
int line )
inline

Report a violated Eigen assertion.

Eigen asserts via assert(), which aborts the process. Inside the svzerod extension module that would tear down the Python interpreter, so throw instead: pybind11 surfaces the exception and only the current call fails.

Parameters
conditionStringified condition that was violated
fileSource file containing the assertion
lineLine number of the assertion