File: ChangeLog-5.17-special-functions

package info (click to toggle)
maxima 5.27.0-3
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 120,648 kB
  • sloc: lisp: 322,503; fortran: 14,666; perl: 14,343; tcl: 11,031; sh: 4,146; makefile: 2,047; ansic: 471; awk: 24; sed: 10
file content (187 lines) | stat: -rw-r--r-- 7,071 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
   Maxima 5.17 change log for special functions
   Compiled 2008-12-08
   by Dieter Kaiser

--------------------------------------------------------------------------------
Extensions and changes to the Factorial function:

 Maxima User function:     factorial(z)
 New Maxima User variable: factorial_expand

 - Complex float and complex bigfloat support added
 - Check for a negative integer or a real representation of an integer
 - Set $factlim to the value 100,000 to avoid unintentional overflow
 - Implementation of mirror symmetry
 - Expand factorial(n+m) where m is an integer
   The expansion depends on the Maxima User variable $factorial_expand.
   The functionality is comparable with the function minfactorial.
   But because the expansion is done by the simplifier we have no
   problems with nested expression.

 Related bugs:
 SF[1571099] handling of large factorials
 SF[1486452] minfactorial doesn't look inside "!"

--------------------------------------------------------------------------------
Changes to General factorial:

 Maxima User function: genfact(x,y,z):

 - Adding tests for the arguments of genfact(x,y,z).
   The algorithm of genfact(x,y,z) only works for the following range
   of the arguments: x, y, z positive integer and z <= x and y <= x/z.
   The tests for this range of values have been added. For integer
   values beyond this range a Maxima error is thrown. For all other
   numbers Maxima returns  a noun form.

 Related bug:
 SF [1093138] double factorial defn incorrect for noninteger operand

--------------------------------------------------------------------------------
Implementation of Double factorial

 New Maxima User function: double_factorial(z)
 New Maxima User variable: factorial_expand

 double_factorial is a generalization of genfact(x,y,z) for real and
 complex values. For an integer argument to double_factorial the
 function genfact(x,y,z) is called.

 - Numerical evaluation for integer, real and complex values in float
   and bigfloat precision
 - Implementation of the derivative
 - Mirror symmetry
 - Maxima Error for even negative integer
 - When $factorial_expand T expansion for factorial_double(2*k+z)
   and k an integer
 - Transformation to a Gamma function with $makegamma

 Related bug:
 SF [1093138] double factorial defn incorrect for noninteger operand

--------------------------------------------------------------------------------
Extensions and improvements of the Gamma function

 Maxima User function:     gamma(z)
 New Maxima User variable: gamma_expand

 - Adding code to evaluate complex bigfloats using the routine cbffac.
 - Detect a float or bigfloat representation of a negative integer.
 - Adding a test to check an overflow in the numerical routine
   gamma-lanczos.
 - Adding code for autoloading cbffac in max_ext.lisp
 - Simplify gamma(z+n) when n an integer e.g.
   gamma(z+1) = n * gamma(z)
   gamma(z+2) = n * (z+1) * gamma(z)
   gamma(z-1) = - gamma(z) / (1-n)
   gamma(z-2) = gamma(z) / ((1-n) * (2-n))
 - Do the extraction of the realpart and imagpart when we know we
   have a complex number.
 - Improved accuracy for float, bigfloat and complex bigfloat values.
 - reduce the default value of $gammalim to 10,000
 - $gammalim and $factlim now work indepently

 Related bugs:
 SF [2013650] gamma(250.0) returns non-number; gamma(-1.0) finite
 SF [2134791] Gamma ask for the sign of an expression

--------------------------------------------------------------------------------
Implementation of the Incomplete Gamma function

 New Maxima User function: gamma_incomplete(a,z)

 The following features are implemented:

 - Evaluation for real and complex numbers in double float and
   bigfloat precision
 - Special values for gamma_incomplete(a,0) and gamma_incomplete(a,inf)
 - When $gamma_expand T expand the following expressions:
   gamma_incomplete(0,z)
   gamma_incomplete(n+1/2)
   gamma_incomplete(1/2-n)
   gamma_incomplete(n,z)
   gamma_incomplete(-n,z)
   gamma_incomplete(a+n,z)
   gamma_incomplete(a-n,z)
 - Mirror symmetry
 - Derivative wrt the arguments a and z

--------------------------------------------------------------------------------
Implementation of the Generalized Incomplete Gamma function

 New Maxima User function: gamma_incomplete_generalized(a,z1,z2)

 The following features are implemented:

 - Evaluation for real and complex numbers in double float and
   bigfloat precision
 - Special values for:
   gamma_incomplete_generalized(a,z1,0)
   gamma_incomplete_generalized(a,0,z2),
   gamma_incomplete_generalized(a,z1,inf)
   gamma_incomplete_generalized(a,inf,z2)
   gamma_incomplete_generalized(a,0,inf)
   gamma_incomplete_generalized(a,x,x)
 - When $gamma_expand T and n an integer expand
   gamma_incomplete_generalized(a+n,z1,z2)
 - Implementation of Mirror symmetry
 - Derivative wrt the arguments a, z1 and z2

--------------------------------------------------------------------------------
Implementation of the Regularized Incomplete Gamma function

 New Maxima User function: gamma_incomplete_regularized(a,z)

 The following features are implemented:

 - Evaluation for real and complex numbers in double float and
   bigfloat precision
 - Special values for:
   gamma_incomplete_regularized(a,0)
   gamma_incomplete_regularized(0,z)
   gamma_incomplete_regularized(a,inf)
 - When $gamma_expand T and n a positive integer expansions for
   gamma_incomplete_regularized(n+1/2,z)
   gamma_incomplete_regularized(1/2-n,z)
   gamma_incomplete_regularized(n,z)
   gamma_incomplete_regularized(a+n,z)
   gamma_incomplete_regularized(a-n,z)
 - Derivative wrt the arguments a and z
 - Implementation of Mirror symmetry

--------------------------------------------------------------------------------
Implementation of the Logarithm of the Gamma function

 New Maxima User function: log_gamma(z).

 The following features are implemented:

 - Evaluation for real and complex values in float and bigfloat
   precision.
 - For positive integer values n transformation to log(factorial(n)).
 - Check for negative integers, float or bigfloat representation.
 - Simplify gamma_log(inf) -> inf

--------------------------------------------------------------------------------
Extension and implementation of the Error functions

 New Maxima User functions: erf(z)
                            erfc(z)
                            erfc(z)
                            erfi(z)
                            erf_generalized(z1,z2)

 New Maxima User flag: erf_representation

 The following features are implemented:

 - Real and complex evaluation in double float and bigfloat precision.
 - For numerical evaluation in double float precision the slatec
   routine slatec:derf is called. In all other cases the numerical
   routines of the Incomplete Gamma function are called.
 - Specific values for zero, one, inf and minf
 - Implementation of mirror symmetry
 - Transform into a representation in terms of the Error function erf
   when erf_representation is T
 - Odd reflection symmetry is implemented for the Error function erf