Mercurial > octave-antonio
annotate scripts/specfun/expint.m @ 16585:1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
* ellipj.cc: Fix demo, add validation tests.
* ellipke.m: Fix assert arguments, add tests.
* expint.m: Add tests.
author | Mike Miller <mtmiller@ieee.org> |
---|---|
date | Sun, 28 Apr 2013 17:08:11 -0400 |
parents | 2f766ceeb03e |
children | f423873d3275 |
rev | line source |
---|---|
16584
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
1 ## Copyright (C) 2006 Sylvain Pelissier <sylvain.pelissier@gmail.com> |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
2 ## |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
3 ## This program is free software; you can redistribute it and/or modify it under |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
4 ## the terms of the GNU General Public License as published by the Free Software |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
5 ## Foundation; either version 3 of the License, or (at your option) any later |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
6 ## version. |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
7 ## |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
8 ## This program is distributed in the hope that it will be useful, but WITHOUT |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
9 ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
10 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
11 ## details. |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
12 ## |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
13 ## You should have received a copy of the GNU General Public License along with |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
14 ## this program; if not, see <http://www.gnu.org/licenses/>. |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
15 |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
16 ## -*- texinfo -*- |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
17 ## @deftypefn {Function File} {@var{y} =} expint (@var{x}) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
18 ## Compute the exponential integral, |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
19 ## @verbatim |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
20 ## infinity |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
21 ## / |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
22 ## expint(x) = | exp(t)/t dt |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
23 ## / |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
24 ## x |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
25 ## @end verbatim |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
26 ## @seealso{expint_E1, expint_Ei} |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
27 ## @end deftypefn |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
28 |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
29 function y = expint(x) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
30 if (nargin != 1) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
31 print_usage; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
32 endif |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
33 y = expint_E1(x); |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
34 endfunction |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
35 |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
36 ## -*- texinfo -*- |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
37 ## @deftypefn {Function File} {@var{y} =} expint_E1 (@var{x}) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
38 ## Compute the exponential integral, |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
39 ## @verbatim |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
40 ## infinity |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
41 ## / |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
42 ## expint(x) = | exp(t)/t dt |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
43 ## / |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
44 ## x |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
45 ## @end verbatim |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
46 ## @seealso{expint, expint_Ei} |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
47 ## @end deftypefn |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
48 |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
49 function y = expint_E1(x) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
50 if (nargin != 1) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
51 print_usage; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
52 endif |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
53 y = x; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
54 y(imag(x) > 0 & imag(x) != 0) = -expint_Ei(-y(imag(x) > 0 & imag(x) != 0)) -i.*pi; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
55 y(imag(x) < 0 & imag(x) != 0) = -expint_Ei(-y(imag(x) < 0 & imag(x) != 0)) +i.*pi; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
56 y(real(x) >= 0 & imag(x)==0) = -expint_Ei(-y(real(x) >= 0 & imag(x)==0)); |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
57 y(real(x) < 0 & imag(x)==0) = -expint_Ei(-y(real(x) < 0 & imag(x)==0)) -i.*pi; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
58 endfunction |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
59 |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
60 ## -*- texinfo -*- |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
61 ## @deftypefn {Function File} {@var{y} =} expint_Ei (@var{x}) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
62 ## Compute the exponential integral, |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
63 ## @verbatim |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
64 ## infinity |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
65 ## / |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
66 ## expint_Ei(x) = - | exp(t)/t dt |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
67 ## / |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
68 ## -x |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
69 ## @end verbatim |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
70 ## @seealso{expint, expint_E1} |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
71 ## @end deftypefn |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
72 |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
73 function y = expint_Ei(x) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
74 if (nargin != 1) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
75 print_usage; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
76 endif |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
77 y = zeros(size(x)); |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
78 F = @(x) exp(-x)./x; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
79 s = prod(size(x)); |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
80 for t = 1:s; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
81 if(x(t)<0 && imag(x(t)) == 0) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
82 y(t) = -quad(F,-x(t),Inf); |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
83 else |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
84 if(abs(x(t)) > 2 && imag(x(t)) == 0) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
85 y(t) = expint_Ei(2) - quad(F,-x(t),-2); |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
86 else |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
87 if(abs(x(t)) >= 10) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
88 if(imag(x(t)) <= 0) |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
89 a1 = 4.03640; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
90 a2 = 1.15198; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
91 b1 = 5.03637; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
92 b2 = 4.19160; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
93 y(t) = -(x(t).^2 - a1.*x(t) + a2)./((x(t).^2-b1.*x(t)+b2).*(-x(t)).*exp(-x(t)))-i.*pi; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
94 else |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
95 y(t) = conj(expint_Ei(conj(x(t)))); |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
96 endif; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
97 ## Serie Expansion |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
98 else |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
99 for k = 1:100; |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
100 y(t) = y(t) + x(t).^k./(k.*factorial(k)); |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
101 endfor |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
102 y(t) = 0.577215664901532860606512090082402431 + log(x(t)) + y(t); |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
103 endif |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
104 endif |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
105 endif |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
106 endfor |
2f766ceeb03e
Add ellipj, ellipke, and expint functions from Octave Forge
Mike Miller <mtmiller@ieee.org>
parents:
diff
changeset
|
107 endfunction |
16585
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
108 |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
109 %% Test against A&S Table 5.1 |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
110 %!test |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
111 %! x = [5:5:50]'/100; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
112 %! gamma = 0.5772156649; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
113 %! y_exp = [0.9876375971; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
114 %! 0.9755453033; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
115 %! 0.9637156702; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
116 %! 0.9521414833; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
117 %! 0.9408157528; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
118 %! 0.9297317075; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
119 %! 0.9188827858; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
120 %! 0.9082626297; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
121 %! 0.8978650778; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
122 %! 0.8876841584 ]; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
123 %! y = (expint (x) + log(x) + gamma) ./ x; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
124 %! assert (y, y_exp, 1e-9); |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
125 %!test |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
126 %! x = [50:5:95]'/100; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
127 %! y_exp = [0.559773595; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
128 %! 0.503364081; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
129 %! 0.454379503; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
130 %! 0.411516976; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
131 %! 0.373768843; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
132 %! 0.340340813; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
133 %! 0.310596579; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
134 %! 0.284019269; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
135 %! 0.260183939; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
136 %! 0.238737524 ]; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
137 %! y = expint (x); |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
138 %! assert (y, y_exp, 1e-9); |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
139 %!test |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
140 %! x = [100:5:145]'/100; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
141 %! y_exp = [0.219383934; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
142 %! 0.201872813; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
143 %! 0.185990905; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
144 %! 0.171555354; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
145 %! 0.158408437; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
146 %! 0.146413373; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
147 %! 0.135450958; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
148 %! 0.125416844; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
149 %! 0.116219313; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
150 %! 0.107777440 ]; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
151 %! y = expint (x); |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
152 %! assert (y, y_exp, 1e-9); |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
153 %!test |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
154 %! x = [150:5:200]'/100; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
155 %! y_exp = [0.100019582; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
156 %! 0.092882108; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
157 %! 0.086308334; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
158 %! 0.080247627; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
159 %! 0.074654644; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
160 %! 0.069488685; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
161 %! 0.064713129; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
162 %! 0.060294967; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
163 %! 0.056204378; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
164 %! 0.052414380; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
165 %! 0.048900511 ]; |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
166 %! y = expint (x); |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
167 %! assert (y, y_exp, 1e-9); |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
168 |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
169 %% Test input validation |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
170 %!error expint () |
1a3bfb14b5da
Add and fix tests for ellipj, ellipke, and expint
Mike Miller <mtmiller@ieee.org>
parents:
16584
diff
changeset
|
171 %!error expint (1,2) |