Cadabra
Computer algebra system for field theory problems
Loading...
Searching...
No Matches
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::iterator cadabra::ProjectedAdjform::begin ( )

◆ begin() [2/2]

ProjectedAdjform::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::iterator cadabra::ProjectedAdjform::end ( )

◆ end() [2/2]

ProjectedAdjform::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 Symbol 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: