mirror of
https://github.com/triqs/dft_tools
synced 2024-12-26 14:23:38 +01:00
3fe400d34c
- examples split from the rst file using a python script (split_code). - Final result for the doc is unchanged. - examples are compiled and tested with the other tests. - examples' code have been clang-formatted, with triqs style. - doc compiles much faster, and with the same options as the rest of the test. - examples are added as tests, so they are run by make test, as simple C tests. - done for the tutorials and the reference. - autocompile removed (changed into triqs_example directive). - add triqs_example : - make a literal include of the source code. - runs the compiled example - add, as before, the result to the source code in the doc. - added the script split_code, used to make the changes automatically, maybe for later reuse. (in _tools)
27 lines
897 B
ReStructuredText
27 lines
897 B
ReStructuredText
|
|
.. highlight:: python
|
|
|
|
.. _Debug:
|
|
|
|
Bound checking and debug macros
|
|
===================================
|
|
|
|
To be fast, by default, no check are made on the indices while accessing elements or slicing.
|
|
However, checks can be activated in two ways :
|
|
|
|
* Adding the `BOUND_CHECK` option
|
|
|
|
* Defining the debug macro TRIQS_ARRAYS_ENFORCE_BOUNDCHECK, which switches the default option to `BOUND_CHECK`
|
|
for all arrays, matrices and vectors.
|
|
|
|
In both cases, if the indices are not within the domain of defintion, an exception triqs::arrays::key_error
|
|
will be thrown. It's .what() returns the file and line where the exception occurs, with the stack of all in C++,
|
|
e.g. :
|
|
|
|
.. triqs_example:: ./debug_0.cpp
|
|
.. note:: Bound Checking is not necessarly used for debugging. You may used it for a given array, catching exception.
|
|
Beware however that bound checking comes with some performance penalty.
|
|
|
|
|
|
|