Cadabra Computer algebra system for field theory problems

## Description

Representation of a sum of tensor monomials, each having the same tensor names, but with different index positions.

As with AdjForm, the names of the tensors are not stored, only the index structure and the coefficient of each term.

#include <Adjform.hh>

## Public Types

using integer_type = int32_t

using map_t = std::map< Adjform, integer_type >

using iterator = map_t::iterator

using const_iterator = map_t::const_iterator

## Public Member Functions

void combine (const ProjectedAdjform &other, integer_type factor)

void multiply (const integer_type &k)

iterator begin ()

const_iterator begin () const

iterator end ()

const_iterator end () const

void clear ()

size_t size () const

size_t max_size () const

size_t n_indices () const

bool empty () const

void apply_young_symmetry (const std::vector< size_t > &indices, bool antisymmetric)

void apply_ident_symmetry (const std::vector< size_t > &positions, size_t n_indices)

void apply_ident_symmetry (const std::vector< size_t > &positions, size_t n_indices, const std::vector< std::vector< int >> &commutation_matrix)

void apply_cyclic_symmetry ()

map_t data

## Static Private Attributes

static integer_type zero = 0

## Constructor & Destructor Documentation

 cadabra::ProjectedAdjform::ProjectedAdjform ( const Adjform & adjform, const integer_type & value = 1 )

## Member Function Documentation

 void cadabra::ProjectedAdjform::add ( const Adjform & adjform, const integer_type & value = 1 )

 void cadabra::ProjectedAdjform::add_ ( const Adjform & adjform, const integer_type & value = 1 )
private

## ◆ apply_ident_symmetry() [1/2]

 void cadabra::ProjectedAdjform::apply_ident_symmetry ( const std::vector< size_t > & positions, size_t n_indices )

## ◆ apply_ident_symmetry() [2/2]

 void cadabra::ProjectedAdjform::apply_ident_symmetry ( const std::vector< size_t > & positions, size_t n_indices, const std::vector< std::vector< int >> & commutation_matrix )

## ◆ apply_young_symmetry()

 void cadabra::ProjectedAdjform::apply_young_symmetry ( const std::vector< size_t > & indices, bool antisymmetric )

## ◆ set()

 void cadabra::ProjectedAdjform::set ( const Adjform & adjform, const integer_type & value = 1 )

## ◆ set_()

 void cadabra::ProjectedAdjform::set_ ( const Adjform & adjform, const integer_type & value = 1 )
private

friend

friend