modified: makefile
[GalaxyCodeBases.git] / c_cpp / etc / calc / cal / bernpoly.cal
blobd462c8624f9dc099135f3519d415c05565edd088
1 /*
2  *  bernpoly- Bernoully polynomials B_n(z) for arbitrary n,z..
3  *
4  * Copyright (C) 2013 Christoph Zurnieden
5  *
6  * bernpoly is open software; you can redistribute it and/or modify it under
7  * the terms of the version 2.1 of the GNU Lesser General Public License
8  * as published by the Free Software Foundation.
9  *
10  * bernpoly is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
13  * Public License for more details.
14  *
15  * A copy of version 2.1 of the GNU Lesser General Public License is
16  * distributed with calc under the filename COPYING-LGPL.  You should have
17  * received a copy with calc; if not, write to Free Software Foundation, Inc.
18  * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19  *
20  * @(#) $Revision: 30.3 $
21  * @(#) $Id: bernpoly.cal,v 30.3 2013/08/11 08:41:38 chongo Exp $
22  * @(#) $Source: /usr/local/src/bin/calc/cal/RCS/bernpoly.cal,v $
23  *
24  * Under source code control:   2013/08/11 01:31:28
25  * File existed as early as:    2013
26  */
29 static resource_debug_level;
30 resource_debug_level = config("resource_debug", 0);
33 read -once zeta2
36 /* Idea by Don Zagier */
37 define bernpoly(n,z){
38   local h s c k;
39   if(isint(n) && n>=0){
40     h=0;s=0;c=-1;
41     for(k=1;k<=n+1;k++){
42       c*=1-(n+2)/k;
43       s+=z^n;
44       z++;
45       h+=c*s/k;
46     }
47     return h;
48   }
49   else return -n*hurwitzzeta(1-n,z);
54  * restore internal function from resource debugging
55  */
56 config("resource_debug", resource_debug_level),;
57 if (config("resource_debug") & 3) {
58     print "bernpoly(n,z)";