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