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