Cadabra
Computer algebra system for field theory problems
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
cadabra::ProjectedAdjform Class Reference

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

 ProjectedAdjform ()
 
 ProjectedAdjform (const Adjform &adjform, const integer_type &value=1)
 
void combine (const ProjectedAdjform &other)
 
void combine (const ProjectedAdjform &other, integer_type factor)
 
ProjectedAdjformoperator+= (const ProjectedAdjform &other)
 
void multiply (const integer_type &k)
 
ProjectedAdjformoperator*= (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
 
const integer_typeget (const Adjform &adjform) const
 
void set (const Adjform &adjform, const integer_type &value=1)
 
void add (const Adjform &adjform, const integer_type &value=1)
 
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 ()
 

Private Member Functions

void set_ (const Adjform &adjform, const integer_type &value=1)
 
void add_ (const Adjform &adjform, const integer_type &value=1)
 

Private Attributes

map_t data
 

Static Private Attributes

static integer_type zero = 0
 

Friends

ProjectedAdjform operator+ (ProjectedAdjform lhs, const ProjectedAdjform &rhs)
 
ProjectedAdjform operator* (ProjectedAdjform lhs, const integer_type &rhs)
 

Member Typedef Documentation

◆ const_iterator

using cadabra::ProjectedAdjform::const_iterator = map_t::const_iterator

◆ integer_type

◆ iterator

using cadabra::ProjectedAdjform::iterator = map_t::iterator

◆ map_t

Constructor & Destructor Documentation

◆ ProjectedAdjform() [1/2]

cadabra::ProjectedAdjform::ProjectedAdjform ( )

◆ ProjectedAdjform() [2/2]

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

Member Function Documentation

◆ add()

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

◆ add_()

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

◆ apply_cyclic_symmetry()

void cadabra::ProjectedAdjform::apply_cyclic_symmetry ( )

◆ 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 
)

◆ begin() [1/2]

ProjectedAdjform::const_iterator cadabra::ProjectedAdjform::begin ( )

◆ begin() [2/2]

const_iterator cadabra::ProjectedAdjform::begin ( ) const

◆ clear()

void cadabra::ProjectedAdjform::clear ( )

◆ combine() [1/2]

void cadabra::ProjectedAdjform::combine ( const ProjectedAdjform other)

◆ combine() [2/2]

void cadabra::ProjectedAdjform::combine ( const ProjectedAdjform other,
integer_type  factor 
)

◆ empty()

bool cadabra::ProjectedAdjform::empty ( ) const

◆ end() [1/2]

ProjectedAdjform::const_iterator cadabra::ProjectedAdjform::end ( )

◆ end() [2/2]

const_iterator cadabra::ProjectedAdjform::end ( ) const

◆ get()

const ProjectedAdjform::integer_type & cadabra::ProjectedAdjform::get ( const Adjform adjform) const

◆ max_size()

size_t cadabra::ProjectedAdjform::max_size ( ) const

◆ multiply()

void cadabra::ProjectedAdjform::multiply ( const integer_type k)

◆ n_indices()

size_t cadabra::ProjectedAdjform::n_indices ( ) const

◆ operator*=()

ProjectedAdjform & cadabra::ProjectedAdjform::operator*= ( const integer_type k)

◆ operator+=()

ProjectedAdjform & cadabra::ProjectedAdjform::operator+= ( const ProjectedAdjform other)

◆ 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

◆ size()

size_t cadabra::ProjectedAdjform::size ( ) const

Friends And Related Function Documentation

◆ operator*

ProjectedAdjform operator* ( ProjectedAdjform  lhs,
const integer_type rhs 
)
friend

◆ operator+

ProjectedAdjform operator+ ( ProjectedAdjform  lhs,
const ProjectedAdjform rhs 
)
friend

Member Data Documentation

◆ data

map_t cadabra::ProjectedAdjform::data
private

◆ zero

ProjectedAdjform::integer_type cadabra::ProjectedAdjform::zero = 0
staticprivate

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