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