26#ifndef __NESTEDSUMS_BASIC_LETTER_H__
27#define __NESTEDSUMS_BASIC_LETTER_H__
29#include "ginac/ginac.h"
51 GINAC_DECLARE_REGISTERED_CLASS(
basic_letter, GiNaC::basic)
55 basic_letter(
const GiNaC::ex & l,
const GiNaC::ex & d,
const GiNaC::ex & o);
56 basic_letter(
const GiNaC::ex & l,
const GiNaC::ex & d,
const GiNaC::ex & o,
const GiNaC::ex & i);
60 void archive(GiNaC::archive_node &node)
const override;
61 void read_archive(
const GiNaC::archive_node &node, GiNaC::lst &sym_lst)
override;
63 unsigned return_type(
void)
const override {
return GiNaC::return_types::noncommutative; }
65 void print(
const GiNaC::print_context & c,
unsigned level = 0)
const override;
66 unsigned precedence(
void)
const override {
return 50;}
67 GiNaC::ex
eval()
const override;
68 GiNaC::ex subs(
const GiNaC::exmap & m,
unsigned options = 0)
const override;
71 GiNaC::ex
eval_ncmul(
const GiNaC::exvector & v)
const override;
72 GiNaC::ex derivative(
const GiNaC::symbol & s)
const override;
73 unsigned calchash(
void)
const override;
77 virtual GiNaC::ex
concat(
const GiNaC::ex & l)
const;
79 virtual GiNaC::ex expand_members(
int level = 0)
const;
91 GiNaC::ex
set_index(
const GiNaC::ex & i)
const;
93 GiNaC::ex
shift_index(
const GiNaC::ex & new_index)
const;
167 return (
new basic_letter(l,d,o))->setflag(GiNaC::status_flags::dynallocated);
175inline GiNaC::ex
create_basic_letter(
const GiNaC::ex & l,
const GiNaC::ex & d,
const GiNaC::ex & o,
const GiNaC::ex & i)
177 return (
new basic_letter(l,d,o,i))->setflag(GiNaC::status_flags::dynallocated);
180 GiNaC::ex
concat(
const basic_letter & l1,
const basic_letter & l2);
A basic_letter is an element of an alphabet.
Definition basic_letter.h:50
GiNaC::ex eval_ncmul(const GiNaC::exvector &v) const override
Definition basic_letter.cc:211
GiNaC::ex get_offset(void) const
Definition basic_letter.h:145
GiNaC::ex degree_minus_one(void) const
Definition basic_letter.cc:562
virtual GiNaC::ex eval_explicit() const
Definition basic_letter.cc:479
GiNaC::ex index_eq_one(void) const
Definition basic_letter.cc:515
GiNaC::ex shift_index(const GiNaC::ex &new_index) const
Definition basic_letter.cc:529
GiNaC::ex eval() const override
Definition basic_letter.cc:184
GiNaC::ex degree_plus_one(void) const
Definition basic_letter.cc:572
GiNaC::ex get_scale(void) const
Definition basic_letter.h:125
GiNaC::ex get_index(void) const
Definition basic_letter.h:155
GiNaC::ex get_degree(void) const
Definition basic_letter.h:135
GiNaC::ex forget_index(void) const
Definition basic_letter.cc:501
GiNaC::ex shift_plus_one(void) const
Definition basic_letter.cc:542
virtual GiNaC::ex concat_speedy(const GiNaC::ex &l) const
Definition basic_letter.cc:367
GiNaC::ex shift_minus_one(void) const
Definition basic_letter.cc:552
friend GiNaC::ex concat(const basic_letter &l1, const basic_letter &l2)
Definition basic_letter.cc:592
GiNaC::ex set_index(const GiNaC::ex &i) const
Definition basic_letter.cc:491
Definition basic_letter.cc:35
GiNaC::ex create_basic_letter(const GiNaC::ex &l, const GiNaC::ex &d, const GiNaC::ex &o)
Definition basic_letter.h:165
GiNaC::ex concat(const basic_letter &l1, const basic_letter &l2)
Definition basic_letter.cc:592