3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-27 06:43:40 +01:00
dft_tools/doc/reference/c++/arrays/lazy.rst

44 lines
1.1 KiB
ReStructuredText
Raw Normal View History

.. highlight:: c
.. _Lazy:
2013-09-09 15:46:58 +02:00
Interaction with CLEF expressions
============================================
2013-09-09 15:46:58 +02:00
* The containers and their view classes can be used with the :doc:`../clef/contents` library :
2013-09-09 15:46:58 +02:00
* They can be called with CLEF expressions.
* :doc:`Automatic assignment<../clef/assign>` has been set up.
2013-09-09 15:46:58 +02:00
* Using the CLEF library offers a quick and efficient way to fill an array with multiple advantages :
* It is simpler and more readeable than a series of for loops.
2013-09-09 15:46:58 +02:00
* It is usually more optimal since the for loops are automatically written in the TraversalOrder of the array.
* **Example** :
.. compileblock::
#include <triqs/arrays.hpp>
using triqs::arrays::array; using triqs::clef::placeholder;
int main(){
placeholder<0> i_; placeholder<1> j_;
array<double,2> A(2,2), B(2,2);
A(i_,j_) << i_ + 2*j_ ;
B(i_,j_) << A(j_,i_)/2;
std::cout << "A = "<<A << std::endl;
std::cout << "B = "<<B << std::endl;
}
.. note::
The syntax uses a <<, not = since the array is not assigned to an expression
but filled by the evaluation thereof.