Class used to represent indices that can be used to write tensor calculations in index notation.
More...
|
| Index () |
| Empty constructor that creates a new Index with new ID. Use this to create indices. More...
|
|
| Index (const Index &_other) noexcept=default |
| Indices are default copy constructable. More...
|
|
| Index (const int32 _i) |
| Integers are implicitly allowed to be casted to Index, to allow expression as A(i) = B(3,i), i.e. A is the third row of B. More...
|
|
| Index (const uint32 _i) noexcept |
| Integers are implicitly allowed to be casted to Index, to allow expression as A(i) = B(3,i), i.e. A is the third row of B. More...
|
|
| Index (const int64 _i) |
| Integers are implicitly allowed to be casted to Index, to allow expression as A(i) = B(3,i), i.e. A is the third row of B. More...
|
|
| Index (const uint64 _i) noexcept |
| Integers are implicitly allowed to be casted to Index, to allow expression as A(i) = B(3,i), i.e. A is the third row of B. More...
|
|
| Index (const uint64 _valueId, const size_t _span) noexcept |
| Internal constructor, do not use this unless you know what you are doing. More...
|
|
| Index (const uint64 _valueId, const size_t _span, const Flag _flag1) noexcept |
| Internal constructor, do not use this unless you know what you are doing. More...
|
|
size_t | actual_span (const size_t _degree) const |
| Returns the span this index actually represents in a tensor of given order. More...
|
|
size_t | dimension () const |
| Returns the (mult)Dimension assinged to this index. More...
|
|
bool | fixed () const |
| Checks whether the Index represents a fixed number. More...
|
|
size_t | fixed_position () const |
| : Returns the fixed position of a fixed index. More...
|
|
bool | open () const |
| Checks whether the index is open. More...
|
|
void | open (const bool _open) |
| : Sets whether the index is open. More...
|
|
Index | operator & (const size_t _span) const |
| : Allow the creation of Indices covering all but x dimensions using the and operator. E.g. A() = B(i&0) * C(i&0), defines A as the full contraction between B and C, indifferent of the actual degree of B and C. More...
|
|
Index | operator/ (const size_t _span) const |
| : Allow the creation of Indices covering an x-th fraction of the indices. E.g. A(i&0) = B(i/2, j/2) * C(j&0), defines A as the contraction between the symmetric matrification of B and the vectorisation of C, indifferent of the actual degree of B and C. More...
|
|
Index & | operator= (const Index &)=default |
| Indices are default assignable. More...
|
|
Index | operator^ (const size_t _span) const |
| : Allow the creation of Indices covering more than one dimension using the power operator. E.g. A(i^2) = B(i^2) + C(i^2), defines A as the entriewise sum of the matrices B and C. More...
|
|
void | set_span (const size_t _degree) |
| Returns the span this index actually represents in a tensor of given order. More...
|
|
Class used to represent indices that can be used to write tensor calculations in index notation.
The xerus::Index class is used to write indexed tensor expressen, e.g. A(i,j)*B(j,k). Here i,j,k are of type xerus::Index. The Index class provides numerous information used internally. As an enduser only the basic constructors and the ^, &, and / operators should of interest.
Definition at line 43 of file index.h.