26#ifndef __NESTEDSUMS_Csum_H__
27#define __NESTEDSUMS_Csum_H__
29#include "ginac/ginac.h"
87 class Csum :
public GiNaC::basic
90 GINAC_DECLARE_REGISTERED_CLASS(
Csum, GiNaC::basic)
94 Csum(
const GiNaC::ex & nc,
const GiNaC::ex & llc);
98 void archive(GiNaC::archive_node &node)
const override;
99 void read_archive(
const GiNaC::archive_node &node, GiNaC::lst &sym_lst)
override;
101 unsigned return_type(
void)
const override {
return GiNaC::return_types::noncommutative; }
103 void print(
const GiNaC::print_context & c,
unsigned level = 0)
const override;
104 unsigned precedence(
void)
const override {
return 60;}
105 GiNaC::ex
eval()
const override;
106 GiNaC::ex subs(
const GiNaC::exmap & m,
unsigned options = 0)
const override;
109 GiNaC::ex
eval_ncmul(
const GiNaC::exvector & v)
const override;
110 GiNaC::ex derivative(
const GiNaC::symbol & s)
const override;
111 unsigned calchash(
void)
const override;
117 virtual GiNaC::ex expand_members(
int level = 0)
const;
134 friend GiNaC::ex convert_Csum_to_Ssum(
const GiNaC::ex & C);
135 friend GiNaC::ex convert_Csum_to_Zsum(
const GiNaC::ex & C);
142 GiNaC::ex letter_list;
145GINAC_DECLARE_UNARCHIVER(
Csum);
176 return letter_list.nops();
184inline GiNaC::ex
create_Csum(
const GiNaC::ex & nc,
const GiNaC::ex & llc)
186 return (
new Csum(nc,llc))->setflag(GiNaC::status_flags::dynallocated);
Csums involve a conjugation.
Definition Csum.h:88
unsigned get_depth(void) const
Definition Csum.h:174
GiNaC::ex eval_ncmul(const GiNaC::exvector &v) const override
Definition Csum.cc:176
GiNaC::ex get_letter_list(void) const
Definition Csum.h:164
virtual GiNaC::ex cast_to_Bsum(void) const
Definition Csum.cc:566
virtual GiNaC::ex decrease_letter_degree(int m) const
Definition Csum.cc:414
virtual GiNaC::ex move_x0_into_x1(void) const
Definition Csum.cc:451
virtual GiNaC::ex remove_x0(void) const
Definition Csum.cc:518
GiNaC::ex eval() const override
Definition Csum.cc:164
virtual GiNaC::ex move_x1_into_x2(void) const
Definition Csum.cc:488
GiNaC::ex get_index(void) const
Definition Csum.h:154
virtual GiNaC::ex convert_to_Ssum_exvector(const GiNaC::exvector &Z1) const
Definition Csum.cc:270
virtual GiNaC::ex remove_x0_and_x1(void) const
Definition Csum.cc:542
Definition basic_letter.cc:35
ex create_Csum_from_exvector(const ex &nc, const exvector &v)
Definition Csum.cc:626
ex convert_Csum_to_Zsum(const ex &C)
Definition Csum.cc:610
GiNaC::ex create_Csum(const GiNaC::ex &nc, const GiNaC::ex &llc)
Definition Csum.h:184
ex convert_Csum_to_Ssum(const ex &C)
Definition Csum.cc:594