annotate scripts/specfun/pow2.m @ 9141:c1fff751b5a8

Update section 17.1 (Utility Functions) of arith.txi Split section into "Exponents and Logarithms" and "Utility Functions" Use Tex in many more of the doc strings for pretty printing in pdf format.
author Rik <rdrider0-list@yahoo.com>
date Mon, 20 Apr 2009 17:16:09 -0700
parents eb63fbe60fab
children 1231b1762a9a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8920
eb63fbe60fab update copyright notices
John W. Eaton <jwe@octave.org>
parents: 8517
diff changeset
1 ## Copyright (C) 1995, 1996, 1999, 2000, 2002, 2004, 2005, 2006, 2007,
eb63fbe60fab update copyright notices
John W. Eaton <jwe@octave.org>
parents: 8517
diff changeset
2 ## 2008, 2009 Kurt Hornik
3426
f8dde1807dee [project @ 2000-01-13 08:40:00 by jwe]
jwe
parents: 3407
diff changeset
3 ##
3922
38c61cbf086c [project @ 2002-05-01 06:48:35 by jwe]
jwe
parents: 3456
diff changeset
4 ## This file is part of Octave.
38c61cbf086c [project @ 2002-05-01 06:48:35 by jwe]
jwe
parents: 3456
diff changeset
5 ##
38c61cbf086c [project @ 2002-05-01 06:48:35 by jwe]
jwe
parents: 3456
diff changeset
6 ## Octave is free software; you can redistribute it and/or modify it
38c61cbf086c [project @ 2002-05-01 06:48:35 by jwe]
jwe
parents: 3456
diff changeset
7 ## under the terms of the GNU General Public License as published by
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6046
diff changeset
8 ## the Free Software Foundation; either version 3 of the License, or (at
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6046
diff changeset
9 ## your option) any later version.
3426
f8dde1807dee [project @ 2000-01-13 08:40:00 by jwe]
jwe
parents: 3407
diff changeset
10 ##
3922
38c61cbf086c [project @ 2002-05-01 06:48:35 by jwe]
jwe
parents: 3456
diff changeset
11 ## Octave is distributed in the hope that it will be useful, but
2537
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3426
f8dde1807dee [project @ 2000-01-13 08:40:00 by jwe]
jwe
parents: 3407
diff changeset
14 ## General Public License for more details.
f8dde1807dee [project @ 2000-01-13 08:40:00 by jwe]
jwe
parents: 3407
diff changeset
15 ##
2537
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
16 ## You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6046
diff changeset
17 ## along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6046
diff changeset
18 ## <http://www.gnu.org/licenses/>.
2537
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
19
3321
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
20 ## -*- texinfo -*-
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
21 ## @deftypefn {Mapping Function} {} pow2 (@var{x})
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
22 ## @deftypefnx {Mapping Function} {} pow2 (@var{f}, @var{e})
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
23 ## With one argument, computes
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
24 ## @iftex
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
25 ## @tex
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
26 ## $2^x$
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
27 ## @end tex
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
28 ## @end iftex
8517
81d6ab3ac93c Allow documentation tobe built for other formats than tex and info
sh@sh-laptop
parents: 7742
diff changeset
29 ## @ifnottex
3321
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
30 ## 2 .^ x
8517
81d6ab3ac93c Allow documentation tobe built for other formats than tex and info
sh@sh-laptop
parents: 7742
diff changeset
31 ## @end ifnottex
9141
c1fff751b5a8 Update section 17.1 (Utility Functions) of arith.txi
Rik <rdrider0-list@yahoo.com>
parents: 8920
diff changeset
32 ## for each element of @var{x}.
c1fff751b5a8 Update section 17.1 (Utility Functions) of arith.txi
Rik <rdrider0-list@yahoo.com>
parents: 8920
diff changeset
33 ##
c1fff751b5a8 Update section 17.1 (Utility Functions) of arith.txi
Rik <rdrider0-list@yahoo.com>
parents: 8920
diff changeset
34 ## With two arguments, returns
3321
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
35 ## @iftex
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
36 ## @tex
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
37 ## $f \cdot 2^e$.
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
38 ## @end tex
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
39 ## @end iftex
8517
81d6ab3ac93c Allow documentation tobe built for other formats than tex and info
sh@sh-laptop
parents: 7742
diff changeset
40 ## @ifnottex
3321
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
41 ## f .* (2 .^ e).
8517
81d6ab3ac93c Allow documentation tobe built for other formats than tex and info
sh@sh-laptop
parents: 7742
diff changeset
42 ## @end ifnottex
9141
c1fff751b5a8 Update section 17.1 (Utility Functions) of arith.txi
Rik <rdrider0-list@yahoo.com>
parents: 8920
diff changeset
43 ## @seealso{log2, nextpow2}
3321
6923abb04e16 [project @ 1999-10-26 18:15:30 by jwe]
jwe
parents: 2537
diff changeset
44 ## @end deftypefn
2537
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
45
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
46 ## Author: AW <Andreas.Weingessel@ci.tuwien.ac.at>
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
47 ## Created: 17 October 1994
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
48 ## Adapted-By: jwe
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
49
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
50 function y = pow2 (f, e)
3426
f8dde1807dee [project @ 2000-01-13 08:40:00 by jwe]
jwe
parents: 3407
diff changeset
51
2537
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
52 if (nargin == 1)
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
53 y = 2 .^ f;
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
54 elseif (nargin == 2)
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
55 y = f .* (2 .^ e);
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
56 else
6046
34f96dd5441b [project @ 2006-10-10 16:10:25 by jwe]
jwe
parents: 5642
diff changeset
57 print_usage ();
2537
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
58 endif
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
59
80b982e7f4b1 [project @ 1996-11-19 21:15:06 by jwe]
jwe
parents:
diff changeset
60 endfunction
7385
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
61
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
62 %!test
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
63 %! x = [3, 0, -3];
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
64 %! v = [8, 1, .125];
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
65 %! assert(all (abs (pow2 (x) - v) < sqrt (eps)));
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
66
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
67 %!test
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
68 %! x = [3, 0, -3, 4, 0, -4, 5, 0, -5];
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
69 %! y = [-2, -2, -2, 1, 1, 1, 3, 3, 3];
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
70 %! z = x .* (2 .^ y);
7742
95ecf219a582 fix tests
John W. Eaton <jwe@octave.org>
parents: 7385
diff changeset
71 %! assert(all (abs (pow2 (x,y) - z) < sqrt (eps)));
7385
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
72
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
73 %!error pow2();
8b7b4f58199f [project @ 2008-01-15 20:49:09 by jwe]
jwe
parents: 7017
diff changeset
74