C++QEDCore  v2 Milestone 10
a framework for simulating open quantum dynamics – core
blitzplusplus::basi::Transposer< RANK, V > Class Template Reference

Class performing the “possible permutation” of the retained indices (cf. Synopsis). More...

#include <BlitzArraySliceIterator.h>

+ Inheritance diagram for blitzplusplus::basi::Transposer< RANK, V >:

Static Public Member Functions

static CArray< RANK > & transpose (CArray< RANK > &)
 Static worker. More...
 

Detailed Description

template<int RANK, typename V>
class blitzplusplus::basi::Transposer< RANK, V >

Class performing the “possible permutation” of the retained indices (cf. Synopsis).

Definition at line 134 of file BlitzArraySliceIterator.h.

Member Function Documentation

template<int RANK, typename V >
static CArray<RANK>& blitzplusplus::basi::Transposer< RANK, V >::transpose ( CArray< RANK > &  )
inlinestatic

Static worker.

Transposition corresponding to the "possible permutation" of the retained indices (cf. Synopsis), which is necessary in order that $\avr{1,3,6,7,9}$ be the corresponding state vector slice, since this is how it is expected in applications. Cf. Composite for further explanations.

Returns
Simply the reference to the function argument.
Semantics
  • ~~~ static const int RANK=11;

    CArray<RANK> psi;

    typedef tmptools::Vector<3,6,1,9,7> Vec;

    Transposer<RANK,Vec>::transpose(psi);

  • ~~~ is equivalent to ::
  • ~~~ psi.transposeSelf(0,3,2,6,4,5,1,9,8,7,10);
  • ~~~ that is, in place of the indices specified by the elements of the compile-time vector Vec, the elements of Vec are put, but in the order specified by Vec.

Definition at line 162 of file BlitzArraySliceIterator.h.


The documentation for this class was generated from the following file: