00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
#ifndef __NESTEDSUMS_SSUM_TO_INFINITY_H__
00027
#define __NESTEDSUMS_SSUM_TO_INFINITY_H__
00028
00029
#include "ginac/ginac.h"
00030
00031
namespace nestedsums {
00032
00034
00042 class Ssum_to_Infinity :
public virtual Ssum
00043 {
00044 GINAC_DECLARE_REGISTERED_CLASS(
Ssum_to_Infinity,
Ssum)
00045
00046
00047
public:
00048
explicit Ssum_to_Infinity(
const GiNaC::ex & llc);
00049
00050
00051
public:
00052
void archive(GiNaC::archive_node &node)
const;
00053
void read_archive(
const GiNaC::archive_node &node, GiNaC::lst &sym_lst);
00054
00055 GiNaC::ex
eval(
int level = 0)
const;
00056
00057 };
00058
00059 GINAC_DECLARE_UNARCHIVER(
Ssum_to_Infinity);
00060
00066 inline GiNaC::ex
create_Ssum_to_Infinity(
const GiNaC::ex & llc)
00067 {
00068
return (
new Ssum_to_Infinity(llc))->setflag(GiNaC::status_flags::dynallocated);
00069 }
00070
00071 }
00072
00073
namespace GiNaC {
00074
00075
00076
template<>
inline const nestedsums::Ssum_to_Infinity &ex_to<nestedsums::Ssum_to_Infinity>(
const ex &e)
00077 {
00078
return dynamic_cast<const nestedsums::Ssum_to_Infinity &>(*e.bp);
00079 }
00080
00081 }
00082
00083
#endif // ndef __NESTEDSUMS_SSUM_TO_INFINITY_H__