00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
#ifndef __NESTEDSUMS_LETTER_H__
00027
#define __NESTEDSUMS_LETTER_H__
00028
00029
#include "ginac/ginac.h"
00030
00031
namespace nestedsums {
00032
00034
00044 class letter :
public basic_letter
00045 {
00046
00047 GINAC_DECLARE_REGISTERED_CLASS(
letter,
basic_letter)
00048
00049
00050
public:
00051
letter(
const GiNaC::ex & l,
const GiNaC::ex & d);
00052
letter(
const GiNaC::ex & l,
const GiNaC::ex & d,
const GiNaC::ex & i);
00053
00054
00055
public:
00056
void archive(GiNaC::archive_node &node)
const;
00057
void read_archive(
const GiNaC::archive_node &node, GiNaC::lst &sym_lst);
00058
00059 GiNaC::return_type_t return_type_tinfo()
const;
00060
00061
void print(
const GiNaC::print_context & c,
unsigned level = 0)
const;
00062 GiNaC::ex
eval(
int level = 0)
const;
00063
00064 GiNaC::ex
concat_speedy(
const GiNaC::ex & l)
const;
00065 };
00066
00067 GINAC_DECLARE_UNARCHIVER(
letter);
00068
00074 inline GiNaC::ex
create_letter(
const GiNaC::ex & l,
const GiNaC::ex & d)
00075 {
00076
return (
new letter(l,d))->setflag(GiNaC::status_flags::dynallocated);
00077 }
00078
00084 inline GiNaC::ex
create_letter(
const GiNaC::ex & l,
const GiNaC::ex & d,
const GiNaC::ex & i)
00085 {
00086
return (
new letter(l,d,i))->setflag(GiNaC::status_flags::dynallocated);
00087 }
00088
00089 }
00090
00091
#endif // ndef __NESTEDSUMS_LETTER_H__