Nestedsums library
helpers.h
Go to the documentation of this file.
1
8/*
9 * Copyright (C) 2001-2017 Stefan Weinzierl
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */
25
26#ifndef __NESTEDSUMS_HELPERS_H__
27#define __NESTEDSUMS_HELPERS_H__
28
29#include "ginac/ginac.h"
30
31namespace nestedsums {
32
33 GiNaC::ex nestedsums_helper_eval(const GiNaC::ex & expr);
34 GiNaC::ex nestedsums_helper_expand(const GiNaC::ex & expr, int level = 0);
35 GiNaC::ex nestedsums_helper_multiply_via_triangle(const GiNaC::ex & A, const GiNaC::ex & B,
36 const GiNaC::ex & expansion_parameter, int order);
37 GiNaC::ex nestedsums_helper_multiply_via_triangle_speedy(const GiNaC::ex & A, const GiNaC::ex & B,
38 const GiNaC::ex & expansion_parameter, int order);
39 GiNaC::ex nestedsums_helper_multiply_laurent(const GiNaC::ex & A, const GiNaC::ex & B,
40 const GiNaC::ex & expansion_parameter, int order);
41 GiNaC::ex nestedsums_helper_multiply_laurent_speedy(const GiNaC::ex & A, const GiNaC::ex & B,
42 const GiNaC::ex & expansion_parameter, int order);
43 GiNaC::ex nestedsums_helper_expand_tgamma_fct(const GiNaC::ex & a1, const GiNaC::ex & b1, const GiNaC::ex & a2, const GiNaC::ex & b2,
44 const GiNaC::ex & expansion_parameter, int order);
45 GiNaC::ex nestedsums_helper_expand_lst_tgamma_fct(const GiNaC::ex & ll1, const GiNaC::ex & ll2,
46 const GiNaC::ex & expansion_parameter, int order);
47
48 GiNaC::ex nestedsums_helper_expand_power(const GiNaC::ex & x, const GiNaC::ex & m, const GiNaC::ex & expansion_parameter, int order);
49 GiNaC::ex nestedsums_helper_series(const GiNaC::ex & f, const GiNaC::ex & expansion_parameter, int order);
50
51 GiNaC::ex nestedsums_helper_bernoulli(int n);
52
53 GiNaC::ex nestedsums_helper_lowering_op_geo_0(const GiNaC::ex & x, int m);
54 GiNaC::ex nestedsums_helper_lowering_op_geo_1(const GiNaC::ex & x, int m);
55
56 GiNaC::ex nestedsums_helper_arithmetic_sum_type_Z(const GiNaC::ex & n, const GiNaC::ex & m);
57 GiNaC::ex nestedsums_helper_arithmetic_sum_type_S(const GiNaC::ex & n, const GiNaC::ex & m);
58
59 int nestedsums_helper_get_degree(const GiNaC::ex & expr, const GiNaC::ex & eps);
60 int nestedsums_helper_ldegree(const GiNaC::ex & expr, const GiNaC::ex & eps);
61 GiNaC::ex nestedsums_helper_coeff(const GiNaC::ex & expr, const GiNaC::ex & eps, int n = 1);
62
63 GiNaC::exvector exvector_from_lst(const GiNaC::ex & l);
64 GiNaC::exvector reverse_exvector_from_lst(const GiNaC::ex & l);
65 GiNaC::exvector exvector_append_lst(const GiNaC::exvector & v, const GiNaC::ex & l);
66 GiNaC::exvector exvector_multiply_last_letter(const GiNaC::exvector & v, const GiNaC::ex & x);
67 GiNaC::exvector exvector_increase_last_degree(const GiNaC::exvector & v);
68
70 {
71 public :
72 bool operator() (const GiNaC::ex & a, const GiNaC::ex & b) const;
73 };
74
75 bool is_class_in_nestedsums(const GiNaC::ex & expr);
76 bool is_expr_in_sym_lst(const GiNaC::ex & expr, const GiNaC::lst & sym_lst);
77
78 GiNaC::ex nestedsums_helper_normalize(const GiNaC::ex & expr, const GiNaC::lst & sym_lst = _empty_list);
79 GiNaC::ex nestedsums_helper_sort(const GiNaC::ex & expr, const GiNaC::lst & sym_lst = _empty_list);
80
81 GiNaC::ex convert_Zsums_to_standard_form(const GiNaC::ex & expr, const GiNaC::lst & sym_lst = _empty_list);
82
84
85} // namespace nestedsums
86
87#endif // ndef __NESTEDSUMS_HELPERS_H__
88
Definition helpers.h:70
bool operator()(const GiNaC::ex &a, const GiNaC::ex &b) const
Definition helpers.cc:1063
Definition basic_letter.cc:35
bool is_class_in_nestedsums(const ex &expr)
Definition helpers.cc:1081
bool is_expr_in_sym_lst(const ex &expr, const lst &sym_lst)
Definition helpers.cc:1110
ex nestedsums_helper_lowering_op_geo_1(const ex &x, int m)
Definition helpers.cc:820
const lst _empty_list
Definition constants.h:60
ex nestedsums_helper_multiply_via_triangle_speedy(const ex &A, const ex &B, const ex &expansion_parameter, int order)
Definition helpers.cc:284
exvector exvector_multiply_last_letter(const exvector &v, const ex &x)
Definition helpers.cc:710
ex nestedsums_helper_coeff(const ex &expr, const ex &eps, int n)
Definition helpers.cc:992
ex nestedsums_helper_multiply_laurent(const ex &A, const ex &B, const ex &expansion_parameter, int order)
Definition helpers.cc:314
exvector exvector_increase_last_degree(const exvector &v)
Definition helpers.cc:731
ex nestedsums_helper_series(const ex &f, const ex &expansion_parameter, int order)
Definition helpers.cc:581
exvector reverse_exvector_from_lst(const ex &l)
Definition helpers.cc:655
ex nestedsums_helper_eval(const ex &expr)
Definition helpers.cc:45
ex nestedsums_helper_multiply_laurent_speedy(const ex &A, const ex &B, const ex &expansion_parameter, int order)
Definition helpers.cc:348
ex nestedsums_helper_normalize(const ex &expr, const lst &sym_lst)
Definition helpers.cc:1164
ex nestedsums_helper_multiply_via_triangle(const ex &A, const ex &B, const ex &expansion_parameter, int order)
Definition helpers.cc:253
ex nestedsums_helper_expand_lst_tgamma_fct(const ex &ll1, const ex &ll2, const ex &expansion_parameter, int order)
Definition helpers.cc:480
int nestedsums_helper_get_degree(const ex &expr, const ex &eps)
Definition helpers.cc:926
exvector exvector_from_lst(const ex &l)
Definition helpers.cc:623
ex nestedsums_helper_expand_tgamma_fct(const ex &a1, const ex &b1, const ex &a2, const ex &b2, const ex &expansion_parameter, int order)
Definition helpers.cc:413
ex nestedsums_helper_lowering_op_geo_0(const ex &x, int m)
Definition helpers.cc:797
ex nestedsums_helper_bernoulli(int n)
Definition helpers.cc:756
ex nestedsums_helper_arithmetic_sum_type_Z(const ex &n, const ex &m)
Definition helpers.cc:843
int nestedsums_helper_ldegree(const ex &expr, const ex &eps)
Definition helpers.cc:953
ex convert_Zsums_to_standard_form(const ex &expr, const lst &sym_lst)
Definition helpers.cc:1288
ex nestedsums_helper_arithmetic_sum_type_S(const ex &n, const ex &m)
Definition helpers.cc:866
exvector exvector_append_lst(const exvector &v, const ex &l)
Definition helpers.cc:682
ex nestedsums_helper_expand(const ex &expr, int level)
Definition helpers.cc:115
ex nestedsums_helper_sort(const ex &expr, const lst &sym_lst)
Definition helpers.cc:1273
ex nestedsums_helper_expand_power(const ex &x, const ex &m, const ex &expansion_parameter, int order)
Definition helpers.cc:893
void nestedsums_helper_clear_hashes(void)
Definition helpers.cc:1304