#! /bin/sh # # To apply this patch, cd to the top level Octave source directory and # run this file through /bin/sh. It will first remove any files that # have been deleted from the source distribution since the last # release and then update the sources with patch(1). # # Diffs for updating *.ps, *.dvi, *.info*, and *.html files are not # included because they can be recreated from the Texinfo files using # TeX, makeinfo, or texi2html. # # Diffs for updating parse.cc and y.tab.h are not included because # they can be recreated from the file parse.y using bison. # # Diffs for updating lex.cc are not included because it can be # recreated from lex.l using flex. # # John W. Eaton # jwe@bevo.che.wisc.edu # University of Wisconsin-Madison # Department of Chemical Engineering if test -f src/octave.cc ; then true else echo '***********************************************************' 1>&2 echo 'You must run this script in the top-level octave directory!' 1>&2 echo '***********************************************************' 1>&2 exit 1 fi ### ### Special commands should go here. ### echo 'patching existing files' patch -p1 << \PATCH_EOF diff -cNr octave-3.0.3/ChangeLog octave-3.0.4/ChangeLog *** octave-3.0.3/ChangeLog 2008-09-29 08:03:11.000000000 +0200 --- octave-3.0.4/ChangeLog 2009-04-01 10:43:25.000000000 +0200 *************** *** 1,3 **** --- 1,7 ---- + 2009-01-16 Jaroslav Hajek + + Version 3.0.4 released. + 2008-09-24 Jaroslav Hajek Version 3.0.3 released. diff -cNr octave-3.0.3/doc/ChangeLog octave-3.0.4/doc/ChangeLog *** octave-3.0.3/doc/ChangeLog 2008-09-29 08:03:11.000000000 +0200 --- octave-3.0.4/doc/ChangeLog 2009-04-01 10:43:25.000000000 +0200 *************** *** 1,3 **** --- 1,24 ---- + 2009-01-16 Jaroslav Hajek + + Version 3.0.4 released. + + 2008-12-26 Francesco Potortì + + * interpreter/matrix.txi (Rearranging Matrices): Add reference + to resize function. + + * interpreter/plot.txi (Plot Annotations): Add cross reference to + Text Properties. + (Two-Dimensional Plots): Update introduction to the axis function. + + * interpreter/signal.txi (Signal Processing): Add explanation of + what wisdom is. + + 2008-08-28 John W. Eaton + + * interpreter/plot.txi: Doc fixes suggested by Francesco Potorti` + . + 2008-09-24 Jaroslav Hajek Version 3.0.3 released. diff -cNr octave-3.0.3/doc/conf.texi octave-3.0.4/doc/conf.texi *** octave-3.0.3/doc/conf.texi 2008-09-24 10:31:16.000000000 +0200 --- octave-3.0.4/doc/conf.texi 2009-02-18 08:09:49.000000000 +0100 *************** *** 20,26 **** @set top_srcdir .. @set abs_top_srcdir /home/hajek/devel/octave/release-3-0-x-build @set OCTAVEHOME /usr/local ! @set VERSION 3.0.3 @set HAVE_COLAMD @set HAVE_CHOLMOD @set HAVE_UMFPACK --- 20,26 ---- @set top_srcdir .. @set abs_top_srcdir /home/hajek/devel/octave/release-3-0-x-build @set OCTAVEHOME /usr/local ! @set VERSION 3.0.4 @set HAVE_COLAMD @set HAVE_CHOLMOD @set HAVE_UMFPACK Files octave-3.0.3/doc/faq/Octave-FAQ.pdf and octave-3.0.4/doc/faq/Octave-FAQ.pdf differ diff -cNr octave-3.0.3/doc/faq/Octave-FAQ.texi octave-3.0.4/doc/faq/Octave-FAQ.texi *** octave-3.0.3/doc/faq/Octave-FAQ.texi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/faq/Octave-FAQ.texi 2009-02-18 07:57:46.000000000 +0100 *************** *** 975,981 **** @sc{Matlab}, however rethrow and lasterror are only available in Octave 2.9.10 and later. Note that using @code{try}/@code{catch} combined with @samp{rethrow ! (lasterror ())} can not guarentee that global variables will be correctly reset, as it won't catch user interrupts with Ctrl-C. For example --- 975,981 ---- @sc{Matlab}, however rethrow and lasterror are only available in Octave 2.9.10 and later. Note that using @code{try}/@code{catch} combined with @samp{rethrow ! (lasterror ())} can not guarantee that global variables will be correctly reset, as it won't catch user interrupts with Ctrl-C. For example diff -cNr octave-3.0.3/doc/interpreter/arith.texi octave-3.0.4/doc/interpreter/arith.texi *** octave-3.0.3/doc/interpreter/arith.texi 2008-10-03 12:17:32.000000000 +0200 --- octave-3.0.4/doc/interpreter/arith.texi 2009-04-01 11:00:26.000000000 +0200 *************** *** 963,969 **** column vector and returns a scalar. The result of the function should not depend on the order of the subscripts. ! The elements of the returned array that have no subscripts assoicated with them are set to zero. Defining @var{fillval} to some other value allows these values to be defined. --- 963,969 ---- column vector and returns a scalar. The result of the function should not depend on the order of the subscripts. ! The elements of the returned array that have no subscripts associated with them are set to zero. Defining @var{fillval} to some other value allows these values to be defined. *************** *** 995,1015 **** @table @code @item besselj ! Bessel functions of the first kind. @item bessely ! Bessel functions of the second kind. @item besseli ! Modified Bessel functions of the first kind. @item besselk ! Modified Bessel functions of the second kind. @item besselh Compute Hankel functions of the first (@var{k} = 1) or second (@var{k} ! = 2) kind. ! @end table ! ! If the argument @var{opt} is supplied, the result is scaled by the @code{exp (-I*@var{x})} for @var{k} = 1 or @code{exp (I*@var{x})} for ! @var{k} = 2. If @var{alpha} is a scalar, the result is the same size as @var{x}. If @var{x} is a scalar, the result is the same size as @var{alpha}. --- 995,1017 ---- @table @code @item besselj ! Bessel functions of the first kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(-abs(imag(x)))}. @item bessely ! Bessel functions of the second kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(-abs(imag(x)))}. @item besseli ! Modified Bessel functions of the first kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(-abs(real(x)))}. @item besselk ! Modified Bessel functions of the second kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(x)}. @item besselh Compute Hankel functions of the first (@var{k} = 1) or second (@var{k} ! = 2) kind. If the argument @var{opt} is supplied, the result is multiplied by @code{exp (-I*@var{x})} for @var{k} = 1 or @code{exp (I*@var{x})} for ! @var{k} = 2. ! @end table If @var{alpha} is a scalar, the result is the same size as @var{x}. If @var{x} is a scalar, the result is the same size as @var{alpha}. diff -cNr octave-3.0.3/doc/interpreter/convhull.eps octave-3.0.4/doc/interpreter/convhull.eps *** octave-3.0.3/doc/interpreter/convhull.eps 2008-09-24 10:32:13.000000000 +0200 --- octave-3.0.4/doc/interpreter/convhull.eps 2009-01-29 09:11:13.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: convhull.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:13 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: convhull.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:13 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (convhull.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:13 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (convhull.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:13 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,875 **** } ifelse 0.500 UL LTb ! 490 489 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 489 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 490 1324 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 1324 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 490 2159 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2159 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 490 2993 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2993 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 490 3828 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3828 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 490 4663 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 4663 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 543 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 543 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-3)] ] -46.7 MCshow 0.500 UL LTb ! 1604 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1604 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MCshow 0.500 UL LTb ! 2665 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2665 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MCshow 0.500 UL LTb ! 3726 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3726 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4787 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4787 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 5848 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5848 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 6909 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6909 140 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL LTb 0.500 UL LT0 ! 1.00 0.00 0.00 C 543 1078 M ! 3726 489 L ! 3183 589 V ! -53 206 V ! -53 203 V -53 202 V -53 198 V -53 195 V ! -53 191 V ! -53 186 V ! -53 182 V -53 176 V ! -54 170 V -53 164 V ! -53 157 V ! -53 151 V -53 143 V -53 135 V -53 127 V ! -53 118 V ! -53 110 V -53 101 V -53 92 V -53 82 V -53 72 V ! -53 63 V -53 52 V -53 42 V ! -53 32 V ! -53 22 V ! -53 11 V ! -53 1 V ! -3290 0 V ! -53 -1 V ! -53 -11 V ! -53 -22 V ! -53 -32 V -53 -42 V -53 -52 V ! -53 -63 V -53 -72 V -53 -82 V -53 -92 V -53 -101 V ! -53 -110 V ! -53 -118 V -53 -127 V -53 -135 V -53 -143 V ! -53 -151 V ! -53 -157 V -53 -164 V ! -54 -170 V ! 967 2641 L ! 914 2459 L ! 861 2273 L ! 808 2082 L ! 755 1887 L ! 702 1689 L ! 649 1487 L ! 596 1284 L ! 543 1078 L 1.000 UP stroke LT1 ! 0.00 0.00 1.00 C 543 1078 Pls ! 596 1284 Pls ! 649 1487 Pls ! 702 1689 Pls ! 755 1887 Pls ! 808 2082 Pls ! 861 2273 Pls ! 914 2459 Pls ! 967 2641 Pls ! 1020 2817 Pls ! 1074 2987 Pls ! 1127 3151 Pls ! 1180 3308 Pls ! 1233 3459 Pls ! 1286 3602 Pls ! 1339 3737 Pls ! 1392 3864 Pls ! 1445 3982 Pls ! 1498 4092 Pls ! 1551 4193 Pls ! 1604 4285 Pls ! 1657 4367 Pls ! 1710 4439 Pls ! 1763 4502 Pls ! 1816 4554 Pls ! 1869 4596 Pls ! 1922 4628 Pls ! 1975 4650 Pls ! 2028 4661 Pls ! 2081 4662 Pls ! 2135 4653 Pls ! 2188 4633 Pls ! 2241 4603 Pls ! 2294 4562 Pls ! 2347 4511 Pls ! 2400 4450 Pls ! 2453 4380 Pls ! 2506 4299 Pls ! 2559 4209 Pls ! 2612 4110 Pls ! 2665 4001 Pls ! 2718 3884 Pls ! 2771 3759 Pls ! 2824 3625 Pls ! 2877 3483 Pls ! 2930 3334 Pls ! 2983 3178 Pls ! 3036 3015 Pls ! 3089 2846 Pls ! 3142 2671 Pls ! 3196 2490 Pls ! 3249 2305 Pls ! 3302 2114 Pls ! 3355 1920 Pls ! 3408 1722 Pls ! 3461 1522 Pls ! 3514 1318 Pls ! 3567 1113 Pls ! 3620 905 Pls ! 3673 697 Pls ! 3726 489 Pls ! 3779 697 Pls ! 3832 905 Pls ! 3885 1113 Pls ! 3938 1318 Pls ! 3991 1522 Pls ! 4044 1722 Pls ! 4097 1920 Pls ! 4150 2114 Pls ! 4203 2305 Pls ! 4256 2490 Pls ! 4310 2671 Pls ! 4363 2846 Pls ! 4416 3015 Pls ! 4469 3178 Pls ! 4522 3334 Pls ! 4575 3483 Pls ! 4628 3625 Pls ! 4681 3759 Pls ! 4734 3884 Pls ! 4787 4001 Pls ! 4840 4110 Pls ! 4893 4209 Pls ! 4946 4299 Pls ! 4999 4380 Pls ! 5052 4450 Pls ! 5105 4511 Pls ! 5158 4562 Pls ! 5211 4603 Pls ! 5264 4633 Pls ! 5317 4653 Pls ! 5371 4662 Pls ! 5424 4661 Pls ! 5477 4650 Pls ! 5530 4628 Pls ! 5583 4596 Pls ! 5636 4554 Pls ! 5689 4502 Pls ! 5742 4439 Pls ! 5795 4367 Pls ! 5848 4285 Pls ! 5901 4193 Pls ! 5954 4092 Pls ! 6007 3982 Pls ! 6060 3864 Pls ! 6113 3737 Pls ! 6166 3602 Pls ! 6219 3459 Pls ! 6272 3308 Pls ! 6325 3151 Pls ! 6378 2987 Pls ! 6432 2817 Pls ! 6485 2641 Pls ! 6538 2459 Pls ! 6591 2273 Pls ! 6644 2082 Pls ! 6697 1887 Pls ! 6750 1689 Pls ! 6803 1487 Pls ! 6856 1284 Pls ! 6909 1078 Pls ! 0.500 UL ! LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL --- 543,888 ---- } ifelse 0.500 UL LTb ! 546 489 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 489 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 546 1323 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 1323 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 546 2158 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2158 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 546 2993 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2993 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 546 3828 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3828 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 546 4662 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 4662 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 599 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 599 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-3)] ] -46.7 MCshow 0.500 UL LTb ! 1655 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1655 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MCshow 0.500 UL LTb ! 2711 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2711 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MCshow 0.500 UL LTb ! 3768 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3768 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4824 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4824 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 5880 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5880 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 6936 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6936 140 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 0.500 UL LT0 ! 1.00 0.00 0.00 C 599 1078 M ! 3768 489 L ! 3168 589 V ! -53 205 V ! -52 204 V -53 202 V -53 198 V -53 195 V ! -53 190 V ! -52 187 V ! -53 181 V -53 176 V ! -53 170 V -53 164 V ! -53 158 V ! -52 150 V -53 143 V -53 135 V -53 127 V ! -53 119 V ! -52 109 V -53 101 V -53 92 V -53 82 V -53 72 V ! -52 63 V -53 52 V -53 42 V ! -53 33 V ! -53 21 V ! -53 12 V ! -52 0 V ! -3275 0 V ! -52 0 V ! -53 -12 V ! -53 -21 V ! -53 -33 V -53 -42 V -53 -52 V ! -52 -63 V -53 -72 V -53 -82 V -53 -92 V -53 -101 V ! -52 -109 V ! -53 -119 V -53 -127 V -53 -135 V -53 -143 V ! -52 -150 V ! -53 -158 V -53 -164 V ! -53 -170 V ! -53 -176 V ! 968 2459 L ! 916 2272 L ! 863 2082 L ! 810 1887 L ! 757 1689 L ! 704 1487 L ! 652 1283 L ! 599 1078 L ! % End plot #1 ! % Begin plot #2 1.000 UP stroke LT1 ! 0.00 0.00 1.00 C 599 1078 Pls ! 652 1283 Pls ! 704 1487 Pls ! 757 1689 Pls ! 810 1887 Pls ! 863 2082 Pls ! 916 2272 Pls ! 968 2459 Pls ! 1021 2640 Pls ! 1074 2816 Pls ! 1127 2986 Pls ! 1180 3150 Pls ! 1233 3308 Pls ! 1285 3458 Pls ! 1338 3601 Pls ! 1391 3736 Pls ! 1444 3863 Pls ! 1497 3982 Pls ! 1549 4091 Pls ! 1602 4192 Pls ! 1655 4284 Pls ! 1708 4366 Pls ! 1761 4438 Pls ! 1813 4501 Pls ! 1866 4553 Pls ! 1919 4595 Pls ! 1972 4628 Pls ! 2025 4649 Pls ! 2078 4661 Pls ! 2130 4661 Pls ! 2183 4652 Pls ! 2236 4632 Pls ! 2289 4602 Pls ! 2342 4561 Pls ! 2394 4510 Pls ! 2447 4449 Pls ! 2500 4379 Pls ! 2553 4298 Pls ! 2606 4208 Pls ! 2658 4109 Pls ! 2711 4001 Pls ! 2764 3884 Pls ! 2817 3758 Pls ! 2870 3624 Pls ! 2923 3483 Pls ! 2975 3334 Pls ! 3028 3177 Pls ! 3081 3015 Pls ! 3134 2845 Pls ! 3187 2670 Pls ! 3239 2490 Pls ! 3292 2304 Pls ! 3345 2114 Pls ! 3398 1920 Pls ! 3451 1722 Pls ! 3503 1521 Pls ! 3556 1318 Pls ! 3609 1112 Pls ! 3662 905 Pls ! 3715 697 Pls ! 3768 489 Pls ! 3820 697 Pls ! 3873 905 Pls ! 3926 1112 Pls ! 3979 1318 Pls ! 4032 1521 Pls ! 4084 1722 Pls ! 4137 1920 Pls ! 4190 2114 Pls ! 4243 2304 Pls ! 4296 2490 Pls ! 4348 2670 Pls ! 4401 2845 Pls ! 4454 3015 Pls ! 4507 3177 Pls ! 4560 3334 Pls ! 4612 3483 Pls ! 4665 3624 Pls ! 4718 3758 Pls ! 4771 3884 Pls ! 4824 4001 Pls ! 4877 4109 Pls ! 4929 4208 Pls ! 4982 4298 Pls ! 5035 4379 Pls ! 5088 4449 Pls ! 5141 4510 Pls ! 5193 4561 Pls ! 5246 4602 Pls ! 5299 4632 Pls ! 5352 4652 Pls ! 5405 4661 Pls ! 5457 4661 Pls ! 5510 4649 Pls ! 5563 4628 Pls ! 5616 4595 Pls ! 5669 4553 Pls ! 5722 4501 Pls ! 5774 4438 Pls ! 5827 4366 Pls ! 5880 4284 Pls ! 5933 4192 Pls ! 5986 4091 Pls ! 6038 3982 Pls ! 6091 3863 Pls ! 6144 3736 Pls ! 6197 3601 Pls ! 6250 3458 Pls ! 6302 3308 Pls ! 6355 3150 Pls ! 6408 2986 Pls ! 6461 2816 Pls ! 6514 2640 Pls ! 6567 2459 Pls ! 6619 2272 Pls ! 6672 2082 Pls ! 6725 1887 Pls ! 6778 1689 Pls ! 6831 1487 Pls ! 6883 1283 Pls ! 6936 1078 Pls ! % End plot #2 ! 0.500 UL ! LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/convhull.pdf and octave-3.0.4/doc/interpreter/convhull.pdf differ Files octave-3.0.3/doc/interpreter/convhull.png and octave-3.0.4/doc/interpreter/convhull.png differ diff -cNr octave-3.0.3/doc/interpreter/delaunay.eps octave-3.0.4/doc/interpreter/delaunay.eps *** octave-3.0.3/doc/interpreter/delaunay.eps 2008-09-24 10:32:15.000000000 +0200 --- octave-3.0.4/doc/interpreter/delaunay.eps 2009-01-29 09:11:14.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: delaunay.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:15 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: delaunay.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:14 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (delaunay.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:15 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (delaunay.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:14 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,822 **** } ifelse 0.500 UL LTb ! 490 280 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 280 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 490 763 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 763 M [ [(Helvetica) 140.0 0.0 true true 0 (0.1)] ] -46.7 MRshow 0.500 UL LTb ! 490 1247 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 1247 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 490 1730 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 1730 M [ [(Helvetica) 140.0 0.0 true true 0 (0.3)] ] -46.7 MRshow 0.500 UL LTb ! 490 2213 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2213 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 490 2697 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2697 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 490 3180 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3180 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 490 3664 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3664 M [ [(Helvetica) 140.0 0.0 true true 0 (0.7)] ] -46.7 MRshow 0.500 UL LTb ! 490 4147 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 4147 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 490 4630 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 4630 M [ [(Helvetica) 140.0 0.0 true true 0 (0.9)] ] -46.7 MRshow 0.500 UL LTb ! 1114 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1114 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.1)] ] -46.7 MCshow 0.500 UL LTb ! 1894 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1894 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MCshow 0.500 UL LTb ! 2673 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2673 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.3)] ] -46.7 MCshow 0.500 UL LTb ! 3453 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3453 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MCshow 0.500 UL LTb ! 4233 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4233 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 5013 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5013 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MCshow 0.500 UL LTb ! 5792 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5792 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.7)] ] -46.7 MCshow 0.500 UL LTb ! 6572 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6572 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL LTb 0.500 UL LT0 ! 0.00 0.00 1.00 C 1066 4637 M ! 316 -317 V ! 555 428 L ! 511 4209 V stroke LT1 ! 0.00 0.00 1.00 C 4197 2433 M ! 2323 290 L ! 555 428 L ! 4197 2433 L stroke LT2 ! 0.00 0.00 1.00 C 4197 2433 M ! 1382 4320 L ! 555 428 L ! 4197 2433 L stroke LT3 ! 0.00 0.00 1.00 C 5415 1386 M ! 4197 2433 L ! 2745 -61 V ! 5415 1386 L stroke LT4 ! 0.00 0.00 1.00 C 5415 1386 M ! 4197 2433 L ! 2323 290 L ! 5415 1386 L stroke LT5 ! 0.00 0.00 1.00 C 3839 3768 M ! 4197 2433 L ! 1382 4320 L ! 3839 3768 L stroke LT6 ! 0.00 0.00 1.00 C 3839 3768 M ! 1066 4637 L ! 5418 212 V ! 3839 3768 L stroke LT7 ! 0.00 0.00 1.00 C 3839 3768 M ! 1066 4637 L ! 316 -317 V ! 3839 3768 L stroke LT8 ! 0.00 0.00 1.00 C 6290 3965 M ! 194 884 V ! 6942 2372 L ! 6290 3965 L stroke LT0 ! 0.00 0.00 1.00 C 6290 3965 M ! 3839 3768 L ! 6484 4849 L ! 6290 3965 L stroke LT1 ! 0.00 0.00 1.00 C 6290 3965 M ! 4197 2433 L ! 2745 -61 V ! 6290 3965 L stroke LT2 ! 0.00 0.00 1.00 C 6290 3965 M ! 3839 3768 L ! 4197 2433 L ! 6290 3965 L 1.000 UP stroke LT3 ! 1.00 0.00 0.00 C 1382 4320 Star ! 6942 2372 Star ! 6290 3965 Star ! 2323 290 Star ! 4197 2433 Star ! 3839 3768 Star ! 5415 1386 Star ! 6484 4849 Star ! 1066 4637 Star ! 555 428 Star ! 0.500 UL ! LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL --- 543,857 ---- } ifelse 0.500 UL LTb ! 546 280 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 280 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 546 763 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 763 M [ [(Helvetica) 140.0 0.0 true true 0 (0.1)] ] -46.7 MRshow 0.500 UL LTb ! 546 1247 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 1247 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 546 1730 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 1730 M [ [(Helvetica) 140.0 0.0 true true 0 (0.3)] ] -46.7 MRshow 0.500 UL LTb ! 546 2213 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2213 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 546 2696 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2696 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 546 3180 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3180 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 546 3663 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3663 M [ [(Helvetica) 140.0 0.0 true true 0 (0.7)] ] -46.7 MRshow 0.500 UL LTb ! 546 4146 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 4146 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 546 4629 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 4629 M [ [(Helvetica) 140.0 0.0 true true 0 (0.9)] ] -46.7 MRshow 0.500 UL LTb ! 1167 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1167 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.1)] ] -46.7 MCshow 0.500 UL LTb ! 1943 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1943 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MCshow 0.500 UL LTb ! 2720 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2720 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.3)] ] -46.7 MCshow 0.500 UL LTb ! 3496 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3496 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MCshow 0.500 UL LTb ! 4272 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4272 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 5048 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5048 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MCshow 0.500 UL LTb ! 5825 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5825 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.7)] ] -46.7 MCshow 0.500 UL LTb ! 6601 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6601 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 0.500 UL LT0 ! 0.00 0.00 1.00 C 1119 4636 M ! 315 -317 V ! 611 428 L ! 508 4208 V ! % End plot #1 ! % Begin plot #2 stroke LT1 ! 0.00 0.00 1.00 C 4237 2432 M ! 2371 290 L ! 611 428 L ! 4237 2432 L ! % End plot #2 ! % Begin plot #3 stroke LT2 ! 0.00 0.00 1.00 C 4237 2432 M ! 1434 4319 L ! 611 428 L ! 4237 2432 L ! % End plot #3 ! % Begin plot #4 stroke LT3 ! 0.00 0.00 1.00 C 5449 1386 M ! 4237 2432 L ! 2732 -61 V ! 5449 1386 L ! % End plot #4 ! % Begin plot #5 stroke LT4 ! 0.00 0.00 1.00 C 5449 1386 M ! 4237 2432 L ! 2371 290 L ! 5449 1386 L ! % End plot #5 ! % Begin plot #6 stroke LT5 ! 0.00 0.00 1.00 C 3880 3767 M ! 4237 2432 L ! 1434 4319 L ! 3880 3767 L ! % End plot #6 ! % Begin plot #7 stroke LT6 ! 0.00 0.00 1.00 C 3880 3767 M ! 1119 4636 L ! 5394 212 V ! 3880 3767 L ! % End plot #7 ! % Begin plot #8 stroke LT7 ! 0.00 0.00 1.00 C 3880 3767 M ! 1119 4636 L ! 315 -317 V ! 3880 3767 L ! % End plot #8 ! % Begin plot #9 stroke LT8 ! 0.00 0.00 1.00 C 6320 3964 M ! 193 884 V ! 6969 2371 L ! 6320 3964 L ! % End plot #9 ! % Begin plot #10 stroke LT0 ! 0.00 0.00 1.00 C 6320 3964 M ! 3880 3767 L ! 6513 4848 L ! 6320 3964 L ! % End plot #10 ! % Begin plot #11 stroke LT1 ! 0.00 0.00 1.00 C 6320 3964 M ! 4237 2432 L ! 2732 -61 V ! 6320 3964 L ! % End plot #11 ! % Begin plot #12 stroke LT2 ! 0.00 0.00 1.00 C 6320 3964 M ! 3880 3767 L ! 4237 2432 L ! 6320 3964 L ! % End plot #12 ! % Begin plot #13 1.000 UP stroke LT3 ! 1.00 0.00 0.00 C 1434 4319 Star ! 6969 2371 Star ! 6320 3964 Star ! 2371 290 Star ! 4237 2432 Star ! 3880 3767 Star ! 5449 1386 Star ! 6513 4848 Star ! 1119 4636 Star ! 611 428 Star ! % End plot #13 ! 0.500 UL ! LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/delaunay.pdf and octave-3.0.4/doc/interpreter/delaunay.pdf differ Files octave-3.0.3/doc/interpreter/delaunay.png and octave-3.0.4/doc/interpreter/delaunay.png differ diff -cNr octave-3.0.3/doc/interpreter/errorbar.eps octave-3.0.4/doc/interpreter/errorbar.eps *** octave-3.0.3/doc/interpreter/errorbar.eps 2008-09-24 10:32:22.000000000 +0200 --- octave-3.0.4/doc/interpreter/errorbar.eps 2009-01-29 09:11:16.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: errorbar.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:22 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: errorbar.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:16 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (errorbar.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:22 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (errorbar.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:16 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,1359 **** } ifelse 0.500 UL LTb ! 574 280 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 280 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MRshow 0.500 UL LTb ! 574 1428 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 1428 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MRshow 0.500 UL LTb ! 574 2576 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 2576 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 574 3724 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 3724 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 574 4872 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 4872 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 574 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 574 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 1852 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1852 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 3129 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3129 140 M [ [(Helvetica) 140.0 0.0 true true 0 (4)] ] -46.7 MCshow 0.500 UL LTb ! 4407 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4407 140 M [ [(Helvetica) 140.0 0.0 true true 0 (6)] ] -46.7 MCshow 0.500 UL LTb ! 5684 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5684 140 M [ [(Helvetica) 140.0 0.0 true true 0 (8)] ] -46.7 MCshow 0.500 UL LTb ! 6962 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6962 140 M [ [(Helvetica) 140.0 0.0 true true 0 (10)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL LTb 1.000 UP 0.500 UL LT0 ! 0.00 0.00 1.00 C 574 2815 M ! 0 -681 V ! -31 681 R 62 0 V ! 543 2134 M 62 0 V ! 33 698 R ! 0 164 V ! 607 2832 M 62 0 V ! -62 164 R 62 0 V ! 33 31 R ! 0 -114 V ! -31 114 R 62 0 V ! 671 2913 M 62 0 V ! 33 47 R ! 0 574 V ! 735 2960 M 62 0 V ! -62 574 R 62 0 V ! 33 -302 R ! 0 -155 V ! -31 155 R 62 0 V ! 799 3077 M 62 0 V ! 32 383 R ! 0 19 V ! -31 -19 R 62 0 V ! -62 19 R 62 0 V ! 33 201 R ! 0 -238 V ! -31 238 R 62 0 V ! 926 3442 M 62 0 V ! 33 403 R ! 0 85 V ! -31 -85 R 62 0 V ! -62 85 R 62 0 V ! 33 912 R ! 0 -276 V ! -31 276 R 62 0 V ! -62 -276 R 62 0 V ! 33 -146 R ! 0 237 V ! -31 -237 R 62 0 V ! -62 237 R 62 0 V ! 33 -271 R ! 0 210 V ! -31 -210 R 62 0 V ! -62 210 R 62 0 V ! 33 276 R ! 0 -247 V ! -31 247 R 62 0 V ! -62 -247 R 62 0 V ! 33 111 R ! 0 -271 V ! -31 271 R 62 0 V ! -62 -271 R 62 0 V ! 96 407 R ! 0 -45 V ! -31 45 R 62 0 V ! -62 -45 R 62 0 V ! 33 45 R ! 0 -175 V ! -31 175 R 62 0 V ! -62 -175 R 62 0 V ! 97 -19 R ! 0 170 V ! -31 -170 R 62 0 V ! -62 170 R 62 0 V ! 33 -325 R ! 0 349 V ! -31 -349 R 62 0 V ! -62 349 R 62 0 V 33 0 R ! 0 -28 V ! -31 28 R ! 1819 4872 L ! -62 -28 R 62 0 V ! 33 -138 R ! 0 -15 V ! -31 15 R 62 0 V ! -62 -15 R 62 0 V ! 32 -238 R ! 0 -75 V ! -31 75 R 62 0 V ! -62 -75 R 62 0 V ! 33 273 R ! 0 221 V ! -31 -221 R 62 0 V ! -62 221 R 62 0 V ! 33 -669 R ! 0 480 V ! -31 -480 R 62 0 V ! -62 480 R 62 0 V ! 33 -379 R ! 0 -199 V ! -31 199 R 62 0 V ! -62 -199 R 62 0 V ! 33 -187 R ! 0 -171 V ! -31 171 R 62 0 V ! -62 -171 R 62 0 V ! 33 -32 R ! 0 -279 V ! -31 279 R 62 0 V ! -62 -279 R 62 0 V ! 33 -79 R ! 0 228 V ! -31 -228 R 62 0 V ! -62 228 R 62 0 V ! 33 100 R ! 0 5 V ! -31 -5 R 62 0 V ! -62 5 R 62 0 V ! 33 -508 R ! 0 215 V ! -31 -215 R 62 0 V ! -62 215 R 62 0 V ! 32 -262 R ! 0 -234 V ! -31 234 R 62 0 V ! -62 -234 R 62 0 V ! 33 -614 R ! 0 595 V ! -31 -595 R 62 0 V ! -62 595 R 62 0 V ! 33 -471 R ! 0 182 V ! -31 -182 R 62 0 V ! -62 182 R 62 0 V ! 33 -334 R ! 0 -55 V ! -31 55 R 62 0 V ! -62 -55 R 62 0 V ! 33 -110 R ! 0 -464 V ! -31 464 R 62 0 V ! -62 -464 R 62 0 V ! 33 125 R ! 0 218 V ! -31 -218 R 62 0 V ! -62 218 R 62 0 V ! 33 -101 R ! 0 -374 V ! -31 374 R 62 0 V ! -62 -374 R 62 0 V ! 33 -130 R ! 2938 1598 L ! -31 -230 R 62 0 V ! -62 230 R 62 0 V ! 32 -268 R ! 0 -102 V ! -31 102 R 62 0 V ! -62 -102 R 62 0 V ! 33 -420 R ! 0 729 V ! 3034 808 M 62 0 V ! -62 729 R 62 0 V ! 33 -535 R ! 0 219 V ! -31 -219 R 62 0 V ! -62 219 R 62 0 V ! 33 -851 R ! 0 293 V ! 3162 370 M 62 0 V ! -62 293 R 62 0 V ! 33 -176 R ! 0 66 V ! -31 -66 R 62 0 V ! -62 66 R 62 0 V ! 33 -12 R ! 0 -261 V ! -31 261 R 62 0 V ! 3290 280 M 62 0 V ! 33 371 R ! 0 -371 V ! -31 371 R 62 0 V ! 3354 280 M 62 0 V ! 33 294 R ! 0 -294 V ! -31 294 R 62 0 V ! 3418 280 M 62 0 V ! 32 0 R ! 0 173 V ! 3481 280 M 62 0 V ! -62 173 R 62 0 V ! 33 -169 R ! 0 250 V ! 3545 284 M 62 0 V ! -62 250 R 62 0 V ! 33 -45 R ! 0 -209 V ! -31 209 R 62 0 V ! 3609 280 M 62 0 V ! 33 0 R ! 0 19 V ! -31 -19 R 62 0 V ! -62 19 R 62 0 V ! 33 -19 R ! 0 36 V ! -31 -36 R 62 0 V ! -62 36 R 62 0 V ! 33 -36 R ! 0 191 V ! 3801 280 M 62 0 V ! -62 191 R 62 0 V ! 33 -104 R ! 0 104 V ! 3865 367 M 62 0 V ! -62 104 R 62 0 V ! 33 101 R ! 0 50 V ! -31 -50 R 62 0 V ! -62 50 R 62 0 V ! 33 -42 R ! 0 611 V ! 3993 580 M 62 0 V ! -62 611 R ! 4055 1191 L ! 32 -378 R ! 0 339 V ! 4056 813 M 62 0 V ! -62 339 R 62 0 V ! 33 -183 R ! 0 254 V ! 4120 969 M 62 0 V ! -62 254 R 62 0 V ! 33 176 R ! 0 -493 V ! -31 493 R 62 0 V ! 4184 906 M 62 0 V ! 33 257 R ! 0 525 V ! -31 -525 R 62 0 V ! -62 525 R 62 0 V ! 33 344 R ! 0 -627 V ! -31 627 R 62 0 V ! -62 -627 R 62 0 V ! 33 546 R ! 0 -620 V ! -31 620 R 62 0 V ! -62 -620 R 62 0 V ! 33 970 R ! 0 158 V ! -31 -158 R 62 0 V ! -62 158 R 62 0 V ! 33 -148 R ! 0 219 V ! -31 -219 R 62 0 V ! -62 219 R 62 0 V ! 32 337 R ! 0 -651 V ! -31 651 R 62 0 V ! -62 -651 R 62 0 V ! 33 936 R ! 0 -232 V ! -31 232 R 62 0 V ! -62 -232 R 62 0 V ! 33 160 R ! 0 74 V ! -31 -74 R 62 0 V ! -62 74 R 62 0 V ! 33 144 R ! 0 98 V ! -31 -98 R 62 0 V ! -62 98 R 62 0 V ! 33 -6 R ! 0 360 V ! -31 -360 R 62 0 V ! -62 360 R 62 0 V ! 33 -287 R ! 0 14 V ! -31 -14 R 62 0 V ! -62 14 R 62 0 V ! 33 262 R ! 0 -264 V ! -31 264 R 62 0 V ! -62 -264 R 62 0 V ! 33 533 R ! 0 13 V ! -31 -13 R 62 0 V ! -62 13 R 62 0 V ! 32 55 R ! 0 425 V ! -31 -425 R 62 0 V ! -62 425 R 62 0 V ! 33 -155 R ! 0 -51 V ! -31 51 R ! 5204 4346 L ! -62 -51 R 62 0 V ! 33 -122 R ! 0 539 V ! -31 -539 R 62 0 V ! -62 539 R 62 0 V ! 33 -20 R ! 0 -337 V ! -31 337 R 62 0 V ! -62 -337 R 62 0 V ! 33 517 R ! 0 -77 V ! -31 77 R 62 0 V ! -62 -77 R 62 0 V ! 33 -86 R ! 0 163 V ! -31 -163 R 62 0 V ! -62 163 R 62 0 V ! 33 -30 R ! 0 -141 V ! -31 141 R 62 0 V ! -62 -141 R 62 0 V ! 33 171 R ! 0 -68 V ! -31 68 R 62 0 V ! -62 -68 R 62 0 V ! 33 -145 R ! 0 102 V ! -31 -102 R 62 0 V ! -62 102 R 62 0 V ! 96 -99 R ! 0 210 V ! -31 -210 R 62 0 V ! -62 210 R 62 0 V ! 33 -143 R ! 0 76 V ! -31 -76 R 62 0 V ! -62 76 R 62 0 V ! 33 -142 R ! 0 -46 V ! -31 46 R 62 0 V ! -62 -46 R 62 0 V ! 33 -125 R ! 0 -164 V ! -31 164 R 62 0 V ! -62 -164 R 62 0 V ! 33 -167 R ! 0 276 V ! -31 -276 R 62 0 V ! -62 276 R 62 0 V ! 33 -366 R ! 0 187 V ! -31 -187 R 62 0 V ! -62 187 R 62 0 V ! 33 35 R ! 0 -504 V ! -31 504 R 62 0 V ! -62 -504 R 62 0 V ! 32 23 R ! 0 -50 V ! -31 50 R 62 0 V ! -62 -50 R 62 0 V ! 33 -92 R ! 0 499 V ! -31 -499 R 62 0 V ! -62 499 R 62 0 V ! 33 -601 R ! 0 44 V ! -31 -44 R 62 0 V ! -62 44 R 62 0 V ! 33 -245 R ! 6387 3201 L ! -31 166 R 62 0 V ! -62 -166 R 62 0 V ! 33 197 R ! 0 -399 V ! -31 399 R 62 0 V ! -62 -399 R 62 0 V ! 33 131 R ! 0 221 V ! -31 -221 R 62 0 V ! -62 221 R 62 0 V ! 33 -1010 R ! 0 205 V ! -31 -205 R 62 0 V ! -62 205 R 62 0 V ! 33 29 R ! 0 -254 V ! -31 254 R ! 62 0 V ! -62 -254 R ! 62 0 V ! 32 130 R ! 0 -468 V ! -31 468 R ! 62 0 V ! -62 -468 R ! 62 0 V ! 33 -333 R ! 0 -87 V ! -31 87 R ! 62 0 V ! -62 -87 R ! 62 0 V ! 33 -272 R ! 0 541 V ! -31 -541 R ! 62 0 V ! -62 541 R ! 62 0 V ! 33 -282 R ! 0 330 V ! -31 -330 R ! 62 0 V ! -62 330 R ! 62 0 V ! 33 -658 R ! 0 134 V ! -31 -134 R ! 62 0 V ! -62 134 R ! 62 0 V ! 574 2576 Pls ! 638 2805 Pls ! 702 3032 Pls ! 766 3255 Pls ! 830 3470 Pls ! 893 3677 Pls ! 957 3872 Pls ! 1021 4055 Pls ! 1085 4223 Pls ! 1149 4375 Pls ! 1213 4508 Pls ! 1277 4622 Pls ! 1341 4716 Pls ! 1404 4788 Pls ! 1468 4839 Pls ! 1532 4866 Pls ! 1596 4871 Pls ! 1660 4853 Pls ! 1724 4812 Pls ! 1788 4749 Pls ! 1852 4664 Pls ! 1915 4558 Pls ! 1979 4432 Pls ! 2043 4288 Pls ! 2107 4127 Pls ! 2171 3950 Pls ! 2235 3760 Pls ! 2299 3557 Pls ! 2363 3345 Pls ! 2427 3125 Pls ! 2490 2900 Pls ! 2554 2671 Pls ! 2618 2442 Pls ! 2682 2214 Pls ! 2746 1989 Pls ! 2810 1771 Pls ! 2874 1560 Pls ! 2938 1359 Pls ! 3001 1171 Pls ! 3065 997 Pls ! 3129 838 Pls ! 3193 697 Pls ! 3257 575 Pls ! 3321 472 Pls ! 3385 391 Pls ! 3449 332 Pls ! 3512 294 Pls ! 3576 280 Pls ! 3640 289 Pls ! 3704 320 Pls ! 3768 374 Pls ! 3832 450 Pls ! 3896 548 Pls ! 3960 665 Pls ! 4024 802 Pls ! 4087 956 Pls ! 4151 1127 Pls ! 4215 1312 Pls ! 4279 1509 Pls ! 4343 1718 Pls ! 4407 1934 Pls ! 4471 2158 Pls ! 4535 2385 Pls ! 4598 2615 Pls ! 4662 2844 Pls ! 4726 3070 Pls ! 4790 3291 Pls ! 4854 3506 Pls ! 4918 3710 Pls ! 4982 3904 Pls ! 5046 4084 Pls ! 5109 4250 Pls ! 5173 4398 Pls ! 5237 4529 Pls ! 5301 4639 Pls ! 5365 4730 Pls ! 5429 4798 Pls ! 5493 4845 Pls ! 5557 4869 Pls ! 5621 4870 Pls ! 5684 4848 Pls ! 5748 4803 Pls ! 5812 4736 Pls ! 5876 4647 Pls ! 5940 4538 Pls ! 6004 4409 Pls ! 6068 4262 Pls ! 6132 4098 Pls ! 6195 3919 Pls ! 6259 3726 Pls ! 6323 3522 Pls ! 6387 3309 Pls ! 6451 3088 Pls ! 6515 2862 Pls ! 6579 2633 Pls ! 6643 2403 Pls ! 6706 2176 Pls ! 6770 1952 Pls ! 6834 1735 Pls ! 6898 1525 Pls ! 6962 1327 Pls 0.500 UL LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL --- 543,1363 ---- } ifelse 0.500 UL LTb ! 630 280 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 280 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MRshow 0.500 UL LTb ! 630 1428 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 1428 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MRshow 0.500 UL LTb ! 630 2576 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 2576 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 630 3723 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 3723 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 630 4871 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 4871 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 630 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 630 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 1902 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1902 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 3174 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3174 140 M [ [(Helvetica) 140.0 0.0 true true 0 (4)] ] -46.7 MCshow 0.500 UL LTb ! 4445 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4445 140 M [ [(Helvetica) 140.0 0.0 true true 0 (6)] ] -46.7 MCshow 0.500 UL LTb ! 5717 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5717 140 M [ [(Helvetica) 140.0 0.0 true true 0 (8)] ] -46.7 MCshow 0.500 UL LTb ! 6989 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6989 140 M [ [(Helvetica) 140.0 0.0 true true 0 (10)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 1.000 UP 0.500 UL LT0 ! 0.00 0.00 1.00 C 630 2704 M ! 0 -541 V ! -31 541 R 62 0 V ! 599 2163 M 62 0 V ! 33 399 R ! 0 74 V ! -31 -74 R 62 0 V ! -62 74 R 62 0 V ! 32 636 R ! 0 165 V ! 726 3272 M 62 0 V ! -62 165 R 62 0 V ! 33 21 R ! 0 70 V ! -31 -70 R 62 0 V ! -62 70 R 62 0 V ! 32 -531 R ! 0 633 V ! 853 2997 M 62 0 V ! -62 633 R 62 0 V ! 33 335 R ! 0 -29 V ! -31 29 R 62 0 V ! -62 -29 R 62 0 V ! 33 -320 R ! 0 282 V ! 981 3616 M 62 0 V ! -62 282 R 62 0 V ! 32 365 R ! 0 -501 V ! -31 501 R 62 0 V ! -62 -501 R 62 0 V ! 33 1041 R ! 0 -925 V ! -31 925 R 62 0 V ! -62 -925 R 62 0 V ! 32 437 R ! 0 201 V ! -31 -201 R 62 0 V ! -62 201 R 62 0 V ! 33 -251 R ! 0 271 V ! -31 -271 R 62 0 V ! -62 271 R 62 0 V ! 32 -123 R ! 0 379 V ! -31 -379 R 62 0 V ! -62 379 R 62 0 V ! 33 -334 R ! 0 284 V ! -31 -284 R 62 0 V ! -62 284 R 62 0 V ! 33 -201 R ! 0 313 V ! -31 -313 R 62 0 V ! -62 313 R 62 0 V ! 32 17 R ! 0 -153 V ! -31 153 R 62 0 V ! -62 -153 R 62 0 V ! 33 153 R ! 0 -107 V ! -31 107 R 62 0 V ! -62 -107 R 62 0 V ! 32 -98 R ! 0 205 V ! -31 -205 R 62 0 V ! -62 205 R 62 0 V 33 0 R ! 0 -140 V ! -31 140 R 62 0 V ! stroke 1742 4871 M ! -62 -140 R 62 0 V ! 33 -359 R ! 0 499 V ! -31 -499 R 62 0 V ! -62 499 R 62 0 V ! 96 0 R ! 0 -438 V ! -31 438 R 62 0 V ! -62 -438 R 62 0 V ! 32 438 R ! 0 -582 V ! -31 582 R 62 0 V ! -62 -582 R 62 0 V ! 33 -76 R ! 0 76 V ! -31 -76 R 62 0 V ! -62 76 R 62 0 V ! 33 420 R ! 0 -354 V ! -31 354 R 62 0 V ! -62 -354 R 62 0 V ! 32 -56 R ! 0 -275 V ! -31 275 R 62 0 V ! -62 -275 R 62 0 V ! 33 -21 R ! 0 637 V ! -31 -637 R 62 0 V ! -62 637 R 62 0 V ! 32 -977 R ! 0 -27 V ! -31 27 R 62 0 V ! -62 -27 R 62 0 V ! 33 -276 R ! 0 287 V ! -31 -287 R 62 0 V ! -62 287 R 62 0 V ! 33 -242 R ! 0 -238 V ! -31 238 R 62 0 V ! -62 -238 R 62 0 V ! 32 110 R ! 0 299 V ! -31 -299 R 62 0 V ! -62 299 R 62 0 V ! 33 -879 R ! 0 420 V ! -31 -420 R 62 0 V ! -62 420 R 62 0 V ! 32 -729 R ! 0 211 V ! -31 -211 R 62 0 V ! -62 211 R 62 0 V ! 33 341 R ! 0 -515 V ! -31 515 R 62 0 V ! -62 -515 R 62 0 V ! 32 204 R ! 0 -186 V ! -31 186 R 62 0 V ! -62 -186 R 62 0 V ! 33 -43 R ! 0 -397 V ! -31 397 R 62 0 V ! -62 -397 R 62 0 V ! 33 -233 R ! 0 -67 V ! -31 67 R 62 0 V ! -62 -67 R 62 0 V ! stroke 2887 1703 M ! 32 265 R ! 0 -184 V ! -31 184 R 62 0 V ! -62 -184 R 62 0 V ! 33 -69 R ! 0 -40 V ! -31 40 R 62 0 V ! -62 -40 R 62 0 V ! 32 -987 R ! 0 296 V ! 3015 688 M 62 0 V ! -62 296 R 62 0 V ! 33 346 R ! 0 27 V ! -31 -27 R 62 0 V ! -62 27 R 62 0 V ! 33 -457 R ! 0 -505 V ! -31 505 R 62 0 V ! 3143 395 M 62 0 V ! 32 371 R ! 0 -227 V ! -31 227 R 62 0 V ! 3206 539 M 62 0 V ! 33 72 R ! 0 -34 V ! -31 34 R 62 0 V ! -62 -34 R 62 0 V ! 32 59 R ! 0 -167 V ! -31 167 R 62 0 V ! 3333 469 M 62 0 V ! 33 -146 R ! 0 -43 V ! -31 43 R 62 0 V ! -62 -43 R 62 0 V ! 33 3 R ! 0 68 V ! -31 -68 R 62 0 V ! -62 68 R 62 0 V ! 96 -71 R ! 0 141 V ! 3588 280 M 62 0 V ! -62 141 R 62 0 V ! 32 -141 R ! 0 143 V ! 3651 280 M 62 0 V ! -62 143 R 62 0 V ! 33 -77 R ! 0 -66 V ! -31 66 R 62 0 V ! -62 -66 R 62 0 V ! 96 294 R ! 0 -28 V ! -31 28 R 62 0 V ! -62 -28 R 62 0 V ! 33 215 R ! 0 -378 V ! -31 378 R 62 0 V ! 3906 383 M 62 0 V ! 32 261 R ! 0 -186 V ! -31 186 R 62 0 V ! 3969 458 M 62 0 V ! 33 575 R ! 0 -595 V ! -31 595 R 62 0 V ! 4033 438 M 62 0 V ! 32 644 R ! 0 -259 V ! stroke 4127 823 M ! -31 259 R 62 0 V ! 4096 823 M 62 0 V ! 33 137 R ! 0 -135 V ! -31 135 R 62 0 V ! 4160 825 M 62 0 V ! 33 228 R ! 0 511 V ! -31 -511 R 62 0 V ! -62 511 R 62 0 V ! 32 4 R ! 0 246 V ! -31 -246 R 62 0 V ! -62 246 R 62 0 V ! 33 149 R ! 0 -116 V ! -31 116 R 62 0 V ! -62 -116 R 62 0 V ! 32 288 R ! 0 -390 V ! -31 390 R 62 0 V ! -62 -390 R 62 0 V ! 33 508 R ! 0 -12 V ! -31 12 R 62 0 V ! -62 -12 R 62 0 V ! 33 -288 R ! 0 837 V ! -31 -837 R 62 0 V ! -62 837 R 62 0 V ! 32 -144 R ! 0 -296 V ! -31 296 R 62 0 V ! -62 -296 R 62 0 V ! 33 203 R ! 0 428 V ! -31 -428 R 62 0 V ! -62 428 R 62 0 V ! 32 620 R ! 0 -408 V ! -31 408 R 62 0 V ! -62 -408 R 62 0 V ! 33 15 R ! 0 130 V ! -31 -130 R 62 0 V ! -62 130 R 62 0 V ! 33 6 R ! 0 42 V ! -31 -42 R 62 0 V ! -62 42 R 62 0 V ! 32 212 R ! 0 126 V ! -31 -126 R 62 0 V ! -62 126 R 62 0 V ! 33 224 R ! 0 -77 V ! -31 77 R 62 0 V ! -62 -77 R 62 0 V ! 32 240 R ! 0 288 V ! -31 -288 R 62 0 V ! -62 288 R 62 0 V ! 33 -296 R ! 0 96 V ! -31 -96 R 62 0 V ! -62 96 R 62 0 V ! 32 49 R ! 0 -221 V ! -31 221 R 62 0 V ! stroke 5239 4248 M ! -62 -221 R 62 0 V ! 33 75 R ! 0 597 V ! -31 -597 R 62 0 V ! -62 597 R 62 0 V ! 33 166 R ! 0 6 V ! -31 -6 R 62 0 V ! -62 6 R 62 0 V ! 32 0 R ! 0 -97 V ! -31 97 R 62 0 V ! -62 -97 R 62 0 V ! 96 84 R ! 0 13 V ! -31 -13 R ! 62 0 V ! -62 13 R 62 0 V ! 33 -173 R ! 0 173 V ! -31 -173 R 62 0 V ! -62 173 R 62 0 V ! 33 -139 R ! 0 139 V ! -31 -139 R 62 0 V ! -62 139 R 62 0 V ! 96 -127 R ! 0 127 V ! -31 -127 R 62 0 V ! -62 127 R 62 0 V ! 32 -375 R ! 0 375 V ! -31 -375 R 62 0 V ! -62 375 R 62 0 V ! 33 -77 R ! 0 -239 V ! -31 239 R 62 0 V ! -62 -239 R 62 0 V ! 33 200 R ! 0 -271 V ! -31 271 R 62 0 V ! -62 -271 R 62 0 V ! 32 -78 R ! 0 9 V ! -31 -9 R 62 0 V ! -62 9 R 62 0 V ! 33 -18 R ! 0 -103 V ! -31 103 R 62 0 V ! -62 -103 R 62 0 V ! 32 4 R ! 0 -733 V ! -31 733 R 62 0 V ! -62 -733 R 62 0 V ! 33 479 R ! 0 -283 V ! -31 283 R 62 0 V ! -62 -283 R 62 0 V ! 33 224 R ! 0 -351 V ! -31 351 R 62 0 V ! -62 -351 R 62 0 V ! 32 -97 R ! 0 380 V ! -31 -380 R 62 0 V ! -62 380 R 62 0 V ! 33 -613 R ! 0 -276 V ! -31 276 R 62 0 V ! -62 -276 R 62 0 V ! stroke 6448 3028 M ! 32 388 R ! 0 -769 V ! -31 769 R 62 0 V ! -62 -769 R 62 0 V ! 33 410 R ! 0 -200 V ! -31 200 R 62 0 V ! -62 -200 R 62 0 V ! 32 -197 R ! 0 -7 V ! -31 7 R 62 0 V ! -62 -7 R 62 0 V ! 33 -273 R ! 0 36 V ! -31 -36 R 62 0 V ! -62 36 R 62 0 V ! 33 122 R ! 0 -433 V ! -31 433 R ! 62 0 V ! -62 -433 R ! 62 0 V ! 32 -166 R ! 0 402 V ! -31 -402 R ! 62 0 V ! -62 402 R ! 62 0 V ! 33 -599 R ! 0 58 V ! -31 -58 R ! 62 0 V ! -62 58 R ! 62 0 V ! 32 -249 R ! 0 9 V ! -31 -9 R ! 62 0 V ! -62 9 R ! 62 0 V ! 33 -712 R ! 0 720 V ! 6958 848 M ! 62 0 V ! -62 720 R ! 62 0 V ! 630 2576 Pls ! 694 2805 Pls ! 757 3032 Pls ! 821 3254 Pls ! 884 3469 Pls ! 948 3676 Pls ! 1012 3872 Pls ! 1075 4054 Pls ! 1139 4222 Pls ! 1202 4374 Pls ! 1266 4507 Pls ! 1329 4621 Pls ! 1393 4715 Pls ! 1457 4787 Pls ! 1520 4838 Pls ! 1584 4865 Pls ! 1647 4870 Pls ! 1711 4852 Pls ! 1775 4811 Pls ! 1838 4748 Pls ! 1902 4663 Pls ! 1965 4557 Pls ! 2029 4431 Pls ! 2093 4287 Pls ! 2156 4126 Pls ! 2220 3949 Pls ! 2283 3759 Pls ! 2347 3557 Pls ! 2411 3344 Pls ! 2474 3125 Pls ! 2538 2899 Pls ! 2601 2671 Pls ! 2665 2442 Pls ! 2728 2213 Pls ! 2792 1989 Pls ! 2856 1770 Pls ! 2919 1560 Pls ! 2983 1359 Pls ! 3046 1171 Pls ! 3110 997 Pls ! 3174 838 Pls ! 3237 697 Pls ! 3301 575 Pls ! 3364 472 Pls ! 3428 391 Pls ! 3492 332 Pls ! 3555 294 Pls ! 3619 280 Pls ! 3682 289 Pls ! 3746 320 Pls ! 3810 374 Pls ! 3873 450 Pls ! 3937 548 Pls ! 4000 665 Pls ! 4064 802 Pls ! 4127 956 Pls ! 4191 1126 Pls ! 4255 1311 Pls ! 4318 1509 Pls ! 4382 1717 Pls ! 4445 1934 Pls ! 4509 2157 Pls ! 4573 2385 Pls ! 4636 2614 Pls ! 4700 2843 Pls ! 4763 3069 Pls ! 4827 3291 Pls ! 4891 3505 Pls ! 4954 3710 Pls ! 5018 3903 Pls ! 5081 4084 Pls ! 5145 4249 Pls ! 5208 4397 Pls ! 5272 4528 Pls ! 5336 4638 Pls ! 5399 4729 Pls ! 5463 4797 Pls ! 5526 4844 Pls ! 5590 4868 Pls ! 5654 4869 Pls ! 5717 4847 Pls ! 5781 4802 Pls ! 5844 4735 Pls ! 5908 4646 Pls ! 5972 4537 Pls ! 6035 4408 Pls ! 6099 4261 Pls ! 6162 4097 Pls ! 6226 3918 Pls ! 6290 3726 Pls ! 6353 3522 Pls ! 6417 3308 Pls ! 6480 3087 Pls ! 6544 2861 Pls ! 6607 2632 Pls ! 6671 2403 Pls ! 6735 2175 Pls ! 6798 1952 Pls ! 6862 1734 Pls ! 6925 1525 Pls ! 6989 1327 Pls ! % End plot #1 0.500 UL LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/errorbar.pdf and octave-3.0.4/doc/interpreter/errorbar.pdf differ Files octave-3.0.3/doc/interpreter/errorbar.png and octave-3.0.4/doc/interpreter/errorbar.png differ diff -cNr octave-3.0.3/doc/interpreter/errors.texi octave-3.0.4/doc/interpreter/errors.texi *** octave-3.0.3/doc/interpreter/errors.texi 2008-10-03 12:17:34.000000000 +0200 --- octave-3.0.4/doc/interpreter/errors.texi 2009-04-01 11:00:27.000000000 +0200 *************** *** 661,667 **** automatically in literal matrices. @item Octave:single-quote-string ! Print warning if a signle quote character is used to introduce a string constant. @item Octave:str-to-num --- 661,667 ---- automatically in literal matrices. @item Octave:single-quote-string ! Print warning if a single quote character is used to introduce a string constant. @item Octave:str-to-num diff -cNr octave-3.0.3/doc/interpreter/extended.eps octave-3.0.4/doc/interpreter/extended.eps *** octave-3.0.3/doc/interpreter/extended.eps 2008-09-24 10:32:30.000000000 +0200 --- octave-3.0.4/doc/interpreter/extended.eps 2009-01-29 09:11:19.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: extended.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:30 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: extended.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:19 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (extended.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:30 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (extended.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:19 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,690 **** } ifelse 0.500 UL LTb ! 490 280 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 280 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 490 1198 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 1198 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 490 2117 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2117 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 490 3035 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3035 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 490 3954 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3954 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 490 4872 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 4872 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 490 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 490 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 1569 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1569 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 2647 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2647 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 3726 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3726 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MCshow 0.500 UL LTb ! 4805 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4805 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 5883 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5883 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2.5)] ] -46.7 MCshow 0.500 UL LTb ! 6962 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6962 140 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL LTb 0.500 UL LT0 ! 0.00 0.00 1.00 C 490 280 M ! 22 52 V ! 21 52 V ! 22 51 V 21 52 V 22 52 V 21 52 V 22 51 V 22 52 V 21 51 V 22 51 V --- 543,700 ---- } ifelse 0.500 UL LTb ! 546 280 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 280 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 546 1198 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 1198 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 546 2116 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2116 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 546 3035 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3035 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 546 3953 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3953 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 546 4871 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 4871 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 546 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 546 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 1620 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1620 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 2694 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2694 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 3768 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3768 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MCshow 0.500 UL LTb ! 4841 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4841 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 5915 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5915 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2.5)] ] -46.7 MCshow 0.500 UL LTb ! 6989 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6989 140 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 0.500 UL LT0 ! 0.00 0.00 1.00 C 546 280 M 21 52 V 22 52 V + 21 51 V + 22 52 V 21 52 V 22 51 V + 21 52 V 22 52 V 21 51 V 22 51 V *************** *** 692,812 **** 22 51 V 21 51 V 22 51 V 22 50 V 21 51 V ! 22 50 V ! 21 51 V ! 22 50 V 21 50 V 22 49 V - 22 50 V 21 49 V 22 49 V ! 21 49 V ! 22 48 V ! 21 49 V 22 48 V 22 48 V ! 21 47 V 22 47 V 21 47 V - 22 47 V - 21 46 V 22 46 V 22 46 V 21 45 V ! 22 45 V 21 45 V 22 44 V 22 44 V - 21 44 V - 22 43 V 21 43 V 22 42 V 21 43 V - 22 41 V 22 42 V 21 41 V ! 22 40 V 21 40 V - 22 40 V - 21 39 V 22 39 V 22 39 V 21 38 V 22 38 V ! 21 37 V 22 37 V 21 36 V 22 36 V - 22 35 V 21 35 V - 22 35 V - 21 34 V 22 34 V 21 33 V 22 33 V - 22 32 V 21 32 V ! 22 32 V 21 31 V 22 31 V 21 30 V 22 30 V - 22 29 V 21 29 V ! 22 28 V 21 28 V 22 28 V 21 27 V 22 26 V - 22 27 V 21 26 V 22 25 V 21 25 V 22 24 V - 21 24 V - 22 24 V - 22 23 V 21 23 V 22 23 V 21 22 V ! 22 21 V ! 21 22 V ! 22 20 V 22 21 V 21 20 V ! 22 19 V 21 20 V 22 19 V ! 21 18 V 22 18 V 22 18 V ! 2755 4240 L 22 17 V 21 17 V - 22 16 V 21 16 V 22 16 V 22 15 V 21 15 V 22 15 V 21 14 V 22 14 V ! 22 14 V ! 21 13 V 22 13 V 21 13 V ! 22 12 V 21 12 V 22 12 V 22 12 V 21 11 V 22 11 V 21 11 V 22 10 V 21 10 V ! 22 10 V 22 10 V 21 9 V 22 10 V --- 702,823 ---- 22 51 V 21 51 V 22 51 V + 21 50 V + 22 51 V + 21 50 V 22 50 V 21 51 V ! 22 49 V ! 21 50 V 21 50 V 22 49 V 21 49 V 22 49 V ! 21 48 V 22 48 V + 21 48 V 22 48 V ! 21 48 V 22 47 V 21 47 V 22 46 V + 21 47 V 22 46 V 21 45 V ! 22 46 V 21 45 V 22 44 V + 21 45 V 22 44 V 21 43 V + 21 44 V 22 42 V 21 43 V 22 42 V + 21 42 V + 22 41 V 21 41 V ! 22 41 V 21 40 V 22 39 V + 21 40 V 22 39 V 21 38 V 22 38 V ! 21 38 V 22 37 V + 21 37 V + 22 36 V 21 36 V 22 36 V 21 35 V 22 34 V + 21 35 V 21 33 V + 22 34 V + 21 32 V 22 33 V 21 32 V ! 22 31 V 21 31 V 22 31 V 21 30 V 22 30 V 21 29 V ! 22 29 V 21 28 V 22 28 V + 21 28 V + 22 27 V 21 27 V 22 26 V 21 26 V 22 25 V 21 25 V + 21 25 V 22 24 V 21 23 V + 22 24 V + 21 22 V 22 23 V 21 22 V ! 22 22 V ! 21 21 V 22 21 V 21 20 V ! 22 20 V 21 20 V 22 19 V ! 21 19 V 22 18 V + 21 18 V 22 18 V ! stroke 2780 4222 M ! 21 17 V 22 17 V 21 17 V 21 16 V 22 16 V + 21 16 V 22 15 V 21 15 V 22 15 V 21 14 V 22 14 V ! 21 14 V 22 13 V 21 13 V ! 22 13 V 21 12 V 22 12 V + 21 12 V 22 12 V 21 11 V 22 11 V 21 11 V 22 10 V 21 10 V ! 21 10 V 22 10 V 21 9 V 22 10 V *************** *** 814,847 **** 22 8 V 21 9 V 22 8 V - 22 8 V 21 8 V ! 22 7 V 21 8 V 22 7 V 21 7 V 22 7 V - 22 6 V 21 7 V 22 6 V 21 6 V 22 6 V 21 6 V 22 5 V ! 22 6 V 21 5 V 22 5 V 21 5 V 22 5 V 21 4 V 22 5 V - 22 4 V 21 4 V 22 4 V 21 4 V 22 4 V 21 4 V ! 22 3 V 22 4 V 21 3 V 22 3 V --- 825,858 ---- 22 8 V 21 9 V 22 8 V 21 8 V ! 22 8 V 21 8 V 22 7 V 21 7 V 22 7 V 21 7 V + 22 7 V + 21 6 V 22 6 V 21 6 V 22 6 V 21 6 V 22 5 V ! 21 6 V 21 5 V 22 5 V 21 5 V 22 5 V 21 4 V 22 5 V 21 4 V 22 4 V 21 4 V 22 4 V 21 4 V ! 22 4 V ! 21 3 V 22 4 V 21 3 V 22 3 V *************** *** 849,969 **** 22 3 V 21 3 V 22 2 V ! 22 3 V 21 3 V 22 2 V 21 3 V 22 2 V 21 2 V 22 3 V 22 2 V 21 2 V 22 2 V 21 2 V 22 2 V 21 1 V 22 2 V - 22 2 V 21 1 V 22 2 V 21 1 V 22 2 V - 22 1 V - 21 2 V - 22 1 V 21 1 V - 22 1 V 21 1 V 22 1 V 22 2 V 21 1 V 22 1 V ! 21 0 V ! 22 1 V 21 1 V 22 1 V 22 1 V 21 1 V 22 0 V 21 1 V ! 22 1 V ! 5020 4858 L ! 22 1 V 22 1 V 21 0 V 22 1 V 21 0 V 22 1 V 21 0 V 22 1 V 22 0 V 21 0 V 22 1 V 21 0 V 22 1 V 21 0 V 22 0 V 22 1 V 21 0 V 22 0 V 21 0 V 22 1 V 21 0 V 22 0 V - 22 0 V - 21 1 V - 22 0 V 21 0 V 22 0 V 21 0 V 22 1 V - 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V - 21 1 V - 22 0 V - 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V ! 22 0 V ! 22 0 V ! 21 1 V ! 22 0 V 21 0 V 22 0 V 21 0 V - 22 0 V - 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V - 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V - 22 0 V - 21 1 V - 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V 22 0 V 21 0 V 22 0 V --- 860,979 ---- 22 3 V 21 3 V 22 2 V ! 21 3 V 21 3 V 22 2 V 21 3 V 22 2 V 21 2 V 22 3 V + 21 2 V 22 2 V 21 2 V 22 2 V 21 2 V + 22 1 V + 21 2 V 22 2 V 21 1 V 22 2 V 21 1 V 22 2 V 21 1 V 22 2 V 21 1 V 21 1 V 22 1 V + 21 1 V 22 2 V 21 1 V 22 1 V ! 21 1 V ! 22 0 V 21 1 V 22 1 V + 21 1 V 22 1 V 21 1 V 22 0 V 21 1 V ! stroke 5013 4856 M 22 1 V 21 0 V 22 1 V + 21 1 V + 22 0 V + 21 1 V 21 0 V 22 1 V 21 0 V 22 1 V + 21 0 V + 22 0 V + 21 1 V + 22 0 V + 21 1 V 22 0 V 21 0 V 22 1 V 21 0 V + 22 0 V + 21 0 V 22 1 V 21 0 V 22 0 V + 21 0 V 22 1 V 21 0 V + 21 0 V 22 0 V 21 0 V 22 1 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V 22 1 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V ! 22 1 V 21 0 V 22 0 V 21 0 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V 22 0 V + 21 0 V + 22 1 V + 21 0 V 22 0 V 21 0 V 22 0 V 21 0 V + 21 0 V 22 0 V 21 0 V 22 0 V + 21 0 V 22 0 V 21 0 V 22 0 V *************** *** 971,976 **** --- 981,987 ---- 22 0 V 21 0 V 22 0 V + 21 0 V 22 0 V 21 0 V 22 0 V *************** *** 978,1014 **** 22 0 V 21 0 V 22 0 V stroke LT1 ! 1.00 0.00 0.00 C 490 280 M ! 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 45 V - 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V - 22 46 V 21 46 V 22 46 V 21 46 V - 22 45 V - 21 46 V 22 46 V 22 46 V 21 46 V 22 46 V 21 46 V - 22 46 V 21 46 V 22 46 V 22 46 V 21 46 V 22 46 V --- 989,1024 ---- 22 0 V 21 0 V 22 0 V + 21 0 V + % End plot #1 + % Begin plot #2 stroke LT1 ! 1.00 0.00 0.00 C 546 280 M 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 45 V 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V + 21 45 V 22 46 V 21 46 V 22 46 V 21 46 V 21 46 V 22 46 V + 21 46 V 22 46 V 21 46 V 22 46 V *************** *** 1016,1033 **** 22 46 V 21 46 V 22 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V 22 46 V 21 46 V 22 46 V ! 21 45 V 22 46 V 21 46 V 22 46 V 22 46 V 21 46 V 22 46 V --- 1026,1051 ---- 22 46 V 21 46 V 22 46 V + 21 46 V + 22 46 V + 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V + 22 45 V + 21 46 V 22 46 V + 21 46 V + 21 46 V 22 46 V 21 46 V 22 46 V ! 21 46 V 22 46 V 21 46 V 22 46 V + 21 45 V 22 46 V 21 46 V 22 46 V *************** *** 1035,1054 **** 22 46 V 21 46 V 22 46 V 22 46 V 21 46 V 22 45 V 21 46 V 22 46 V 21 46 V - 22 46 V - 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V 22 45 V 21 46 V 22 46 V --- 1053,1072 ---- 22 46 V 21 46 V 22 46 V + 21 46 V 22 46 V 21 46 V 22 45 V 21 46 V 22 46 V 21 46 V 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V + 21 46 V 22 45 V 21 46 V 22 46 V *************** *** 1056,1096 **** 22 46 V 21 46 V 22 46 V - 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V ! 21 46 V ! 22 45 V 22 46 V 21 46 V - 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V - 22 46 V 21 46 V 22 46 V 21 46 V - 22 45 V - 21 46 V 22 46 V 22 46 V 21 46 V 22 46 V 21 46 V stroke LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP ! 0.00 0.00 0.00 C 1892 3116 M [ [(Symbol) 100.0 0.0 true true 0 (\254)] [(Helvetica) 100.0 0.0 true true 0 ( x = )] [(Helvetica) 100.0 0.0 true true 0 (2/)] --- 1074,1111 ---- 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V ! 21 45 V 22 46 V 21 46 V 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V 21 46 V 22 46 V + 21 45 V 22 46 V 21 46 V 22 46 V 21 46 V + 22 46 V + % End plot #2 stroke LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP ! 0.00 0.00 0.00 C 1942 3115 M [ [(Symbol) 100.0 0.0 true true 0 (\254)] [(Helvetica) 100.0 0.0 true true 0 ( x = )] [(Helvetica) 100.0 0.0 true true 0 (2/)] Files octave-3.0.3/doc/interpreter/extended.pdf and octave-3.0.4/doc/interpreter/extended.pdf differ Files octave-3.0.3/doc/interpreter/extended.png and octave-3.0.4/doc/interpreter/extended.png differ diff -cNr octave-3.0.3/doc/interpreter/func.texi octave-3.0.4/doc/interpreter/func.texi *** octave-3.0.3/doc/interpreter/func.texi 2008-10-03 12:17:34.000000000 +0200 --- octave-3.0.4/doc/interpreter/func.texi 2009-04-01 11:00:27.000000000 +0200 *************** *** 626,633 **** at the end of every function definition. @end deffn - - @node Default Arguments @section Default Arguments @cindex default arguments --- 626,631 ---- *************** *** 807,813 **** @anchor{doc-genpath} @deftypefn {Built-in Function} {} genpath (@var{dir}) ! Return a path constructed from @var{dir} and all its subdiretories. @end deftypefn --- 805,811 ---- @anchor{doc-genpath} @deftypefn {Built-in Function} {} genpath (@var{dir}) ! Return a path constructed from @var{dir} and all its subdirectories. @end deftypefn *************** *** 1552,1558 **** Image processing tools. These functions require the X Window System. @item io ! Input-ouput functions. @item linear-algebra Functions for linear algebra. --- 1550,1556 ---- Image processing tools. These functions require the X Window System. @item io ! Input-output functions. @item linear-algebra Functions for linear algebra. diff -cNr octave-3.0.3/doc/interpreter/func.txi octave-3.0.4/doc/interpreter/func.txi *** octave-3.0.3/doc/interpreter/func.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/func.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 499,506 **** at the end of every function definition. @end deffn - @DOCSTRING(return_last_computed_value) - @node Default Arguments @section Default Arguments @cindex default arguments --- 499,504 ---- *************** *** 1151,1157 **** Image processing tools. These functions require the X Window System. @item io ! Input-ouput functions. @item linear-algebra Functions for linear algebra. --- 1149,1155 ---- Image processing tools. These functions require the X Window System. @item io ! Input-output functions. @item linear-algebra Functions for linear algebra. diff -cNr octave-3.0.3/doc/interpreter/geometry.texi octave-3.0.4/doc/interpreter/geometry.texi *** octave-3.0.3/doc/interpreter/geometry.texi 2008-10-03 12:17:34.000000000 +0200 --- octave-3.0.4/doc/interpreter/geometry.texi 2009-04-01 11:00:27.000000000 +0200 *************** *** 45,51 **** points falls within any of the circum-circles. In general there are only three points on the circumference of any ! circum-circle. However, in the some cases, and in particular for the case of a regular grid, 4 or more points can be on a single circum-circle. In this case the Delaunay triangulation is not unique. --- 45,51 ---- points falls within any of the circum-circles. In general there are only three points on the circumference of any ! circum-circle. However, in some cases, and in particular for the case of a regular grid, 4 or more points can be on a single circum-circle. In this case the Delaunay triangulation is not unique. diff -cNr octave-3.0.3/doc/interpreter/geometry.txi octave-3.0.4/doc/interpreter/geometry.txi *** octave-3.0.3/doc/interpreter/geometry.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/geometry.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 43,49 **** points falls within any of the circum-circles. In general there are only three points on the circumference of any ! circum-circle. However, in the some cases, and in particular for the case of a regular grid, 4 or more points can be on a single circum-circle. In this case the Delaunay triangulation is not unique. --- 43,49 ---- points falls within any of the circum-circles. In general there are only three points on the circumference of any ! circum-circle. However, in some cases, and in particular for the case of a regular grid, 4 or more points can be on a single circum-circle. In this case the Delaunay triangulation is not unique. diff -cNr octave-3.0.3/doc/interpreter/gplot.eps octave-3.0.4/doc/interpreter/gplot.eps *** octave-3.0.3/doc/interpreter/gplot.eps 2008-09-24 10:31:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/gplot.eps 2009-01-29 09:11:05.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: gplot.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:31:46 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: gplot.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:05 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (gplot.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:31:46 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (gplot.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:05 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,749 **** } ifelse 0.500 UL LTb ! 322 280 M 63 0 V ! 6577 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 238 280 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 322 936 M 63 0 V ! 6577 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 238 936 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 322 1592 M 63 0 V ! 6577 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 238 1592 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MRshow 0.500 UL LTb ! 322 2248 M 63 0 V ! 6577 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 238 2248 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MRshow 0.500 UL LTb ! 322 2904 M 63 0 V ! 6577 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 238 2904 M [ [(Helvetica) 140.0 0.0 true true 0 (4)] ] -46.7 MRshow 0.500 UL LTb ! 322 3560 M 63 0 V ! 6577 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 238 3560 M [ [(Helvetica) 140.0 0.0 true true 0 (5)] ] -46.7 MRshow 0.500 UL LTb ! 322 4216 M 63 0 V ! 6577 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 238 4216 M [ [(Helvetica) 140.0 0.0 true true 0 (6)] ] -46.7 MRshow 0.500 UL LTb ! 322 4872 M 63 0 V ! 6577 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 238 4872 M [ [(Helvetica) 140.0 0.0 true true 0 (7)] ] -46.7 MRshow 0.500 UL LTb ! 322 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 322 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 1152 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1152 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 1982 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1982 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 2812 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2812 140 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MCshow 0.500 UL LTb ! 3642 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3642 140 M [ [(Helvetica) 140.0 0.0 true true 0 (4)] ] -46.7 MCshow 0.500 UL LTb ! 4472 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4472 140 M [ [(Helvetica) 140.0 0.0 true true 0 (5)] ] -46.7 MCshow 0.500 UL LTb ! 5302 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5302 140 M [ [(Helvetica) 140.0 0.0 true true 0 (6)] ] -46.7 MCshow 0.500 UL LTb ! 6132 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6132 140 M [ [(Helvetica) 140.0 0.0 true true 0 (7)] ] -46.7 MCshow 0.500 UL LTb ! 6962 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6962 140 M [ [(Helvetica) 140.0 0.0 true true 0 (8)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 322 4872 N ! 322 280 L ! 6640 0 V ! 0 4592 V ! -6640 0 V Z stroke 1.000 UP 0.500 UL LTb 0.500 UL LT0 ! 0.00 0.00 1.00 C 3642 280 M ! 322 3560 L ! 1982 4872 M ! 322 3560 L ! 3642 280 L ! 6962 3560 M ! 3642 280 L ! 6962 3560 L ! 5302 4872 M ! 6962 3560 L ! 5302 4872 L ! 3642 3560 M ! 5302 4872 L ! 3642 3560 L ! 1982 4872 M ! 3642 3560 L ! -3320 0 R ! 1982 4872 L ! 3642 3560 M ! 1982 4872 L ! stroke ! LTb ! 322 4872 N ! 322 280 L ! 6640 0 V ! 0 4592 V ! -6640 0 V Z stroke 1.000 UP 0.500 UL --- 543,760 ---- } ifelse 0.500 UL LTb ! 378 280 M 63 0 V ! 6548 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 294 280 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 378 936 M 63 0 V ! 6548 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 294 936 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 378 1592 M 63 0 V ! 6548 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 294 1592 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MRshow 0.500 UL LTb ! 378 2248 M 63 0 V ! 6548 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 294 2248 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MRshow 0.500 UL LTb ! 378 2903 M 63 0 V ! 6548 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 294 2903 M [ [(Helvetica) 140.0 0.0 true true 0 (4)] ] -46.7 MRshow 0.500 UL LTb ! 378 3559 M 63 0 V ! 6548 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 294 3559 M [ [(Helvetica) 140.0 0.0 true true 0 (5)] ] -46.7 MRshow 0.500 UL LTb ! 378 4215 M 63 0 V ! 6548 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 294 4215 M [ [(Helvetica) 140.0 0.0 true true 0 (6)] ] -46.7 MRshow 0.500 UL LTb ! 378 4871 M 63 0 V ! 6548 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 294 4871 M [ [(Helvetica) 140.0 0.0 true true 0 (7)] ] -46.7 MRshow 0.500 UL LTb ! 378 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 378 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 1204 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1204 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 2031 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2031 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 2857 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2857 140 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MCshow 0.500 UL LTb ! 3684 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3684 140 M [ [(Helvetica) 140.0 0.0 true true 0 (4)] ] -46.7 MCshow 0.500 UL LTb ! 4510 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4510 140 M [ [(Helvetica) 140.0 0.0 true true 0 (5)] ] -46.7 MCshow 0.500 UL LTb ! 5336 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5336 140 M [ [(Helvetica) 140.0 0.0 true true 0 (6)] ] -46.7 MCshow 0.500 UL LTb ! 6163 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6163 140 M [ [(Helvetica) 140.0 0.0 true true 0 (7)] ] -46.7 MCshow 0.500 UL LTb ! 6989 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6989 140 M [ [(Helvetica) 140.0 0.0 true true 0 (8)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 378 4871 N ! 378 280 L ! 6611 0 V ! 0 4591 V ! -6611 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 0.500 UL LT0 ! 0.00 0.00 1.00 C 3684 280 M ! 378 3559 L ! 2031 4871 M ! 378 3559 L ! 3684 280 L ! 6989 3559 M ! 3684 280 L ! 6989 3559 L ! 5336 4871 M ! 6989 3559 L ! 5336 4871 L ! 3684 3559 M ! 5336 4871 L ! 3684 3559 L ! 2031 4871 M ! 3684 3559 L ! -3306 0 R ! 2031 4871 L ! 3684 3559 M ! 2031 4871 L ! % End plot #1 ! stroke ! LTb ! 378 4871 N ! 378 280 L ! 6611 0 V ! 0 4591 V ! -6611 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/gplot.pdf and octave-3.0.4/doc/interpreter/gplot.pdf differ Files octave-3.0.3/doc/interpreter/gplot.png and octave-3.0.4/doc/interpreter/gplot.png differ diff -cNr octave-3.0.3/doc/interpreter/griddata.eps octave-3.0.4/doc/interpreter/griddata.eps *** octave-3.0.3/doc/interpreter/griddata.eps 2008-09-24 10:32:11.000000000 +0200 --- octave-3.0.4/doc/interpreter/griddata.eps 2009-01-29 09:11:12.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: griddata.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:11 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: griddata.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:12 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (griddata.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:11 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (griddata.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:12 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,465 **** %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 140 scalefont setfont - 0.500 UL - LTb gsave % colour palette begin /maxcolors 64 def /HSV2RGB { exch dup 0.0 eq {pop exch pop dup dup} % achromatic gray --- 461,472 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 140 scalefont setfont gsave % colour palette begin /maxcolors 64 def /HSV2RGB { exch dup 0.0 eq {pop exch pop dup dup} % achromatic gray *************** *** 521,527 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,574 **** }{ /g {stroke pm3dround pm3dGamma exp setgray} bind def } ifelse 1.000 UP 1.000 UL LT1 - .5708 g 3749 3517 M - 1 -2 V - stroke - LT1 - .5145 g 4001 3401 M - -2 -8 V - stroke - LT1 - .7424 g 3957 3846 M - -6 -17 V - stroke - LT1 - .6752 g 4022 3706 M - 1 -1 V - stroke - LT1 - .8254 g 3516 4005 M - -2 -5 V - stroke - LT1 - .8242 g 3516 4005 M - 5 -9 V - stroke - LT1 - .7721 g 4386 3859 M - -9 -15 V - stroke - LT1 - .8262 g 4046 3985 M - 2 -3 V - stroke - LT1 .0847 g 1151 1992 M -75 -324 V stroke --- 541,551 ---- }{ /g {stroke pm3dround pm3dGamma exp setgray} bind def } ifelse + 0.500 UL + LTb 1.000 UP 1.000 UL LT1 .0847 g 1151 1992 M -75 -324 V stroke *************** *** 577,598 **** -98 -377 V stroke LT1 - .8273 g 3517 4007 M - -1 -2 V - stroke - LT1 - .7771 g 4384 3862 M - 2 -3 V - stroke - LT1 - .8767 g 3167 4084 M - 15 -14 V - stroke - LT1 - .9013 g 3443 4131 M - -2 -4 V - stroke - LT1 .2494 g 1250 2371 M -76 -326 V stroke --- 554,559 ---- *************** *** 601,622 **** -99 -364 V stroke LT1 - .848 g 4468 3977 M - -1 -1 V - stroke - LT1 - .9586 g 3658 4231 M - -8 -8 V - stroke - LT1 - .9327 g 3544 4190 M - 6 -4 V - stroke - LT1 - .9329 g 4065 4169 M - 9 -6 V - stroke - LT1 .2477 g 1227 2301 M -76 -309 V stroke --- 562,567 ---- *************** *** 625,634 **** -99 -379 V stroke LT1 - .4837 g 1348 2722 M - -2 -8 V - stroke - LT1 .3962 g 1340 2688 M -67 -279 V stroke --- 570,575 ---- *************** *** 636,657 **** .3918 g 1371 2724 M -98 -315 V stroke - LT1 - .9671 g 3226 4230 M - -6 -2 V - stroke - LT1 - .9539 g 2929 4181 M - 6 -1 V - stroke - LT0 - .4119 g 3680 2638 M - 0 1 V - stroke - LT0 - .3769 g 3756 2531 M - -1 1 V - stroke LT0 .6087 g 3726 3202 M -43 -63 V --- 577,582 ---- *************** *** 669,676 **** 98 -328 V stroke LT0 ! .6173 g 3900 3219 M ! -43 -76 V stroke LT0 .61 g 3726 3202 M --- 594,601 ---- 98 -328 V stroke LT0 ! .6174 g 3900 3219 M ! -43 -75 V stroke LT0 .61 g 3726 3202 M *************** *** 724,733 **** .6687 g 3477 3423 M 75 -190 V stroke - LT1 - .9596 g 4493 4140 M - -12 0 V - stroke LT0 .9741 g 2925 4178 M -76 16 V --- 649,654 ---- *************** *** 753,762 **** -23 -95 V stroke LT1 - .4813 g 1348 2722 M - -6 -21 V - stroke - LT1 .3952 g 1330 2656 M -80 -285 V stroke --- 674,679 ---- *************** *** 769,776 **** 75 -181 V stroke LT0 ! .9779 g 4340 4179 M ! -76 25 V stroke LT0 .985 g 4166 4217 M --- 686,693 ---- 75 -181 V stroke LT0 ! .9778 g 4336 4180 M ! -72 24 V stroke LT0 .985 g 4166 4217 M *************** *** 1008,1021 **** .7011 g 4172 3468 M -98 -194 V stroke - LT1 - .9671 g 4534 4141 M - -20 -2 V - stroke - LT1 - .9666 g 4504 4141 M - 3 0 V - stroke LT0 .7768 g 3923 3537 M -76 130 V --- 925,930 ---- *************** *** 1197,1206 **** -98 -377 V stroke LT1 - .5406 g 1401 2922 M - -96 -341 V - stroke - LT1 .3928 g 1304 2578 M -77 -277 V stroke --- 1106,1111 ---- *************** *** 1277,1286 **** -98 -181 V stroke LT0 - .2674 g 3671 2120 M - 16 3 V - stroke - LT0 .6647 g 2909 3287 M 36 -103 V stroke --- 1182,1187 ---- *************** *** 1348,1357 **** .773 g 2932 3522 M 98 47 V stroke - LT1 - .6733 g 1568 3245 M - -13 -30 V - stroke LT0 .9036 g 4120 3866 M -76 116 V --- 1249,1254 ---- *************** *** 1421,1430 **** 98 4 V stroke LT0 - .3998 g 4156 2476 M - -1 -2 V - stroke - LT0 .8341 g 4271 3659 M -76 102 V stroke --- 1318,1323 ---- *************** *** 1433,1442 **** -99 -146 V stroke LT0 - .4028 g 4169 2481 M - -13 -5 V - stroke - LT0 .6718 g 4399 3245 M -24 -51 V stroke --- 1326,1331 ---- *************** *** 1509,1518 **** -98 -216 V stroke LT0 - .6385 g 2863 3140 M - 1 -3 V - stroke - LT0 .6766 g 2810 3281 M 34 -90 V stroke --- 1398,1403 ---- *************** *** 1529,1538 **** -98 -141 V stroke LT0 - .2802 g 3664 2093 M - 77 20 V - stroke - LT0 .9908 g 2531 4117 M -76 9 V stroke --- 1414,1419 ---- *************** *** 1564,1573 **** .9767 g 4392 4048 M 99 93 V stroke - LT1 - .8211 g 1643 3518 M - -1 -3 V - stroke LT0 .952 g 4468 3977 M -76 71 V --- 1445,1450 ---- *************** *** 1664,1677 **** .2913 g 3838 2133 M -174 -40 V stroke - LT1 - .2803 g 3661 2093 M - 3 0 V - stroke - LT0 - .3411 g 4020 2259 M - 15 11 V - stroke LT0 .9913 g 2432 4097 M -76 1 V --- 1541,1546 ---- *************** *** 1721,1730 **** 98 9 V stroke LT0 - .434 g 4242 2524 M - -10 -15 V - stroke - LT0 .3936 g 5898 2532 M 75 -326 V stroke --- 1590,1595 ---- *************** *** 1796,1805 **** .9738 g 2175 4019 M 83 44 V stroke - LT1 - .783 g 1702 3526 M - -35 -59 V - stroke LT0 .9976 g 4816 4083 M -75 24 V --- 1661,1666 ---- *************** *** 1808,1817 **** .9892 g 4642 4054 M 99 53 V stroke - LT1 - .4053 g 3044 2359 M - 1 -1 V - stroke LT0 .9455 g 2606 4035 M 76 -151 V --- 1669,1674 ---- *************** *** 1852,1861 **** .9577 g 4642 4054 M -98 -132 V stroke - LT1 - .3318 g 3313 2171 M - 11 -7 V - stroke LT0 .9744 g 2508 4015 M 98 20 V --- 1709,1714 ---- *************** *** 1868,1877 **** .8915 g 4619 3875 M -98 -173 V stroke - LT1 - .9802 g 2237 4039 M - -12 -5 V - stroke LT0 .9798 g 4718 4009 M -76 45 V --- 1721,1726 ---- *************** *** 1901,1918 **** 71 0 V stroke LT0 - .6312 g 4527 3013 M - -1 -2 V - stroke - LT0 .7213 g 2613 3331 M 39 -101 V stroke LT0 - .7036 g 2590 3195 M - 4 -3 V - stroke - LT0 .8322 g 2560 3698 M 76 -195 V stroke --- 1750,1759 ---- *************** *** 2040,2049 **** .4165 g 5852 2486 M 98 -309 V stroke - LT0 - .6318 g 4529 3013 M - -2 0 V - stroke LT1 .3431 g 3716 2157 M -39 -23 V --- 1881,1886 ---- *************** *** 2072,2081 **** .9476 g 4793 3968 M -98 -134 V stroke - LT1 - .4055 g 3045 2359 M - -1 0 V - stroke LT0 .9777 g 5142 3953 M -76 53 V --- 1909,1914 ---- *************** *** 2101,2108 **** -75 -221 V stroke LT0 ! .6951 g 1522 3295 M ! -98 -289 V stroke LT0 .9986 g 4967 4016 M --- 1934,1941 ---- -75 -221 V stroke LT0 ! .7436 g 1522 3295 M ! -21 -62 V stroke LT0 .9986 g 4967 4016 M *************** *** 2149,2156 **** 99 0 V stroke LT0 ! .7522 g 2514 3383 M ! 52 -129 V stroke LT0 .7612 g 4725 3412 M --- 1982,1989 ---- 99 0 V stroke LT0 ! .7525 g 2514 3383 M ! 52 -127 V stroke LT0 .7612 g 4725 3412 M *************** *** 2197,2206 **** -99 -140 V stroke LT1 - .9253 g 1777 3734 M - -1 -2 V - stroke - LT1 .4919 g 4360 2580 M -75 -95 V stroke --- 2030,2035 ---- *************** *** 2244,2253 **** .9875 g 2114 3967 M -76 -21 V stroke - LT1 - .9844 g 2122 3963 M - -3 -1 V - stroke LT0 .9744 g 2032 3942 M 6 4 V --- 2073,2078 ---- *************** *** 2260,2273 **** .3968 g 5829 2372 M 98 -281 V stroke - LT0 - .5451 g 2750 2718 M - 1 -3 V - stroke - LT0 - .5701 g 2714 2737 M - 10 -11 V - stroke LT1 .4333 g 4163 2408 M -75 -103 V --- 2085,2090 ---- *************** *** 2288,2301 **** .9752 g 4945 3912 M -76 24 V stroke - LT0 - .5265 g 4441 2696 M - -58 -84 V - stroke - LT0 - .6798 g 2544 3033 M - 11 -11 V - stroke LT1 .5479 g 2771 2660 M 19 -24 V --- 2105,2110 ---- *************** *** 2316,2325 **** .3564 g 3691 2168 M 25 -11 V stroke - LT1 - .9442 g 1841 3813 M - 77 52 V - stroke LT0 .6798 g 1477 3139 M -76 -217 V --- 2125,2130 ---- *************** *** 2345,2354 **** -98 -185 V stroke LT0 - .6176 g 4557 2839 M - -6 -7 V - stroke - LT0 .9803 g 2288 3886 M -76 94 V stroke --- 2150,2155 ---- *************** *** 2365,2376 **** 99 23 V stroke LT0 ! .9564 g 1916 3865 M ! -75 -52 V stroke LT0 ! .9672 g 2015 3937 M ! 1841 3813 L stroke LT0 .9745 g 5293 3884 M --- 2166,2177 ---- 99 23 V stroke LT0 ! .9528 g 1913 3864 M ! -53 -37 V stroke LT0 ! .9799 g 2015 3937 M ! -101 -72 V stroke LT0 .9745 g 5293 3884 M *************** *** 2421,2436 **** 99 -11 V stroke LT0 ! .786 g 2416 3447 M ! 71 -170 V stroke LT0 ! .7806 g 2393 3354 M ! 80 -72 V stroke LT0 ! .7861 g 4800 3431 M ! -82 -160 V stroke LT0 .9798 g 5020 3890 M --- 2222,2241 ---- 99 -11 V stroke LT0 ! .7865 g 2416 3447 M ! 69 -167 V stroke LT0 ! .7811 g 2393 3354 M ! 78 -70 V stroke LT0 ! .7552 g 4722 3279 M ! -4 -8 V ! stroke ! LT0 ! .7879 g 4800 3431 M ! -78 -152 V stroke LT0 .9798 g 5020 3890 M *************** *** 2504,2513 **** .9083 g 1719 3679 M -12 -22 V stroke - LT1 - .877 g 1681 3585 M - -14 -20 V - stroke LT0 .9118 g 2265 3772 M 75 -152 V --- 2309,2314 ---- *************** *** 2553,2570 **** 98 16 V stroke LT0 ! .9393 g 5444 3717 M ! -76 98 V stroke LT0 .9735 g 5270 3871 M 98 -56 V stroke LT1 - .9774 g 5266 3871 M - 11 -6 V - stroke - LT1 .5551 g 4436 2689 M -76 -109 V stroke --- 2354,2371 ---- 98 16 V stroke LT0 ! .9435 g 5423 3745 M ! -55 70 V ! stroke ! LT0 ! .9285 g 5444 3717 M ! -21 28 V stroke LT0 .9735 g 5270 3871 M 98 -56 V stroke LT1 .5551 g 4436 2689 M -76 -109 V stroke *************** *** 2597,2606 **** 98 -137 V stroke LT0 - .6664 g 2566 2961 M - 12 -16 V - stroke - LT0 .9841 g 5096 3864 M -76 26 V stroke --- 2398,2403 ---- *************** *** 2608,2625 **** .5983 g 4534 2805 M -75 -107 V stroke - LT0 - .5877 g 4539 2813 M - -80 -115 V - stroke LT1 .6243 g 4633 2942 M 4459 2698 L stroke - LT0 - .6867 g 2537 3048 M - 5 -9 V - stroke LT1 .4317 g 3868 2324 M -76 -92 V --- 2405,2414 ---- *************** *** 2637,2650 **** 98 -289 V stroke LT1 - .6765 g 5703 3108 M - 96 -281 V - stroke - LT1 - .7945 g 5625 3336 M - 77 -224 V - stroke - LT1 .4985 g 4239 2519 M -76 -111 V stroke --- 2426,2431 ---- *************** *** 2661,2684 **** -99 -248 V stroke LT0 - .9098 g 5520 3623 M - -76 94 V - stroke - LT1 - .9712 g 5322 3825 M - 4 -4 V - stroke - LT1 - .9386 g 5403 3753 M - 8 -7 V - stroke - LT0 .9873 g 1992 3880 M -76 -15 V stroke LT0 ! .9664 g 1818 3799 M ! 98 66 V stroke LT0 .8812 g 5520 3623 M --- 2442,2457 ---- -99 -248 V stroke LT0 .9873 g 1992 3880 M -76 -15 V stroke LT0 ! .9756 g 1912 3862 M ! 4 3 V ! stroke ! LT0 ! .9659 g 1818 3799 M ! 93 62 V stroke LT0 .8812 g 5520 3623 M *************** *** 2705,2720 **** 99 -254 V stroke LT0 ! .9369 g 1795 3750 M ! -76 -71 V stroke LT0 ! .9347 g 1818 3799 M ! -99 -120 V stroke LT0 ! .6652 g 4656 3002 M ! -58 -95 V stroke LT0 .9941 g 5270 3871 M --- 2478,2497 ---- 99 -254 V stroke LT0 ! .9252 g 1758 3716 M ! -39 -37 V ! stroke ! LT0 ! .9494 g 1795 3750 M ! -36 -34 V stroke LT0 ! .9193 g 1749 3715 M ! -30 -36 V stroke LT0 ! .9414 g 1818 3799 M ! -69 -84 V stroke LT0 .9941 g 5270 3871 M *************** *** 2749,2760 **** 99 -123 V stroke LT0 ! .8018 g 4853 3342 M ! -63 -48 V stroke LT0 ! .8141 g 4876 3462 M ! -95 -171 V stroke LT0 .8334 g 2317 3521 M --- 2526,2541 ---- 99 -123 V stroke LT0 ! .8019 g 4853 3342 M ! -63 -47 V stroke LT0 ! .7801 g 4781 3292 M ! 0 -1 V ! stroke ! LT0 ! .8144 g 4876 3462 M ! -94 -169 V stroke LT0 .8334 g 2317 3521 M *************** *** 2797,2810 **** -75 14 V stroke LT0 - .6946 g 4687 3055 M - -31 -53 V - stroke - LT0 - .7499 g 4754 3171 M - -4 -7 V - stroke - LT0 .9412 g 2166 3805 M 76 -143 V stroke --- 2578,2583 ---- *************** *** 2840,2849 **** .9933 g 5171 3850 M 99 21 V stroke - LT1 - .4777 g 3758 2344 M - -5 -6 V - stroke LT0 .5468 g 5753 2740 M 76 -368 V --- 2613,2618 ---- *************** *** 2885,2894 **** 98 35 V stroke LT0 - .7558 g 4768 3185 M - -14 -14 V - stroke - LT0 .813 g 4853 3342 M -18 -31 V stroke --- 2654,2659 ---- *************** *** 2969,2976 **** -76 -71 V stroke LT0 ! .9426 g 1795 3750 M ! -99 -104 V stroke LT0 .9721 g 1871 3764 M --- 2734,2745 ---- -76 -71 V stroke LT0 ! .9366 g 1763 3716 M ! -67 -70 V ! stroke ! LT0 ! .9551 g 1795 3750 M ! -32 -34 V stroke LT0 .9721 g 1871 3764 M *************** *** 2989,3004 **** 76 -204 V stroke LT0 ! .8614 g 5549 3516 M ! 99 -203 V stroke LT0 .8339 g 2294 3445 M 65 -125 V stroke LT0 ! .841 g 2272 3400 M ! 71 -73 V stroke LT0 .7348 g 1529 3124 M --- 2758,2777 ---- 76 -204 V stroke LT0 ! .8356 g 5597 3417 M ! 51 -104 V ! stroke ! LT0 ! .889 g 5549 3516 M ! 48 -98 V stroke LT0 .8339 g 2294 3445 M 65 -125 V stroke LT0 ! .8415 g 2272 3400 M ! 69 -72 V stroke LT0 .7348 g 1529 3124 M *************** *** 3077,3093 **** 98 -44 V stroke LT1 - .9894 g 5247 3822 M - 78 -34 V - stroke - LT1 .716 g 4708 3051 M -75 -109 V stroke - LT1 - .7116 g 4716 3061 M - -83 -119 V - stroke LT0 .866 g 1651 3472 M -76 -100 V --- 2850,2858 ---- *************** *** 3160,3169 **** .5243 g 3845 2475 M -73 -114 V stroke - LT1 - .6098 g 2975 2623 M - 1 -1 V - stroke LT0 .9869 g 5224 3751 M -76 18 V --- 2925,2930 ---- *************** *** 3204,3213 **** .9464 g 1772 3717 M -98 -138 V stroke - LT1 - .9563 g 1763 3654 M - -2 -2 V - stroke LT0 .8023 g 5625 3336 M 76 -220 V --- 2965,2970 ---- *************** *** 3252,3261 **** .9821 g 1848 3725 M -76 -8 V stroke - LT1 - .9751 g 1851 3724 M - -79 -7 V - stroke LT0 .8849 g 2272 3400 M -76 130 V --- 3009,3014 ---- *************** *** 3284,3297 **** .8761 g 2249 3388 M 23 -27 V stroke - LT0 - .8532 g 2295 3335 M - 1 -2 V - stroke - LT1 - .5586 g 3407 2472 M - 7 -7 V - stroke LT1 .7266 g 2574 2949 M -76 91 V --- 3037,3042 ---- *************** *** 3429,3453 **** -75 -97 V stroke LT0 ! .933 g 1749 3651 M ! -98 -179 V stroke LT0 ! .9365 g 5549 3516 M ! -75 126 V stroke LT0 ! .9725 g 5375 3678 M ! 99 -36 V stroke LT0 .9419 g 5451 3608 M 98 -92 V stroke - LT1 - .9507 g 5375 3678 M - 174 -162 V - stroke LT0 .7976 g 5602 3292 M 76 -267 V --- 3174,3198 ---- -75 -97 V stroke LT0 ! .9147 g 1699 3560 M ! -48 -88 V stroke LT0 ! .9507 g 1749 3651 M ! -50 -91 V stroke LT0 ! .9367 g 5548 3517 M ! -74 125 V ! stroke ! LT0 ! .9724 g 5376 3677 M ! 98 -35 V stroke LT0 .9419 g 5451 3608 M 98 -92 V stroke LT0 .7976 g 5602 3292 M 76 -267 V *************** *** 3501,3516 **** -76 -4 V stroke LT0 ! .8925 g 4981 3415 M ! -53 -56 V stroke LT0 ! .886 g 5004 3465 M ! -86 -114 V stroke ! LT1 ! .6101 g 2976 2623 M ! -1 0 V stroke LT1 .5966 g 3920 2606 M --- 3246,3261 ---- -76 -4 V stroke LT0 ! .8934 g 4981 3415 M ! -50 -54 V stroke LT0 ! .8653 g 4921 3356 M ! -3 -5 V stroke ! LT0 ! .887 g 5004 3465 M ! -82 -108 V stroke LT1 .5966 g 3920 2606 M *************** *** 3529,3536 **** 98 -17 V stroke LT0 ! .8987 g 2249 3388 M ! -76 97 V stroke LT0 .9372 g 2075 3560 M --- 3274,3285 ---- 98 -17 V stroke LT0 ! .9003 g 2241 3398 M ! -68 87 V ! stroke ! LT0 ! .8851 g 2249 3388 M ! -8 9 V stroke LT0 .9372 g 2075 3560 M *************** *** 3577,3584 **** -12 18 V stroke LT0 ! .9111 g 2150 3480 M ! 99 -92 V stroke LT0 .9818 g 1999 3623 M --- 3326,3337 ---- -12 18 V stroke LT0 ! .8874 g 2235 3401 M ! 14 -13 V ! stroke ! LT0 ! .9152 g 2150 3480 M ! 84 -79 V stroke LT0 .9818 g 1999 3623 M *************** *** 3633,3640 **** -75 31 V stroke LT0 ! .9717 g 1726 3569 M ! 99 86 V stroke LT0 .95 g 5428 3561 M --- 3386,3393 ---- -75 31 V stroke LT0 ! .972 g 1728 3570 M ! 97 85 V stroke LT0 .95 g 5428 3561 M *************** *** 3653,3666 **** -76 -24 V stroke LT1 - .9638 g 1801 3592 M - -75 -23 V - stroke - LT1 - .9783 g 1900 3624 M - -99 -32 V - stroke - LT1 .8131 g 4761 3174 M -75 -121 V stroke --- 3406,3411 ---- *************** *** 3753,3772 **** 99 -24 V stroke LT0 ! .9329 g 5057 3476 M ! -76 -61 V stroke LT0 ! .9309 g 5080 3526 M ! -99 -111 V ! stroke ! LT1 ! .9405 g 5060 3478 M ! -7 -6 V stroke ! LT1 ! .9247 g 5051 3471 M ! -70 -56 V stroke LT0 .9886 g 5254 3614 M --- 3498,3513 ---- 99 -24 V stroke LT0 ! .9326 g 5056 3475 M ! -75 -60 V stroke LT0 ! .9191 g 5022 3460 M ! -41 -45 V stroke ! LT0 ! .9394 g 5080 3526 M ! -57 -64 V stroke LT0 .9886 g 5254 3614 M *************** *** 3848,3857 **** .9912 g 1877 3590 M -75 3 V stroke - LT1 - .9838 g 1882 3589 M - -6 0 V - stroke LT0 .9497 g 5428 3561 M 76 -139 V --- 3589,3594 ---- *************** *** 3888,3897 **** .9876 g 5155 3554 M 99 60 V stroke - LT1 - .9204 g 2230 3380 M - 1 -2 V - stroke LT0 .9107 g 1756 3358 M -76 -43 V --- 3625,3630 ---- *************** *** 3936,3948 **** .834 g 4663 3085 M 98 89 V stroke ! LT1 ! .7454 g 2912 2846 M ! 2 -3 V stroke LT0 ! .944 g 5057 3476 M ! -61 -62 V stroke LT0 .9703 g 5132 3510 M --- 3669,3681 ---- .834 g 4663 3085 M 98 89 V stroke ! LT0 ! .9379 g 5023 3442 M ! -27 -28 V stroke LT0 ! .9488 g 5056 3476 M ! -33 -34 V stroke LT0 .9703 g 5132 3510 M *************** *** 3981,3988 **** -76 91 V stroke LT0 ! .9948 g 5231 3553 M ! 98 27 V stroke LT1 .8324 g 4640 3136 M --- 3714,3721 ---- -76 91 V stroke LT0 ! .9948 g 5234 3554 M ! 95 26 V stroke LT1 .8324 g 4640 3136 M *************** *** 4044,4053 **** .99 g 5132 3510 M 99 43 V stroke - LT1 - .794 g 2853 2935 M - -6 0 V - stroke LT0 .9918 g 2029 3507 M -76 41 V --- 3777,3782 ---- *************** *** 4073,4082 **** -99 -147 V stroke LT1 - .7696 g 4051 2841 M - -4 -6 V - stroke - LT1 .7186 g 4006 2759 M -10 -19 V stroke --- 3802,3807 ---- *************** *** 4085,4092 **** 2 0 V stroke LT0 ! .9455 g 2270 3362 M ! -67 56 V stroke LT0 .9696 g 2104 3470 M --- 3810,3821 ---- 2 0 V stroke LT0 ! .9459 g 2265 3366 M ! -62 52 V ! stroke ! LT0 ! .9398 g 2270 3362 M ! -4 4 V stroke LT0 .9696 g 2104 3470 M *************** *** 4100,4109 **** .9765 g 5034 3445 M 98 65 V stroke - LT1 - .7588 g 3782 2796 M - -2 -2 V - stroke LT0 .9898 g 1930 3492 M -75 13 V --- 3829,3834 ---- *************** *** 4149,4177 **** 99 15 V stroke LT0 - .9365 g 2289 3347 M - -5 4 V - stroke - LT0 - .9604 g 2180 3414 M - 83 -49 V - stroke - LT0 .9704 g 5284 3445 M 98 -42 V stroke LT0 ! .9587 g 5011 3407 M ! -76 -43 V stroke LT0 .936 g 4889 3330 M 46 34 V stroke - LT1 - .9605 g 5011 3407 M - -96 -64 V - stroke LT0 .8912 g 5359 3302 M 76 -219 V --- 3874,3890 ---- 99 15 V stroke LT0 .9704 g 5284 3445 M 98 -42 V stroke LT0 ! .957 g 5003 3402 M ! -68 -38 V stroke LT0 .936 g 4889 3330 M 46 34 V stroke LT0 .8912 g 5359 3302 M 76 -219 V *************** *** 4192,4205 **** .9714 g 1930 3492 M -98 -124 V stroke - LT1 - .9615 g 2230 3380 M - 3 -2 V - stroke - LT1 - .9396 g 2303 3330 M - 4 -3 V - stroke LT0 .9922 g 5284 3445 M -76 59 V --- 3905,3910 ---- *************** *** 4244,4253 **** .8514 g 4443 3038 M 98 42 V stroke - LT1 - .7921 g 3082 2889 M - 6 -9 V - stroke LT0 .9604 g 5284 3445 M 75 -143 V --- 3949,3954 ---- *************** *** 4297,4308 **** -75 -4 V stroke LT0 ! .967 g 4912 3342 M ! 99 65 V ! stroke ! LT1 ! .8492 g 3005 2989 M ! -5 -3 V stroke LT1 .8659 g 4480 3101 M --- 3998,4005 ---- -75 -4 V stroke LT0 ! .9671 g 4913 3342 M ! 98 65 V stroke LT1 .8659 g 4480 3101 M *************** *** 4325,4334 **** -76 17 V stroke LT0 - .9743 g 4988 3380 M - -76 -38 V - stroke - LT0 .9284 g 5261 3334 M 75 -173 V stroke --- 4022,4027 ---- *************** *** 4392,4405 **** .9817 g 2233 3361 M 98 -30 V stroke - LT1 - .8508 g 3003 2991 M - 2 -2 V - stroke - LT1 - .9234 g 2583 3193 M - -2 0 V - stroke LT0 .4017 g 3215 1848 M -98 -388 V --- 4085,4090 ---- *************** *** 4472,4481 **** .9821 g 2308 3328 M 99 -27 V stroke - LT1 - .8961 g 4176 3055 M - -1 -1 V - stroke LT0 .9943 g 2308 3328 M -75 33 V --- 4157,4162 ---- *************** *** 4489,4513 **** -75 117 V stroke LT0 ! .995 g 4965 3334 M ! 99 19 V stroke LT0 .9862 g 4866 3312 M -75 -17 V stroke LT0 - .9739 g 4765 3286 M - 26 9 V - stroke - LT0 .9624 g 5041 3246 M 98 -10 V stroke - LT1 - .9688 g 4495 3208 M - -1 -1 V - stroke LT0 .984 g 2210 3283 M -76 28 V --- 4170,4186 ---- -75 117 V stroke LT0 ! .9949 g 4975 3336 M ! 89 17 V stroke LT0 .9862 g 4866 3312 M -75 -17 V stroke LT0 .9624 g 5041 3246 M 98 -10 V stroke LT0 .984 g 2210 3283 M -76 28 V *************** *** 4520,4529 **** .4987 g 2966 2047 M 75 -297 V stroke - LT1 - .8916 g 3538 3009 M - 7 -5 V - stroke LT0 .9775 g 2558 3257 M -76 22 V --- 4193,4198 ---- *************** *** 4541,4557 **** 98 45 V stroke LT0 ! .9835 g 5041 3246 M -76 88 V stroke LT0 .9971 g 4866 3312 M 99 22 V stroke - LT1 - .9676 g 4388 3189 M - -9 -8 V - stroke LT0 .9745 g 4942 3237 M 99 9 V --- 4210,4222 ---- 98 45 V stroke LT0 ! .9834 g 5041 3246 M -76 88 V stroke LT0 .9971 g 4866 3312 M 99 22 V stroke LT0 .9745 g 4942 3237 M 99 9 V *************** *** 4560,4569 **** .985 g 2285 3250 M -75 33 V stroke - LT1 - .969 g 4495 3208 M - 14 2 V - stroke LT0 .9881 g 4942 3237 M -76 75 V --- 4225,4230 ---- *************** *** 4628,4637 **** .9858 g 4669 3256 M -124 -34 V stroke - LT1 - .9089 g 3506 3034 M - -2 -1 V - stroke LT0 .9822 g 2361 3206 M -76 44 V --- 4289,4294 ---- *************** *** 4692,4701 **** .9728 g 2436 3144 M -75 62 V stroke - LT1 - .9628 g 3898 3115 M - -2 -2 V - stroke LT0 .6818 g 3238 2476 M -98 -328 V --- 4349,4354 ---- *************** *** 4909,4918 **** -76 9 V stroke LT0 - .9853 g 3228 3148 M - -95 10 V - stroke - LT0 .9923 g 3034 3157 M 99 1 V stroke --- 4562,4567 ---- *************** *** 5247,5255 **** LT0 .9437 g 3534 3005 M -99 -115 V stroke LT0 ! .262 g 0.500 UL LTb 3245 586 M 3054 779 V --- 4896,4906 ---- LT0 .9437 g 3534 3005 M -99 -115 V + % Begin plot #1 stroke LT0 ! .262 g % End plot #1 ! 0.500 UL LTb 3245 586 M 3054 779 V *************** *** 5264,5271 **** 0 -367 V 6299 3579 M 0 -2214 V 901 3815 M ! 3054 779 V 6299 3579 M 3955 4594 L 3245 586 M --- 4915,4924 ---- 0 -367 V 6299 3579 M 0 -2214 V + 3093 4374 M + 862 220 V 901 3815 M ! 2191 559 V 6299 3579 M 3955 4594 L 3245 586 M Files octave-3.0.3/doc/interpreter/griddata.pdf and octave-3.0.4/doc/interpreter/griddata.pdf differ Files octave-3.0.3/doc/interpreter/griddata.png and octave-3.0.4/doc/interpreter/griddata.png differ diff -cNr octave-3.0.3/doc/interpreter/grid.eps octave-3.0.4/doc/interpreter/grid.eps *** octave-3.0.3/doc/interpreter/grid.eps 2008-09-24 10:31:49.000000000 +0200 --- octave-3.0.4/doc/interpreter/grid.eps 2009-01-29 09:11:05.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: grid.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:31:49 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: grid.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:05 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (grid.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:31:49 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (grid.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:05 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 460,539 **** (Helvetica) findfont 140 scalefont setfont 0.500 UL LTb - gsave % colour palette begin - /maxcolors 64 def - /HSV2RGB { exch dup 0.0 eq {pop exch pop dup dup} % achromatic gray - { /HSVs exch def /HSVv exch def 6.0 mul dup floor dup 3 1 roll sub - /HSVf exch def /HSVi exch cvi def /HSVp HSVv 1.0 HSVs sub mul def - /HSVq HSVv 1.0 HSVs HSVf mul sub mul def - /HSVt HSVv 1.0 HSVs 1.0 HSVf sub mul sub mul def - /HSVi HSVi 6 mod def 0 HSVi eq {HSVv HSVt HSVp} - {1 HSVi eq {HSVq HSVv HSVp}{2 HSVi eq {HSVp HSVv HSVt} - {3 HSVi eq {HSVp HSVq HSVv}{4 HSVi eq {HSVt HSVp HSVv} - {HSVv HSVp HSVq} ifelse} ifelse} ifelse} ifelse} ifelse - } ifelse} def - /Constrain { - dup 0 lt {0 exch pop}{dup 1 gt {1 exch pop} if} ifelse} def - /YIQ2RGB { - 3 copy -1.702 mul exch -1.105 mul add add Constrain 4 1 roll - 3 copy -0.647 mul exch -0.272 mul add add Constrain 5 1 roll - 0.621 mul exch -0.956 mul add add Constrain 3 1 roll } def - /CMY2RGB { 1 exch sub exch 1 exch sub 3 2 roll 1 exch sub 3 1 roll exch } def - /XYZ2RGB { 3 copy -0.9017 mul exch -0.1187 mul add exch 0.0585 mul exch add - Constrain 4 1 roll 3 copy -0.0279 mul exch 1.999 mul add exch - -0.9844 mul add Constrain 5 1 roll -0.2891 mul exch -0.5338 mul add - exch 1.91 mul exch add Constrain 3 1 roll} def - /SelectSpace {ColorSpace (HSV) eq {HSV2RGB}{ColorSpace (XYZ) eq { - XYZ2RGB}{ColorSpace (CMY) eq {CMY2RGB}{ColorSpace (YIQ) eq {YIQ2RGB} - if} ifelse} ifelse} ifelse} def - /InterpolatedColor true def - /grayindex {/gidx 0 def - {GrayA gidx get grayv ge {exit} if /gidx gidx 1 add def} loop} def - /dgdx {grayv GrayA gidx get sub GrayA gidx 1 sub get - GrayA gidx get sub div} def - /redvalue {RedA gidx get RedA gidx 1 sub get - RedA gidx get sub dgdxval mul add} def - /greenvalue {GreenA gidx get GreenA gidx 1 sub get - GreenA gidx get sub dgdxval mul add} def - /bluevalue {BlueA gidx get BlueA gidx 1 sub get - BlueA gidx get sub dgdxval mul add} def - /interpolate { - grayindex grayv GrayA gidx get sub abs 1e-5 le - {RedA gidx get GreenA gidx get BlueA gidx get} - {/dgdxval dgdx def redvalue greenvalue bluevalue} ifelse} def - /GrayA [0 .0159 .0317 .0476 .0635 .0794 .0952 .1111 .127 .1429 .1587 .1746 - .1905 .2063 .2222 .2381 .254 .2698 .2857 .3016 .3175 .3333 .3492 .3651 - .381 .3968 .4127 .4286 .4444 .4603 .4762 .4921 .5079 .5238 .5397 .5556 - .5714 .5873 .6032 .619 .6349 .6508 .6667 .6825 .6984 .7143 .7302 .746 - .7619 .7778 .7937 .8095 .8254 .8413 .8571 .873 .8889 .9048 .9206 .9365 - .9524 .9683 .9841 1 ] def - /RedA [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .0238 .0873 .1508 - .2143 .2778 .3413 .4048 .4683 .5317 .5952 .6587 .7222 .7857 .8492 .9127 - .9762 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 .9444 .881 .8175 .754 .6905 .627 - .5635 .5 ] def - /GreenA [0 0 0 0 0 0 0 0 .0079 .0714 .1349 .1984 .2619 .3254 .3889 .4524 - .5159 .5794 .6429 .7063 .7698 .8333 .8968 .9603 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 .9603 .8968 .8333 .7698 .7063 .6429 .5794 .5159 .4524 .3889 .3254 - .2619 .1984 .1349 .0714 .0079 0 0 0 0 0 0 0 0 ] def - /BlueA [.5 .5635 .627 .6905 .754 .8175 .881 .9444 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 .9762 .9127 .8492 .7857 .7222 .6587 .5952 .5317 .4683 .4048 .3413 - .2778 .2143 .1508 .0873 .0238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 ] def - /pm3dround {maxcolors 0 gt {dup 1 ge - {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def - /pm3dGamma 1.0 1.5 div def - /ColorSpace (RGB) def - Color true and { % COLOUR vs. GRAY map - InterpolatedColor { %% Interpolation vs. RGB-Formula - /g {stroke pm3dround /grayv exch def interpolate - SelectSpace setrgbcolor} bind def - }{ - /g {stroke pm3dround dup cF7 Constrain exch dup cF5 Constrain exch cF15 Constrain - SelectSpace setrgbcolor} bind def - } ifelse - }{ - /g {stroke pm3dround pm3dGamma exp setgray} bind def - } ifelse 1.000 UP 0.500 UL LT0 --- 469,474 ---- *************** *** 1811,1819 **** LT0 0.00 0.00 1.00 C 5161 3592 M 4971 3386 L stroke LT0 ! 0.00 0.00 1.00 C 0.500 UL LTb 5830 1511 M 5161 1074 L --- 1746,1756 ---- LT0 0.00 0.00 1.00 C 5161 3592 M 4971 3386 L + % Begin plot #1 stroke LT0 ! 0.00 0.00 1.00 C % End plot #1 ! 0.500 UL LTb 5830 1511 M 5161 1074 L *************** *** 2042,2048 **** 0.500 UL LTb 1.000 UP - grestore % colour palette end stroke grestore end --- 1979,1984 ---- Files octave-3.0.3/doc/interpreter/grid.pdf and octave-3.0.4/doc/interpreter/grid.pdf differ Files octave-3.0.3/doc/interpreter/grid.png and octave-3.0.4/doc/interpreter/grid.png differ diff -cNr octave-3.0.3/doc/interpreter/hist.eps octave-3.0.4/doc/interpreter/hist.eps *** octave-3.0.3/doc/interpreter/hist.eps 2008-09-24 10:32:20.000000000 +0200 --- octave-3.0.4/doc/interpreter/hist.eps 2009-01-29 09:11:16.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: hist.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:20 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: hist.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:16 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (hist.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:20 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (hist.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:16 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,1166 **** } ifelse 0.500 UL LTb ! 574 280 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 280 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 574 1115 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 1115 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MRshow 0.500 UL LTb ! 574 1950 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 1950 M [ [(Helvetica) 140.0 0.0 true true 0 (400)] ] -46.7 MRshow 0.500 UL LTb ! 574 2785 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 2785 M [ [(Helvetica) 140.0 0.0 true true 0 (600)] ] -46.7 MRshow 0.500 UL LTb ! 574 3620 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 3620 M [ [(Helvetica) 140.0 0.0 true true 0 (800)] ] -46.7 MRshow 0.500 UL LTb ! 574 4455 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 4455 M [ [(Helvetica) 140.0 0.0 true true 0 (1000)] ] -46.7 MRshow 0.500 UL LTb ! 1255 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1255 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-3)] ] -46.7 MCshow 0.500 UL LTb ! 2107 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2107 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MCshow 0.500 UL LTb ! 2959 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2959 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MCshow 0.500 UL LTb ! 3811 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3811 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4662 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4662 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 5514 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5514 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 6366 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6366 140 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL LTb 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 580 280 N 0 0 V 0 4 V 210 0 V 0 -4 V 1 PolyFill ! 580 280 M ! 0 4 V ! 210 0 V ! 0 -4 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 580 280 M ! 0 4 V ! 210 0 V ! 0 -4 V ! -210 0 V stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 790 280 N 0 0 V 0 13 V 211 0 V 0 -13 V 1 PolyFill ! 790 280 M ! 0 13 V ! 211 0 V ! 0 -13 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 790 280 M ! 0 13 V ! 211 0 V ! 0 -13 V ! -211 0 V stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 1001 280 N 0 0 V 0 42 V 210 0 V 0 -42 V 1 PolyFill ! 1001 280 M ! 0 42 V ! 210 0 V ! 0 -42 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1001 280 M ! 0 42 V ! 210 0 V ! 0 -42 V ! -210 0 V stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 1211 280 N 0 0 V 0 38 V 211 0 V 0 -38 V 1 PolyFill ! 1211 280 M ! 0 38 V ! 211 0 V ! 0 -38 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1211 280 M ! 0 38 V ! 211 0 V ! 0 -38 V ! -211 0 V stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 1422 280 N 0 0 V 0 134 V 210 0 V 0 -134 V 1 PolyFill ! 1422 280 M ! 0 134 V ! 210 0 V ! 0 -134 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1422 280 M ! 0 134 V ! 210 0 V ! 0 -134 V ! -210 0 V stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 1632 280 N 0 0 V 0 217 V 211 0 V 0 -217 V 1 PolyFill ! 1632 280 M ! 0 217 V ! 211 0 V ! 0 -217 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1632 280 M ! 0 217 V ! 211 0 V ! 0 -217 V ! -211 0 V stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 1843 280 N 0 0 V 0 376 V 210 0 V 0 -376 V 1 PolyFill ! 1843 280 M ! 0 376 V ! 210 0 V ! 0 -376 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1843 280 M ! 0 376 V ! 210 0 V ! 0 -376 V ! -210 0 V stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 2053 280 N 0 0 V 0 614 V 211 0 V 0 -614 V 1 PolyFill ! 2053 280 M ! 0 614 V ! 211 0 V ! 0 -614 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2053 280 M ! 0 614 V ! 211 0 V ! 0 -614 V ! -211 0 V stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 2264 280 N 0 0 V 0 952 V 210 0 V 0 -952 V 1 PolyFill ! 2264 280 M ! 0 952 V ! 210 0 V ! 0 -952 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2264 280 M ! 0 952 V ! 210 0 V ! 0 -952 V ! -210 0 V stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 2474 280 N 0 0 V 0 1302 V 211 0 V 0 -1302 V 1 PolyFill ! 2474 280 M ! 0 1302 V ! 211 0 V ! 0 -1302 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2474 280 M ! 0 1302 V ! 211 0 V ! 0 -1302 V ! -211 0 V stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 2685 280 N 0 0 V 0 2050 V 210 0 V 0 -2050 V 1 PolyFill ! 2685 280 M ! 0 2050 V ! 210 0 V ! 0 -2050 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2685 280 M ! 0 2050 V ! 210 0 V ! 0 -2050 V ! -210 0 V stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 2895 280 N 0 0 V 0 2697 V 211 0 V 0 -2697 V 1 PolyFill ! 2895 280 M ! 0 2697 V ! 211 0 V ! 0 -2697 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2895 280 M ! 0 2697 V ! 211 0 V ! 0 -2697 V ! -211 0 V stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 3106 280 N 0 0 V 0 3056 V 210 0 V 0 -3056 V 1 PolyFill ! 3106 280 M ! 0 3056 V ! 210 0 V ! 0 -3056 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3106 280 M ! 0 3056 V ! 210 0 V ! 0 -3056 V ! -210 0 V stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 3316 280 N 0 0 V 0 3720 V 211 0 V 0 -3720 V 1 PolyFill ! 3316 280 M ! 0 3720 V ! 211 0 V ! 0 -3720 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3316 280 M ! 0 3720 V ! 211 0 V ! 0 -3720 V ! -211 0 V stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 3527 280 N 0 0 V 0 3945 V 210 0 V 0 -3945 V 1 PolyFill ! 3527 280 M ! 0 3945 V ! 210 0 V ! 0 -3945 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3527 280 M ! 0 3945 V ! 210 0 V ! 0 -3945 V ! -210 0 V stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 3737 280 N 0 0 V 0 4220 V 211 0 V 0 -4220 V 1 PolyFill ! 3737 280 M ! 0 4220 V ! 211 0 V ! 0 -4220 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3737 280 M ! 0 4220 V ! 211 0 V ! 0 -4220 V ! -211 0 V stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 3948 280 N 0 0 V 0 3978 V 210 0 V 0 -3978 V 1 PolyFill ! 3948 280 M ! 0 3978 V ! 210 0 V ! 0 -3978 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3948 280 M ! 0 3978 V ! 210 0 V ! 0 -3978 V ! -210 0 V stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 4158 280 N 0 0 V 0 3457 V 211 0 V 0 -3457 V 1 PolyFill ! 4158 280 M ! 0 3457 V ! 211 0 V ! 0 -3457 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4158 280 M ! 0 3457 V ! 211 0 V ! 0 -3457 V ! -211 0 V stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 4369 280 N 0 0 V 0 3106 V 210 0 V 0 -3106 V 1 PolyFill ! 4369 280 M ! 0 3106 V ! 210 0 V ! 0 -3106 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4369 280 M ! 0 3106 V ! 210 0 V ! 0 -3106 V ! -210 0 V stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 4579 280 N 0 0 V 0 2584 V 211 0 V 0 -2584 V 1 PolyFill ! 4579 280 M ! 0 2584 V ! 211 0 V ! 0 -2584 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4579 280 M ! 0 2584 V ! 211 0 V ! 0 -2584 V ! -211 0 V stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 4790 280 N 0 0 V 0 1908 V 210 0 V 0 -1908 V 1 PolyFill ! 4790 280 M ! 0 1908 V ! 210 0 V ! 0 -1908 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4790 280 M ! 0 1908 V ! 210 0 V ! 0 -1908 V ! -210 0 V stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 5000 280 N 0 0 V 0 1261 V 211 0 V 0 -1261 V 1 PolyFill ! 5000 280 M ! 0 1261 V ! 211 0 V ! 0 -1261 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5000 280 M ! 0 1261 V ! 211 0 V ! 0 -1261 V ! -211 0 V stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 5211 280 N 0 0 V 0 877 V 210 0 V 0 -877 V 1 PolyFill ! 5211 280 M ! 0 877 V ! 210 0 V ! 0 -877 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5211 280 M ! 0 877 V ! 210 0 V ! 0 -877 V ! -210 0 V stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 5421 280 N 0 0 V 0 534 V 211 0 V 0 -534 V 1 PolyFill ! 5421 280 M ! 0 534 V ! 211 0 V ! 0 -534 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5421 280 M ! 0 534 V ! 211 0 V ! 0 -534 V ! -211 0 V stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 5632 280 N 0 0 V 0 321 V 210 0 V 0 -321 V 1 PolyFill ! 5632 280 M ! 0 321 V ! 210 0 V ! 0 -321 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5632 280 M ! 0 321 V ! 210 0 V ! 0 -321 V ! -210 0 V stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 5842 280 N 0 0 V 0 150 V 211 0 V 0 -150 V 1 PolyFill ! 5842 280 M ! 0 150 V ! 211 0 V ! 0 -150 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5842 280 M ! 0 150 V ! 211 0 V ! 0 -150 V ! -211 0 V stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 6053 280 N 0 0 V 0 104 V 210 0 V 0 -104 V 1 PolyFill ! 6053 280 M ! 0 104 V ! 210 0 V ! 0 -104 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6053 280 M ! 0 104 V ! 210 0 V ! 0 -104 V ! -210 0 V stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 6263 280 N 0 0 V 0 46 V 211 0 V 0 -46 V 1 PolyFill ! 6263 280 M ! 0 46 V ! 211 0 V ! 0 -46 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6263 280 M ! 0 46 V ! 211 0 V ! 0 -46 V ! -211 0 V stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 6474 280 N 0 0 V 0 33 V 210 0 V 0 -33 V 1 PolyFill ! 6474 280 M ! 0 33 V ! 210 0 V ! 0 -33 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6474 280 M ! 0 33 V ! 210 0 V ! 0 -33 V ! -210 0 V stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 6684 280 N 0 0 V 0 8 V 211 0 V 0 -8 V 1 PolyFill ! 6684 280 M 0 8 V ! 211 0 V 0 -8 V stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6684 280 M 0 8 V ! 211 0 V 0 -8 V ! -211 0 V stroke LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL --- 543,1301 ---- } ifelse 0.500 UL LTb ! 630 280 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 280 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 630 1115 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 1115 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MRshow 0.500 UL LTb ! 630 1949 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 1949 M [ [(Helvetica) 140.0 0.0 true true 0 (400)] ] -46.7 MRshow 0.500 UL LTb ! 630 2784 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 2784 M [ [(Helvetica) 140.0 0.0 true true 0 (600)] ] -46.7 MRshow 0.500 UL LTb ! 630 3619 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 3619 M [ [(Helvetica) 140.0 0.0 true true 0 (800)] ] -46.7 MRshow 0.500 UL LTb ! 630 4454 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 4454 M [ [(Helvetica) 140.0 0.0 true true 0 (1000)] ] -46.7 MRshow 0.500 UL LTb ! 795 280 M ! 0 63 V ! 0 4528 R ! 0 -63 V ! stroke ! 0.00 0.00 0.00 C 795 140 M ! [ [(Helvetica) 140.0 0.0 true true 0 (-4)] ! ] -46.7 MCshow ! 0.500 UL ! LTb ! 1621 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1621 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-3)] ] -46.7 MCshow 0.500 UL LTb ! 2447 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2447 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MCshow 0.500 UL LTb ! 3273 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3273 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MCshow 0.500 UL LTb ! 4099 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4099 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4924 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4924 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 5750 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5750 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 6576 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6576 140 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 687 280 N 0 0 V 0 8 V 208 0 V 0 -8 V 1 PolyFill ! 687 280 M ! 0 8 V ! 208 0 V ! 0 -8 V ! % End plot #1 ! % Begin plot #2 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 687 280 M ! 0 8 V ! 208 0 V ! 0 -8 V ! -208 0 V ! % End plot #2 ! % Begin plot #3 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 895 280 N 0 0 V 0 0 V 209 0 V 0 0 V 1 PolyFill ! 895 280 M ! 209 0 V ! % End plot #3 ! % Begin plot #4 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 895 280 M ! 209 0 V ! -209 0 V ! % End plot #4 ! % Begin plot #5 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 1104 280 N 0 0 V 0 8 V 208 0 V 0 -8 V 1 PolyFill ! 1104 280 M ! 0 8 V ! 208 0 V ! 0 -8 V ! % End plot #5 ! % Begin plot #6 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1104 280 M ! 0 8 V ! 208 0 V ! 0 -8 V ! -208 0 V ! % End plot #6 ! % Begin plot #7 stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 1312 280 N 0 0 V 0 8 V 209 0 V 0 -8 V 1 PolyFill ! 1312 280 M ! 0 8 V ! 209 0 V ! 0 -8 V ! % End plot #7 ! % Begin plot #8 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1312 280 M ! 0 8 V ! 209 0 V ! 0 -8 V ! -209 0 V ! % End plot #8 ! % Begin plot #9 stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 1521 280 N 0 0 V 0 58 V 208 0 V 0 -58 V 1 PolyFill ! 1521 280 M ! 0 58 V ! 208 0 V ! 0 -58 V ! % End plot #9 ! % Begin plot #10 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1521 280 M ! 0 58 V ! 208 0 V ! 0 -58 V ! -208 0 V ! % End plot #10 ! % Begin plot #11 stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 1729 280 N 0 0 V 0 71 V 209 0 V 0 -71 V 1 PolyFill ! 1729 280 M ! 0 71 V ! 209 0 V ! 0 -71 V ! % End plot #11 ! % Begin plot #12 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1729 280 M ! 0 71 V ! 209 0 V ! 0 -71 V ! -209 0 V ! % End plot #12 ! % Begin plot #13 stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 1938 280 N 0 0 V 0 192 V 208 0 V 0 -192 V 1 PolyFill ! 1938 280 M ! 0 192 V ! 208 0 V ! 0 -192 V ! % End plot #13 ! % Begin plot #14 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1938 280 M ! 0 192 V ! 208 0 V ! 0 -192 V ! -208 0 V ! % End plot #14 ! % Begin plot #15 stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 2146 280 N 0 0 V 0 338 V 209 0 V 0 -338 V 1 PolyFill ! 2146 280 M ! 0 338 V ! 209 0 V ! 0 -338 V ! % End plot #15 ! % Begin plot #16 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2146 280 M ! 0 338 V ! 209 0 V ! 0 -338 V ! -209 0 V ! % End plot #16 ! % Begin plot #17 stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 2355 280 N 0 0 V 0 730 V 208 0 V 0 -730 V 1 PolyFill ! 2355 280 M ! 0 730 V ! 208 0 V ! 0 -730 V ! % End plot #17 ! % Begin plot #18 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2355 280 M ! 0 730 V ! 208 0 V ! 0 -730 V ! -208 0 V ! % End plot #18 ! % Begin plot #19 stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 2563 280 N 0 0 V 0 1010 V 209 0 V 0 -1010 V 1 PolyFill ! 2563 280 M ! 0 1010 V ! 209 0 V ! 0 -1010 V ! % End plot #19 ! % Begin plot #20 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2563 280 M ! 0 1010 V ! 209 0 V ! 0 -1010 V ! -209 0 V ! % End plot #20 ! % Begin plot #21 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 2772 280 N 0 0 V 0 1398 V 208 0 V 0 -1398 V 1 PolyFill ! 2772 280 M ! 0 1398 V ! 208 0 V ! 0 -1398 V ! % End plot #21 ! % Begin plot #22 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2772 280 M ! 0 1398 V ! 208 0 V ! 0 -1398 V ! -208 0 V ! % End plot #22 ! % Begin plot #23 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 2980 280 N 0 0 V 0 2133 V 209 0 V 0 -2133 V 1 PolyFill ! 2980 280 M ! 0 2133 V ! 209 0 V ! 0 -2133 V ! % End plot #23 ! % Begin plot #24 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2980 280 M ! 0 2133 V ! 209 0 V ! 0 -2133 V ! -209 0 V ! % End plot #24 ! % Begin plot #25 stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 3189 280 N 0 0 V 0 2592 V 209 0 V 0 -2592 V 1 PolyFill ! 3189 280 M ! 0 2592 V ! 209 0 V ! 0 -2592 V ! % End plot #25 ! % Begin plot #26 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3189 280 M ! 0 2592 V ! 209 0 V ! 0 -2592 V ! -209 0 V ! % End plot #26 ! % Begin plot #27 stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 3398 280 N 0 0 V 0 3101 V 208 0 V 0 -3101 V 1 PolyFill ! 3398 280 M ! 0 3101 V ! 208 0 V ! 0 -3101 V ! % End plot #27 ! % Begin plot #28 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3398 280 M ! 0 3101 V ! 208 0 V ! 0 -3101 V ! -208 0 V ! % End plot #28 ! % Begin plot #29 stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 3606 280 N 0 0 V 0 3715 V 209 0 V 0 -3715 V 1 PolyFill ! 3606 280 M ! 0 3715 V ! 209 0 V ! 0 -3715 V ! % End plot #29 ! % Begin plot #30 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3606 280 M ! 0 3715 V ! 209 0 V ! 0 -3715 V ! -209 0 V ! % End plot #30 ! % Begin plot #31 stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 3815 280 N 0 0 V 0 4195 V 208 0 V 0 -4195 V 1 PolyFill ! 3815 280 M ! 0 4195 V ! 208 0 V ! 0 -4195 V ! % End plot #31 ! % Begin plot #32 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3815 280 M ! 0 4195 V ! 208 0 V ! 0 -4195 V ! -208 0 V ! % End plot #32 ! % Begin plot #33 stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 4023 280 N 0 0 V 0 3911 V 209 0 V 0 -3911 V 1 PolyFill ! 4023 280 M ! 0 3911 V ! 209 0 V ! 0 -3911 V ! % End plot #33 ! % Begin plot #34 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4023 280 M ! 0 3911 V ! 209 0 V ! 0 -3911 V ! -209 0 V ! % End plot #34 ! % Begin plot #35 stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 4232 280 N 0 0 V 0 4011 V 208 0 V 0 -4011 V 1 PolyFill ! 4232 280 M ! 0 4011 V ! 208 0 V ! 0 -4011 V ! % End plot #35 ! % Begin plot #36 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4232 280 M ! 0 4011 V ! 208 0 V ! 0 -4011 V ! -208 0 V ! % End plot #36 ! % Begin plot #37 stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 4440 280 N 0 0 V 0 3623 V 209 0 V 0 -3623 V 1 PolyFill ! 4440 280 M ! 0 3623 V ! 209 0 V ! 0 -3623 V ! % End plot #37 ! % Begin plot #38 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4440 280 M ! 0 3623 V ! 209 0 V ! 0 -3623 V ! -209 0 V ! % End plot #38 ! % Begin plot #39 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 4649 280 N 0 0 V 0 3063 V 208 0 V 0 -3063 V 1 PolyFill ! 4649 280 M ! 0 3063 V ! 208 0 V ! 0 -3063 V ! % End plot #39 ! % Begin plot #40 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4649 280 M ! 0 3063 V ! 208 0 V ! 0 -3063 V ! -208 0 V ! % End plot #40 ! % Begin plot #41 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 4857 280 N 0 0 V 0 2525 V 209 0 V 0 -2525 V 1 PolyFill ! 4857 280 M ! 0 2525 V ! 209 0 V ! 0 -2525 V ! % End plot #41 ! % Begin plot #42 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4857 280 M ! 0 2525 V ! 209 0 V ! 0 -2525 V ! -209 0 V ! % End plot #42 ! % Begin plot #43 stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 5066 280 N 0 0 V 0 1790 V 208 0 V 0 -1790 V 1 PolyFill ! 5066 280 M ! 0 1790 V ! 208 0 V ! 0 -1790 V ! % End plot #43 ! % Begin plot #44 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5066 280 M ! 0 1790 V ! 208 0 V ! 0 -1790 V ! -208 0 V ! % End plot #44 ! % Begin plot #45 stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 5274 280 N 0 0 V 0 1423 V 209 0 V 0 -1423 V 1 PolyFill ! 5274 280 M ! 0 1423 V ! 209 0 V ! 0 -1423 V ! % End plot #45 ! % Begin plot #46 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5274 280 M ! 0 1423 V ! 209 0 V ! 0 -1423 V ! -209 0 V ! % End plot #46 ! % Begin plot #47 stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 5483 280 N 0 0 V 0 722 V 208 0 V 0 -722 V 1 PolyFill ! 5483 280 M ! 0 722 V ! 208 0 V ! 0 -722 V ! % End plot #47 ! % Begin plot #48 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5483 280 M ! 0 722 V ! 208 0 V ! 0 -722 V ! -208 0 V ! % End plot #48 ! % Begin plot #49 stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 5691 280 N 0 0 V 0 543 V 209 0 V 0 -543 V 1 PolyFill ! 5691 280 M ! 0 543 V ! 209 0 V ! 0 -543 V ! % End plot #49 ! % Begin plot #50 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5691 280 M ! 0 543 V ! 209 0 V ! 0 -543 V ! -209 0 V ! % End plot #50 ! % Begin plot #51 stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 5900 280 N 0 0 V 0 267 V 208 0 V 0 -267 V 1 PolyFill ! 5900 280 M ! 0 267 V ! 208 0 V ! 0 -267 V ! % End plot #51 ! % Begin plot #52 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5900 280 M ! 0 267 V ! 208 0 V ! 0 -267 V ! -208 0 V ! % End plot #52 ! % Begin plot #53 stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 6108 280 N 0 0 V 0 179 V 209 0 V 0 -179 V 1 PolyFill ! 6108 280 M ! 0 179 V ! 209 0 V ! 0 -179 V ! % End plot #53 ! % Begin plot #54 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6108 280 M ! 0 179 V ! 209 0 V ! 0 -179 V ! -209 0 V ! % End plot #54 ! % Begin plot #55 stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 6317 280 N 0 0 V 0 67 V 209 0 V 0 -67 V 1 PolyFill ! 6317 280 M ! 0 67 V ! 209 0 V ! 0 -67 V ! % End plot #55 ! % Begin plot #56 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6317 280 M ! 0 67 V ! 209 0 V ! 0 -67 V ! -209 0 V ! % End plot #56 ! % Begin plot #57 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 6526 280 N 0 0 V 0 46 V 208 0 V 0 -46 V 1 PolyFill ! 6526 280 M ! 0 46 V ! 208 0 V ! 0 -46 V ! % End plot #57 ! % Begin plot #58 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6526 280 M ! 0 46 V ! 208 0 V ! 0 -46 V ! -208 0 V ! % End plot #58 ! % Begin plot #59 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 6734 280 N 0 0 V 0 8 V 209 0 V 0 -8 V 1 PolyFill ! 6734 280 M 0 8 V ! 209 0 V 0 -8 V + % End plot #59 + % Begin plot #60 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6734 280 M 0 8 V ! 209 0 V 0 -8 V ! -209 0 V ! % End plot #60 stroke LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/hist.pdf and octave-3.0.4/doc/interpreter/hist.pdf differ Files octave-3.0.3/doc/interpreter/hist.png and octave-3.0.4/doc/interpreter/hist.png differ Files octave-3.0.3/doc/interpreter/HTML/convhull.png and octave-3.0.4/doc/interpreter/HTML/convhull.png differ Files octave-3.0.3/doc/interpreter/HTML/delaunay.png and octave-3.0.4/doc/interpreter/HTML/delaunay.png differ Files octave-3.0.3/doc/interpreter/HTML/errorbar.png and octave-3.0.4/doc/interpreter/HTML/errorbar.png differ Files octave-3.0.3/doc/interpreter/HTML/extended.png and octave-3.0.4/doc/interpreter/HTML/extended.png differ Files octave-3.0.3/doc/interpreter/HTML/gplot.png and octave-3.0.4/doc/interpreter/HTML/gplot.png differ Files octave-3.0.3/doc/interpreter/HTML/griddata.png and octave-3.0.4/doc/interpreter/HTML/griddata.png differ Files octave-3.0.3/doc/interpreter/HTML/grid.png and octave-3.0.4/doc/interpreter/HTML/grid.png differ Files octave-3.0.3/doc/interpreter/HTML/hist.png and octave-3.0.4/doc/interpreter/HTML/hist.png differ Files octave-3.0.3/doc/interpreter/HTML/inpolygon.png and octave-3.0.4/doc/interpreter/HTML/inpolygon.png differ Files octave-3.0.3/doc/interpreter/HTML/interpderiv1.png and octave-3.0.4/doc/interpreter/HTML/interpderiv1.png differ Files octave-3.0.3/doc/interpreter/HTML/interpderiv2.png and octave-3.0.4/doc/interpreter/HTML/interpderiv2.png differ Files octave-3.0.3/doc/interpreter/HTML/interpft.png and octave-3.0.4/doc/interpreter/HTML/interpft.png differ Files octave-3.0.3/doc/interpreter/HTML/interpn.png and octave-3.0.4/doc/interpreter/HTML/interpn.png differ Files octave-3.0.3/doc/interpreter/HTML/mesh.png and octave-3.0.4/doc/interpreter/HTML/mesh.png differ Files octave-3.0.3/doc/interpreter/HTML/plot3.png and octave-3.0.4/doc/interpreter/HTML/plot3.png differ Files octave-3.0.3/doc/interpreter/HTML/plot.png and octave-3.0.4/doc/interpreter/HTML/plot.png differ Files octave-3.0.3/doc/interpreter/HTML/polar.png and octave-3.0.4/doc/interpreter/HTML/polar.png differ Files octave-3.0.3/doc/interpreter/HTML/spcholperm.png and octave-3.0.4/doc/interpreter/HTML/spcholperm.png differ Files octave-3.0.3/doc/interpreter/HTML/spchol.png and octave-3.0.4/doc/interpreter/HTML/spchol.png differ Files octave-3.0.3/doc/interpreter/HTML/spmatrix.png and octave-3.0.4/doc/interpreter/HTML/spmatrix.png differ Files octave-3.0.3/doc/interpreter/HTML/triplot.png and octave-3.0.4/doc/interpreter/HTML/triplot.png differ Files octave-3.0.3/doc/interpreter/HTML/voronoi.png and octave-3.0.4/doc/interpreter/HTML/voronoi.png differ diff -cNr octave-3.0.3/doc/interpreter/image.texi octave-3.0.4/doc/interpreter/image.texi *** octave-3.0.3/doc/interpreter/image.texi 2008-10-03 12:17:34.000000000 +0200 --- octave-3.0.4/doc/interpreter/image.texi 2009-04-01 11:00:27.000000000 +0200 *************** *** 153,159 **** @deftypefnx {Function File} {} image (@var{x}, @var{y}, @var{img}) Display a matrix as a color image. The elements of @var{x} are indices into the current colormap, and the colormap will be scaled so that the ! extremes of @var{x} are mapped to the extremes of teh colormap. It first tries to use @code{gnuplot}, then @code{display} from @code{ImageMagick}, then @code{xv}, and then @code{xloadimage}. --- 153,159 ---- @deftypefnx {Function File} {} image (@var{x}, @var{y}, @var{img}) Display a matrix as a color image. The elements of @var{x} are indices into the current colormap, and the colormap will be scaled so that the ! extremes of @var{x} are mapped to the extremes of the colormap. It first tries to use @code{gnuplot}, then @code{display} from @code{ImageMagick}, then @code{xv}, and then @code{xloadimage}. *************** *** 241,247 **** images, RGB images, binary images, and indexed images. A gray-scale image is represented with an M-by-N matrix in which each element corresponds to the intensity of a pixel. An RGB image is ! represented with an M-by-N-by3 array where each 3-vector corresponds to the red, green, and blue intensities of each pixel. --- 241,247 ---- images, RGB images, binary images, and indexed images. A gray-scale image is represented with an M-by-N matrix in which each element corresponds to the intensity of a pixel. An RGB image is ! represented with an M-by-N-by-3 array where each 3-vector corresponds to the red, green, and blue intensities of each pixel. *************** *** 464,470 **** @anchor{doc-gmap40} @deftypefn {Function File} {} gmap40 (@var{n}) Create a color colormap. The colormap is red, green, blue, yellow, ! magneta and cyan. These are the colors that are allowed with patch objects using gnuplot 4.0, and so this colormap function is specially designed for users of gnuplot 4.0. The argument @var{n} should be a scalar. If it is omitted, a length of 6 is assumed. Larger values --- 464,470 ---- @anchor{doc-gmap40} @deftypefn {Function File} {} gmap40 (@var{n}) Create a color colormap. The colormap is red, green, blue, yellow, ! magenta and cyan. These are the colors that are allowed with patch objects using gnuplot 4.0, and so this colormap function is specially designed for users of gnuplot 4.0. The argument @var{n} should be a scalar. If it is omitted, a length of 6 is assumed. Larger values diff -cNr octave-3.0.3/doc/interpreter/image.txi octave-3.0.4/doc/interpreter/image.txi *** octave-3.0.3/doc/interpreter/image.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/image.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 90,96 **** images, RGB images, binary images, and indexed images. A gray-scale image is represented with an M-by-N matrix in which each element corresponds to the intensity of a pixel. An RGB image is ! represented with an M-by-N-by3 array where each 3-vector corresponds to the red, green, and blue intensities of each pixel. --- 90,96 ---- images, RGB images, binary images, and indexed images. A gray-scale image is represented with an M-by-N matrix in which each element corresponds to the intensity of a pixel. An RGB image is ! represented with an M-by-N-by-3 array where each 3-vector corresponds to the red, green, and blue intensities of each pixel. diff -cNr octave-3.0.3/doc/interpreter/inpolygon.eps octave-3.0.4/doc/interpreter/inpolygon.eps *** octave-3.0.3/doc/interpreter/inpolygon.eps 2008-09-24 10:32:16.000000000 +0200 --- octave-3.0.4/doc/interpreter/inpolygon.eps 2009-01-29 09:11:14.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: inpolygon.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:16 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: inpolygon.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:14 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (inpolygon.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:16 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (inpolygon.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:14 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,857 **** } ifelse 0.500 UL LTb ! 574 280 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 280 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MRshow 0.500 UL LTb ! 574 854 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 854 M [ [(Helvetica) 140.0 0.0 true true 0 (-1.5)] ] -46.7 MRshow 0.500 UL LTb ! 574 1428 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 1428 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MRshow 0.500 UL LTb ! 574 2002 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 2002 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MRshow 0.500 UL LTb ! 574 2576 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 2576 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 574 3150 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 3150 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 574 3724 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 3724 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 574 4298 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 4298 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MRshow 0.500 UL LTb ! 574 4872 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 4872 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MRshow 0.500 UL LTb ! 574 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 574 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MCshow 0.500 UL LTb ! 1373 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1373 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1.5)] ] -46.7 MCshow 0.500 UL LTb ! 2171 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2171 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MCshow 0.500 UL LTb ! 2970 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2970 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MCshow 0.500 UL LTb ! 3768 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3768 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4567 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4567 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 5365 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5365 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 6164 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6164 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MCshow 0.500 UL LTb ! 6962 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6962 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL LTb 0.500 UL LT0 ! 0.00 0.00 1.00 C 2171 2576 M ! 78 -355 V ! 227 -320 V ! 353 -254 V ! 445 -163 V ! 494 -56 V ! 494 56 V ! 445 163 V ! 353 254 V ! 227 320 V 78 355 V ! -78 355 V ! -227 320 V ! -353 254 V ! -445 163 V ! -494 56 V ! -494 -56 V ! 2829 3505 L ! 2476 3251 L ! 2249 2931 L ! -78 -355 V 1.000 UP stroke LT1 ! 1.00 0.00 0.00 C 3026 2792 Pls ! 4143 2610 Pls ! 2677 2933 Pls ! 2447 2255 Pls ! 2492 2073 Pls ! 3354 1585 Pls ! 3449 2494 Pls ! 3973 2105 Pls ! 2920 3101 Pls ! 2681 2407 Pls ! 5025 2533 Pls ! 3710 2839 Pls ! 2243 2727 Pls ! 5053 2740 Pls ! 2618 2709 Pls ! 4163 2577 Pls ! 4308 3228 Pls ! 4134 2095 Pls ! 4308 1823 Pls ! 3312 3041 Pls ! 3728 3323 Pls ! 4332 2211 Pls ! 4313 2827 Pls ! 3542 2816 Pls ! 3153 2739 Pls ! 3967 3626 Pls ! 5176 2228 Pls ! 5155 3111 Pls ! 4102 2996 Pls ! 3782 1768 Pls 1.000 UP 0.500 UL LT2 ! 0.00 0.00 1.00 C 1186 3820 Circle ! 702 748 Circle ! 4966 4402 Circle ! 4130 4260 Circle ! 1376 3495 Circle ! 5503 2775 Circle ! 1464 3045 Circle ! 3182 1325 Circle ! 6163 466 Circle ! 3122 1198 Circle ! 4026 856 Circle ! 5596 3114 Circle ! 4778 3482 Circle ! 2756 1536 Circle ! 4176 3827 Circle ! 4409 4111 Circle ! 5530 3509 Circle ! 5975 2957 Circle ! 4900 1488 Circle ! 1698 1523 Circle ! 5211 3409 Circle ! 4908 1477 Circle ! 4445 4248 Circle ! 5536 3042 Circle ! 1277 1412 Circle ! 5657 4786 Circle ! 6893 3089 Circle ! 4564 3614 Circle ! 6328 2644 Circle ! 2270 3578 Circle ! 1259 3341 Circle ! 2195 2378 Circle ! 5981 1594 Circle ! 5502 3218 Circle ! 2421 1625 Circle ! 5346 1524 Circle ! 4240 696 Circle ! 3873 375 Circle ! 5543 3022 Circle ! 5053 1687 Circle ! 3164 580 Circle ! 1947 2388 Circle ! 5709 3142 Circle ! 1087 2162 Circle ! 5130 3179 Circle ! 5410 2620 Circle ! 5783 3197 Circle ! 4728 4180 Circle ! 5745 3354 Circle ! 2365 1558 Circle ! 4166 1330 Circle ! 6229 1806 Circle ! 5185 3163 Circle ! 1441 4785 Circle ! 5090 1672 Circle ! 3350 355 Circle ! 5157 1210 Circle ! 2696 3597 Circle ! 5502 1805 Circle ! 3279 869 Circle ! 2838 4454 Circle ! 0.500 UL ! LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL --- 543,872 ---- } ifelse 0.500 UL LTb ! 630 280 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 280 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MRshow 0.500 UL LTb ! 630 854 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 854 M [ [(Helvetica) 140.0 0.0 true true 0 (-1.5)] ] -46.7 MRshow 0.500 UL LTb ! 630 1428 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 1428 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MRshow 0.500 UL LTb ! 630 2002 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 2002 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MRshow 0.500 UL LTb ! 630 2576 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 2576 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 630 3149 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 3149 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 630 3723 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 3723 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 630 4297 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 4297 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MRshow 0.500 UL LTb ! 630 4871 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 4871 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MRshow 0.500 UL LTb ! 630 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 630 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MCshow 0.500 UL LTb ! 1425 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1425 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1.5)] ] -46.7 MCshow 0.500 UL LTb ! 2220 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2220 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MCshow 0.500 UL LTb ! 3015 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3015 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MCshow 0.500 UL LTb ! 3810 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3810 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4604 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4604 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 5399 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5399 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 6194 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6194 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MCshow 0.500 UL LTb ! 6989 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6989 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 0.500 UL LT0 ! 0.00 0.00 1.00 C 2220 2575 M ! 78 -354 V ! 225 -320 V ! 352 -254 V ! 443 -163 V ! 492 -56 V ! 491 56 V ! 443 163 V ! 352 254 V ! 225 320 V 78 355 V ! -78 354 V ! -225 320 V ! -352 254 V ! -443 163 V ! -491 56 V ! -492 -56 V ! 2875 3504 L ! 2523 3250 L ! 2298 2930 L ! -78 -354 V ! % End plot #1 ! % Begin plot #2 1.000 UP stroke LT1 ! 1.00 0.00 0.00 C 3071 2791 Pls ! 4183 2609 Pls ! 2723 2932 Pls ! 2495 2254 Pls ! 2540 2073 Pls ! 3397 1585 Pls ! 3492 2494 Pls ! 4014 2105 Pls ! 2965 3101 Pls ! 2728 2407 Pls ! 5061 2533 Pls ! 3752 2838 Pls ! 2291 2726 Pls ! 5088 2739 Pls ! 2665 2709 Pls ! 4203 2576 Pls ! 4347 3227 Pls ! 4174 2095 Pls ! 4347 1823 Pls ! 3356 3040 Pls ! 3770 3323 Pls ! 4371 2211 Pls ! 4352 2827 Pls ! 3584 2815 Pls ! 3198 2738 Pls ! 4007 3625 Pls ! 5211 2227 Pls ! 5191 3111 Pls ! 4142 2995 Pls ! 3824 1768 Pls ! % End plot #2 ! % Begin plot #3 1.000 UP 0.500 UL LT2 ! 0.00 0.00 1.00 C 1239 3819 Circle ! 757 748 Circle ! 5002 4401 Circle ! 4169 4259 Circle ! 1428 3494 Circle ! 5537 2774 Circle ! 1516 3045 Circle ! 3226 1325 Circle ! 6193 466 Circle ! 3167 1198 Circle ! 4066 856 Circle ! 5629 3113 Circle ! 4815 3482 Circle ! 2802 1536 Circle ! 4216 3827 Circle ! 4448 4110 Circle ! 5564 3508 Circle ! 6007 2956 Circle ! 4936 1487 Circle ! 1749 1523 Circle ! 5246 3409 Circle ! 4944 1477 Circle ! 4483 4247 Circle ! 5569 3041 Circle ! 1329 1411 Circle ! 5690 4785 Circle ! 6920 3088 Circle ! 4602 3613 Circle ! 6358 2643 Circle ! 2318 3577 Circle ! 1311 3340 Circle ! 2243 2377 Circle ! 6012 1594 Circle ! 5536 3217 Circle ! 2468 1625 Circle ! 5380 1523 Circle ! 4280 696 Circle ! 3914 375 Circle ! 5576 3021 Circle ! 5088 1687 Circle ! 3209 580 Circle ! 1997 2387 Circle ! 5742 3142 Circle ! 1141 2162 Circle ! 5165 3178 Circle ! 5444 2620 Circle ! 5816 3196 Circle ! 4765 4179 Circle ! 5777 3353 Circle ! 2413 1558 Circle ! 4205 1330 Circle ! 6259 1806 Circle ! 5220 3162 Circle ! 1493 4784 Circle ! 5125 1672 Circle ! 3393 355 Circle ! 5192 1210 Circle ! 2742 3597 Circle ! 5535 1805 Circle ! 3323 869 Circle ! 2883 4453 Circle ! % End plot #3 ! 0.500 UL ! LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/inpolygon.pdf and octave-3.0.4/doc/interpreter/inpolygon.pdf differ Files octave-3.0.3/doc/interpreter/inpolygon.png and octave-3.0.4/doc/interpreter/inpolygon.png differ diff -cNr octave-3.0.3/doc/interpreter/install.texi octave-3.0.4/doc/interpreter/install.texi *** octave-3.0.3/doc/interpreter/install.texi 2008-10-03 12:17:35.000000000 +0200 --- octave-3.0.4/doc/interpreter/install.texi 2009-04-01 11:00:27.000000000 +0200 *************** *** 37,43 **** @strong{Note:} This file is automatically generated from @file{doc/interpreter/install.txi} in the Octave sources, so to make ! changes to this documenation file, change that source file. @node Installation @chapter Installing Octave --- 37,43 ---- @strong{Note:} This file is automatically generated from @file{doc/interpreter/install.txi} in the Octave sources, so to make ! changes to this documentation file, change that source file. @node Installation @chapter Installing Octave *************** *** 68,74 **** @item --enable-bounds-check Enable bounds checking for indexing operators in the internal array classes. This option is primarily used for debugging Octave. Building ! Octave with this option has a negative impact on performace and is not recommended for general use. @item --enable-64 --- 68,74 ---- @item --enable-bounds-check Enable bounds checking for indexing operators in the internal array classes. This option is primarily used for debugging Octave. Building ! Octave with this option has a negative impact on performance and is not recommended for general use. @item --enable-64 *************** *** 273,279 **** @itemize @bullet @item On some SCO systems, @code{info} fails to compile if ! @code{HAVE_TERMIOS_H} is defined int @file{config.h}. Simply removing the definition from @file{info/config.h} should allow it to compile. @item --- 273,279 ---- @itemize @bullet @item On some SCO systems, @code{info} fails to compile if ! @code{HAVE_TERMIOS_H} is defined in @file{config.h}. Simply removing the definition from @file{info/config.h} should allow it to compile. @item diff -cNr octave-3.0.3/doc/interpreter/install.txi octave-3.0.4/doc/interpreter/install.txi *** octave-3.0.3/doc/interpreter/install.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/install.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 35,41 **** @strong{Note:} This file is automatically generated from @file{doc/interpreter/install.txi} in the Octave sources, so to make ! changes to this documenation file, change that source file. @node Installation @chapter Installing Octave --- 35,41 ---- @strong{Note:} This file is automatically generated from @file{doc/interpreter/install.txi} in the Octave sources, so to make ! changes to this documentation file, change that source file. @node Installation @chapter Installing Octave *************** *** 66,72 **** @item --enable-bounds-check Enable bounds checking for indexing operators in the internal array classes. This option is primarily used for debugging Octave. Building ! Octave with this option has a negative impact on performace and is not recommended for general use. @item --enable-64 --- 66,72 ---- @item --enable-bounds-check Enable bounds checking for indexing operators in the internal array classes. This option is primarily used for debugging Octave. Building ! Octave with this option has a negative impact on performance and is not recommended for general use. @item --enable-64 *************** *** 271,277 **** @itemize @bullet @item On some SCO systems, @code{info} fails to compile if ! @code{HAVE_TERMIOS_H} is defined int @file{config.h}. Simply removing the definition from @file{info/config.h} should allow it to compile. @item --- 271,277 ---- @itemize @bullet @item On some SCO systems, @code{info} fails to compile if ! @code{HAVE_TERMIOS_H} is defined in @file{config.h}. Simply removing the definition from @file{info/config.h} should allow it to compile. @item diff -cNr octave-3.0.3/doc/interpreter/interpderiv1.eps octave-3.0.4/doc/interpreter/interpderiv1.eps *** octave-3.0.3/doc/interpreter/interpderiv1.eps 2008-09-24 10:32:02.000000000 +0200 --- octave-3.0.4/doc/interpreter/interpderiv1.eps 2009-01-29 09:11:10.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpderiv1.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:02 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpderiv1.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:10 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (interpderiv1.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:02 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (interpderiv1.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:10 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,887 **** } ifelse 0.500 UL LTb ! 574 663 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 663 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MRshow 0.500 UL LTb ! 574 1619 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 1619 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MRshow 0.500 UL LTb ! 574 2576 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 2576 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 574 3533 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 3533 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 574 4489 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 4489 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 574 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 574 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MCshow 0.500 UL LTb ! 1373 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1373 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1.5)] ] -46.7 MCshow 0.500 UL LTb ! 2171 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2171 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MCshow 0.500 UL LTb ! 2970 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2970 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MCshow 0.500 UL LTb ! 3768 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3768 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4567 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4567 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 5365 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5365 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 6164 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6164 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MCshow 0.500 UL LTb ! 6962 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6962 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL LTb 0.500 UL LT0 ! 1.00 0.00 0.00 C LTb ! 6311 553 M ! [ [(Helvetica) 140.0 0.0 true true 0 (spline)] ] -46.7 MRshow LT0 ! 1.00 0.00 0.00 C 6395 553 M 399 0 V ! 574 663 M 40 -39 V ! 40 -36 V 40 -34 V 40 -32 V 40 -29 V ! 40 -28 V ! 39 -24 V ! 40 -23 V 40 -21 V ! 40 -18 V 40 -17 V 40 -14 V 40 -12 V ! 40 -11 V 40 -8 V 40 -6 V 40 -5 V ! 40 -2 V 40 -1 V 40 1 V ! 39 3 V ! 40 4 V 40 7 V 40 8 V 40 10 V ! 40 11 V 40 13 V 40 15 V 40 16 V ! 40 18 V 40 19 V 40 20 V 40 22 V 39 24 V 40 25 V 40 26 V ! 40 28 V ! 40 28 V 40 30 V 40 32 V ! 40 32 V 40 34 V ! 40 35 V ! 40 35 V ! 40 37 V 40 38 V ! 39 39 V 40 40 V ! 40 41 V 40 42 V 40 43 V 40 44 V ! 40 44 V ! 40 46 V ! 40 46 V ! 40 47 V 40 47 V 40 48 V 40 49 V 40 50 V - 39 50 V - 40 51 V 40 51 V 40 52 V ! 40 52 V ! 40 52 V 40 53 V 40 54 V ! 40 54 V ! 40 54 V ! 40 54 V 40 55 V 40 55 V 39 55 V - 40 56 V 40 55 V - 40 56 V 40 55 V 40 56 V 40 56 V 40 56 V 40 56 V ! 40 55 V 40 56 V - 40 55 V 40 56 V 39 55 V 40 55 V 40 55 V 40 54 V ! 40 54 V ! 40 54 V 40 54 V 40 53 V ! 40 52 V ! 40 52 V 40 52 V 40 51 V - 40 51 V 40 50 V ! 39 50 V 40 49 V ! 4686 3799 L ! 40 47 V ! 40 47 V ! 40 46 V 40 46 V ! 40 44 V 40 44 V 40 43 V 40 42 V ! 40 41 V 40 40 V ! 39 39 V 40 38 V ! 40 37 V ! 40 35 V ! 40 35 V 40 34 V ! 40 32 V 40 32 V 40 30 V ! 40 28 V ! 40 28 V 40 26 V 40 25 V 39 24 V 40 22 V 40 20 V 40 19 V ! 40 18 V 40 16 V 40 15 V 40 13 V ! 40 11 V 40 10 V 40 8 V 40 7 V ! 40 4 V 40 3 V ! 39 1 V 40 -1 V ! 40 -2 V 40 -5 V 40 -6 V 40 -8 V ! 40 -11 V 40 -12 V 40 -14 V 40 -17 V ! 40 -18 V 40 -21 V ! 40 -23 V ! 39 -24 V ! 40 -28 V 40 -29 V 40 -32 V 40 -34 V ! 40 -36 V 40 -39 V stroke LT1 ! 0.00 1.00 0.00 C LTb ! 6311 413 M ! [ [(Helvetica) 140.0 0.0 true true 0 (pchip)] ] -46.7 MRshow LT1 ! 0.00 1.00 0.00 C 6395 413 M 399 0 V ! 574 663 M ! 40 0 V ! 40 0 V ! 40 0 V ! 40 0 V ! 40 0 V 40 0 V 39 0 V 40 0 V 40 0 V 40 0 V 40 0 V 40 0 V 40 0 V 40 0 V 40 0 V 40 0 V ! 40 0 V 40 0 V 40 0 V 40 0 V --- 543,897 ---- } ifelse 0.500 UL LTb ! 630 663 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 663 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MRshow 0.500 UL LTb ! 630 1619 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 1619 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MRshow 0.500 UL LTb ! 630 2576 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 2576 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 630 3532 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 3532 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 630 4488 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 4488 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 630 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 630 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MCshow 0.500 UL LTb ! 1425 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1425 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1.5)] ] -46.7 MCshow 0.500 UL LTb ! 2220 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2220 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MCshow 0.500 UL LTb ! 3015 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3015 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MCshow 0.500 UL LTb ! 3810 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3810 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4604 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4604 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 5399 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5399 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 6194 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6194 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MCshow 0.500 UL LTb ! 6989 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6989 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 0.500 UL LT0 ! 1.00 0.00 0.00 C LCb setrgbcolor ! 6338 553 M ! [ [(Helvetica) 140.0 0.0 true true 0 (pchip)] ] -46.7 MRshow LT0 ! 1.00 0.00 0.00 C 6422 553 M 399 0 V ! 630 663 M 40 -39 V ! 39 -36 V 40 -34 V 40 -32 V 40 -29 V ! 39 -28 V ! 40 -25 V ! 40 -22 V 40 -21 V ! 39 -18 V 40 -17 V 40 -14 V 40 -12 V ! 39 -11 V 40 -8 V 40 -6 V 40 -5 V ! 39 -2 V 40 -1 V 40 1 V ! 40 3 V ! 39 4 V 40 7 V 40 8 V 40 10 V ! 39 11 V 40 13 V 40 15 V 40 16 V ! 39 18 V 40 19 V 40 20 V 40 22 V 39 24 V 40 25 V 40 26 V ! 40 27 V ! 39 29 V 40 30 V 40 32 V ! 39 32 V 40 34 V ! 40 34 V ! 40 36 V ! 39 37 V 40 38 V ! 40 39 V 40 40 V ! 39 41 V 40 42 V 40 43 V 40 44 V ! 39 44 V ! 40 45 V 40 47 V + 40 46 V + 39 48 V 40 48 V 40 49 V + 40 49 V + 39 51 V 40 50 V 40 51 V 40 52 V ! 39 52 V ! 40 53 V 40 53 V 40 54 V ! 39 53 V 40 55 V + 40 54 V 40 55 V 39 55 V 40 55 V 40 55 V 40 56 V + 39 55 V 40 56 V 40 56 V 40 56 V ! 39 55 V 40 56 V 40 56 V 39 55 V + 40 56 V 40 55 V 40 55 V + 39 55 V + 40 55 V 40 54 V ! 40 55 V ! 39 53 V 40 54 V 40 53 V ! 40 53 V ! 39 52 V 40 52 V 40 51 V 40 50 V ! 39 51 V 40 49 V ! 40 49 V ! stroke 4684 3750 M ! 40 48 V ! 39 48 V 40 46 V ! 40 47 V ! 40 45 V ! 39 44 V 40 44 V 40 43 V 40 42 V ! 39 41 V 40 40 V ! 40 39 V 40 38 V ! 39 37 V ! 40 36 V 40 34 V ! 40 34 V ! 39 32 V 40 32 V 40 30 V ! 39 29 V ! 40 27 V 40 26 V 40 25 V 39 24 V 40 22 V 40 20 V 40 19 V ! 39 18 V 40 16 V 40 15 V 40 13 V ! 39 11 V 40 10 V 40 8 V 40 7 V ! 39 4 V 40 3 V ! 40 1 V 40 -1 V ! 39 -2 V 40 -5 V 40 -6 V 40 -8 V ! 39 -11 V 40 -12 V 40 -14 V 40 -17 V ! 39 -18 V 40 -21 V ! 40 -22 V ! 40 -25 V ! 39 -28 V 40 -29 V 40 -32 V 40 -34 V ! 39 -36 V 40 -39 V + % End plot #1 + % Begin plot #2 stroke LT1 ! 0.00 1.00 0.00 C LCb setrgbcolor ! 6338 413 M ! [ [(Helvetica) 140.0 0.0 true true 0 (spline)] ] -46.7 MRshow LT1 ! 0.00 1.00 0.00 C 6422 413 M 399 0 V ! 630 663 M 40 0 V 39 0 V 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V 40 0 V 40 0 V ! 39 0 V 40 0 V 40 0 V 40 0 V *************** *** 889,900 **** --- 899,913 ---- 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V 40 0 V 40 0 V *************** *** 902,1007 **** 40 0 V 40 0 V 40 0 V 40 0 V 40 0 V ! 40 0 V ! 40 2 V 40 7 V 40 11 V 40 16 V ! 40 20 V 40 23 V ! 39 28 V ! 40 30 V ! 40 35 V ! 40 37 V 40 40 V 40 43 V ! 40 46 V 40 48 V 40 51 V 40 52 V ! 40 55 V 40 56 V 40 58 V 40 59 V ! 39 61 V ! 40 61 V 40 62 V 40 63 V ! 40 63 V ! 40 64 V 40 64 V 40 63 V 40 64 V 40 63 V 40 62 V 40 62 V ! 40 61 V ! 39 59 V ! 40 59 V ! 40 56 V ! 40 56 V 40 53 V ! 40 51 V ! 40 49 V 40 49 V ! 40 51 V 40 53 V ! 40 56 V ! 40 56 V ! 40 59 V ! 39 59 V ! 40 61 V 40 62 V 40 62 V 40 63 V 40 64 V 40 63 V 40 64 V ! 40 64 V ! 40 63 V 40 63 V 40 62 V ! 40 61 V ! 40 61 V ! 39 59 V 40 58 V ! 4686 3945 L ! 40 55 V 40 52 V 40 51 V 40 48 V ! 40 46 V 40 43 V 40 40 V ! 40 37 V ! 40 35 V ! 40 30 V ! 39 28 V 40 23 V ! 40 20 V 40 16 V 40 11 V 40 7 V ! 40 2 V ! 40 0 V ! 40 0 V ! 40 0 V ! 40 0 V 40 0 V 40 0 V 39 0 V 40 0 V 40 0 V 40 0 V 40 0 V 40 0 V 40 0 V 40 0 V 40 0 V 40 0 V ! 40 0 V 40 0 V 40 0 V 40 0 V --- 915,1019 ---- 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V 40 0 V ! 39 2 V 40 7 V 40 11 V 40 16 V ! 39 20 V 40 23 V ! 40 27 V ! 40 31 V ! 39 34 V ! 40 38 V 40 40 V 40 43 V ! 39 46 V 40 48 V 40 51 V 40 52 V ! 39 55 V 40 56 V 40 58 V 40 59 V ! 39 60 V ! 40 62 V 40 62 V 40 63 V ! 39 63 V 40 64 V 40 63 V 40 64 V + 39 64 V 40 63 V 40 62 V 40 62 V ! 39 60 V ! 40 60 V ! 40 58 V ! 40 57 V ! 39 55 V 40 53 V ! 40 52 V 40 49 V ! 39 48 V ! 40 52 V 40 53 V ! 39 55 V ! 40 57 V ! 40 58 V ! 40 60 V ! 39 60 V 40 62 V 40 62 V 40 63 V + 39 64 V 40 64 V 40 63 V 40 64 V ! 39 63 V 40 63 V 40 62 V ! 40 62 V ! 39 60 V ! 40 59 V 40 58 V ! stroke 4684 3888 M ! 40 56 V ! 39 55 V 40 52 V 40 51 V 40 48 V ! 39 46 V 40 43 V 40 40 V ! 40 38 V ! 39 34 V ! 40 31 V ! 40 27 V 40 23 V ! 39 20 V 40 16 V 40 11 V 40 7 V ! 39 2 V 40 0 V 40 0 V 39 0 V 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V 40 0 V 40 0 V ! 39 0 V 40 0 V 40 0 V 40 0 V *************** *** 1009,1020 **** --- 1021,1035 ---- 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V 40 0 V 40 0 V *************** *** 1022,1037 **** 40 0 V 40 0 V 40 0 V 40 0 V ! 40 0 V ! 40 0 V stroke LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL --- 1037,1052 ---- 40 0 V 40 0 V 40 0 V + 39 0 V 40 0 V ! % End plot #2 stroke LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/interpderiv1.pdf and octave-3.0.4/doc/interpreter/interpderiv1.pdf differ Files octave-3.0.3/doc/interpreter/interpderiv1.png and octave-3.0.4/doc/interpreter/interpderiv1.png differ diff -cNr octave-3.0.3/doc/interpreter/interpderiv2.eps octave-3.0.4/doc/interpreter/interpderiv2.eps *** octave-3.0.3/doc/interpreter/interpderiv2.eps 2008-09-24 10:32:04.000000000 +0200 --- octave-3.0.4/doc/interpreter/interpderiv2.eps 2009-01-29 09:11:10.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpderiv2.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:04 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpderiv2.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:10 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (interpderiv2.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:04 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (interpderiv2.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:10 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,1053 **** } ifelse 0.500 UL LTb ! 406 810 M 63 0 V ! 6493 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 322 810 M [ [(Helvetica) 140.0 0.0 true true 0 (-3)] ] -46.7 MRshow 0.500 UL LTb ! 406 1399 M 63 0 V ! 6493 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 322 1399 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MRshow 0.500 UL LTb ! 406 1987 M 63 0 V ! 6493 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 322 1987 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MRshow 0.500 UL LTb ! 406 2576 M 63 0 V ! 6493 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 322 2576 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 406 3165 M 63 0 V ! 6493 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 322 3165 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 406 3753 M 63 0 V ! 6493 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 322 3753 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MRshow 0.500 UL LTb ! 406 4342 M 63 0 V ! 6493 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 322 4342 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MRshow 0.500 UL LTb ! 406 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 406 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MCshow 0.500 UL LTb ! 1226 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1226 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1.5)] ] -46.7 MCshow 0.500 UL LTb ! 2045 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2045 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MCshow 0.500 UL LTb ! 2865 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2865 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MCshow 0.500 UL LTb ! 3684 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3684 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4504 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4504 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 5323 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5323 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 6143 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6143 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MCshow 0.500 UL LTb ! 6962 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6962 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 406 4872 N ! 406 280 L ! 6556 0 V ! 0 4592 V ! -6556 0 V Z stroke 1.000 UP 0.500 UL LTb 1.000 UP 0.500 UL LT0 ! 1.00 0.00 0.00 C LTb ! 6311 4739 M ! [ [(Helvetica) 140.0 0.0 true true 0 (spline)] ] -46.7 MRshow LT0 ! 1.00 0.00 0.00 C 447 3739 Star ! 488 3724 Star ! 529 3709 Star ! 570 3695 Star ! 611 3680 Star ! 652 3665 Star ! 693 3650 Star ! 734 3636 Star ! 775 3621 Star ! 816 3606 Star ! 857 3592 Star ! 898 3577 Star ! 939 3562 Star ! 980 3547 Star ! 1021 3533 Star ! 1062 3518 Star ! 1103 3503 Star ! 1144 3489 Star ! 1185 3474 Star ! 1226 3459 Star ! 1266 3444 Star ! 1307 3430 Star ! 1348 3415 Star ! 1389 3400 Star ! 1430 3385 Star ! 1471 3371 Star ! 1512 3356 Star ! 1553 3341 Star ! 1594 3327 Star ! 1635 3312 Star ! 1676 3297 Star ! 1717 3282 Star ! 1758 3268 Star ! 1799 3253 Star ! 1840 3238 Star ! 1881 3224 Star ! 1922 3209 Star ! 1963 3194 Star ! 2004 3179 Star ! 2045 3165 Star ! 2086 3150 Star ! 2127 3135 Star ! 2168 3121 Star ! 2209 3106 Star ! 2250 3091 Star ! 2291 3076 Star ! 2332 3062 Star ! 2373 3047 Star ! 2414 3032 Star ! 2455 3018 Star ! 2496 3003 Star ! 2537 2988 Star ! 2578 2973 Star ! 2619 2959 Star ! 2660 2944 Star ! 2701 2929 Star ! 2742 2915 Star ! 2783 2900 Star ! 2824 2885 Star ! 2865 2870 Star ! 2905 2856 Star ! 2946 2841 Star ! 2987 2826 Star ! 3028 2811 Star ! 3069 2797 Star ! 3110 2782 Star ! 3151 2767 Star ! 3192 2753 Star ! 3233 2738 Star ! 3274 2723 Star ! 3315 2708 Star ! 3356 2694 Star ! 3397 2679 Star ! 3438 2664 Star ! 3479 2650 Star ! 3520 2635 Star ! 3561 2620 Star ! 3602 2605 Star ! 3643 2591 Star ! 3684 2576 Star ! 3725 2561 Star ! 3766 2547 Star ! 3807 2532 Star ! 3848 2517 Star ! 3889 2502 Star ! 3930 2488 Star ! 3971 2473 Star ! 4012 2458 Star ! 4053 2444 Star ! 4094 2429 Star ! 4135 2414 Star ! 4176 2399 Star ! 4217 2385 Star ! 4258 2370 Star ! 4299 2355 Star ! 4340 2341 Star ! 4381 2326 Star ! 4422 2311 Star ! 4463 2296 Star ! 4504 2282 Star ! 4544 2267 Star ! 4585 2252 Star ! 4626 2237 Star ! 4667 2223 Star ! 4708 2208 Star ! 4749 2193 Star ! 4790 2179 Star ! 4831 2164 Star ! 4872 2149 Star ! 4913 2134 Star ! 4954 2120 Star ! 4995 2105 Star ! 5036 2090 Star ! 5077 2076 Star ! 5118 2061 Star ! 5159 2046 Star ! 5200 2031 Star ! 5241 2017 Star ! 5282 2002 Star ! 5323 1987 Star ! 5364 1973 Star ! 5405 1958 Star ! 5446 1943 Star ! 5487 1928 Star ! 5528 1914 Star ! 5569 1899 Star ! 5610 1884 Star ! 5651 1870 Star ! 5692 1855 Star ! 5733 1840 Star ! 5774 1825 Star ! 5815 1811 Star ! 5856 1796 Star ! 5897 1781 Star ! 5938 1767 Star ! 5979 1752 Star ! 6020 1737 Star ! 6061 1722 Star ! 6102 1708 Star ! 6143 1693 Star ! 6183 1678 Star ! 6224 1663 Star ! 6265 1649 Star ! 6306 1634 Star ! 6347 1619 Star ! 6388 1605 Star ! 6429 1590 Star ! 6470 1575 Star ! 6511 1560 Star ! 6552 1546 Star ! 6593 1531 Star ! 6634 1516 Star ! 6675 1502 Star ! 6716 1487 Star ! 6757 1472 Star ! 6798 1457 Star ! 6839 1443 Star ! 6880 1428 Star ! 6921 1413 Star ! 6594 4739 Star 1.000 UP 0.500 UL LT1 ! 0.00 1.00 0.00 C LTb ! 6311 4599 M ! [ [(Helvetica) 140.0 0.0 true true 0 (pchip)] ] -46.7 MRshow LT1 ! 0.00 1.00 0.00 C 447 2576 Pls ! 488 2576 Pls ! 529 2576 Pls ! 570 2576 Pls ! 611 2576 Pls ! 652 2576 Pls ! 693 2576 Pls ! 734 2576 Pls ! 775 2576 Pls ! 816 2576 Pls ! 857 2576 Pls ! 898 2576 Pls ! 939 2576 Pls ! 980 2576 Pls ! 1021 2576 Pls ! 1062 2576 Pls ! 1103 2576 Pls ! 1144 2576 Pls ! 1185 2576 Pls ! 1226 2576 Pls ! 1266 2576 Pls ! 1307 2576 Pls ! 1348 2576 Pls ! 1389 2576 Pls ! 1430 2576 Pls ! 1471 2576 Pls ! 1512 2576 Pls ! 1553 2576 Pls ! 1594 2576 Pls ! 1635 2576 Pls ! 1676 2576 Pls ! 1717 2576 Pls ! 1758 2576 Pls ! 1799 2576 Pls ! 1840 2576 Pls ! 1881 2576 Pls ! 1922 2576 Pls ! 1963 2576 Pls ! 2004 2576 Pls ! 2045 3739 Pls ! 2086 4843 Pls ! 2127 4754 Pls ! 2168 4666 Pls ! 2209 4578 Pls ! 2250 4489 Pls ! 2291 4401 Pls ! 2332 4313 Pls ! 2373 4224 Pls ! 2414 4136 Pls ! 2455 4048 Pls ! 2496 3959 Pls ! 2537 3871 Pls ! 2578 3783 Pls ! 2619 3695 Pls ! 2660 3606 Pls ! 2701 3518 Pls ! 2742 3430 Pls ! 2783 3341 Pls ! 2824 3253 Pls ! 2865 3165 Pls ! 2905 3076 Pls ! 2946 2988 Pls ! 2987 2900 Pls ! 3028 2811 Pls ! 3069 2723 Pls ! 3110 2635 Pls ! 3151 2547 Pls ! 3192 2458 Pls ! 3233 2370 Pls ! 3274 2282 Pls ! 3315 2193 Pls ! 3356 2105 Pls ! 3397 2017 Pls ! 3438 1928 Pls ! 3479 1840 Pls ! 3520 1752 Pls ! 3561 1663 Pls ! 3602 1575 Pls ! 3643 1487 Pls ! 3684 2576 Pls ! 3725 3665 Pls ! 3766 3577 Pls ! 3807 3489 Pls ! 3848 3400 Pls ! 3889 3312 Pls ! 3930 3224 Pls ! 3971 3135 Pls ! 4012 3047 Pls ! 4053 2959 Pls ! 4094 2870 Pls ! 4135 2782 Pls ! 4176 2694 Pls ! 4217 2605 Pls ! 4258 2517 Pls ! 4299 2429 Pls ! 4340 2341 Pls ! 4381 2252 Pls ! 4422 2164 Pls ! 4463 2076 Pls ! 4504 1987 Pls ! 4544 1899 Pls ! 4585 1811 Pls ! 4626 1722 Pls ! 4667 1634 Pls ! 4708 1546 Pls ! 4749 1457 Pls ! 4790 1369 Pls ! 4831 1281 Pls ! 4872 1193 Pls ! 4913 1104 Pls ! 4954 1016 Pls ! 4995 928 Pls ! 5036 839 Pls ! 5077 751 Pls ! 5118 663 Pls ! 5159 574 Pls ! 5200 486 Pls ! 5241 398 Pls ! 5282 309 Pls ! 5323 1413 Pls ! 5364 2576 Pls ! 5405 2576 Pls ! 5446 2576 Pls ! 5487 2576 Pls ! 5528 2576 Pls ! 5569 2576 Pls ! 5610 2576 Pls ! 5651 2576 Pls ! 5692 2576 Pls ! 5733 2576 Pls ! 5774 2576 Pls ! 5815 2576 Pls ! 5856 2576 Pls ! 5897 2576 Pls ! 5938 2576 Pls ! 5979 2576 Pls ! 6020 2576 Pls ! 6061 2576 Pls ! 6102 2576 Pls ! 6143 2576 Pls ! 6183 2576 Pls ! 6224 2576 Pls ! 6265 2576 Pls ! 6306 2576 Pls ! 6347 2576 Pls ! 6388 2576 Pls ! 6429 2576 Pls ! 6470 2576 Pls ! 6511 2576 Pls ! 6552 2576 Pls ! 6593 2576 Pls ! 6634 2576 Pls ! 6675 2576 Pls ! 6716 2576 Pls ! 6757 2576 Pls ! 6798 2576 Pls ! 6839 2576 Pls ! 6880 2576 Pls ! 6921 2576 Pls ! 6594 4599 Pls 0.500 UL LTb ! 406 4872 N ! 406 280 L ! 6556 0 V ! 0 4592 V ! -6556 0 V Z stroke 1.000 UP 0.500 UL --- 543,1066 ---- } ifelse 0.500 UL LTb ! 462 810 M 63 0 V ! 6464 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 378 810 M [ [(Helvetica) 140.0 0.0 true true 0 (-3)] ] -46.7 MRshow 0.500 UL LTb ! 462 1398 M 63 0 V ! 6464 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 378 1398 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MRshow 0.500 UL LTb ! 462 1987 M 63 0 V ! 6464 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 378 1987 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MRshow 0.500 UL LTb ! 462 2576 M 63 0 V ! 6464 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 378 2576 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 462 3164 M 63 0 V ! 6464 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 378 3164 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 462 3753 M 63 0 V ! 6464 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 378 3753 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MRshow 0.500 UL LTb ! 462 4341 M 63 0 V ! 6464 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 378 4341 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MRshow 0.500 UL LTb ! 462 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 462 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-2)] ] -46.7 MCshow 0.500 UL LTb ! 1278 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1278 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1.5)] ] -46.7 MCshow 0.500 UL LTb ! 2094 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2094 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MCshow 0.500 UL LTb ! 2910 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2910 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MCshow 0.500 UL LTb ! 3726 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3726 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4541 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4541 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 5357 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5357 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 6173 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6173 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MCshow 0.500 UL LTb ! 6989 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6989 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 462 4871 N ! 462 280 L ! 6527 0 V ! 0 4591 V ! -6527 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 1.000 UP 0.500 UL LT0 ! 1.00 0.00 0.00 C LCb setrgbcolor ! 6338 4738 M ! [ [(Helvetica) 140.0 0.0 true true 0 (pchip)] ] -46.7 MRshow LT0 ! 1.00 0.00 0.00 C 503 3738 Star ! 544 3723 Star ! 584 3709 Star ! 625 3694 Star ! 666 3679 Star ! 707 3664 Star ! 748 3650 Star ! 788 3635 Star ! 829 3620 Star ! 870 3606 Star ! 911 3591 Star ! 952 3576 Star ! 992 3561 Star ! 1033 3547 Star ! 1074 3532 Star ! 1115 3517 Star ! 1155 3503 Star ! 1196 3488 Star ! 1237 3473 Star ! 1278 3458 Star ! 1319 3444 Star ! 1359 3429 Star ! 1400 3414 Star ! 1441 3400 Star ! 1482 3385 Star ! 1523 3370 Star ! 1563 3355 Star ! 1604 3341 Star ! 1645 3326 Star ! 1686 3311 Star ! 1727 3297 Star ! 1767 3282 Star ! 1808 3267 Star ! 1849 3252 Star ! 1890 3238 Star ! 1931 3223 Star ! 1971 3208 Star ! 2012 3194 Star ! 2053 3179 Star ! 2094 3164 Star ! 2135 3149 Star ! 2175 3135 Star ! 2216 3120 Star ! 2257 3105 Star ! 2298 3091 Star ! 2339 3076 Star ! 2379 3061 Star ! 2420 3046 Star ! 2461 3032 Star ! 2502 3017 Star ! 2542 3002 Star ! 2583 2988 Star ! 2624 2973 Star ! 2665 2958 Star ! 2706 2943 Star ! 2746 2929 Star ! 2787 2914 Star ! 2828 2899 Star ! 2869 2885 Star ! 2910 2870 Star ! 2950 2855 Star ! 2991 2840 Star ! 3032 2826 Star ! 3073 2811 Star ! 3114 2796 Star ! 3154 2782 Star ! 3195 2767 Star ! 3236 2752 Star ! 3277 2737 Star ! 3318 2723 Star ! 3358 2708 Star ! 3399 2693 Star ! 3440 2679 Star ! 3481 2664 Star ! 3522 2649 Star ! 3562 2634 Star ! 3603 2620 Star ! 3644 2605 Star ! 3685 2590 Star ! 3726 2576 Star ! 3766 2561 Star ! 3807 2546 Star ! 3848 2531 Star ! 3889 2517 Star ! 3929 2502 Star ! 3970 2487 Star ! 4011 2472 Star ! 4052 2458 Star ! 4093 2443 Star ! 4133 2428 Star ! 4174 2414 Star ! 4215 2399 Star ! 4256 2384 Star ! 4297 2369 Star ! 4337 2355 Star ! 4378 2340 Star ! 4419 2325 Star ! 4460 2311 Star ! 4501 2296 Star ! 4541 2281 Star ! 4582 2266 Star ! 4623 2252 Star ! 4664 2237 Star ! 4705 2222 Star ! 4745 2208 Star ! 4786 2193 Star ! 4827 2178 Star ! 4868 2163 Star ! 4909 2149 Star ! 4949 2134 Star ! 4990 2119 Star ! 5031 2105 Star ! 5072 2090 Star ! 5112 2075 Star ! 5153 2060 Star ! 5194 2046 Star ! 5235 2031 Star ! 5276 2016 Star ! 5316 2002 Star ! 5357 1987 Star ! 5398 1972 Star ! 5439 1957 Star ! 5480 1943 Star ! 5520 1928 Star ! 5561 1913 Star ! 5602 1899 Star ! 5643 1884 Star ! 5684 1869 Star ! 5724 1854 Star ! 5765 1840 Star ! 5806 1825 Star ! 5847 1810 Star ! 5888 1796 Star ! 5928 1781 Star ! 5969 1766 Star ! 6010 1751 Star ! 6051 1737 Star ! 6092 1722 Star ! 6132 1707 Star ! 6173 1693 Star ! 6214 1678 Star ! 6255 1663 Star ! 6296 1648 Star ! 6336 1634 Star ! 6377 1619 Star ! 6418 1604 Star ! 6459 1590 Star ! 6499 1575 Star ! 6540 1560 Star ! 6581 1545 Star ! 6622 1531 Star ! 6663 1516 Star ! 6703 1501 Star ! 6744 1487 Star ! 6785 1472 Star ! 6826 1457 Star ! 6867 1442 Star ! 6907 1428 Star ! 6948 1413 Star ! 6621 4738 Star ! % End plot #1 ! % Begin plot #2 1.000 UP 0.500 UL LT1 ! 0.00 1.00 0.00 C LCb setrgbcolor ! 6338 4598 M ! [ [(Helvetica) 140.0 0.0 true true 0 (spline)] ] -46.7 MRshow LT1 ! 0.00 1.00 0.00 C 503 2576 Pls ! 544 2576 Pls ! 584 2576 Pls ! 625 2576 Pls ! 666 2576 Pls ! 707 2576 Pls ! 748 2576 Pls ! 788 2576 Pls ! 829 2576 Pls ! 870 2576 Pls ! 911 2576 Pls ! 952 2576 Pls ! 992 2576 Pls ! 1033 2576 Pls ! 1074 2576 Pls ! 1115 2576 Pls ! 1155 2576 Pls ! 1196 2576 Pls ! 1237 2576 Pls ! 1278 2576 Pls ! 1319 2576 Pls ! 1359 2576 Pls ! 1400 2576 Pls ! 1441 2576 Pls ! 1482 2576 Pls ! 1523 2576 Pls ! 1563 2576 Pls ! 1604 2576 Pls ! 1645 2576 Pls ! 1686 2576 Pls ! 1727 2576 Pls ! 1767 2576 Pls ! 1808 2576 Pls ! 1849 2576 Pls ! 1890 2576 Pls ! 1931 2576 Pls ! 1971 2576 Pls ! 2012 2576 Pls ! 2053 2576 Pls ! 2094 3738 Pls ! 2135 4842 Pls ! 2175 4753 Pls ! 2216 4665 Pls ! 2257 4577 Pls ! 2298 4488 Pls ! 2339 4400 Pls ! 2379 4312 Pls ! 2420 4224 Pls ! 2461 4135 Pls ! 2502 4047 Pls ! 2542 3959 Pls ! 2583 3870 Pls ! 2624 3782 Pls ! 2665 3694 Pls ! 2706 3606 Pls ! 2746 3517 Pls ! 2787 3429 Pls ! 2828 3341 Pls ! 2869 3252 Pls ! 2910 3164 Pls ! 2950 3076 Pls ! 2991 2988 Pls ! 3032 2899 Pls ! 3073 2811 Pls ! 3114 2723 Pls ! 3154 2634 Pls ! 3195 2546 Pls ! 3236 2458 Pls ! 3277 2369 Pls ! 3318 2281 Pls ! 3358 2193 Pls ! 3399 2105 Pls ! 3440 2016 Pls ! 3481 1928 Pls ! 3522 1840 Pls ! 3562 1751 Pls ! 3603 1663 Pls ! 3644 1575 Pls ! 3685 1487 Pls ! 3726 2575 Pls ! 3766 3664 Pls ! 3807 3576 Pls ! 3848 3488 Pls ! 3889 3400 Pls ! 3929 3311 Pls ! 3970 3223 Pls ! 4011 3135 Pls ! 4052 3046 Pls ! 4093 2958 Pls ! 4133 2870 Pls ! 4174 2782 Pls ! 4215 2693 Pls ! 4256 2605 Pls ! 4297 2517 Pls ! 4337 2428 Pls ! 4378 2340 Pls ! 4419 2252 Pls ! 4460 2163 Pls ! 4501 2075 Pls ! 4541 1987 Pls ! 4582 1899 Pls ! 4623 1810 Pls ! 4664 1722 Pls ! 4705 1634 Pls ! 4745 1545 Pls ! 4786 1457 Pls ! 4827 1369 Pls ! 4868 1281 Pls ! 4909 1192 Pls ! 4949 1104 Pls ! 4990 1016 Pls ! 5031 927 Pls ! 5072 839 Pls ! 5112 751 Pls ! 5153 663 Pls ! 5194 574 Pls ! 5235 486 Pls ! 5276 398 Pls ! 5316 309 Pls ! 5357 1413 Pls ! 5398 2576 Pls ! 5439 2576 Pls ! 5480 2576 Pls ! 5520 2576 Pls ! 5561 2576 Pls ! 5602 2576 Pls ! 5643 2576 Pls ! 5684 2576 Pls ! 5724 2576 Pls ! 5765 2576 Pls ! 5806 2576 Pls ! 5847 2576 Pls ! 5888 2576 Pls ! 5928 2576 Pls ! 5969 2576 Pls ! 6010 2576 Pls ! 6051 2576 Pls ! 6092 2576 Pls ! 6132 2576 Pls ! 6173 2576 Pls ! 6214 2576 Pls ! 6255 2576 Pls ! 6296 2576 Pls ! 6336 2576 Pls ! 6377 2576 Pls ! 6418 2576 Pls ! 6459 2576 Pls ! 6499 2576 Pls ! 6540 2576 Pls ! 6581 2576 Pls ! 6622 2576 Pls ! 6663 2576 Pls ! 6703 2576 Pls ! 6744 2576 Pls ! 6785 2576 Pls ! 6826 2576 Pls ! 6867 2576 Pls ! 6907 2576 Pls ! 6948 2576 Pls ! 6621 4598 Pls ! % End plot #2 0.500 UL LTb ! 462 4871 N ! 462 280 L ! 6527 0 V ! 0 4591 V ! -6527 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/interpderiv2.pdf and octave-3.0.4/doc/interpreter/interpderiv2.pdf differ Files octave-3.0.3/doc/interpreter/interpderiv2.png and octave-3.0.4/doc/interpreter/interpderiv2.png differ diff -cNr octave-3.0.3/doc/interpreter/interpft.eps octave-3.0.4/doc/interpreter/interpft.eps *** octave-3.0.3/doc/interpreter/interpft.eps 2008-09-24 10:31:58.000000000 +0200 --- octave-3.0.4/doc/interpreter/interpft.eps 2009-01-29 09:11:08.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpft.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:31:58 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpft.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:08 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (interpft.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:31:58 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (interpft.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:08 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,1055 **** } ifelse 0.500 UL LTb ! 574 535 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 535 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.6)] ] -46.7 MRshow 0.500 UL LTb ! 574 1045 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 1045 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.4)] ] -46.7 MRshow 0.500 UL LTb ! 574 1556 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 1556 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.2)] ] -46.7 MRshow 0.500 UL LTb ! 574 2066 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 2066 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 574 2576 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 2576 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 574 3086 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 3086 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 574 3596 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 3596 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 574 4107 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 4107 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 574 4617 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 4617 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 574 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 574 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 1542 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1542 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 2510 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2510 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 3478 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3478 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MCshow 0.500 UL LTb ! 4446 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4446 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 5413 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5413 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2.5)] ] -46.7 MCshow 0.500 UL LTb ! 6381 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6381 140 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL LTb 0.500 UL LT0 ! 0.00 1.00 0.00 C LTb ! 6311 4739 M ! [ [(Helvetica) 140.0 0.0 true true 0 (sin\(4t+0.3\)cos\(3t-0.1)] ] -46.7 MRshow LT0 ! 0.00 1.00 0.00 C 6395 4739 M 399 0 V ! 574 2816 M 64 318 V ! 64 289 V 64 247 V ! 64 193 V ! 63 132 V 64 64 V ! 64 -4 V ! 64 -70 V ! 64 -132 V ! 64 -183 V ! 64 -225 V 64 -252 V ! 63 -265 V ! 64 -262 V 64 -243 V ! 64 -210 V 64 -165 V ! 64 -109 V ! 64 -48 V 64 19 V 63 85 V 64 148 V ! 64 204 V ! 64 249 V 64 283 V ! 64 302 V 64 306 V 64 295 V ! 64 267 V ! 63 227 V ! 64 175 V 64 114 V ! 64 47 V 64 -22 V 64 -90 V ! 64 -153 V 64 -207 V 63 -252 V 64 -282 V 64 -298 V ! 64 -299 V ! 64 -283 V ! 64 -253 V 64 -211 V ! 64 -158 V 63 -96 V 64 -31 V ! 64 36 V 64 99 V ! 64 156 V ! 64 205 V 64 241 V ! 64 263 V ! 64 270 V 63 262 V ! 64 239 V 64 201 V ! 64 151 V ! 64 91 V ! 64 27 V 64 -42 V ! 64 -111 V ! 63 -173 V 64 -230 V ! 64 -276 V 64 -308 V 64 -327 V ! 64 -330 V 64 -317 V ! 64 -289 V ! 63 -248 V ! 64 -196 V 64 -135 V 64 -69 V ! 64 -2 V 64 63 V ! 64 123 V 64 174 V ! 64 215 V ! 63 240 V ! 64 252 V ! 64 247 V 64 228 V 64 194 V ! 64 147 V 64 91 V ! 64 28 V ! 63 -39 V ! 64 -107 V ! 64 -170 V 64 -227 V ! 64 -273 V ! 64 -309 V ! 64 -328 V 64 -333 V ! 63 -322 V ! 64 -296 V 64 -256 V ! 64 -205 V stroke LT1 ! 0.00 0.00 1.00 C LTb ! 6311 4599 M ! [ [(Helvetica) 140.0 0.0 true true 0 (spline)] ] -46.7 MRshow LT1 ! 0.00 0.00 1.00 C 6395 4599 M 399 0 V ! 574 2816 M 64 546 V ! 64 409 V 64 285 V ! 64 174 V ! 63 74 V 64 -13 V ! 64 -86 V 64 -149 V ! 64 -197 V ! 64 -235 V ! 64 -258 V 64 -270 V ! 63 -269 V ! 64 -256 V 64 -230 V ! 64 -191 V 64 -141 V 64 -77 V ! 64 -4 V 64 66 V ! 63 125 V ! 64 172 V 64 210 V ! 64 237 V 64 253 V ! 64 259 V 64 253 V 64 237 V ! 64 214 V ! 63 186 V ! 64 151 V 64 111 V ! 64 66 V 64 14 V 64 -43 V ! 64 -106 V ! 64 -174 V ! 63 -232 V 64 -275 V 64 -299 V ! 64 -306 V 64 -296 V ! 64 -268 V ! 64 -223 V 64 -160 V 63 -81 V 64 0 V ! 64 70 V ! 64 126 V 64 171 V ! 64 204 V 64 224 V ! 64 232 V 64 228 V 63 212 V 64 187 V ! 64 156 V ! 64 122 V 64 82 V ! 64 37 V ! 64 -12 V 64 -67 V 63 -126 V ! 64 -191 V ! 64 -250 V 64 -295 V ! 64 -323 V ! 64 -333 V 64 -327 V ! 64 -304 V ! 63 -263 V ! 64 -207 V ! 64 -133 V ! 64 -52 V ! 64 20 V 64 82 V ! 64 134 V 64 173 V ! 64 202 V ! 63 222 V ! 64 229 V ! 64 226 V 64 213 V 64 189 V ! 64 154 V 64 108 V ! 64 51 V ! 63 -15 V 64 -94 V ! 64 -182 V stroke LT2 ! 0.00 1.00 1.00 C LTb ! 6311 4459 M ! [ [(Helvetica) 140.0 0.0 true true 0 (interpft)] ] -46.7 MRshow LT2 ! 0.00 1.00 1.00 C 6395 4459 M 399 0 V ! 574 2816 M 64 174 V ! 64 188 V ! 64 191 V ! 64 179 V ! 63 155 V 64 117 V ! 64 67 V ! 64 11 V ! 64 -52 V ! 64 -112 V ! 64 -170 V 64 -217 V ! 63 -251 V ! 64 -269 V ! 64 -268 V ! 64 -248 V ! 64 -209 V 64 -155 V ! 64 -89 V 64 -13 V 63 64 V 64 140 V ! 64 208 V ! 64 263 V 64 304 V ! 64 327 V 64 330 V 64 315 V ! 64 283 V ! 63 236 V ! 64 176 V 64 110 V ! 64 39 V 64 -31 V 64 -100 V ! 64 -160 V ! 64 -212 V 63 -252 V ! 64 -279 V 64 -293 V ! 64 -294 V ! 64 -279 V ! 64 -253 V 64 -214 V ! 64 -164 V 63 -107 V 64 -44 V ! 64 22 V ! 64 88 V ! 64 149 V ! 64 204 V 64 247 V ! 64 276 V ! 64 291 V 63 286 V 64 264 V 64 224 V ! 64 169 V 64 102 V ! 64 26 V 64 -54 V 64 -133 V ! 63 -205 V ! 64 -266 V ! 64 -313 V 64 -342 V 64 -353 V ! 64 -344 V 64 -316 V ! 64 -273 V ! 63 -218 V ! 64 -153 V 64 -86 V 64 -18 V ! 64 46 V 64 100 V ! 64 145 V 64 177 V ! 64 196 V ! 63 200 V ! 64 194 V ! 64 175 V ! 64 149 V 64 116 V ! 64 80 V 64 43 V ! 64 7 V ! 63 -25 V ! 64 -49 V ! 64 -69 V ! 64 -77 V 64 -78 V 64 -69 V ! 64 -51 V 64 -25 V ! 63 7 V ! 64 44 V 64 81 V ! 64 117 V 1.000 UP stroke LT3 ! 1.00 0.00 0.00 C LTb ! 6311 4319 M ! [ [(Helvetica) 140.0 0.0 true true 0 (data)] ] -46.7 MRshow LT3 ! 1.00 0.00 0.00 C 574 2816 Pls ! 1155 3839 Pls ! 1735 1925 Pls ! 2316 3569 Pls ! 2897 4278 Pls ! 3478 2053 Pls ! 4058 3392 Pls ! 4639 3751 Pls ! 5220 1267 Pls ! 5801 2435 Pls ! 6381 2647 Pls ! 6594 4319 Pls 0.500 UL LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL --- 543,1072 ---- } ifelse 0.500 UL LTb ! 630 535 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 535 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.6)] ] -46.7 MRshow 0.500 UL LTb ! 630 1045 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 1045 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.4)] ] -46.7 MRshow 0.500 UL LTb ! 630 1555 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 1555 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.2)] ] -46.7 MRshow 0.500 UL LTb ! 630 2065 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 2065 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 630 2575 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 2575 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 630 3086 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 3086 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 630 3596 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 3596 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 630 4106 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 4106 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 630 4616 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 4616 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 630 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 630 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 1593 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1593 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 2557 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2557 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb ! 3520 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3520 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1.5)] ] -46.7 MCshow 0.500 UL LTb ! 4484 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4484 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2)] ] -46.7 MCshow 0.500 UL LTb ! 5447 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5447 140 M [ [(Helvetica) 140.0 0.0 true true 0 (2.5)] ] -46.7 MCshow 0.500 UL LTb ! 6411 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6411 140 M [ [(Helvetica) 140.0 0.0 true true 0 (3)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 0.500 UL LT0 ! 0.00 1.00 0.00 C LCb setrgbcolor ! 6338 4738 M ! [ [(Helvetica) 140.0 0.0 true true 0 (data)] ] -46.7 MRshow LT0 ! 0.00 1.00 0.00 C 6422 4738 M 399 0 V ! 630 2815 M 64 318 V ! 63 289 V 64 247 V ! 63 193 V ! 64 132 V 64 64 V ! 63 -3 V ! 64 -71 V ! 63 -131 V ! 64 -184 V ! 63 -225 V 64 -252 V ! 64 -265 V ! 63 -261 V 64 -243 V ! 63 -210 V 64 -165 V ! 64 -110 V ! 63 -47 V 64 19 V 63 85 V 64 148 V ! 64 203 V ! 63 249 V 64 283 V ! 63 302 V 64 306 V 64 295 V ! 63 267 V ! 64 227 V ! 63 175 V 64 114 V ! 63 47 V 64 -22 V 64 -90 V ! 63 -153 V 64 -207 V 63 -252 V 64 -282 V 64 -298 V ! 63 -298 V ! 64 -284 V ! 63 -253 V 64 -211 V ! 64 -157 V 63 -96 V 64 -31 V ! 63 35 V 64 99 V ! 64 157 V ! 63 204 V 64 241 V ! 63 263 V ! 64 271 V 63 262 V ! 64 238 V 64 201 V ! 63 151 V ! 64 92 V ! 63 26 V 64 -42 V ! 64 -110 V ! 63 -174 V 64 -230 V ! 63 -276 V 64 -308 V 64 -327 V ! 63 -329 V 64 -317 V ! 63 -289 V ! 64 -248 V ! 63 -196 V 64 -135 V 64 -69 V ! 63 -2 V 64 63 V ! 63 123 V 64 174 V ! 64 214 V ! 63 241 V ! 64 251 V ! 63 247 V 64 228 V 64 194 V ! 63 148 V 64 91 V ! 63 27 V ! 64 -39 V ! 64 -106 V ! 63 -170 V 64 -227 V ! 63 -274 V ! 64 -308 V ! 63 -328 V 64 -333 V ! 64 -322 V ! 63 -296 V 64 -256 V ! 63 -205 V ! % End plot #1 ! % Begin plot #2 stroke LT1 ! 0.00 0.00 1.00 C LCb setrgbcolor ! 6338 4598 M ! [ [(Helvetica) 140.0 0.0 true true 0 (interpft)] ] -46.7 MRshow LT1 ! 0.00 0.00 1.00 C 6422 4598 M 399 0 V ! 630 2815 M 64 546 V ! 63 409 V 64 285 V ! 63 174 V ! 64 74 V 64 -13 V ! 63 -86 V 64 -149 V ! 63 -197 V ! 64 -234 V ! 63 -259 V 64 -270 V ! 64 -269 V ! 63 -255 V 64 -230 V ! 63 -192 V 64 -141 V 64 -77 V ! 63 -3 V 64 66 V ! 63 124 V ! 64 173 V 64 210 V ! 63 237 V 64 253 V ! 63 258 V 64 253 V 64 237 V ! 63 214 V ! 64 186 V ! 63 151 V 64 111 V ! 63 66 V 64 14 V 64 -43 V ! 63 -106 V ! 64 -173 V ! 63 -233 V 64 -275 V 64 -299 V ! 63 -306 V 64 -296 V ! 63 -268 V ! 64 -222 V 64 -160 V 63 -81 V 64 0 V ! 63 69 V ! 64 127 V 64 171 V ! 63 203 V 64 224 V ! 63 232 V 64 228 V 63 212 V 64 187 V ! 64 157 V ! 63 121 V 64 82 V ! 63 38 V ! 64 -13 V 64 -67 V 63 -126 V ! 64 -190 V ! 63 -251 V 64 -295 V ! 64 -322 V ! 63 -333 V 64 -327 V ! 63 -304 V ! 64 -264 V ! 63 -206 V ! 64 -134 V ! 64 -51 V ! 63 20 V 64 82 V ! 63 133 V 64 173 V ! 64 203 V ! 63 221 V ! 64 230 V ! 63 226 V 64 213 V 64 189 V ! 63 153 V 64 108 V ! 63 52 V ! 64 -16 V 64 -94 V ! 63 -182 V ! % End plot #2 ! % Begin plot #3 stroke LT2 ! 0.00 1.00 1.00 C LCb setrgbcolor ! 6338 4458 M ! [ [(Helvetica) 140.0 0.0 true true 0 (spline)] ] -46.7 MRshow LT2 ! 0.00 1.00 1.00 C 6422 4458 M 399 0 V ! 630 2815 M 64 174 V ! 63 189 V ! 64 190 V ! 63 180 V ! 64 154 V 64 117 V ! 63 68 V ! 64 10 V ! 63 -51 V ! 64 -113 V ! 63 -170 V 64 -217 V ! 64 -251 V ! 63 -269 V ! 64 -267 V ! 63 -248 V ! 64 -210 V 64 -155 V ! 63 -88 V 64 -13 V 63 64 V 64 140 V ! 64 207 V ! 63 264 V 64 304 V ! 63 326 V 64 330 V 64 315 V ! 63 283 V ! 64 236 V ! 63 176 V 64 110 V ! 63 39 V 64 -31 V 64 -100 V ! 63 -160 V ! 64 -211 V 63 -252 V ! 64 -280 V 64 -293 V ! 63 -293 V ! 64 -280 V ! 63 -252 V 64 -214 V ! 64 -165 V 63 -107 V 64 -44 V ! 63 23 V ! 64 87 V ! 64 150 V ! 63 203 V 64 247 V ! 63 277 V ! 64 290 V 63 286 V 64 264 V 64 224 V ! 63 169 V 64 102 V ! 63 26 V 64 -54 V 64 -133 V ! 63 -204 V ! 64 -267 V ! 63 -313 V 64 -342 V 64 -353 V ! 63 -343 V 64 -316 V ! 63 -273 V ! 64 -218 V ! 63 -153 V 64 -86 V 64 -18 V ! 63 46 V 64 100 V ! 63 145 V 64 177 V ! 64 195 V ! 63 201 V ! 64 193 V ! 63 176 V ! 64 148 V 64 116 V ! 63 80 V 64 43 V ! 63 7 V ! 64 -24 V ! 64 -50 V ! 63 -68 V 64 -78 V + 63 -78 V 64 -69 V ! 63 -50 V 64 -25 V ! 64 7 V ! 63 43 V 64 81 V ! 63 118 V ! % End plot #3 ! % Begin plot #4 1.000 UP stroke LT3 ! 1.00 0.00 0.00 C LCb setrgbcolor ! 6338 4318 M ! [ [(Helvetica) 140.0 0.0 true true 0 (sin\(4t+0.3\)cos\(3t-0.1)] ] -46.7 MRshow LT3 ! 1.00 0.00 0.00 C 630 2815 Pls ! 1208 3838 Pls ! 1786 1925 Pls ! 2364 3569 Pls ! 2942 4277 Pls ! 3520 2052 Pls ! 4099 3392 Pls ! 4677 3750 Pls ! 5255 1267 Pls ! 5833 2434 Pls ! 6411 2646 Pls ! 6621 4318 Pls ! % End plot #4 0.500 UL LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/interpft.pdf and octave-3.0.4/doc/interpreter/interpft.pdf differ Files octave-3.0.3/doc/interpreter/interpft.png and octave-3.0.4/doc/interpreter/interpft.png differ diff -cNr octave-3.0.3/doc/interpreter/interpn.eps octave-3.0.4/doc/interpreter/interpn.eps *** octave-3.0.3/doc/interpreter/interpn.eps 2008-09-24 10:32:00.000000000 +0200 --- octave-3.0.4/doc/interpreter/interpn.eps 2009-01-29 09:11:09.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpn.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:00 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpn.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:09 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (interpn.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:00 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (interpn.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:09 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,465 **** %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 140 scalefont setfont - 0.500 UL - LTb gsave % colour palette begin /maxcolors 64 def /HSV2RGB { exch dup 0.0 eq {pop exch pop dup dup} % achromatic gray --- 461,472 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 140 scalefont setfont gsave % colour palette begin /maxcolors 64 def /HSV2RGB { exch dup 0.0 eq {pop exch pop dup dup} % achromatic gray *************** *** 521,527 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,539 **** --- 541,548 ---- }{ /g {stroke pm3dround pm3dGamma exp setgray} bind def } ifelse + 0.500 UL + LTb 1.000 UP 1.000 UL LT0 *************** *** 561,582 **** 153 -95 V stroke LT0 - .2501 g 4424 2768 M - -1 0 V - stroke - LT0 .3467 g 4154 3035 M 128 -80 V stroke LT0 - .2502 g 4423 2768 M - 1 0 V - stroke - LT0 - .1626 g 4622 2402 M - 12 -7 V - stroke - LT0 .5325 g 3919 3396 M -117 185 V stroke --- 570,579 ---- *************** *** 613,630 **** 80 -49 V stroke LT0 - .0283 g 5037 2045 M - -6 4 V - stroke - LT0 - .2734 g 4353 2637 M - 0 -1 V - stroke - LT0 - .1644 g 4626 2398 M - -4 4 V - stroke - LT0 .5964 g 3767 3489 M -118 185 V stroke --- 610,615 ---- *************** *** 677,690 **** 153 -95 V stroke LT0 - .089 g 4906 2122 M - -2 2 V - stroke - LT0 - .2734 g 4353 2636 M - 0 1 V - stroke - LT0 .6584 g 3614 3578 M -116 185 V stroke --- 662,667 ---- *************** *** 725,734 **** 152 -83 V stroke LT0 - .1632 g 4699 2260 M - -2 2 V - stroke - LT0 .4133 g 4083 2880 M -118 165 V stroke --- 702,707 ---- *************** *** 753,766 **** 153 -93 V stroke LT0 - .1693 g 4679 2269 M - 12 -7 V - stroke - LT0 - .2234 g 4551 2344 M - 2 -1 V - stroke - LT0 .3931 g 4047 2809 M 8 -5 V stroke --- 726,731 ---- *************** *** 789,798 **** 153 -75 V stroke LT0 - .1888 g 4698 2233 M - 10 -6 V - stroke - LT0 .5901 g 3696 3300 M -117 179 V stroke --- 754,759 ---- *************** *** 841,850 **** 152 -89 V stroke LT0 - .2236 g 4552 2343 M - -1 1 V - stroke - LT0 .3936 g 4052 2802 M -5 7 V stroke --- 802,807 ---- *************** *** 893,902 **** 153 -64 V stroke LT0 - .2004 g 4696 2232 M - -8 6 V - stroke - LT0 .5847 g 3660 3202 M -116 173 V stroke --- 850,855 ---- *************** *** 1036,1045 **** .5222 g 3590 3001 M 152 -53 V stroke - LT0 - .3804 g 4116 2557 M - 2 -1 V - stroke LT1 .2502 g 4750 2207 M -117 52 V --- 989,994 ---- *************** *** 1121,1134 **** 153 -82 V stroke LT0 - .3064 g 4477 2336 M - -9 5 V - stroke - LT0 - .3108 g 4432 2364 M - -12 8 V - stroke - LT0 .6223 g 3473 3155 M -117 165 V stroke --- 1070,1075 ---- *************** *** 1181,1190 **** 152 -23 V stroke LT0 - .3097 g 4456 2344 M - 24 -10 V - stroke - LT0 .7776 g 3086 3531 M -118 179 V stroke --- 1122,1127 ---- *************** *** 1240,1249 **** .7024 g 3050 3381 M 153 -23 V stroke - LT0 - .4114 g 4058 2525 M - 1 -1 V - stroke LT1 .2732 g 4985 2178 M -118 1 V --- 1177,1182 ---- *************** *** 1376,1385 **** .3127 g 4832 2253 M 153 -75 V stroke - LT0 - .4116 g 4059 2524 M - -1 1 V - stroke LT1 .2878 g 5642 2179 M -118 -89 V --- 1309,1314 ---- *************** *** 1453,1462 **** 153 16 V stroke LT0 - .4596 g 3847 2609 M - -1 1 V - stroke - LT0 .4651 g 3845 2610 M -57 47 V stroke --- 1382,1387 ---- *************** *** 2765,2774 **** 153 147 V stroke LT0 - .511 g 3720 2402 M - 1 0 V - stroke - LT0 .5112 g 3646 2384 M 16 4 V stroke --- 2690,2695 ---- *************** *** 3149,3160 **** 153 38 V stroke LT0 ! .5834 g 3681 2310 M ! -7 -3 V stroke LT0 ! .5174 g 3423 2142 M ! 141 108 V stroke LT0 .1589 g 2894 1213 M --- 3070,3081 ---- 153 38 V stroke LT0 ! .5344 g 3561 2247 M ! 3 3 V stroke LT0 ! .5169 g 3423 2142 M ! 137 105 V stroke LT0 .1589 g 2894 1213 M *************** *** 3233,3240 **** -118 -89 V stroke LT1 ! .6018 g 3692 2316 M ! 152 88 V stroke LT0 .3816 g 3199 1750 M --- 3154,3161 ---- -118 -89 V stroke LT1 ! .6019 g 3693 2316 M ! 151 88 V stroke LT0 .3816 g 3199 1750 M *************** *** 3244,3257 **** .3899 g 3235 1874 M 3082 1660 L stroke - LT0 - .6238 g 3809 2405 M - -117 -89 V - stroke - LT0 - .5855 g 3657 2289 M - 35 27 V - stroke LT1 .8303 g 5382 2971 M 153 -65 V --- 3165,3170 ---- *************** *** 3345,3352 **** 3962 2493 L stroke LT1 ! .6697 g 3809 2405 M ! 153 88 V stroke LT0 .4578 g 3316 1873 M --- 3258,3265 ---- 3962 2493 L stroke LT1 ! .6698 g 3810 2405 M ! 152 88 V stroke LT0 .4578 g 3316 1873 M *************** *** 3365,3374 **** 153 117 V stroke LT0 - .5839 g 3469 2086 M - -2 -1 V - stroke - LT0 .5352 g 3450 2066 M -98 -103 V stroke --- 3278,3283 ---- *************** *** 3445,3456 **** 153 16 V stroke LT0 ! .5403 g 3409 1999 M ! -93 -126 V ! stroke ! LT0 ! .5782 g 3469 2086 M ! -23 -31 V stroke LT0 .5291 g 3422 2020 M --- 3354,3361 ---- 153 16 V stroke LT0 ! .5395 g 3407 1997 M ! -91 -124 V stroke LT0 .5291 g 3422 2020 M *************** *** 3603,3631 **** LT1 .9011 g 3855 2622 M 153 147 V stroke LT0 ! .0117 g 0.500 UL LTb 3245 586 M 3054 779 V 3245 586 M 901 1601 L ! 2784 710 R ! 270 69 V 901 1601 M 634 161 V 6299 1365 M 3955 2380 L 901 3815 M 0 -2214 V ! 3955 4594 M ! 0 -1108 V ! 0 -431 R ! 0 -5 V ! 0 -626 R 0 -44 V ! 6299 3579 M 0 -2214 V 3245 1694 M 0 -1108 V --- 3508,3536 ---- LT1 .9011 g 3855 2622 M 153 147 V + % Begin plot #1 stroke LT0 ! .0117 g % End plot #1 ! 0.500 UL LTb 3245 586 M 3054 779 V 3245 586 M 901 1601 L ! 2785 710 R ! 269 69 V 901 1601 M 634 161 V 6299 1365 M 3955 2380 L 901 3815 M 0 -2214 V ! 3054 823 R 0 -44 V ! 0 2214 R ! 0 -1108 V ! 2344 93 R 0 -2214 V 3245 1694 M 0 -1108 V Files octave-3.0.3/doc/interpreter/interpn.pdf and octave-3.0.4/doc/interpreter/interpn.pdf differ Files octave-3.0.3/doc/interpreter/interpn.png and octave-3.0.4/doc/interpreter/interpn.png differ diff -cNr octave-3.0.3/doc/interpreter/interp.texi octave-3.0.4/doc/interpreter/interp.texi *** octave-3.0.3/doc/interpreter/interp.texi 2008-10-03 12:17:35.000000000 +0200 --- octave-3.0.4/doc/interpreter/interp.texi 2009-04-01 11:00:27.000000000 +0200 *************** *** 140,146 **** @float Figure,fig:interpderiv2 @image{interpderiv2,8cm} ! @caption{Comparison of the second derivate of the 'phcip' and 'spline' interpolation methods for a step function} @end float @end ifnotinfo --- 140,146 ---- @float Figure,fig:interpderiv2 @image{interpderiv2,8cm} ! @caption{Comparison of the second derivative of the 'phcip' and 'spline' interpolation methods for a step function} @end float @end ifnotinfo diff -cNr octave-3.0.3/doc/interpreter/interp.txi octave-3.0.4/doc/interpreter/interp.txi *** octave-3.0.3/doc/interpreter/interp.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/interp.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 77,83 **** @float Figure,fig:interpderiv2 @image{interpderiv2,8cm} ! @caption{Comparison of the second derivate of the 'phcip' and 'spline' interpolation methods for a step function} @end float @end ifnotinfo --- 77,83 ---- @float Figure,fig:interpderiv2 @image{interpderiv2,8cm} ! @caption{Comparison of the second derivative of the 'phcip' and 'spline' interpolation methods for a step function} @end float @end ifnotinfo diff -cNr octave-3.0.3/doc/interpreter/linalg.texi octave-3.0.4/doc/interpreter/linalg.texi *** octave-3.0.3/doc/interpreter/linalg.texi 2008-10-03 12:17:35.000000000 +0200 --- octave-3.0.4/doc/interpreter/linalg.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 279,285 **** matrix type. Also the test for positive definiteness is a low cost test for a hermitian ! matrix with a real positive diagonal. This does not guarentee that the matrix is positive definite, but only that it is a probable candidate. When such a matrix is factorized, a Cholesky factorization is first attempted, and if that fails the matrix is then treated with an LU factorization. Once the --- 279,285 ---- matrix type. Also the test for positive definiteness is a low cost test for a hermitian ! matrix with a real positive diagonal. This does not guarantee that the matrix is positive definite, but only that it is a probable candidate. When such a matrix is factorized, a Cholesky factorization is first attempted, and if that fails the matrix is then treated with an LU factorization. Once the diff -cNr octave-3.0.3/doc/interpreter/matrix.texi octave-3.0.4/doc/interpreter/matrix.texi *** octave-3.0.3/doc/interpreter/matrix.texi 2008-10-03 12:17:35.000000000 +0200 --- octave-3.0.4/doc/interpreter/matrix.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 499,504 **** --- 499,521 ---- @end deftypefn + @anchor{doc-resize} + @deftypefn {Built-in Function} {} resize (@var{x}, @var{m}) + @deftypefnx {Built-in Function} {} resize (@var{x}, @var{m}, @var{n}) + Destructively resize @var{x}. + + @strong{Values in @var{x} are not preserved as they are with + @code{reshape}.} + + If only @var{m} is supplied and it is a scalar, the dimension of the + result is @var{m}-by-@var{m}. If @var{m} is a vector, then the + dimensions of the result are given by the elements of @var{m}. + If both @var{m} and @var{n} are scalars, then the dimensions of + the result are @var{m}-by-@var{n}. + @seealso{reshape, postpad} + @end deftypefn + + @anchor{doc-circshift} @deftypefn {Function File} {@var{y} =} circshift (@var{x}, @var{n}) Circularly shifts the values of the array @var{x}. @var{n} must be *************** *** 629,635 **** Sort the rows of the matrix @var{a} according to the order of the columns specified in @var{c}. If @var{c} is omitted, a lexicographical sort is used. By default ascending order is used ! however if elements of @var{c} are negative then the corrosponding column is sorted in descending order. @end deftypefn --- 646,652 ---- Sort the rows of the matrix @var{a} according to the order of the columns specified in @var{c}. If @var{c} is omitted, a lexicographical sort is used. By default ascending order is used ! however if elements of @var{c} are negative then the corresponding column is sorted in descending order. @end deftypefn *************** *** 759,764 **** --- 776,782 ---- If the optional @var{dim} argument is given, then operate along this dimension. + @seealso{postpad} @end deftypefn *************** *** 936,942 **** available, otherwise from cpu time, wall clock time and the current fraction of a second. ! To compute the psuedo-random sequence, @code{rand} uses the Mersenne Twister with a period of 2^19937-1 (See M. Matsumoto and T. Nishimura, ``Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator'', ACM Trans. on --- 954,960 ---- available, otherwise from cpu time, wall clock time and the current fraction of a second. ! To compute the pseudo-random sequence, @code{rand} uses the Mersenne Twister with a period of 2^19937-1 (See M. Matsumoto and T. Nishimura, ``Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator'', ACM Trans. on *************** *** 1032,1038 **** @item For matrix @var{l} > 10, use patchwork rejection method. Stadlober E., et al., WinRand source code, available via FTP, or H. Zechner, 'Efficient sampling from continuous and discrete ! unimodal distributions', Doctoral Dissertaion, 156pp., Technical University Graz, Austria, 1994. @item For @var{l} > 1e8, use normal approximation. L. Montanet, et al., 'Review of Particle Properties', Physical Review --- 1050,1056 ---- @item For matrix @var{l} > 10, use patchwork rejection method. Stadlober E., et al., WinRand source code, available via FTP, or H. Zechner, 'Efficient sampling from continuous and discrete ! unimodal distributions', Doctoral Dissertation, 156pp., Technical University Graz, Austria, 1994. @item For @var{l} > 1e8, use normal approximation. L. Montanet, et al., 'Review of Particle Properties', Physical Review diff -cNr octave-3.0.3/doc/interpreter/matrix.txi octave-3.0.4/doc/interpreter/matrix.txi *** octave-3.0.3/doc/interpreter/matrix.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/matrix.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 106,111 **** --- 106,113 ---- @DOCSTRING(reshape) + @DOCSTRING(resize) + @DOCSTRING(circshift) @DOCSTRING(shiftdim) diff -cNr octave-3.0.3/doc/interpreter/mesh.eps octave-3.0.4/doc/interpreter/mesh.eps *** octave-3.0.3/doc/interpreter/mesh.eps 2008-09-24 10:32:26.000000000 +0200 --- octave-3.0.4/doc/interpreter/mesh.eps 2009-01-29 09:11:17.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: mesh.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:26 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: mesh.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:17 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (mesh.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:26 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (mesh.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:17 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,465 **** %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 140 scalefont setfont - 0.500 UL - LTb gsave % colour palette begin /maxcolors 64 def /HSV2RGB { exch dup 0.0 eq {pop exch pop dup dup} % achromatic gray --- 461,472 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 140 scalefont setfont gsave % colour palette begin /maxcolors 64 def /HSV2RGB { exch dup 0.0 eq {pop exch pop dup dup} % achromatic gray *************** *** 521,527 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,612 **** }{ /g {stroke pm3dround pm3dGamma exp setgray} bind def } ifelse 1.000 UP 1.000 UL - LT1 - .1392 g 4225 2679 M - 10 -4 V - stroke - LT1 - .157 g 3633 2723 M - -1 -1 V - stroke - LT1 - .1663 g 4365 2691 M - -14 -2 V - stroke - LT1 - .1695 g 4359 2694 M - 6 -3 V - stroke - LT1 - .2 g 4301 2736 M - -10 -3 V - stroke - LT1 - .1984 g 4284 2735 M - 5 -3 V - stroke - LT1 - .2429 g 4042 2804 M - stroke - LT1 - .2298 g 4230 2776 M - -13 -3 V - stroke - LT1 - .2267 g 4210 2774 M - 2 -2 V - stroke - LT1 - .2443 g 4375 2771 M - 2 0 V - stroke - LT1 - .2683 g 3098 2822 M - 37 0 V - stroke - LT1 - .2654 g 3140 2822 M - 2 0 V - stroke - LT0 - .2756 g 4118 2820 M - -54 5 V - stroke - LT0 - .2706 g 4060 2825 M - stroke - LT1 - .2557 g 4502 2764 M - -14 0 V - stroke - LT1 - .2501 g 4460 2765 M - 4 -1 V - stroke LT0 .2743 g 3135 2822 M -37 0 V stroke LT0 - .2794 g 3142 2822 M - -2 0 V - stroke - LT0 .2716 g 3136 2825 M -38 -3 V stroke --- 541,555 ---- }{ /g {stroke pm3dround pm3dGamma exp setgray} bind def } ifelse + 0.500 UL + LTb 1.000 UP 1.000 UL LT0 .2743 g 3135 2822 M -37 0 V stroke LT0 .2716 g 3136 2825 M -38 -3 V stroke *************** *** 614,630 **** .2737 g 3022 2815 M 76 7 V stroke - LT1 - .2682 g 4253 2807 M - 76 -16 V - stroke - LT0 - .2727 g 3022 2815 M - -94 -13 V - stroke LT0 ! .2804 g 3080 2805 M ! -58 10 V stroke LT0 .2788 g 2945 2804 M --- 557,565 ---- .2737 g 3022 2815 M 76 7 V stroke LT0 ! .2806 g 3080 2805 M ! -55 10 V stroke LT0 .2788 g 2945 2804 M *************** *** 642,651 **** .2813 g 4068 2812 M 50 8 V stroke - LT1 - .255 g 4717 2723 M - -27 3 V - stroke LT0 .2797 g 4312 2794 M -59 13 V --- 577,582 ---- *************** *** 675,684 **** 53 11 V stroke LT0 - .2829 g 3139 2818 M - 1 0 V - stroke - LT0 .2748 g 4447 2779 M -59 10 V stroke --- 606,611 ---- *************** *** 730,743 **** .2824 g 4235 2773 M 77 21 V stroke - LT1 - .261 g 4775 2714 M - -58 9 V - stroke - LT1 - .267 g 4640 2745 M - 77 -22 V - stroke LT0 .2806 g 4505 2763 M -58 16 V --- 657,662 ---- *************** *** 767,776 **** 76 18 V stroke LT0 - .2123 g 3601 2590 M - -1 -3 V - stroke - LT0 .2763 g 3063 2730 M -59 53 V stroke --- 686,691 ---- *************** *** 791,800 **** 49 22 V stroke LT0 - .2005 g 3391 2549 M - 6 5 V - stroke - LT0 .2805 g 2716 2752 M -58 12 V stroke --- 706,711 ---- *************** *** 827,836 **** 76 36 V stroke LT0 - .2416 g 3121 2646 M - 0 1 V - stroke - LT0 .2627 g 3091 2689 M -28 41 V stroke --- 738,743 ---- *************** *** 883,892 **** 76 5 V stroke LT0 - .2414 g 3120 2646 M - 1 0 V - stroke - LT0 .2304 g 3045 2600 M 21 13 V stroke --- 790,795 ---- *************** *** 923,929 **** 76 35 V stroke LT0 ! .2112 g 4200 2513 M -57 73 V stroke LT0 --- 826,832 ---- 76 35 V stroke LT0 ! .2111 g 4200 2513 M -57 73 V stroke LT0 *************** *** 959,968 **** -41 -65 V stroke LT0 - .1461 g 4212 2366 M - 0 -1 V - stroke - LT0 .1471 g 2951 2387 M 20 -47 V stroke --- 862,867 ---- *************** *** 975,984 **** 46 28 V stroke LT0 - .1654 g 3006 2420 M - 1 1 V - stroke - LT0 .279 g 4487 2705 M -58 36 V stroke --- 874,879 ---- *************** *** 999,1016 **** -15 18 V stroke LT0 - .1024 g 4242 2240 M - -1 2 V - stroke - LT0 .1325 g 4317 2366 M -62 -101 V stroke LT0 - .1029 g 4241 2243 M - 0 -1 V - stroke - LT0 .2356 g 2910 2660 M 58 -102 V stroke --- 894,903 ---- *************** *** 1146,1155 **** .2451 g 2757 2596 M 76 30 V stroke - LT1 - .005 g 3186 1950 M - -9 -1 V - stroke LT0 .2103 g 4393 2485 M -58 64 V --- 1033,1038 ---- *************** *** 1295,1308 **** 76 0 V stroke LT0 - .0086 g 2837 1931 M - 1 0 V - stroke - LT0 - .0129 g 4385 1941 M - -2 1 V - stroke - LT0 .0413 g 4416 2064 M -51 -64 V stroke --- 1178,1183 ---- *************** *** 1350,1359 **** .0781 g 4493 2186 M -77 -122 V stroke - LT1 - .0495 g 3917 2010 M - -1 -1 V - stroke LT0 .1763 g 4511 2367 M -59 57 V --- 1225,1230 ---- *************** *** 1594,1603 **** .2758 g 2123 2622 M 77 25 V stroke - LT1 - .0468 g 4111 1972 M - -1 0 V - stroke LT0 .2511 g 4722 2545 M -59 39 V --- 1465,1470 ---- *************** *** 1654,1663 **** .279 g 4798 2618 M 77 40 V stroke - LT1 - .055 g 3904 2028 M - 13 -18 V - stroke LT0 .2793 g 5068 2618 M -58 23 V --- 1521,1526 ---- *************** *** 1858,1867 **** .1685 g 4763 2365 M -77 -129 V stroke - LT1 - .0623 g 4170 1980 M - -3 0 V - stroke LT0 .2409 g 4839 2477 M -59 32 V --- 1721,1726 ---- *************** *** 1938,1946 **** .0739 g 2457 2027 M 76 -15 V stroke - LT1 - .0211 g 4305 1888 M - stroke LT0 .2274 g 2375 2511 M 59 -110 V --- 1797,1802 ---- *************** *** 1973,1982 **** .2511 g 2299 2505 M 76 6 V stroke - LT1 - .1416 g 3609 2208 M - -23 -54 V - stroke LT0 .0428 g 4709 1920 M -58 15 V --- 1829,1834 ---- *************** *** 2009,2018 **** .1243 g 2398 2157 M 77 -15 V stroke - LT1 - .0749 g 3122 2020 M - 5 1 V - stroke LT0 .2799 g 5185 2568 M -58 25 V --- 1861,1866 ---- *************** *** 2065,2074 **** .0038 g 4474 1821 M 24 -7 V stroke - LT1 - .1514 g 3795 2194 M - 4 -8 V - stroke LT0 .2659 g 2299 2505 M -59 73 V --- 1913,1918 ---- *************** *** 2093,2102 **** .1763 g 2340 2288 M 76 -11 V stroke - LT1 - .0745 g 4155 2007 M - 6 -11 V - stroke LT0 .2589 g 1876 2511 M -58 -22 V --- 1937,1942 ---- *************** *** 2117,2126 **** .0479 g 2439 1930 M 77 -18 V stroke - LT1 - .0218 g 4405 1846 M - -6 2 V - stroke LT0 .2356 g 2299 2505 M 59 -103 V --- 1957,1962 ---- *************** *** 2206,2213 **** -59 -29 V stroke LT0 ! .2281 g 1665 2395 M ! 76 49 V stroke LT0 .1447 g 4862 2171 M --- 2042,2049 ---- -59 -29 V stroke LT0 ! .2278 g 1665 2395 M ! 73 47 V stroke LT0 .1447 g 4862 2171 M *************** *** 2258,2265 **** -59 -34 V stroke LT0 ! .2127 g 1589 2342 M ! 76 53 V stroke LT0 .098 g 4844 2033 M --- 2094,2101 ---- -59 -34 V stroke LT0 ! .2125 g 1589 2342 M ! 74 52 V stroke LT0 .098 g 4844 2033 M *************** *** 2289,2305 **** .1924 g 2263 2305 M 77 -17 V stroke - LT1 - .0391 g 4394 1870 M - 3 -5 V - stroke LT0 .2804 g 2011 2533 M -58 11 V stroke LT0 ! .2737 g 1876 2511 M ! 77 33 V stroke LT0 .2453 g 2281 2407 M --- 2125,2137 ---- .1924 g 2263 2305 M 77 -17 V stroke LT0 .2804 g 2011 2533 M -58 11 V stroke LT0 ! .274 g 1885 2515 M ! 68 29 V stroke LT0 .2453 g 2281 2407 M *************** *** 2426,2437 **** -76 -128 V stroke LT0 ! .2766 g 1935 2511 M ! -59 0 V stroke LT0 ! .266 g 1800 2473 M ! 76 38 V stroke LT0 .2705 g 5091 2487 M --- 2258,2269 ---- -76 -128 V stroke LT0 ! .2767 g 1935 2511 M ! -57 0 V stroke LT0 ! .2662 g 1803 2475 M ! 73 36 V stroke LT0 .2705 g 5091 2487 M *************** *** 2486,2493 **** 76 6 V stroke LT0 ! .27 g 1859 2483 M ! -59 -10 V stroke LT0 .2554 g 1724 2429 M --- 2318,2325 ---- 76 6 V stroke LT0 ! .2701 g 1859 2483 M ! -58 -10 V stroke LT0 .2554 g 1724 2429 M *************** *** 2525,2534 **** .2775 g 5091 2487 M 77 44 V stroke - LT1 - .2228 g 3663 2339 M - -12 -31 V - stroke LT0 .1453 g 1342 2139 M -59 -22 V --- 2357,2362 ---- *************** *** 2549,2558 **** .2479 g 2128 2421 M 77 -7 V stroke - LT1 - .0736 g 4345 1926 M - -1 1 V - stroke LT0 .2758 g 5361 2481 M -59 31 V --- 2377,2382 ---- *************** *** 2634,2655 **** 77 19 V stroke LT0 - .0102 g 2659 1754 M - -44 -13 V - stroke - LT0 .0197 g 2713 1808 M -98 -67 V stroke LT0 - .0016 g 2553 1721 M - 62 20 V - stroke - LT0 - .0007 g 2539 1717 M - -4 3 V - stroke - LT0 .008 g 2524 1730 M -44 38 V stroke --- 2458,2467 ---- *************** *** 2713,2722 **** .1069 g 1054 1997 M 77 31 V stroke - LT1 - .0907 g 4329 1960 M - 2 -4 V - stroke LT0 .2308 g 1629 2354 M -58 -31 V --- 2525,2530 ---- *************** *** 2854,2863 **** -56 -58 V stroke LT0 - .0089 g 4720 1725 M - 12 6 V - stroke - LT0 .0479 g 4867 1823 M -58 -12 V stroke --- 2662,2667 ---- *************** *** 2878,2885 **** 76 -45 V stroke LT0 ! .0267 g 2428 1757 M ! -24 30 V stroke LT0 .045 g 2327 1824 M --- 2682,2689 ---- 76 -45 V stroke LT0 ! .0272 g 2425 1760 M ! -21 27 V stroke LT0 .045 g 2327 1824 M *************** *** 2933,2942 **** .2806 g 5208 2448 M 77 33 V stroke - LT1 - .0669 g 2792 1880 M - -2 -3 V - stroke LT0 .0572 g 2764 1871 M -72 -90 V --- 2737,2742 ---- *************** *** 2949,2962 **** .1074 g 4962 2045 M -77 -125 V stroke - LT1 - .0861 g 2838 1931 M - -1 -2 V - stroke - LT1 - .1302 g 2951 2050 M - 2 2 V - stroke LT0 .1771 g 2169 2237 M 59 -118 V --- 2749,2754 ---- *************** *** 2998,3007 **** -106 -89 V stroke LT0 - .0012 g 2535 1677 M - 4 2 V - stroke - LT0 .2682 g 1764 2415 M -58 -10 V stroke --- 2790,2795 ---- *************** *** 3105,3114 **** .048 g 4867 1823 M -39 -47 V stroke - LT1 - .1593 g 4251 2092 M - -3 2 V - stroke LT0 .1067 g 960 1932 M -59 37 V --- 2893,2898 ---- *************** *** 3154,3165 **** 77 6 V stroke LT0 ! .0333 g 4503 1756 M ! 69 -51 V stroke LT0 ! .0452 g 4459 1832 M ! 115 -126 V stroke LT0 .1965 g 1459 2199 M --- 2938,2949 ---- 77 6 V stroke LT0 ! .0338 g 4503 1756 M ! 67 -49 V stroke LT0 ! .0455 g 4459 1832 M ! 114 -125 V stroke LT0 .1965 g 1459 2199 M *************** *** 3178,3185 **** -76 -113 V stroke LT0 ! .0512 g 2356 1780 M ! -29 44 V stroke LT0 .0779 g 2269 1929 M --- 2962,2969 ---- -76 -113 V stroke LT0 ! .0514 g 2356 1782 M ! -29 42 V stroke LT0 .0779 g 2269 1929 M *************** *** 3294,3315 **** -58 9 V stroke LT0 - .0448 g 2714 1770 M - -58 -49 V - stroke - LT0 .0696 g 2782 1893 M 2656 1721 L stroke LT0 - .0102 g 2595 1670 M - 3 2 V - stroke - LT0 - .0241 g 2635 1704 M - 21 17 V - stroke - LT0 .1316 g 1230 1996 M -59 -11 V stroke --- 3078,3087 ---- *************** *** 3321,3330 **** .1041 g 1019 1907 M -59 25 V stroke - LT1 - .2463 g 4027 2319 M - -4 -2 V - stroke LT0 .1148 g 2827 1986 M -73 -132 V --- 3093,3098 ---- *************** *** 3370,3385 **** 76 33 V stroke LT0 ! .0704 g 4926 1846 M ! -38 -50 V ! stroke ! LT1 ! .2205 g 4265 2178 M ! 5 -14 V ! stroke ! LT0 ! .0018 g 4697 1622 M ! 18 11 V stroke LT0 .261 g 1670 2338 M --- 3138,3145 ---- 76 33 V stroke LT0 ! .0707 g 4926 1846 M ! -37 -49 V stroke LT0 .261 g 1670 2338 M *************** *** 3398,3411 **** 77 47 V stroke LT0 - .0094 g 2445 1632 M - 3 -1 V - stroke - LT1 - .2023 g 4310 2107 M - 3 -6 V - stroke - LT0 .2737 g 5519 2352 M -59 38 V stroke --- 3158,3163 ---- *************** *** 3454,3471 **** 76 66 V stroke LT0 ! .1408 g 4350 2030 M 59 -114 V stroke LT0 - .2032 g 4310 2107 M - 2 -3 V - stroke - LT0 - .0009 g 4704 1621 M - -7 1 V - stroke - LT0 .2817 g 1882 2370 M -59 34 V stroke --- 3206,3215 ---- 76 66 V stroke LT0 ! .1406 g 4350 2030 M 59 -114 V stroke LT0 .2817 g 1882 2370 M -59 34 V stroke *************** *** 3478,3485 **** -58 14 V stroke LT0 ! .0801 g 2296 1802 M ! -45 75 V stroke LT0 .113 g 2192 1984 M --- 3222,3229 ---- -58 14 V stroke LT0 ! .0803 g 2295 1804 M ! -44 73 V stroke LT0 .113 g 2192 1984 M *************** *** 3602,3609 **** -9 -4 V stroke LT0 ! .0487 g 2714 1770 M ! -53 -72 V stroke LT0 .266 g 5578 2308 M --- 3346,3353 ---- -9 -4 V stroke LT0 ! .0489 g 2714 1770 M ! -53 -71 V stroke LT0 .266 g 5578 2308 M *************** *** 3638,3651 **** 76 35 V stroke LT0 - .0399 g 2350 1671 M - 3 -1 V - stroke - LT0 - .0164 g 2406 1644 M - 21 -11 V - stroke - LT0 .1875 g 5137 2107 M -58 -24 V stroke --- 3382,3387 ---- *************** *** 3818,3825 **** 76 -42 V stroke LT0 ! .0941 g 2244 1822 M ! -11 17 V stroke LT0 .1186 g 2157 1909 M --- 3554,3561 ---- 76 -42 V stroke LT0 ! .0945 g 2243 1825 M ! -10 14 V stroke LT0 .1186 g 2157 1909 M *************** *** 3906,3915 **** -76 -141 V stroke LT0 - .0376 g 2368 1652 M - -18 19 V - stroke - LT0 .1455 g 4351 1994 M 76 -137 V stroke --- 3642,3647 ---- *************** *** 3978,3991 **** 76 -33 V stroke LT0 - .296 g 2990 2375 M - -67 -173 V - stroke - LT1 - .2031 g 4310 2107 M - 2 -5 V - stroke - LT0 .2301 g 4261 2249 M 90 -221 V stroke --- 3710,3715 ---- *************** *** 4002,4015 **** -59 5 V stroke LT0 - .0507 g 2345 1652 M - 3 -2 V - stroke - LT0 - .0286 g 2389 1621 M - 10 -7 V - stroke - LT0 .2771 g 1711 2291 M -58 6 V stroke --- 3726,3731 ---- *************** *** 4082,4091 **** -77 -110 V stroke LT0 - .0024 g 4585 1518 M - 7 1 V - stroke - LT0 .222 g 2040 2099 M -59 87 V stroke --- 3798,3803 ---- *************** *** 4161,4170 **** .1453 g 1194 1893 M 77 67 V stroke - LT1 - .3514 g 3002 2408 M - -3 -11 V - stroke LT0 .1147 g 6123 1809 M -59 47 V --- 3873,3878 ---- *************** *** 4205,4214 **** .2037 g 5196 2132 M -76 -102 V stroke - LT1 - .4059 g 3269 2624 M - 10 -1 V - stroke LT0 .0903 g 4409 1833 M 59 -140 V --- 3913,3918 ---- *************** *** 4218,4229 **** 77 -75 V stroke LT0 ! .1232 g 2190 1844 M ! 2 -2 V ! stroke ! LT0 ! .1409 g 2139 1895 M ! 45 -46 V stroke LT0 .2791 g 5407 2267 M --- 3922,3929 ---- 77 -75 V stroke LT0 ! .1416 g 2139 1895 M ! 43 -43 V stroke LT0 .2791 g 5407 2267 M *************** *** 4278,4287 **** -59 -5 V stroke LT0 - .0025 g 4589 1516 M - -4 2 V - stroke - LT0 .2688 g 1905 2217 M -59 57 V stroke --- 3978,3983 ---- *************** *** 4290,4303 **** 76 5 V stroke LT0 - .0208 g 2464 1540 M - 5 -2 V - stroke - LT0 - .0035 g 2523 1519 M - 3 -1 V - stroke - LT0 .217 g 2908 2129 M -59 -115 V stroke --- 3986,3991 ---- *************** *** 4337,4350 **** .1699 g 5853 1973 M 76 -35 V stroke - LT1 - .0143 g 4723 1535 M - 8 6 V - stroke - LT0 - .0896 g 2272 1720 M - 12 -11 V - stroke LT0 .2354 g 5736 2114 M -59 63 V --- 4025,4030 ---- *************** *** 4366,4375 **** 77 55 V stroke LT0 - .0155 g 4731 1542 M - -8 -7 V - stroke - LT0 .2502 g 1963 2146 M -58 71 V stroke --- 4046,4051 ---- *************** *** 4394,4403 **** 77 -28 V stroke LT0 - .0676 g 2762 1672 M - -1 -2 V - stroke - LT0 .0918 g 2814 1779 M -49 -101 V stroke --- 4070,4075 ---- *************** *** 4409,4422 **** .2438 g 1482 2130 M 76 67 V stroke - LT1 - .4059 g 4040 2590 M - -4 0 V - stroke - LT1 - .0342 g 2422 1570 M - -20 18 V - stroke LT0 .2158 g 5794 2045 M -58 69 V --- 4081,4086 ---- *************** *** 4465,4495 **** .2759 g 5331 2222 M 76 45 V stroke - LT1 - .4747 g 3681 2783 M - 0 -1 V - stroke - LT1 - .4588 g 3669 2755 M - 2 -3 V - stroke LT0 .1594 g 1312 1914 M -59 -12 V stroke LT0 - .0121 g 2529 1498 M - 4 -1 V - stroke - LT0 - .004 g 4653 1495 M - -9 -3 V - stroke - LT0 - .0046 g 4658 1500 M - -14 -8 V - stroke - LT0 .2804 g 1828 2231 M -58 38 V stroke --- 4129,4139 ---- *************** *** 4522,4529 **** 76 5 V stroke LT0 ! .0901 g 4391 1768 M ! 36 -90 V stroke LT0 .1904 g 5160 2008 M --- 4166,4173 ---- 76 5 V stroke LT0 ! .0903 g 4391 1768 M ! 36 -89 V stroke LT0 .1904 g 5160 2008 M *************** *** 4581,4598 **** .2577 g 5254 2152 M 77 70 V stroke - LT1 - .0214 g 2508 1502 M - -58 43 V - stroke - LT0 - .0716 g 2337 1648 M - 6 -6 V - stroke - LT0 - .0449 g 2395 1595 M - 17 -16 V - stroke LT0 .255 g 5313 2165 M -59 -13 V --- 4225,4230 ---- *************** *** 4614,4635 **** 76 -82 V stroke LT0 - .0113 g 2696 1497 M - 3 2 V - stroke - LT1 - .3358 g 2990 2377 M - -9 -23 V - stroke - LT0 .3682 g 3061 2597 M 2933 2231 L stroke LT0 - .0042 g 4593 1465 M - -1 0 V - stroke - LT0 .1719 g 5911 1902 M -58 71 V stroke --- 4246,4255 ---- *************** *** 4646,4653 **** 76 43 V stroke LT0 ! .1489 g 2164 1860 M ! -25 35 V stroke LT0 .1771 g 2063 1968 M --- 4266,4273 ---- 76 43 V stroke LT0 ! .149 g 2163 1861 M ! -24 34 V stroke LT0 .1771 g 2063 1968 M *************** *** 4694,4705 **** 76 -6 V stroke LT0 ! .0074 g 2593 1464 M ! 3 -1 V ! stroke ! LT0 ! .1706 g 2121 1893 M ! 16 -16 V stroke LT0 .2819 g 5524 2212 M --- 4314,4321 ---- 76 -6 V stroke LT0 ! .1715 g 2121 1893 M ! 13 -13 V stroke LT0 .2819 g 5524 2212 M *************** *** 4741,4791 **** .087 g 4914 1700 M -59 -63 V stroke - LT0 - .0901 g 4931 1721 M - -34 -37 V - stroke LT1 ! .0531 g 4779 1565 M ! 76 72 V stroke LT1 .0143 g 2567 1465 M -59 37 V stroke LT1 ! .0352 g 2432 1558 M ! 76 -56 V ! stroke ! LT0 ! .0508 g 2412 1578 M ! 5 -4 V stroke LT1 .0603 g 4837 1622 M -58 -57 V stroke - LT0 - .0907 g 4914 1700 M - -71 -70 V - stroke LT1 .0311 g 4702 1507 M 77 58 V stroke LT0 - .1003 g 4945 1738 M - -14 -17 V - stroke - LT0 - .1303 g 5005 1811 M - -5 -5 V - stroke - LT0 - .0978 g 2274 1716 M - -8 8 V - stroke - LT0 .2419 g 5718 2082 M -59 65 V stroke --- 4357,4383 ---- .087 g 4914 1700 M -59 -63 V stroke LT1 ! .0583 g 4810 1595 M ! 45 42 V stroke LT1 .0143 g 2567 1465 M -59 37 V stroke LT1 ! .0204 g 2494 1512 M ! 14 -10 V stroke LT1 .0603 g 4837 1622 M -58 -57 V stroke LT1 .0311 g 4702 1507 M 77 58 V stroke LT0 .2419 g 5718 2082 M -59 65 V stroke *************** *** 4818,4825 **** 76 -12 V stroke LT0 ! .162 g 5084 1913 M ! -34 -44 V stroke LT0 .2073 g 1447 2009 M --- 4410,4421 ---- 76 -12 V stroke LT0 ! .155 g 5055 1876 M ! -5 -7 V ! stroke ! LT0 ! .1635 g 5084 1913 M ! -28 -36 V stroke LT0 .2073 g 1447 2009 M *************** *** 4838,4851 **** -59 -47 V stroke LT0 - .047 g 4775 1569 M - -29 -25 V - stroke - LT1 - .0157 g 4626 1462 M - 76 45 V - stroke - LT0 .1316 g 6029 1773 M -59 61 V stroke --- 4434,4439 ---- *************** *** 4854,4863 **** 76 -26 V stroke LT0 - .0085 g 4421 1449 M - 6 0 V - stroke - LT0 .2817 g 5448 2200 M -59 17 V stroke --- 4442,4447 ---- *************** *** 4866,4877 **** 76 52 V stroke LT0 ! .1193 g 4315 1850 M ! 59 -182 V stroke LT0 ! .0972 g 4297 1714 M ! 77 -46 V stroke LT0 .2255 g 4274 2150 M --- 4450,4461 ---- 76 52 V stroke LT0 ! .1195 g 4315 1850 M ! 58 -181 V stroke LT0 ! .0975 g 4297 1714 M ! 75 -45 V stroke LT0 .2255 g 4274 2150 M *************** *** 4905,4918 **** .2819 g 1676 2198 M 76 27 V stroke - LT1 - .3654 g 4175 2447 M - -2 2 V - stroke - LT0 - .0006 g 2702 1436 M - 1 1 V - stroke LT0 .1042 g 6222 1702 M -58 26 V --- 4489,4494 ---- *************** *** 4929,4938 **** .2438 g 5642 2110 M 76 -28 V stroke - LT1 - .4911 g 4098 2700 M - 7 -22 V - stroke LT0 .2753 g 5583 2167 M -59 45 V --- 4505,4510 ---- *************** *** 4941,4950 **** .2819 g 5448 2200 M 76 12 V stroke - LT1 - .0243 g 4684 1497 M - -58 -35 V - stroke LT0 .222 g 5219 2045 M -59 -37 V --- 4513,4518 ---- *************** *** 4970,4979 **** -76 -234 V stroke LT0 - .005 g 2659 1435 M - 2 0 V - stroke - LT0 .2708 g 5372 2167 M -59 -2 V stroke --- 4538,4543 ---- *************** *** 4990,4999 **** 76 -50 V stroke LT0 - .0326 g 2481 1524 M - 37 -25 V - stroke - LT0 .1168 g 6087 1722 M -58 51 V stroke --- 4554,4559 ---- *************** *** 5018,5027 **** 77 -33 V stroke LT1 - .4029 g 3051 2526 M - -4 -10 V - stroke - LT1 .0596 g 2432 1558 M -59 51 V stroke --- 4578,4583 ---- *************** *** 5066,5083 **** -77 -234 V stroke LT0 ! .0088 g 4418 1445 M ! -1 1 V ! stroke ! LT0 ! .1017 g 4297 1714 M 20 -55 V stroke LT0 - .0065 g 4567 1438 M - -9 -4 V - stroke - LT0 .1741 g 5894 1860 M -59 75 V stroke --- 4622,4631 ---- -77 -234 V stroke LT0 ! .1019 g 4297 1714 M 20 -55 V stroke LT0 .1741 g 5894 1860 M -59 75 V stroke *************** *** 5138,5147 **** 76 19 V stroke LT0 - .0031 g 2767 1417 M - 4 3 V - stroke - LT0 .2716 g 1658 2146 M -59 4 V stroke --- 4686,4691 ---- *************** *** 5158,5165 **** 77 -30 V stroke LT1 ! .0494 g 2491 1515 M ! -59 43 V stroke LT1 .0781 g 2356 1641 M --- 4702,4709 ---- 77 -30 V stroke LT1 ! .0494 g 2490 1516 M ! -58 42 V stroke LT1 .0781 g 2356 1641 M *************** *** 5202,5209 **** -58 -11 V stroke LT0 ! .1734 g 2132 1880 M ! -11 13 V stroke LT0 .1975 g 2045 1965 M --- 4746,4753 ---- -58 -11 V stroke LT0 ! .1736 g 2131 1881 M ! -10 12 V stroke LT0 .1975 g 2045 1965 M *************** *** 5218,5227 **** 77 -16 V stroke LT0 - .0001 g 4397 1384 M - 34 9 V - stroke - LT0 .1585 g 4239 1928 M 58 -214 V stroke --- 4762,4767 ---- *************** *** 5241,5250 **** .1209 g 4945 1738 M -31 -38 V stroke - LT0 - .1156 g 4948 1739 M - -34 -39 V - stroke LT1 .1181 g 4948 1739 M -34 -39 V --- 4781,4786 ---- *************** *** 5277,5290 **** .2759 g 1793 2152 M 76 -7 V stroke - LT0 - .0136 g 4348 1432 M - -2 3 V - stroke - LT0 - .1988 g 2104 1901 M - 7 -7 V - stroke LT1 .0798 g 4819 1624 M -58 -70 V --- 4813,4818 ---- *************** *** 5310,5325 **** 77 8 V stroke LT0 ! .1971 g 5125 1930 M ! -47 -44 V stroke LT0 ! .192 g 5143 1963 M ! -69 -80 V stroke ! LT1 ! .5484 g 3137 2811 M ! -3 -13 V stroke LT0 .2234 g 5759 1968 M --- 4838,4853 ---- 77 8 V stroke LT0 ! .1838 g 5085 1892 M ! -7 -6 V stroke LT0 ! .1977 g 5118 1923 M ! -31 -29 V stroke ! LT0 ! .1967 g 5143 1963 M ! -48 -55 V stroke LT0 .2234 g 5759 1968 M *************** *** 5363,5369 **** stroke LT1 .0693 g 2414 1596 M ! 77 -81 V stroke LT1 .0605 g 4743 1562 M --- 4891,4897 ---- stroke LT1 .0693 g 2414 1596 M ! 76 -80 V stroke LT1 .0605 g 4743 1562 M *************** *** 5406,5415 **** 76 -45 V stroke LT0 - .0003 g 4320 1365 M - 50 12 V - stroke - LT0 .2467 g 1986 2029 M -58 61 V stroke --- 4934,4939 ---- *************** *** 5466,5475 **** 76 -30 V stroke LT0 - .0184 g 4270 1424 M - -1 2 V - stroke - LT0 .3938 g 4157 2544 M 59 -189 V stroke --- 4990,4995 ---- *************** *** 5494,5503 **** 23 -27 V stroke LT0 - .0729 g 2980 1570 M - -8 6 V - stroke - LT0 .13 g 3048 1769 M -49 -125 V stroke --- 5014,5019 ---- *************** *** 5594,5603 **** 37 -126 V stroke LT0 - .0006 g 4272 1353 M - 8 2 V - stroke - LT0 .259 g 4180 2181 M 59 -253 V stroke --- 5110,5115 ---- *************** *** 5634,5641 **** 77 -13 V stroke LT0 ! .2103 g 2104 1901 M ! -59 64 V stroke LT0 .237 g 1969 2018 M --- 5146,5153 ---- 77 -13 V stroke LT0 ! .2106 g 2102 1903 M ! -57 62 V stroke LT0 .237 g 1969 2018 M *************** *** 5710,5723 **** 77 65 V stroke LT0 - .0069 g 3039 1355 M - -7 5 V - stroke - LT0 - .0005 g 2936 1335 M - 2 0 V - stroke - LT0 .2771 g 5547 2081 M -58 45 V stroke --- 5222,5227 ---- *************** *** 5725,5734 **** .2827 g 5412 2110 M 77 16 V stroke - LT1 - .4954 g 4098 2700 M - 3 -7 V - stroke LT0 .4927 g 4081 2770 M 76 -226 V --- 5229,5234 ---- *************** *** 5746,5753 **** -7 7 V stroke LT0 ! .2213 g 2027 1966 M ! 77 -65 V stroke LT1 .0396 g 2666 1429 M --- 5246,5253 ---- -7 7 V stroke LT0 ! .212 g 2066 1933 M ! 34 -28 V stroke LT1 .0396 g 2666 1429 M *************** *** 5758,5771 **** 77 -77 V stroke LT1 - .1777 g 5003 1807 M - -2 -3 V - stroke - LT1 - .1727 g 5008 1807 M - -2 -1 V - stroke - LT1 .1349 g 4896 1694 M 42 43 V stroke --- 5258,5263 ---- *************** *** 5786,5797 **** 77 70 V stroke LT0 ! .206 g 5125 1930 M ! -36 -37 V stroke LT0 ! .1366 g 4068 1760 M ! 37 -127 V stroke LT0 .2292 g 5183 1973 M --- 5278,5293 ---- 77 70 V stroke LT0 ! .2005 g 5096 1900 M ! -7 -7 V ! stroke ! LT0 ! .2065 g 5120 1925 M ! -23 -24 V stroke LT0 ! .1368 g 4068 1760 M ! 37 -126 V stroke LT0 .2292 g 5183 1973 M *************** *** 5813,5822 **** .2602 g 1564 2025 M 76 64 V stroke - LT1 - .5513 g 3987 2860 M - -6 5 V - stroke LT0 .1965 g 5800 1839 M -59 81 V --- 5309,5314 ---- *************** *** 5925,5938 **** .2769 g 5471 2080 M 76 1 V stroke - LT0 - .0315 g 3151 1414 M - 0 -1 V - stroke - LT0 - .0812 g 3224 1536 M - -1 -1 V - stroke LT1 .0908 g 4725 1587 M -58 -79 V --- 5417,5422 ---- *************** *** 5962,5971 **** 30 -102 V stroke LT0 - .0629 g 3974 1487 M - 3 1 V - stroke - LT0 .2827 g 1834 2080 M -59 30 V stroke --- 5446,5451 ---- *************** *** 5981,5999 **** .1911 g 3183 1940 M -76 -233 V stroke - LT0 - .0625 g 3974 1487 M - 1 -1 V - stroke LT1 .0405 g 2670 1429 M -4 0 V stroke LT1 - .08 g 2602 1496 M - 1 -1 V - stroke - LT1 .0511 g 2632 1465 M 34 -36 V stroke --- 5461,5471 ---- *************** *** 6006,6019 **** 76 -33 V stroke LT1 - .1568 g 2279 1733 M - -3 2 V - stroke - LT1 - .2159 g 2144 1864 M - 4 -4 V - stroke - LT1 .0868 g 2531 1529 M -58 30 V stroke --- 5478,5483 ---- *************** *** 6074,6083 **** 76 -87 V stroke LT0 - .0053 g 3158 1320 M - 5 3 V - stroke - LT0 .2806 g 5395 2066 M -59 12 V stroke --- 5538,5543 ---- *************** *** 6105,6118 **** .1603 g 3992 1728 M 76 32 V stroke - LT1 - .0112 g 2913 1336 M - 5 -1 V - stroke - LT0 - .0007 g 4098 1306 M - -7 0 V - stroke LT0 .3815 g 3084 2358 M -59 -43 V --- 5565,5570 ---- *************** *** 6181,6190 **** .255 g 5183 1973 M 77 58 V stroke - LT1 - .1572 g 2277 1735 M - 2 -2 V - stroke LT0 .1912 g 5782 1782 M -59 84 V --- 5633,5638 ---- *************** *** 6262,6285 **** 28 -86 V stroke LT1 - .2055 g 5041 1848 M - -3 -2 V - stroke - LT1 - .2039 g 5043 1849 M - -4 -4 V - stroke - LT1 - .1875 g 4990 1801 M - 5 5 V - stroke - LT1 .0069 g 4150 1305 M -113 -15 V stroke LT0 ! .1518 g 3435 1760 M ! -63 -146 V stroke LT0 .1386 g 3300 1712 M --- 5710,5721 ---- 28 -86 V stroke LT1 .0069 g 4150 1305 M -113 -15 V stroke LT0 ! .1519 g 3435 1760 M ! -63 -145 V stroke LT0 .1386 g 3300 1712 M *************** *** 6298,6305 **** 59 -240 V stroke LT0 ! .1295 g 3858 1615 M ! 58 56 V stroke LT0 .1594 g 5764 1719 M --- 5734,5741 ---- 59 -240 V stroke LT0 ! .1296 g 3859 1616 M ! 57 55 V stroke LT0 .1594 g 5764 1719 M *************** *** 6334,6341 **** -18 16 V stroke LT0 ! .2453 g 2009 1963 M ! 77 -49 V stroke LT0 .2833 g 1816 2040 M --- 5770,5777 ---- -18 16 V stroke LT0 ! .236 g 2052 1936 M ! 34 -22 V stroke LT0 .2833 g 1816 2040 M *************** *** 6353,6362 **** .2817 g 5318 2037 M 77 29 V stroke - LT1 - .1433 g 2397 1652 M - -29 18 V - stroke LT0 .333 g 4027 2317 M 59 -295 V --- 5789,5794 ---- *************** *** 6374,6383 **** 76 61 V stroke LT0 - .273 g 1951 2005 M - -59 39 V - stroke - LT0 .2802 g 1816 2040 M 76 4 V stroke --- 5806,5811 ---- *************** *** 6397,6410 **** .333 g 3201 2308 M -76 -290 V stroke - LT1 - .0124 g 3247 1278 M - -2 0 V - stroke - LT1 - .0016 g 3249 1278 M - -4 0 V - stroke LT0 .1399 g 3704 1695 M -54 -86 V --- 5825,5830 ---- *************** *** 6422,6438 **** 77 55 V stroke LT0 ! .1528 g 3570 1754 M -71 -143 V stroke LT0 .1528 g 3435 1760 M 55 -149 V stroke - LT0 - .0089 g 3862 1268 M - -10 1 V - stroke LT1 .0284 g 4208 1349 M -58 -44 V --- 5842,5854 ---- 77 55 V stroke LT0 ! .1529 g 3570 1754 M -71 -143 V stroke LT0 .1528 g 3435 1760 M 55 -149 V stroke LT1 .0284 g 4208 1349 M -58 -44 V *************** *** 6510,6519 **** 76 40 V stroke LT0 - .2165 g 2149 1860 M - -5 4 V - stroke - LT0 .2119 g 5705 1805 M -58 85 V stroke --- 5926,5931 ---- *************** *** 6529,6538 **** .2041 g 3646 1914 M 58 -219 V stroke - LT1 - .0009 g 3628 1260 M - -2 0 V - stroke LT0 .2658 g 2009 1963 M -58 42 V --- 5941,5946 ---- *************** *** 6618,6627 **** 76 -19 V stroke LT1 - .7404 g 3272 3202 M - -3 -11 V - stroke - LT1 .0094 g 3862 1268 M -12 -1 V stroke --- 6026,6031 ---- *************** *** 6665,6678 **** .0428 g 4208 1349 M 77 10 V stroke - LT1 - .234 g 2151 1863 M - 3 -3 V - stroke - LT1 - .2272 g 2143 1865 M - 5 -5 V - stroke LT0 .5894 g 4022 2950 M 59 -180 V --- 6069,6074 ---- *************** *** 6689,6702 **** .0905 g 4496 1470 M 77 31 V stroke - LT1 - .0089 g 3382 1264 M - -10 1 V - stroke - LT1 - .0129 g 3246 1279 M - 1 -1 V - stroke LT0 .2657 g 5224 1966 M -58 -18 V --- 6085,6090 ---- *************** *** 6745,6762 **** .267 g 1663 1946 M 77 60 V stroke - LT1 - .01 g 3389 1266 M - -7 -2 V - stroke - LT1 - .0088 g 3517 1258 M - -3 0 V - stroke - LT1 - .0111 g 3373 1267 M - 2 -1 V - stroke LT0 .3038 g 3798 2190 M 59 -279 V --- 6133,6138 ---- *************** *** 6778,6787 **** 76 23 V stroke LT0 - .2522 g 5148 1926 M - -59 -33 V - stroke - LT0 .261 g 1722 1936 M -59 10 V stroke --- 6154,6159 ---- *************** *** 6793,6802 **** .5618 g 3178 2896 M -76 -289 V stroke - LT1 - .0091 g 3514 1259 M - 3 -1 V - stroke LT0 .3026 g 3453 2160 M -76 -234 V --- 6165,6170 ---- *************** *** 6822,6831 **** 76 24 V stroke LT1 - .225 g 5024 1844 M - -4 -3 V - stroke - LT1 .1148 g 4555 1557 M -59 -87 V stroke --- 6190,6195 ---- *************** *** 6849,6862 **** .0494 g 4132 1347 M 76 2 V stroke - LT1 - .0663 g 2847 1406 M - -5 0 V - stroke - LT1 - .1073 g 2766 1490 M - 26 -29 V - stroke LT0 .4039 g 3201 2308 M -59 49 V --- 6213,6218 ---- *************** *** 6873,6882 **** .0323 g 3921 1303 M 76 -8 V stroke - LT1 - .208 g 4947 1788 M - -1 -1 V - stroke LT0 .1957 g 5611 1755 M 77 -17 V --- 6229,6234 ---- *************** *** 6945,6954 **** .1756 g 4784 1671 M 70 47 V stroke - LT1 - .0401 g 3710 1293 M - 2 -1 V - stroke LT0 .2819 g 1857 1968 M -59 21 V --- 6297,6302 ---- *************** *** 6997,7006 **** .2677 g 1780 1923 M -58 13 V stroke - LT1 - .2384 g 2244 1815 M - 3 -3 V - stroke LT0 .2799 g 5283 1957 M -59 9 V --- 6345,6350 ---- *************** *** 7034,7045 **** 76 -6 V stroke LT0 ! .246 g 2167 1858 M ! -40 25 V stroke LT0 ! .2609 g 2050 1918 M ! 77 -35 V stroke LT0 .3394 g 3798 2190 M --- 6378,6389 ---- 76 -6 V stroke LT0 ! .2463 g 2160 1863 M ! -33 20 V stroke LT0 ! .2578 g 2068 1910 M ! 59 -27 V stroke LT0 .3394 g 3798 2190 M *************** *** 7121,7130 **** .701 g 3254 3157 M -58 -150 V stroke - LT1 - .6923 g 3256 3162 M - -60 -155 V - stroke LT0 .7472 g 3331 3368 M 3196 3007 L --- 6465,6470 ---- *************** *** 7138,7154 **** 77 45 V stroke LT0 - .2757 g 2050 1918 M - -58 32 V - stroke - LT0 .2806 g 1915 1944 M 77 6 V stroke - LT1 - .0434 g 3718 1301 M - -8 -8 V - stroke LT0 .3815 g 3875 2278 M -77 -88 V --- 6478,6486 ---- *************** *** 7186,7205 **** -58 -20 V stroke LT0 ! .2514 g 5036 1861 M ! 36 21 V stroke LT0 ! .468 g 3816 2592 M ! 59 -314 V stroke LT0 ! .2414 g 2209 1834 M ! -8 4 V ! stroke ! LT1 ! .2673 g 2050 1918 M ! 59 -31 V stroke LT0 .2602 g 5476 1854 M --- 6518,6533 ---- -58 -20 V stroke LT0 ! .2525 g 5049 1869 M ! 23 13 V stroke LT0 ! .2494 g 5036 1861 M ! 12 7 V stroke LT0 ! .468 g 3816 2592 M ! 59 -314 V stroke LT0 .2602 g 5476 1854 M *************** *** 7270,7279 **** -76 -261 V stroke LT0 - .2728 g 2109 1887 M - -59 31 V - stroke - LT0 .279 g 1974 1919 M 76 -1 V stroke --- 6598,6603 ---- *************** *** 7297,7318 **** .279 g 5130 1902 M 76 30 V stroke - LT1 - .2392 g 2251 1811 M - -7 4 V - stroke - LT1 - .2537 g 2204 1837 M - 7 -4 V - stroke - LT1 - .2488 g 2200 1838 M - 8 -4 V - stroke - LT1 - .1994 g 2496 1676 M - -5 1 V - stroke LT0 .4927 g 3471 2614 M -77 -265 V --- 6621,6626 ---- *************** *** 7349,7358 **** .2758 g 1898 1886 M -59 20 V stroke - LT1 - .2335 g 4870 1770 M - -3 -2 V - stroke LT0 .5449 g 3277 2616 M -58 55 V --- 6657,6662 ---- *************** *** 7437,7454 **** .2413 g 5382 1785 M 77 -5 V stroke - LT1 - .8746 g 3397 3481 M - -5 -15 V - stroke - LT1 - .2392 g 2361 1764 M - -7 3 V - stroke - LT1 - .2558 g 2254 1815 M - 9 -5 V - stroke LT0 .6851 g 3928 3128 M 59 -267 V --- 6741,6746 ---- *************** *** 7494,7510 **** -58 22 V stroke LT1 ! .2018 g 4696 1678 M ! -6 -7 V stroke LT1 .1973 g 4613 1642 M 77 29 V stroke - LT1 - .7706 g 3887 3311 M - 59 -138 V - stroke LT0 .7895 g 3869 3344 M 77 -171 V --- 6786,6798 ---- -58 22 V stroke LT1 ! .2017 g 4695 1677 M ! -5 -6 V stroke LT1 .1973 g 4613 1642 M 77 29 V stroke LT0 .7895 g 3869 3344 M 77 -171 V *************** *** 7558,7565 **** -59 -13 V stroke LT0 ! .2591 g 4919 1806 M ! 58 27 V stroke LT0 .2834 g 2091 1867 M --- 6846,6853 ---- -59 -13 V stroke LT0 ! .2591 g 4919 1807 M ! 58 26 V stroke LT0 .2834 g 2091 1867 M *************** *** 7581,7594 **** .6064 g 3758 2902 M 58 -310 V stroke - LT1 - .8463 g 3811 3492 M - 76 -181 V - stroke - LT1 - .1484 g 3069 1485 M - -12 -7 V - stroke LT0 .6834 g 3295 2980 M -59 -9 V --- 6869,6874 ---- *************** *** 7606,7615 **** 76 23 V stroke LT1 - .1948 g 4381 1588 M - -4 -5 V - stroke - LT1 .1669 g 4369 1572 M -43 -62 V stroke --- 6886,6891 ---- *************** *** 7625,7662 **** .7895 g 3331 3368 M -77 -211 V stroke - LT1 - .2401 g 2357 1766 M - 4 -2 V - stroke LT0 .2523 g 5306 1786 M 76 -1 V stroke - LT1 - .2639 g 4964 1821 M - -27 -10 V - stroke - LT1 - .1536 g 2887 1518 M - -4 -2 V - stroke - LT1 - .1933 g 2818 1585 M - 2 -3 V - stroke - LT1 - .1623 g 2867 1533 M - 2 -2 V - stroke LT0 .2793 g 2015 1840 M -59 24 V stroke - LT1 - .1412 g 3736 1442 M - -5 -6 V - stroke LT0 .2819 g 5171 1841 M -59 30 V --- 6901,6914 ---- *************** *** 7733,7742 **** .261 g 5230 1783 M 76 3 V stroke - LT1 - .2473 g 2478 1731 M - -10 2 V - stroke LT0 .7895 g 3869 3344 M 59 -216 V --- 6985,6990 ---- *************** *** 7753,7766 **** .2789 g 4960 1820 M 76 26 V stroke - LT1 - .1277 g 3828 1423 M - -1 -1 V - stroke - LT1 - .1283 g 3821 1425 M - 6 -3 V - stroke LT0 .6834 g 3354 2920 M -59 60 V --- 7001,7006 ---- *************** *** 7782,7788 **** 76 15 V stroke LT1 ! .1968 g 4465 1608 M -4 -5 V stroke LT1 --- 7022,7028 ---- 76 15 V stroke LT1 ! .1965 g 4465 1608 M -4 -5 V stroke LT1 *************** *** 7805,7814 **** .2764 g 2208 1816 M 77 -9 V stroke - LT1 - .1556 g 3073 1492 M - 4 -3 V - stroke LT0 .2831 g 2208 1816 M -58 25 V --- 7045,7050 ---- *************** *** 7849,7862 **** .6851 g 3623 3050 M 58 -267 V stroke - LT1 - .2381 g 4596 1687 M - 2 0 V - stroke - LT1 - .2485 g 2474 1733 M - 4 -2 V - stroke LT0 .7541 g 3775 3241 M 59 -285 V --- 7085,7090 ---- *************** *** 7877,7886 **** .2799 g 2132 1790 M -59 26 V stroke - LT1 - .2185 g 2865 1610 M - -7 -2 V - stroke LT0 .8072 g 3371 3258 M -58 -13 V --- 7105,7110 ---- *************** *** 7906,7915 **** 76 25 V stroke LT0 - .2728 g 2402 1766 M - -59 20 V - stroke - LT0 .2775 g 2267 1791 M 76 -5 V stroke --- 7130,7135 ---- *************** *** 7937,7950 **** .2815 g 2132 1790 M 76 26 V stroke - LT1 - .2384 g 4597 1687 M - -1 0 V - stroke - LT1 - .2461 g 2629 1688 M - 5 -4 V - stroke LT0 .2725 g 5077 1764 M 76 11 V --- 7157,7162 ---- *************** *** 7981,7994 **** .8072 g 3775 3241 M 77 -20 V stroke - LT1 - .262 g 2509 1729 M - 5 -1 V - stroke - LT1 - .2177 g 3944 1563 M - -5 -6 V - stroke LT0 .2757 g 2460 1747 M -58 19 V --- 7193,7198 ---- *************** *** 8017,8026 **** .2837 g 4865 1769 M 77 20 V stroke - LT1 - .22 g 2863 1611 M - 2 -1 V - stroke LT0 .8072 g 3430 3194 M -59 64 V --- 7221,7226 ---- *************** *** 8053,8066 **** .7895 g 3565 3267 M 58 -217 V stroke - LT1 - .1903 g 3685 1511 M - -3 -3 V - stroke - LT1 - .1851 g 3667 1504 M - 7 -4 V - stroke LT0 .9049 g 3448 3482 M -59 -17 V --- 7253,7258 ---- *************** *** 8073,8090 **** .278 g 2249 1734 M -59 28 V stroke - LT1 - .2291 g 4252 1609 M - -3 -3 V - stroke LT0 .8463 g 3506 3415 M -76 -221 V stroke - LT1 - .219 g 3944 1563 M - 5 -2 V - stroke LT0 .272 g 2460 1747 M 94 -26 V --- 7265,7274 ---- *************** *** 8137,8150 **** .8463 g 3640 3409 M 59 -227 V stroke - LT1 - .2377 g 3868 1582 M - -2 -2 V - stroke - LT1 - .2159 g 3751 1550 M - 12 -5 V - stroke LT0 .9258 g 3734 3602 M 59 -154 V --- 7321,7326 ---- *************** *** 8161,8174 **** .9676 g 3466 3614 M 76 63 V stroke - LT1 - .2379 g 3252 1588 M - -6 -3 V - stroke - LT1 - .2242 g 3055 1589 M - 4 -2 V - stroke LT0 .9676 g 3524 3633 M -58 -19 V --- 7337,7342 ---- *************** *** 8193,8210 **** .2831 g 4713 1729 M 76 20 V stroke - LT1 - .2393 g 2932 1624 M - -8 -1 V - stroke - LT1 - .2387 g 2921 1625 M - 3 -2 V - stroke - LT1 - .2541 g 4290 1643 M - 8 0 V - stroke LT0 .2793 g 4848 1716 M 76 18 V --- 7361,7366 ---- *************** *** 8237,8250 **** .2792 g 2308 1703 M 76 38 V stroke - LT1 - .2273 g 3959 1575 M - -4 -4 V - stroke - LT1 - .237 g 3868 1582 M - 9 -3 V - stroke LT0 .273 g 2713 1689 M -59 11 V --- 7393,7398 ---- *************** *** 8265,8274 **** .2817 g 2443 1714 M 76 15 V stroke - LT1 - .2296 g 3630 1564 M - -5 -3 V - stroke LT0 .9049 g 3506 3415 M -58 67 V --- 7413,7418 ---- *************** *** 8365,8374 **** .2802 g 2636 1685 M 77 4 V stroke - LT1 - .2591 g 3912 1607 M - -2 -1 V - stroke LT0 .2799 g 4695 1677 M 76 20 V --- 7509,7514 ---- *************** *** 8377,8386 **** .9676 g 3583 3563 M 75 64 V stroke - LT1 - .2378 g 3391 1579 M - -4 -1 V - stroke LT0 .2677 g 2425 1632 M -59 37 V --- 7517,7522 ---- *************** *** 8393,8402 **** .2757 g 4349 1665 M 76 13 V stroke - LT1 - .2665 g 4137 1635 M - 63 3 V - stroke LT0 .2788 g 2560 1651 M -59 33 V --- 7529,7534 ---- *************** *** 8454,8474 **** -59 13 V stroke LT0 ! .2728 g 3041 1638 M ! -135 19 V stroke LT0 .2799 g 2830 1654 M 76 3 V stroke - LT1 - .2746 g 3100 1633 M - -59 5 V - stroke - LT1 - .2759 g 2965 1644 M - 76 -6 V - stroke LT0 .2763 g 4196 1637 M -59 -2 V --- 7586,7598 ---- -59 13 V stroke LT0 ! .2729 g 3038 1638 M ! -132 19 V stroke LT0 .2799 g 2830 1654 M 76 3 V stroke LT0 .2763 g 4196 1637 M -59 -2 V *************** *** 8478,8485 **** -135 -17 V stroke LT0 ! .273 g 4061 1630 M ! 76 5 V stroke LT0 .2805 g 4542 1633 M --- 7602,7609 ---- -135 -17 V stroke LT0 ! .2718 g 4088 1632 M ! 49 3 V stroke LT0 .2805 g 4542 1633 M *************** *** 8489,8502 **** .2838 g 4407 1653 M 77 19 V stroke - LT1 - .2618 g 3316 1609 M - -5 -1 V - stroke - LT1 - .2629 g 3300 1610 M - 6 -1 V - stroke LT0 .2737 g 2618 1612 M -58 39 V --- 7613,7618 ---- *************** *** 8509,8527 **** .278 g 4542 1633 M 77 23 V stroke - LT1 - .2618 g 3450 1603 M - -4 -1 V - stroke LT0 .2523 g 2542 1545 M -59 46 V stroke LT0 - .2734 g 4061 1630 M - -82 -9 V - stroke - LT0 .2817 g 4331 1632 M -59 20 V stroke --- 7625,7635 ---- *************** *** 8558,8565 **** 76 25 V stroke LT0 ! .2802 g 4120 1620 M ! -59 10 V stroke LT0 .279 g 3985 1621 M --- 7666,7673 ---- 76 25 V stroke LT0 ! .2804 g 4120 1620 M ! -55 9 V stroke LT0 .279 g 3985 1621 M *************** *** 9460,9493 **** LT0 .1067 g 3245 954 M 77 9 V stroke LT0 ! .1784 g 0.500 UL LTb 3245 586 M 3054 779 V 3245 586 M 901 1601 L - 1622 413 R - 8 2 V - -178 -45 R - 4 1 V - -102 -26 R - 5 1 V - -176 -45 R - 3 1 V - 901 1601 M 1046 266 V - 3006 80 R - -3 2 V 6299 1365 M -974 421 V 901 3815 M 0 -2214 V ! 3955 2747 M ! 0 1847 R ! 0 -1449 V ! 2344 434 R 0 -2214 V 3245 954 M 0 -368 V --- 8568,8591 ---- LT0 .1067 g 3245 954 M 77 9 V + % Begin plot #1 stroke LT0 ! .1784 g % End plot #1 ! 0.500 UL LTb 3245 586 M 3054 779 V 3245 586 M 901 1601 L 1046 266 V 6299 1365 M -974 421 V 901 3815 M 0 -2214 V ! 3955 4594 M ! 0 -1448 V ! 2344 433 R 0 -2214 V 3245 954 M 0 -368 V *************** *** 9649,9656 **** LTb 0.500 UL LTb - 5077 1859 M - 39 10 V 1780 1220 M 50 13 V stroke --- 8747,8752 ---- Files octave-3.0.3/doc/interpreter/mesh.pdf and octave-3.0.4/doc/interpreter/mesh.pdf differ Files octave-3.0.3/doc/interpreter/mesh.png and octave-3.0.4/doc/interpreter/mesh.png differ diff -cNr octave-3.0.3/doc/interpreter/nonlin.texi octave-3.0.4/doc/interpreter/nonlin.texi *** octave-3.0.3/doc/interpreter/nonlin.texi 2008-10-03 12:17:35.000000000 +0200 --- octave-3.0.4/doc/interpreter/nonlin.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 42,48 **** using the function @code{fsolve}, which is based on the @sc{Minpack} subroutine @code{hybrd}. This is an iterative technique so a starting point will have to be provided. This also has the consequence that ! convergence is not guarantied even if a solution exists. @anchor{doc-fsolve} @deftypefn {Loadable Function} {[@var{x}, @var{fval}, @var{info}] =} fsolve (@var{fcn}, @var{x0}) --- 42,48 ---- using the function @code{fsolve}, which is based on the @sc{Minpack} subroutine @code{hybrd}. This is an iterative technique so a starting point will have to be provided. This also has the consequence that ! convergence is not guaranteed even if a solution exists. @anchor{doc-fsolve} @deftypefn {Loadable Function} {[@var{x}, @var{fval}, @var{info}] =} fsolve (@var{fcn}, @var{x0}) diff -cNr octave-3.0.3/doc/interpreter/nonlin.txi octave-3.0.4/doc/interpreter/nonlin.txi *** octave-3.0.3/doc/interpreter/nonlin.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/nonlin.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 40,46 **** using the function @code{fsolve}, which is based on the @sc{Minpack} subroutine @code{hybrd}. This is an iterative technique so a starting point will have to be provided. This also has the consequence that ! convergence is not guarantied even if a solution exists. @DOCSTRING(fsolve) --- 40,46 ---- using the function @code{fsolve}, which is based on the @sc{Minpack} subroutine @code{hybrd}. This is an iterative technique so a starting point will have to be provided. This also has the consequence that ! convergence is not guaranteed even if a solution exists. @DOCSTRING(fsolve) diff -cNr octave-3.0.3/doc/interpreter/numbers.texi octave-3.0.4/doc/interpreter/numbers.texi *** octave-3.0.3/doc/interpreter/numbers.texi 2008-10-03 12:17:35.000000000 +0200 --- octave-3.0.4/doc/interpreter/numbers.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 537,543 **** @deftypefn {Built-in Function} {} isinteger (@var{x}) Return true if @var{x} is an integer object (int8, uint8, int16, etc.). Note that @code{isinteger (14)} is false because numeric constants in ! are double precision floating point values. @seealso{isreal, isnumeric, class, isa} @end deftypefn --- 537,543 ---- @deftypefn {Built-in Function} {} isinteger (@var{x}) Return true if @var{x} is an integer object (int8, uint8, int16, etc.). Note that @code{isinteger (14)} is false because numeric constants in ! Octave are double precision floating point values. @seealso{isreal, isnumeric, class, isa} @end deftypefn *************** *** 747,753 **** @anchor{doc-bitmax} @deftypefn {Built-in Function} {} bitmax () Return the largest integer that can be represented as a floating point ! value. On IEEE-754 compatiable systems, @code{bitmax} is @code{2^53 - 1}. @end deftypefn --- 747,753 ---- @anchor{doc-bitmax} @deftypefn {Built-in Function} {} bitmax () Return the largest integer that can be represented as a floating point ! value. On IEEE-754 compatible systems, @code{bitmax} is @code{2^53 - 1}. @end deftypefn *************** *** 781,787 **** @end deftypefn ! The bitwise 'not' operator is unary operator that performs a logial negation of each of the bits of the value. For this to make sense, the mask against which the value is negated must be defined. Octave's bitwise 'not' operator is @code{bitcmp}. --- 781,787 ---- @end deftypefn ! The bitwise 'not' operator is unary operator that performs a logical negation of each of the bits of the value. For this to make sense, the mask against which the value is negated must be defined. Octave's bitwise 'not' operator is @code{bitcmp}. diff -cNr octave-3.0.3/doc/interpreter/numbers.txi octave-3.0.4/doc/interpreter/numbers.txi *** octave-3.0.3/doc/interpreter/numbers.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/numbers.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 535,541 **** @DOCSTRING(bitxor) ! The bitwise 'not' operator is unary operator that performs a logial negation of each of the bits of the value. For this to make sense, the mask against which the value is negated must be defined. Octave's bitwise 'not' operator is @code{bitcmp}. --- 535,541 ---- @DOCSTRING(bitxor) ! The bitwise 'not' operator is unary operator that performs a logical negation of each of the bits of the value. For this to make sense, the mask against which the value is negated must be defined. Octave's bitwise 'not' operator is @code{bitcmp}. Files octave-3.0.3/doc/interpreter/octave-a4.pdf and octave-3.0.4/doc/interpreter/octave-a4.pdf differ Files octave-3.0.3/doc/interpreter/octave.pdf and octave-3.0.4/doc/interpreter/octave.pdf differ diff -cNr octave-3.0.3/doc/interpreter/optim.texi octave-3.0.4/doc/interpreter/optim.texi *** octave-3.0.3/doc/interpreter/optim.texi 2008-10-03 12:17:35.000000000 +0200 --- octave-3.0.4/doc/interpreter/optim.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 584,590 **** successive quadratic programming solver. @anchor{doc-sqp} ! @deftypefn {Function File} {[@var{x}, @var{obj}, @var{info}, @var{iter}, @var{nf}, @var{lambda}] =} sqp (@var{x}, @var{phi}, @var{g}, @var{h}) Solve the nonlinear program @iftex @tex --- 584,590 ---- successive quadratic programming solver. @anchor{doc-sqp} ! @deftypefn {Function File} {[@var{x}, @var{obj}, @var{info}, @var{iter}, @var{nf}, @var{lambda}] =} sqp (@var{x}, @var{phi}, @var{g}, @var{h}, @var{lb}, @var{ub}, @var{maxiter}, @var{tolerance}) Solve the nonlinear program @iftex @tex *************** *** 605,611 **** @iftex @tex $$ ! g(x) = 0 \qquad h(x) \geq 0 $$ @end tex @end iftex --- 605,611 ---- @iftex @tex $$ ! g(x) = 0 \qquad h(x) \geq 0 \qquad lb \leq x \leq ub $$ @end tex @end iftex *************** *** 614,619 **** --- 614,620 ---- @example g(x) = 0 h(x) >= 0 + lb <= x <= ub @end example @end ifnottex *************** *** 698,703 **** --- 699,715 ---- @end example @end ifnottex + The fifth and sixth arguments are vectors containing lower and upper bounds + on @var{x}. These must be consistent with equality and inequality + constraints @var{g} and @var{h}. If the bounds are not specified, or are + empty, they are set to -@var{realmax} and @var{realmax} by default. + + The seventh argument is max. number of iterations. If not specified, + the default value is 100. + + The eighth argument is tolerance for stopping criteria. If not specified, + the default value is @var{eps}. + Here is an example of calling @code{sqp}: @example diff -cNr octave-3.0.3/doc/interpreter/package.texi octave-3.0.4/doc/interpreter/package.texi *** octave-3.0.3/doc/interpreter/package.texi 2008-10-03 12:17:35.000000000 +0200 --- octave-3.0.4/doc/interpreter/package.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 401,407 **** @noindent The developer is free to add additional arguments to the @code{DESCRIPTION} file for their own purposes. One further detail to ! aid the packager is that the @code{SystemRequirments} and @code{BuildRequires} keywords can have distribution dependent section, and the automatic build process will use these. An example of the format of this is --- 401,407 ---- @noindent The developer is free to add additional arguments to the @code{DESCRIPTION} file for their own purposes. One further detail to ! aid the packager is that the @code{SystemRequirements} and @code{BuildRequires} keywords can have distribution dependent section, and the automatic build process will use these. An example of the format of this is diff -cNr octave-3.0.3/doc/interpreter/package.txi octave-3.0.4/doc/interpreter/package.txi *** octave-3.0.3/doc/interpreter/package.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/package.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 399,405 **** @noindent The developer is free to add additional arguments to the @code{DESCRIPTION} file for their own purposes. One further detail to ! aid the packager is that the @code{SystemRequirments} and @code{BuildRequires} keywords can have distribution dependent section, and the automatic build process will use these. An example of the format of this is --- 399,405 ---- @noindent The developer is free to add additional arguments to the @code{DESCRIPTION} file for their own purposes. One further detail to ! aid the packager is that the @code{SystemRequirements} and @code{BuildRequires} keywords can have distribution dependent section, and the automatic build process will use these. An example of the format of this is diff -cNr octave-3.0.3/doc/interpreter/plot3.eps octave-3.0.4/doc/interpreter/plot3.eps *** octave-3.0.3/doc/interpreter/plot3.eps 2008-09-24 10:32:28.000000000 +0200 --- octave-3.0.4/doc/interpreter/plot3.eps 2009-01-29 09:11:18.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: plot3.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:28 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: plot3.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:18 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (plot3.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:28 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (plot3.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:18 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 460,539 **** (Helvetica) findfont 140 scalefont setfont 0.500 UL LTb - gsave % colour palette begin - /maxcolors 64 def - /HSV2RGB { exch dup 0.0 eq {pop exch pop dup dup} % achromatic gray - { /HSVs exch def /HSVv exch def 6.0 mul dup floor dup 3 1 roll sub - /HSVf exch def /HSVi exch cvi def /HSVp HSVv 1.0 HSVs sub mul def - /HSVq HSVv 1.0 HSVs HSVf mul sub mul def - /HSVt HSVv 1.0 HSVs 1.0 HSVf sub mul sub mul def - /HSVi HSVi 6 mod def 0 HSVi eq {HSVv HSVt HSVp} - {1 HSVi eq {HSVq HSVv HSVp}{2 HSVi eq {HSVp HSVv HSVt} - {3 HSVi eq {HSVp HSVq HSVv}{4 HSVi eq {HSVt HSVp HSVv} - {HSVv HSVp HSVq} ifelse} ifelse} ifelse} ifelse} ifelse - } ifelse} def - /Constrain { - dup 0 lt {0 exch pop}{dup 1 gt {1 exch pop} if} ifelse} def - /YIQ2RGB { - 3 copy -1.702 mul exch -1.105 mul add add Constrain 4 1 roll - 3 copy -0.647 mul exch -0.272 mul add add Constrain 5 1 roll - 0.621 mul exch -0.956 mul add add Constrain 3 1 roll } def - /CMY2RGB { 1 exch sub exch 1 exch sub 3 2 roll 1 exch sub 3 1 roll exch } def - /XYZ2RGB { 3 copy -0.9017 mul exch -0.1187 mul add exch 0.0585 mul exch add - Constrain 4 1 roll 3 copy -0.0279 mul exch 1.999 mul add exch - -0.9844 mul add Constrain 5 1 roll -0.2891 mul exch -0.5338 mul add - exch 1.91 mul exch add Constrain 3 1 roll} def - /SelectSpace {ColorSpace (HSV) eq {HSV2RGB}{ColorSpace (XYZ) eq { - XYZ2RGB}{ColorSpace (CMY) eq {CMY2RGB}{ColorSpace (YIQ) eq {YIQ2RGB} - if} ifelse} ifelse} ifelse} def - /InterpolatedColor true def - /grayindex {/gidx 0 def - {GrayA gidx get grayv ge {exit} if /gidx gidx 1 add def} loop} def - /dgdx {grayv GrayA gidx get sub GrayA gidx 1 sub get - GrayA gidx get sub div} def - /redvalue {RedA gidx get RedA gidx 1 sub get - RedA gidx get sub dgdxval mul add} def - /greenvalue {GreenA gidx get GreenA gidx 1 sub get - GreenA gidx get sub dgdxval mul add} def - /bluevalue {BlueA gidx get BlueA gidx 1 sub get - BlueA gidx get sub dgdxval mul add} def - /interpolate { - grayindex grayv GrayA gidx get sub abs 1e-5 le - {RedA gidx get GreenA gidx get BlueA gidx get} - {/dgdxval dgdx def redvalue greenvalue bluevalue} ifelse} def - /GrayA [0 .0159 .0317 .0476 .0635 .0794 .0952 .1111 .127 .1429 .1587 .1746 - .1905 .2063 .2222 .2381 .254 .2698 .2857 .3016 .3175 .3333 .3492 .3651 - .381 .3968 .4127 .4286 .4444 .4603 .4762 .4921 .5079 .5238 .5397 .5556 - .5714 .5873 .6032 .619 .6349 .6508 .6667 .6825 .6984 .7143 .7302 .746 - .7619 .7778 .7937 .8095 .8254 .8413 .8571 .873 .8889 .9048 .9206 .9365 - .9524 .9683 .9841 1 ] def - /RedA [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .0238 .0873 .1508 - .2143 .2778 .3413 .4048 .4683 .5317 .5952 .6587 .7222 .7857 .8492 .9127 - .9762 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 .9444 .881 .8175 .754 .6905 .627 - .5635 .5 ] def - /GreenA [0 0 0 0 0 0 0 0 .0079 .0714 .1349 .1984 .2619 .3254 .3889 .4524 - .5159 .5794 .6429 .7063 .7698 .8333 .8968 .9603 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 .9603 .8968 .8333 .7698 .7063 .6429 .5794 .5159 .4524 .3889 .3254 - .2619 .1984 .1349 .0714 .0079 0 0 0 0 0 0 0 0 ] def - /BlueA [.5 .5635 .627 .6905 .754 .8175 .881 .9444 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 .9762 .9127 .8492 .7857 .7222 .6587 .5952 .5317 .4683 .4048 .3413 - .2778 .2143 .1508 .0873 .0238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 ] def - /pm3dround {maxcolors 0 gt {dup 1 ge - {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def - /pm3dGamma 1.0 1.5 div def - /ColorSpace (RGB) def - Color true and { % COLOUR vs. GRAY map - InterpolatedColor { %% Interpolation vs. RGB-Formula - /g {stroke pm3dround /grayv exch def interpolate - SelectSpace setrgbcolor} bind def - }{ - /g {stroke pm3dround dup cF7 Constrain exch dup cF5 Constrain exch cF15 Constrain - SelectSpace setrgbcolor} bind def - } ifelse - }{ - /g {stroke pm3dround pm3dGamma exp setgray} bind def - } ifelse 1.000 UP 0.500 UL LT0 --- 469,474 ---- *************** *** 1791,1799 **** LT0 0.00 0.00 1.00 C 3505 2947 M -183 10 V stroke LT0 ! 0.00 0.00 1.00 C 0.500 UL LTb 6299 1365 M 3245 586 L --- 1726,1736 ---- LT0 0.00 0.00 1.00 C 3505 2947 M -183 10 V + % Begin plot #1 stroke LT0 ! 0.00 0.00 1.00 C % End plot #1 ! 0.500 UL LTb 6299 1365 M 3245 586 L *************** *** 2058,2064 **** 0.500 UL LTb 1.000 UP - grestore % colour palette end stroke grestore end --- 1995,2000 ---- Files octave-3.0.3/doc/interpreter/plot3.pdf and octave-3.0.4/doc/interpreter/plot3.pdf differ Files octave-3.0.3/doc/interpreter/plot3.png and octave-3.0.4/doc/interpreter/plot3.png differ diff -cNr octave-3.0.3/doc/interpreter/plot.eps octave-3.0.4/doc/interpreter/plot.eps *** octave-3.0.3/doc/interpreter/plot.eps 2008-09-24 10:32:18.000000000 +0200 --- octave-3.0.4/doc/interpreter/plot.eps 2009-01-29 09:11:15.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: plot.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:18 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: plot.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:15 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (plot.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:18 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (plot.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:15 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,860 **** } ifelse 0.500 UL LTb ! 574 280 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 280 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MRshow 0.500 UL LTb ! 574 1428 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 1428 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MRshow 0.500 UL LTb ! 574 2576 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 2576 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 574 3724 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 3724 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 574 4872 M 63 0 V ! 6325 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 490 4872 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 574 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 574 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-10)] ] -46.7 MCshow 0.500 UL LTb ! 2171 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2171 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-5)] ] -46.7 MCshow 0.500 UL LTb ! 3768 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3768 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 5365 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5365 140 M [ [(Helvetica) 140.0 0.0 true true 0 (5)] ] -46.7 MCshow 0.500 UL LTb ! 6962 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6962 140 M [ [(Helvetica) 140.0 0.0 true true 0 (10)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL LTb 0.500 UL LT0 ! 0.00 0.00 1.00 C 574 3825 M 32 -198 V ! 32 -210 V ! 32 -217 V ! 32 -224 V ! 32 -227 V ! 32 -230 V 32 -229 V ! 32 -226 V ! 31 -221 V ! 32 -213 V 32 -204 V ! 32 -193 V ! 32 -179 V 32 -164 V 32 -147 V 32 -129 V 32 -109 V ! 32 -89 V 32 -67 V 32 -45 V 32 -22 V ! 32 1 V 32 24 V 32 47 V ! 31 68 V 32 91 V ! 32 110 V 32 131 V 32 148 V ! 32 166 V ! 32 180 V ! 32 194 V ! 32 204 V ! 32 215 V ! 32 221 V 32 226 V 32 229 V ! 32 230 V ! 32 227 V ! 32 224 V ! 32 216 V ! 31 209 V ! 32 197 V 32 185 V ! 32 171 V 32 154 V ! 32 137 V 32 117 V 32 98 V 32 76 V 32 54 V ! 32 31 V 32 9 V 32 -14 V 32 -38 V 32 -59 V ! 32 -81 V 32 -103 V ! 31 -122 V 32 -141 V ! 32 -159 V 32 -174 V 32 -188 V 32 -201 V ! 32 -211 V ! 32 -218 V ! 32 -225 V ! 32 -228 V 32 -229 V 32 -229 V ! 32 -225 V ! 32 -220 V ! 32 -212 V ! 32 -203 V ! 31 -190 V ! 32 -177 V 32 -161 V 32 -144 V 32 -126 V 32 -106 V ! 32 -85 V 32 -63 V 32 -41 V 32 -18 V 32 5 V ! 32 27 V 32 51 V 32 72 V 32 94 V 32 114 V ! 32 133 V ! 31 152 V 32 168 V ! 32 183 V ! 32 195 V ! 32 207 V 32 215 V ! 32 223 V 32 227 V ! 32 229 V ! 32 229 V 32 227 V ! 32 223 V 32 215 V ! 3928 3677 L ! 32 195 V ! 32 183 V 32 168 V ! 31 152 V ! 32 133 V 32 114 V 32 94 V 32 72 V 32 51 V ! 32 27 V 32 5 V 32 -18 V 32 -41 V 32 -63 V ! 32 -85 V 32 -106 V 32 -126 V 32 -144 V 32 -161 V 31 -177 V 32 -190 V ! 32 -203 V ! 32 -212 V ! 32 -220 V ! 32 -225 V 32 -229 V 32 -229 V ! 32 -228 V ! 32 -225 V ! 32 -218 V ! 32 -211 V 32 -201 V 32 -188 V 32 -174 V ! 32 -159 V 32 -141 V ! 31 -122 V 32 -103 V ! 32 -81 V 32 -59 V 32 -38 V 32 -14 V 32 9 V ! 32 31 V 32 54 V 32 76 V 32 98 V 32 117 V ! 32 137 V 32 154 V ! 32 171 V 32 185 V ! 32 197 V ! 31 209 V ! 32 216 V ! 32 224 V ! 32 227 V ! 32 230 V 32 229 V 32 226 V ! 32 221 V ! 32 215 V ! 32 204 V ! 32 194 V ! 32 180 V ! 32 166 V 32 148 V 32 131 V ! 32 110 V ! 31 91 V 32 68 V 32 47 V 32 24 V ! 32 1 V 32 -22 V 32 -45 V 32 -67 V ! 32 -89 V 32 -109 V 32 -129 V 32 -147 V 32 -164 V ! 32 -179 V ! 32 -193 V 32 -204 V ! 32 -213 V ! 31 -221 V ! 32 -226 V 32 -229 V ! 32 -230 V ! 32 -227 V ! 32 -224 V ! 32 -217 V ! 32 -210 V 32 -198 V stroke LTb ! 574 4872 N ! 574 280 L ! 6388 0 V ! 0 4592 V ! -6388 0 V Z stroke 1.000 UP 0.500 UL --- 543,872 ---- } ifelse 0.500 UL LTb ! 630 280 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 280 M [ [(Helvetica) 140.0 0.0 true true 0 (-1)] ] -46.7 MRshow 0.500 UL LTb ! 630 1428 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 1428 M [ [(Helvetica) 140.0 0.0 true true 0 (-0.5)] ] -46.7 MRshow 0.500 UL LTb ! 630 2576 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 2576 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 630 3723 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 3723 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 630 4871 M 63 0 V ! 6296 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 546 4871 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 630 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 630 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-10)] ] -46.7 MCshow 0.500 UL LTb ! 2220 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2220 140 M [ [(Helvetica) 140.0 0.0 true true 0 (-5)] ] -46.7 MCshow 0.500 UL LTb ! 3810 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3810 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 5399 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5399 140 M [ [(Helvetica) 140.0 0.0 true true 0 (5)] ] -46.7 MCshow 0.500 UL LTb ! 6989 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6989 140 M [ [(Helvetica) 140.0 0.0 true true 0 (10)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 0.500 UL LT0 ! 0.00 0.00 1.00 C 630 3824 M 32 -198 V ! 32 -209 V ! 31 -218 V ! 32 -223 V ! 32 -228 V 32 -229 V ! 32 -229 V ! 31 -226 V ! 32 -221 V ! 32 -214 V 32 -204 V ! 32 -192 V ! 31 -179 V 32 -164 V 32 -147 V 32 -129 V 32 -109 V ! 31 -89 V 32 -67 V 32 -45 V 32 -22 V ! 31 1 V 32 24 V 32 47 V ! 32 68 V 32 91 V ! 31 110 V 32 131 V 32 148 V ! 32 165 V ! 32 181 V ! 31 193 V ! 32 205 V ! 32 214 V ! 32 222 V 32 226 V + 31 229 V 32 229 V ! 32 228 V ! 32 223 V ! 32 217 V ! 31 208 V ! 32 198 V 32 185 V ! 32 170 V 32 154 V ! 31 137 V 32 117 V 32 98 V 32 76 V 32 54 V ! 31 31 V 32 9 V 32 -14 V 32 -38 V 32 -59 V ! 31 -81 V 32 -103 V ! 32 -122 V 32 -141 V ! 31 -159 V 32 -174 V 32 -188 V 32 -201 V ! 32 -210 V ! 31 -219 V ! 32 -224 V 32 -229 V 32 -229 V ! 32 -228 V ! 31 -226 V ! 32 -219 V ! 32 -213 V ! 32 -202 V ! 32 -190 V ! 31 -177 V 32 -161 V 32 -144 V 32 -126 V 32 -106 V ! 31 -85 V 32 -63 V 32 -41 V 32 -18 V 32 5 V ! 31 27 V 32 51 V 32 72 V 32 94 V 32 114 V ! 31 133 V ! 32 152 V 32 168 V ! 32 182 V ! 32 196 V ! 31 207 V 32 215 V ! 32 222 V 32 227 V ! 32 230 V ! 31 229 V 32 227 V ! 32 222 V 32 215 V ! stroke 3937 3469 M ! 31 207 V ! 32 196 V ! 32 182 V 32 168 V ! 32 152 V ! 31 133 V 32 114 V 32 94 V 32 72 V 32 51 V ! 31 27 V 32 5 V 32 -18 V 32 -41 V 32 -63 V ! 31 -85 V 32 -106 V 32 -126 V 32 -144 V 32 -161 V 31 -177 V 32 -190 V ! 32 -202 V ! 32 -213 V ! 32 -219 V ! 31 -226 V ! 32 -228 V 32 -229 V 32 -229 V ! 32 -224 V ! 31 -219 V ! 32 -210 V 32 -201 V 32 -188 V 32 -174 V ! 31 -159 V 32 -141 V ! 32 -122 V 32 -103 V ! 31 -81 V 32 -59 V 32 -38 V 32 -14 V 32 9 V ! 31 31 V 32 54 V 32 76 V 32 98 V 32 117 V ! 31 137 V 32 154 V ! 32 170 V 32 185 V ! 32 198 V ! 31 208 V ! 32 217 V ! 32 223 V ! 32 228 V 32 229 V + 31 229 V 32 226 V ! 32 222 V ! 32 214 V ! 32 205 V ! 31 193 V ! 32 181 V ! 32 165 V 32 148 V 32 131 V ! 31 110 V ! 32 91 V 32 68 V 32 47 V 32 24 V ! 31 1 V 32 -22 V 32 -45 V 32 -67 V ! 31 -89 V 32 -109 V 32 -129 V 32 -147 V 32 -164 V ! 31 -179 V ! 32 -192 V 32 -204 V ! 32 -214 V ! 32 -221 V ! 31 -226 V 32 -229 V ! 32 -229 V ! 32 -228 V ! 32 -223 V ! 31 -218 V ! 32 -209 V 32 -198 V + % End plot #1 stroke LTb ! 630 4871 N ! 630 280 L ! 6359 0 V ! 0 4591 V ! -6359 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/plot.pdf and octave-3.0.4/doc/interpreter/plot.pdf differ Files octave-3.0.3/doc/interpreter/plot.png and octave-3.0.4/doc/interpreter/plot.png differ diff -cNr octave-3.0.3/doc/interpreter/plot.texi octave-3.0.4/doc/interpreter/plot.texi *** octave-3.0.3/doc/interpreter/plot.texi 2008-10-03 12:17:36.000000000 +0200 --- octave-3.0.4/doc/interpreter/plot.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 374,380 **** With one vector input argument, plot a histogram of the values with 10 bins. The range of the histogram bins is determined by the range ! of the data. Given a second scalar argument, use that as the number of bins. --- 374,381 ---- With one vector input argument, plot a histogram of the values with 10 bins. The range of the histogram bins is determined by the range ! of the data. With one matrix input argument, plot a hystogram where ! each bin contains a bar per input column. Given a second scalar argument, use that as the number of bins. *************** *** 574,580 **** @anchor{doc-contourc} @deftypefn {Function File} {[@var{c}, @var{lev}] =} contourc (@var{x}, @var{y}, @var{z}, @var{vn}) ! Compute isolines (countour lines) of the matrix @var{z}. Parameters @var{x}, @var{y} and @var{vn} are optional. The return value @var{lev} is a vector of the contour levels. --- 575,581 ---- @anchor{doc-contourc} @deftypefn {Function File} {[@var{c}, @var{lev}] =} contourc (@var{x}, @var{y}, @var{z}, @var{vn}) ! Compute isolines (contour lines) of the matrix @var{z}. Parameters @var{x}, @var{y} and @var{vn} are optional. The return value @var{lev} is a vector of the contour levels. *************** *** 812,818 **** @deftypefnx {Function File} {@var{h} =} pie (@dots{}); Produce a pie chart. ! Called with a single vector arrgument, produces a pie chart of the elements in @var{x}, with the size of the slice determined by percentage size of the values of @var{x}. --- 813,819 ---- @deftypefnx {Function File} {@var{h} =} pie (@dots{}); Produce a pie chart. ! Called with a single vector argument, produces a pie chart of the elements in @var{x}, with the size of the slice determined by percentage size of the values of @var{x}. *************** *** 907,918 **** @deftypefnx {Function File} {} area (@var{y}, @dots{}) @deftypefnx {Function File} {} area (@var{h}, @dots{}) @deftypefnx {Function File} {@var{h} =} area (@dots{}) ! Area plot of cummulative sum of the columns of @var{y}. This shows the contributions of a value to a sum, and is functionally similar to @code{plot (@var{x}, cumsum (@var{y}, 2))}, except that the area under the curve is shaded. ! If the @var{x} argument is ommitted it is assumed to be given by @code{1 : rows (@var{y})}. A value @var{lvl} can be defined that determines where the base level of the shading under the curve should be defined. --- 908,919 ---- @deftypefnx {Function File} {} area (@var{y}, @dots{}) @deftypefnx {Function File} {} area (@var{h}, @dots{}) @deftypefnx {Function File} {@var{h} =} area (@dots{}) ! Area plot of cumulative sum of the columns of @var{y}. This shows the contributions of a value to a sum, and is functionally similar to @code{plot (@var{x}, cumsum (@var{y}, 2))}, except that the area under the curve is shaded. ! If the @var{x} argument is omitted it is assumed to be given by @code{1 : rows (@var{y})}. A value @var{lvl} can be defined that determines where the base level of the shading under the curve should be defined. *************** *** 924,930 **** The axis function may be used to change the axis limits of an existing ! plot. @anchor{doc-axis} @deftypefn {Function File} {} axis (@var{limits}) --- 925,932 ---- The axis function may be used to change the axis limits of an existing ! plot and various other axis properties, such as the aspect ratio and the ! appearance of tic marks. @anchor{doc-axis} @deftypefn {Function File} {} axis (@var{limits}) *************** *** 1383,1388 **** --- 1385,1392 ---- @end deftypefn + See @ref{Text Properties} for the properties that you can set. + @anchor{doc-xlabel} @deftypefn {Function File} {} xlabel (@var{string}) @deftypefnx {Function File} {} ylabel (@var{string}) *************** *** 1408,1421 **** @anchor{doc-grid} @deftypefn {Function File} {} grid (@var{arg}) @deftypefnx {Function File} {} grid ("minor", @var{arg2}) Force the display of a grid on the plot. ! The argument may be either @code{"on"} or @code{"off"}. If it is ! omitted, the current grid state is toggled. If @var{arg} is @code{"minor"} then the minor grid is toggled. When using a minor grid a second argument @var{arg2} is allowed, which can be either @code{"on"} or @code{"off"} to explicitly set the state of the minor grid. @seealso{plot} @end deftypefn --- 1412,1429 ---- @anchor{doc-grid} @deftypefn {Function File} {} grid (@var{arg}) @deftypefnx {Function File} {} grid ("minor", @var{arg2}) + @deftypefnx {Function File} {} grid (@var{hax}, @dots{}) Force the display of a grid on the plot. ! The argument may be either @code{"on"}, or @code{"off"}. ! If it is omitted, the current grid state is toggled. If @var{arg} is @code{"minor"} then the minor grid is toggled. When using a minor grid a second argument @var{arg2} is allowed, which can be either @code{"on"} or @code{"off"} to explicitly set the state of the minor grid. + + If the first argument is an axis handle, @var{hax}, operate on the + specified axis object. @seealso{plot} @end deftypefn *************** *** 1750,1778 **** --- 1758,1802 ---- @table @asis @item root figure + @cindex root figure graphics object + @cindex graphics object, root figure The parent of all figure objects. The index for the root figure is defined to be 0. @item figure + @cindex figure graphics object + @cindex graphics object, figure A figure window. @item axes + @cindex axes graphics object + @cindex graphics object, axes An set of axes. This object is a child of a figure object and may be a parent of line, text, image, patch, or surface objects. @item line + @cindex line graphics object + @cindex graphics object, line A line in two or three dimensions. @item text + @cindex text graphics object + @cindex graphics object, text Text annotations. @item image + @cindex image graphics object + @cindex graphics object, image A bitmap image. @item patch + @cindex patch graphics object + @cindex graphics object, patch A filled polygon, currently limited to two dimensions. @item surface + @cindex surface graphics object + @cindex graphics object, surface A three-dimensional surface. @end table *************** *** 2070,2077 **** @anchor{doc-clf} @deftypefn {Function File} {} clf () ! Clear the current figure. ! @seealso{close, delete} @end deftypefn --- 2094,2108 ---- @anchor{doc-clf} @deftypefn {Function File} {} clf () ! @deftypefnx {Function File} {} clf ("reset") ! @deftypefnx {Function File} {} clf (@var{hfig}) ! @deftypefnx {Function File} {} clf (@var{hfig}, "reset") ! @deftypefnx {Function File} {@var{hfig} =} clf (@dots{}) ! Delete the children of the current figure with visible handles. ! If @var{hfig} is specified and is an figure object handle, operate on it ! instead of the current figure. If the optional argument @code{"reset"} ! is specified, also delete the figure's children with hidden handles. ! @seealso{cla, close, delete} @end deftypefn *************** *** 2139,2144 **** --- 2170,2176 ---- @node Figure Properties @subsubsection Figure Properties + @cindex figure properties @table @code @item nextplot *************** *** 2169,2182 **** @node Axes Properties @subsubsection Axes Properties @table @code @item position ! A four-element vector specifying the coordinates of the lower left ! corner and width and height of the plot, in normalized units. For ! example, @code{[0.2, 0.3, 0.4, 0.5]} sets the lower left corner of the ! axes at @math{(0.2, 0.3)} and the width and height to be 0.4 and 0.5 ! respectively. @item title Index of text object for the axes title. --- 2201,2217 ---- @node Axes Properties @subsubsection Axes Properties + @cindex axes properties @table @code @item position ! A vector specifying the position of the plot, excluding titles, axes and ! legend. The four elements of the vector are the coordinates of the ! lower left corner and width and height of the plot, in units normalized ! to the width and height of the plot window. For example, @code{[0.2, ! 0.3, 0.4, 0.5]} sets the lower left corner of the axes at @math{(0.2, ! 0.3)} and the width and height to be 0.4 and 0.5 respectively. See also ! the @code{outerposition} property. @item title Index of text object for the axes title. *************** *** 2295,2309 **** @end table @item outerposition ! A four-element vector specifying the coordinates of the lower left ! corner and width and height of the plot, in normalized units including ! the tics, labels etc. For example, @code{[0.2, 0.3, 0.4, 0.5]} sets the ! lower left corner of the axes at @math{(0.2, 0.3)} and the width and ! height to be 0.4 and 0.5 respectively. @end table @node Line Properties @subsubsection Line Properties @table @code @itemx xdata --- 2330,2347 ---- @end table @item outerposition ! A vector specifying the position of the plot, including titles, axes and ! legend. The four elements of the vector are the coordinates of the ! lower left corner and width and height of the plot, in units normalized ! to the width and height of the plot window. For example, @code{[0.2, ! 0.3, 0.4, 0.5]} sets the lower left corner of the axes at @math{(0.2, ! 0.3)} and the width and height to be 0.4 and 0.5 respectively. See also ! the @code{position} property. @end table @node Line Properties @subsubsection Line Properties + @cindex line properties @table @code @itemx xdata *************** *** 2314,2320 **** @itemx xldata @itemx xudata The data to be plotted. The @code{ldata} and @code{udata} elements are ! for errobars in the y direction, and the @code{xldata} and @code{xudata} elements are for errorbars in the x direction. @item color --- 2352,2358 ---- @itemx xldata @itemx xudata The data to be plotted. The @code{ldata} and @code{udata} elements are ! for errorbars in the y direction, and the @code{xldata} and @code{xudata} elements are for errorbars in the x direction. @item color *************** *** 2338,2343 **** --- 2376,2382 ---- @node Text Properties @subsubsection Text Properties + @cindex text properties @table @code @item string *************** *** 2390,2396 **** characters are also inserted with a code starting with the back-slash (\) character, as in the table @ref{tab:extended}. ! In addition, the formating of the text can be changed within the string with the codes @multitable @columnfractions .2 .2 .6 .2 --- 2429,2435 ---- characters are also inserted with a code starting with the back-slash (\) character, as in the table @ref{tab:extended}. ! In addition, the formatting of the text can be changed within the string with the codes @multitable @columnfractions .2 .2 .6 .2 *************** *** 2621,2626 **** --- 2660,2666 ---- @node Image Properties @subsubsection Image Properties + @cindex image properties @table @code @item cdata *************** *** 2638,2643 **** --- 2678,2684 ---- @node Patch Properties @subsubsection Patch Properties + @cindex patch properties @table @code @item cdata *************** *** 2668,2673 **** --- 2709,2715 ---- @node Surface Properties @subsubsection Surface Properties + @cindex surface properties @table @code @item xdata *************** *** 2684,2689 **** --- 2726,2733 ---- @node Managing Default Properties @subsection Managing Default Properties + @cindex default graphics properties + @cindex graphics properties, default Object properties have two classes of default values, @dfn{factory defaults} (the initial values) and @dfn{user-defined defaults}, which *************** *** 2770,2775 **** --- 2814,2821 ---- @node Colors @subsection Colors + @cindex graphics colors + @cindex colors, graphics Colors may be specified as RGB triplets with values ranging from zero to one, or by name. Recognized color names include @code{"blue"}, *************** *** 2778,2783 **** --- 2824,2832 ---- @node Line Styles @subsection Line Styles + @cindex line styles, graphics + @cindex graphics line styles + Line styles are specified by the following properties: @table @code *************** *** 2801,2806 **** --- 2850,2858 ---- @node Marker Styles @subsection Marker Styles + @cindex graphics marker styles + @cindex marker styles, graphics + Marker styles are specified by the following properties: @table @code @item marker diff -cNr octave-3.0.3/doc/interpreter/plot.txi octave-3.0.4/doc/interpreter/plot.txi *** octave-3.0.3/doc/interpreter/plot.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/plot.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 187,193 **** @DOCSTRING(area) The axis function may be used to change the axis limits of an existing ! plot. @DOCSTRING(axis) --- 187,194 ---- @DOCSTRING(area) The axis function may be used to change the axis limits of an existing ! plot and various other axis properties, such as the aspect ratio and the ! appearance of tic marks. @DOCSTRING(axis) *************** *** 296,301 **** --- 297,304 ---- @DOCSTRING(text) + See @ref{Text Properties} for the properties that you can set. + @DOCSTRING(xlabel) @DOCSTRING(box) *************** *** 401,429 **** --- 404,448 ---- @table @asis @item root figure + @cindex root figure graphics object + @cindex graphics object, root figure The parent of all figure objects. The index for the root figure is defined to be 0. @item figure + @cindex figure graphics object + @cindex graphics object, figure A figure window. @item axes + @cindex axes graphics object + @cindex graphics object, axes An set of axes. This object is a child of a figure object and may be a parent of line, text, image, patch, or surface objects. @item line + @cindex line graphics object + @cindex graphics object, line A line in two or three dimensions. @item text + @cindex text graphics object + @cindex graphics object, text Text annotations. @item image + @cindex image graphics object + @cindex graphics object, image A bitmap image. @item patch + @cindex patch graphics object + @cindex graphics object, patch A filled polygon, currently limited to two dimensions. @item surface + @cindex surface graphics object + @cindex graphics object, surface A three-dimensional surface. @end table *************** *** 597,602 **** --- 616,622 ---- @node Figure Properties @subsubsection Figure Properties + @cindex figure properties @table @code @item nextplot *************** *** 627,640 **** @node Axes Properties @subsubsection Axes Properties @table @code @item position ! A four-element vector specifying the coordinates of the lower left ! corner and width and height of the plot, in normalized units. For ! example, @code{[0.2, 0.3, 0.4, 0.5]} sets the lower left corner of the ! axes at @math{(0.2, 0.3)} and the width and height to be 0.4 and 0.5 ! respectively. @item title Index of text object for the axes title. --- 647,663 ---- @node Axes Properties @subsubsection Axes Properties + @cindex axes properties @table @code @item position ! A vector specifying the position of the plot, excluding titles, axes and ! legend. The four elements of the vector are the coordinates of the ! lower left corner and width and height of the plot, in units normalized ! to the width and height of the plot window. For example, @code{[0.2, ! 0.3, 0.4, 0.5]} sets the lower left corner of the axes at @math{(0.2, ! 0.3)} and the width and height to be 0.4 and 0.5 respectively. See also ! the @code{outerposition} property. @item title Index of text object for the axes title. *************** *** 753,767 **** @end table @item outerposition ! A four-element vector specifying the coordinates of the lower left ! corner and width and height of the plot, in normalized units including ! the tics, labels etc. For example, @code{[0.2, 0.3, 0.4, 0.5]} sets the ! lower left corner of the axes at @math{(0.2, 0.3)} and the width and ! height to be 0.4 and 0.5 respectively. @end table @node Line Properties @subsubsection Line Properties @table @code @itemx xdata --- 776,793 ---- @end table @item outerposition ! A vector specifying the position of the plot, including titles, axes and ! legend. The four elements of the vector are the coordinates of the ! lower left corner and width and height of the plot, in units normalized ! to the width and height of the plot window. For example, @code{[0.2, ! 0.3, 0.4, 0.5]} sets the lower left corner of the axes at @math{(0.2, ! 0.3)} and the width and height to be 0.4 and 0.5 respectively. See also ! the @code{position} property. @end table @node Line Properties @subsubsection Line Properties + @cindex line properties @table @code @itemx xdata *************** *** 772,778 **** @itemx xldata @itemx xudata The data to be plotted. The @code{ldata} and @code{udata} elements are ! for errobars in the y direction, and the @code{xldata} and @code{xudata} elements are for errorbars in the x direction. @item color --- 798,804 ---- @itemx xldata @itemx xudata The data to be plotted. The @code{ldata} and @code{udata} elements are ! for errorbars in the y direction, and the @code{xldata} and @code{xudata} elements are for errorbars in the x direction. @item color *************** *** 796,801 **** --- 822,828 ---- @node Text Properties @subsubsection Text Properties + @cindex text properties @table @code @item string *************** *** 848,854 **** characters are also inserted with a code starting with the back-slash (\) character, as in the table @ref{tab:extended}. ! In addition, the formating of the text can be changed within the string with the codes @multitable @columnfractions .2 .2 .6 .2 --- 875,881 ---- characters are also inserted with a code starting with the back-slash (\) character, as in the table @ref{tab:extended}. ! In addition, the formatting of the text can be changed within the string with the codes @multitable @columnfractions .2 .2 .6 .2 *************** *** 1079,1084 **** --- 1106,1112 ---- @node Image Properties @subsubsection Image Properties + @cindex image properties @table @code @item cdata *************** *** 1096,1101 **** --- 1124,1130 ---- @node Patch Properties @subsubsection Patch Properties + @cindex patch properties @table @code @item cdata *************** *** 1126,1131 **** --- 1155,1161 ---- @node Surface Properties @subsubsection Surface Properties + @cindex surface properties @table @code @item xdata *************** *** 1142,1147 **** --- 1172,1179 ---- @node Managing Default Properties @subsection Managing Default Properties + @cindex default graphics properties + @cindex graphics properties, default Object properties have two classes of default values, @dfn{factory defaults} (the initial values) and @dfn{user-defined defaults}, which *************** *** 1228,1233 **** --- 1260,1267 ---- @node Colors @subsection Colors + @cindex graphics colors + @cindex colors, graphics Colors may be specified as RGB triplets with values ranging from zero to one, or by name. Recognized color names include @code{"blue"}, *************** *** 1236,1241 **** --- 1270,1278 ---- @node Line Styles @subsection Line Styles + @cindex line styles, graphics + @cindex graphics line styles + Line styles are specified by the following properties: @table @code *************** *** 1259,1264 **** --- 1296,1304 ---- @node Marker Styles @subsection Marker Styles + @cindex graphics marker styles + @cindex marker styles, graphics + Marker styles are specified by the following properties: @table @code @item marker diff -cNr octave-3.0.3/doc/interpreter/polar.eps octave-3.0.4/doc/interpreter/polar.eps *** octave-3.0.3/doc/interpreter/polar.eps 2008-09-24 10:32:24.000000000 +0200 --- octave-3.0.4/doc/interpreter/polar.eps 2009-01-29 09:11:17.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: polar.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:24 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: polar.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:17 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (polar.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:24 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (polar.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:17 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,918 **** } ifelse 0.500 UL LTb ! 3600 273 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3516 273 M [ [(Helvetica) 140.0 0.0 true true 0 (-30)] ] -46.7 MRshow 0.500 UL LTb ! 3600 1022 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3516 1022 M [ [(Helvetica) 140.0 0.0 true true 0 (-20)] ] -46.7 MRshow 0.500 UL LTb ! 3600 1771 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3516 1771 M [ [(Helvetica) 140.0 0.0 true true 0 (-10)] ] -46.7 MRshow 0.500 UL LTb ! 3600 2520 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3516 2520 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 3600 3269 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3516 3269 M [ [(Helvetica) 140.0 0.0 true true 0 (10)] ] -46.7 MRshow 0.500 UL LTb ! 3600 4018 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3516 4018 M [ [(Helvetica) 140.0 0.0 true true 0 (20)] ] -46.7 MRshow 0.500 UL LTb ! 3600 4767 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3516 4767 M [ [(Helvetica) 140.0 0.0 true true 0 (30)] ] -46.7 MRshow 0.500 UL LTb ! 1353 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 1353 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (-30)] ] -46.7 MCshow 0.500 UL LTb ! 2102 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 2102 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (-20)] ] -46.7 MCshow 0.500 UL LTb ! 2851 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 2851 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (-10)] ] -46.7 MCshow 0.500 UL LTb ! 3600 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 3600 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4349 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 4349 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (10)] ] -46.7 MCshow 0.500 UL LTb ! 5098 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 5098 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (20)] ] -46.7 MCshow 0.500 UL LTb ! 5847 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 5847 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (30)] ] -46.7 MCshow 0.500 UL LTb 1.000 UL LTa ! 1248 2520 M ! 4704 0 V ! 3600 168 M ! 0 4704 V stroke 0.500 UL LTb ! 1248 4872 N ! 0 -4704 V ! 4704 0 V ! 0 4704 V ! -4704 0 V Z stroke 1.000 UP 0.500 UL LTb 0.500 UL LT0 ! 0.00 0.00 1.00 C 3600 2520 M ! 7 1 V ! 8 2 V ! 6 4 V ! 7 5 V 5 6 V ! 4 7 V ! 3 9 V ! 2 9 V 0 10 V ! -2 10 V -3 10 V ! -4 11 V ! -7 10 V ! -8 9 V -10 9 V ! -11 8 V ! -13 6 V ! -15 5 V ! -15 4 V ! -16 1 V ! -17 0 V ! -18 -3 V -18 -5 V -18 -7 V -17 -9 V -17 -12 V -16 -14 V -15 -16 V ! -13 -18 V ! -11 -20 V ! -10 -22 V ! -7 -24 V -5 -25 V ! -2 -26 V ! 0 -27 V ! 4 -27 V ! 7 -28 V ! 10 -27 V ! 13 -27 V ! 16 -26 V ! 19 -24 V ! 23 -23 V 25 -21 V ! 28 -19 V ! 30 -15 V ! 32 -13 V ! 35 -10 V ! 35 -6 V ! 37 -3 V ! 38 2 V ! 38 5 V ! 38 10 V 38 14 V ! 37 17 V 35 22 V ! 33 26 V ! 31 30 V ! 29 33 V ! 25 37 V ! 22 39 V ! 17 43 V ! 14 44 V ! 9 47 V ! 4 48 V -1 49 V ! -5 49 V ! -11 49 V ! -16 49 V -21 47 V ! -27 45 V ! -31 44 V ! -36 40 V ! -40 37 V ! -45 33 V ! -48 29 V ! -52 24 V -55 19 V ! -56 13 V ! -59 8 V -60 2 V ! -61 -5 V ! -60 -10 V -60 -17 V ! -59 -23 V ! -56 -30 V ! -54 -35 V ! -51 -41 V -47 -46 V -42 -52 V ! -37 -56 V ! -32 -60 V -26 -64 V ! -19 -67 V ! -13 -70 V ! -6 -70 V 2 -72 V ! 9 -72 V ! 16 -72 V ! 24 -70 V ! 30 -68 V ! 38 -66 V 45 -62 V ! 52 -57 V ! 57 -53 V ! 3226 1828 L 68 -41 V ! 73 -34 V 76 -27 V ! 79 -19 V ! 82 -11 V 83 -3 V ! 83 6 V ! 84 13 V 82 23 V ! 80 31 V ! 78 39 V 74 47 V 69 55 V 64 62 V ! 58 69 V ! 51 74 V ! 43 81 V ! 36 84 V 27 89 V ! 18 92 V 9 94 V ! 0 95 V -10 95 V ! -20 94 V -29 93 V -39 90 V -48 86 V ! -57 82 V -65 76 V -73 70 V ! -81 62 V ! -87 55 V ! -92 45 V ! -97 37 V ! -102 27 V ! -104 16 V ! -106 7 V -107 -5 V ! -106 -15 V ! -105 -27 V ! -103 -36 V ! -100 -48 V ! -94 -57 V -89 -67 V ! -83 -76 V ! -74 -85 V ! -67 -92 V -57 -99 V ! -47 -105 V ! -37 -110 V -26 -114 V ! -14 -117 V ! -2 -118 V ! 9 -118 V ! 21 -118 V ! 34 -116 V ! 44 -112 V 57 -108 V ! 67 -103 V 78 -96 V 87 -88 V ! 97 -79 V ! 104 -70 V 112 -59 V ! 118 -48 V ! 122 -36 V ! 127 -24 V ! 129 -12 V 130 2 V 130 15 V ! 128 28 V ! 126 41 V 122 54 V ! 116 66 V ! 110 77 V 102 89 V ! 94 99 V 83 109 V ! 72 117 V ! 61 124 V ! 48 131 V ! 35 135 V ! 21 139 V ! 8 141 V -7 142 V ! -21 142 V -35 139 V ! -50 135 V ! -62 131 V ! -77 124 V ! -88 117 V ! -101 108 V ! -111 98 V ! -121 86 V ! -130 75 V -137 61 V ! -143 47 V ! -148 34 V ! -152 18 V ! -153 3 V ! -154 -13 V -152 -28 V ! -149 -43 V -145 -58 V ! 2738 3836 L ! -131 -87 V ! 2484 3649 L ! 2371 3537 L ! 2269 3413 L ! -89 -133 V -76 -143 V -61 -150 V ! -46 -157 V -31 -161 V -14 -164 V 2 -165 V --- 543,930 ---- } ifelse 0.500 UL LTb ! 3558 273 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3474 273 M [ [(Helvetica) 140.0 0.0 true true 0 (-30)] ] -46.7 MRshow 0.500 UL LTb ! 3558 1022 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3474 1022 M [ [(Helvetica) 140.0 0.0 true true 0 (-20)] ] -46.7 MRshow 0.500 UL LTb ! 3558 1771 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3474 1771 M [ [(Helvetica) 140.0 0.0 true true 0 (-10)] ] -46.7 MRshow 0.500 UL LTb ! 3558 2520 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3474 2520 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 3558 3268 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3474 3268 M [ [(Helvetica) 140.0 0.0 true true 0 (10)] ] -46.7 MRshow 0.500 UL LTb ! 3558 4017 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3474 4017 M [ [(Helvetica) 140.0 0.0 true true 0 (20)] ] -46.7 MRshow 0.500 UL LTb ! 3558 4766 M -63 0 V 63 0 R 63 0 V stroke ! 0.00 0.00 0.00 C 3474 4766 M [ [(Helvetica) 140.0 0.0 true true 0 (30)] ] -46.7 MRshow 0.500 UL LTb ! 1311 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 1311 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (-30)] ] -46.7 MCshow 0.500 UL LTb ! 2060 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 2060 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (-20)] ] -46.7 MCshow 0.500 UL LTb ! 2809 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 2809 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (-10)] ] -46.7 MCshow 0.500 UL LTb ! 3558 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 3558 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 4306 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 4306 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (10)] ] -46.7 MCshow 0.500 UL LTb ! 5055 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 5055 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (20)] ] -46.7 MCshow 0.500 UL LTb ! 5804 2520 M 0 -63 V 0 63 R 0 63 V stroke ! 0.00 0.00 0.00 C 5804 2317 M [ [(Helvetica) 140.0 0.0 true true 0 (30)] ] -46.7 MCshow 0.500 UL LTb 1.000 UL LTa ! 1206 2520 M ! 4703 0 V ! 3558 168 M ! 0 4703 V stroke 0.500 UL LTb ! 1206 4871 N ! 0 -4703 V ! 4703 0 V ! 0 4703 V ! -4703 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 0.500 UL LT0 ! 0.00 0.00 1.00 C 3558 2520 M ! 7 0 V ! 7 2 V ! 7 4 V ! 6 5 V 5 6 V ! 5 8 V ! 3 8 V ! 1 9 V 0 10 V ! -1 11 V -3 10 V ! -5 10 V ! -6 10 V ! -9 10 V -10 9 V ! -11 7 V ! -13 7 V ! -14 5 V ! -16 3 V ! -16 2 V ! -17 -1 V ! -17 -2 V -18 -5 V -18 -7 V -17 -9 V -17 -12 V -16 -14 V -15 -16 V ! -13 -19 V ! -12 -20 V ! -9 -22 V ! -8 -23 V -5 -25 V ! -2 -27 V ! 1 -26 V ! 4 -28 V ! 7 -27 V ! 9 -28 V ! 13 -26 V ! 17 -26 V ! 19 -25 V ! 22 -23 V 25 -21 V ! 28 -18 V ! 30 -16 V ! 33 -13 V ! 34 -9 V ! 36 -7 V ! 37 -2 V ! 38 1 V ! 38 6 V ! 38 9 V 38 14 V ! 36 18 V 35 22 V ! 34 26 V ! 31 29 V ! 28 34 V ! 25 36 V ! 22 40 V ! 18 42 V ! 13 45 V ! 9 46 V ! 5 48 V -1 49 V ! -6 49 V ! -11 50 V ! -16 48 V -21 47 V ! -26 46 V ! -32 43 V ! -35 40 V ! -41 37 V ! -44 34 V ! -49 28 V ! -51 24 V -55 19 V ! -57 14 V ! -59 7 V -60 2 V ! -60 -4 V ! -61 -11 V -60 -17 V ! -58 -23 V ! -57 -29 V ! -54 -36 V ! -50 -41 V -47 -46 V -42 -52 V ! -38 -56 V ! -31 -60 V -26 -64 V ! -20 -67 V ! -12 -69 V ! -6 -71 V 2 -72 V ! 8 -72 V ! 17 -71 V ! 23 -71 V ! 31 -68 V ! 38 -65 V 45 -62 V ! 51 -58 V ! 58 -52 V ! stroke 3121 1875 M ! 63 -47 V 68 -41 V ! 72 -34 V 76 -27 V ! 80 -19 V ! 81 -11 V 83 -3 V ! 84 5 V ! 83 14 V 82 23 V ! 81 31 V ! 77 39 V 74 47 V 69 55 V 64 62 V ! 58 68 V ! 51 75 V ! 44 80 V ! 35 85 V 27 89 V ! 19 91 V 9 94 V ! -1 95 V -10 95 V ! -20 95 V -29 93 V -39 90 V -48 86 V ! -57 81 V -65 76 V -73 70 V ! -80 63 V ! -87 54 V ! -93 46 V ! -97 36 V ! -101 27 V ! -104 17 V ! -106 6 V -107 -5 V ! -107 -15 V ! -105 -26 V ! -103 -37 V ! -99 -47 V ! -95 -58 V -89 -67 V ! -82 -76 V ! -75 -85 V ! -66 -92 V -57 -99 V ! -48 -105 V ! -36 -110 V -26 -114 V ! -14 -116 V ! -3 -118 V ! 10 -119 V ! 21 -117 V ! 33 -116 V ! 45 -113 V 57 -108 V ! 67 -102 V 78 -96 V 87 -88 V ! 96 -79 V ! 105 -70 V 112 -59 V ! 117 -48 V ! 123 -37 V ! 126 -24 V ! 129 -11 V 130 2 V 130 15 V ! 129 28 V ! 125 41 V 122 54 V ! 117 65 V ! 110 78 V 102 89 V ! 93 99 V 83 109 V ! 73 117 V ! 60 124 V ! 48 130 V ! 35 136 V ! 22 139 V ! 7 141 V -7 142 V ! -21 141 V -35 139 V ! -49 136 V ! -63 130 V ! -76 125 V ! -89 116 V ! -100 108 V ! -112 98 V ! -121 87 V ! -129 74 V -137 61 V ! -144 48 V ! -148 33 V ! -151 18 V ! -154 3 V ! -153 -13 V -152 -28 V ! -150 -43 V ! stroke 2980 3966 M -145 -58 V ! -139 -73 V ! -132 -86 V ! 2441 3649 L ! 2328 3536 L ! 2227 3413 L ! -89 -134 V -76 -143 V -61 -150 V ! -46 -156 V -31 -161 V -14 -164 V 2 -165 V *************** *** 923,1021 **** 83 -147 V 98 -139 V 112 -129 V ! 125 -117 V ! 136 -105 V ! 147 -91 V 156 -76 V ! 163 -61 V 169 -44 V 174 -27 V ! 176 -9 V ! 177 8 V ! 176 26 V ! 174 43 V 169 61 V 162 78 V 155 94 V 145 109 V 134 124 V ! 121 138 V ! 107 149 V 93 160 V 76 169 V ! 59 177 V ! 41 182 V 23 186 V ! 4 189 V ! -14 188 V -34 187 V ! -52 184 V -71 178 V ! -88 170 V ! -106 162 V ! -122 151 V ! -136 138 V -150 125 V -163 109 V -173 93 V -183 75 V ! -190 57 V ! -195 38 V ! -199 18 V ! -200 -2 V -200 -22 V ! -198 -42 V ! -193 -62 V ! -186 -81 V ! -179 -99 V ! 2283 4094 L ! 2127 3960 L ! 1985 3811 L ! 1858 3647 L ! 1748 3471 L ! -93 -187 V ! -74 -196 V -54 -203 V ! -33 -208 V ! -13 -211 V ! 8 -213 V 30 -211 V ! 51 -207 V ! 72 -203 V ! 92 -194 V ! 111 -186 V 130 -174 V ! 2122 918 L ! 2285 772 L ! 2462 643 L ! 2652 532 L ! 200 -91 V 210 -72 V 216 -50 V 221 -29 V ! 224 -6 V 224 16 V ! 221 38 V ! 218 61 V 211 82 V ! 203 104 V ! 191 123 V ! 180 143 V ! 164 160 V 148 176 V 130 191 V 111 204 V 90 214 V 69 223 V ! 46 230 V 23 234 V stroke LTb ! 1248 4872 N ! 0 -4704 V ! 4704 0 V ! 0 4704 V ! -4704 0 V Z stroke 1.000 UP 0.500 UL --- 935,1034 ---- 83 -147 V 98 -139 V 112 -129 V ! 124 -117 V ! 137 -105 V ! 146 -91 V 156 -76 V ! 164 -61 V 169 -44 V 174 -27 V ! 176 -10 V ! 177 9 V ! 176 25 V ! 173 44 V 169 61 V 162 78 V 155 94 V 145 109 V 134 124 V ! 121 137 V ! 107 150 V 93 160 V 76 169 V ! 59 176 V ! 41 183 V 23 186 V ! 4 188 V ! -14 189 V -34 187 V ! -52 183 V -71 178 V ! -88 171 V ! -106 161 V ! -121 151 V ! -137 138 V -150 125 V -163 109 V -173 93 V -183 75 V ! -189 57 V ! -196 38 V ! -198 18 V ! -201 -2 V -200 -22 V ! -197 -42 V ! -193 -61 V ! -187 -81 V ! 2409 4211 L ! 2241 4094 L ! 2085 3960 L ! 1943 3810 L ! 1816 3646 L ! 1705 3470 L ! -92 -187 V ! -74 -195 V -54 -203 V ! -34 -209 V ! -12 -211 V ! 8 -212 V 30 -211 V ! 51 -208 V ! 72 -202 V ! 92 -195 V ! 111 -185 V 130 -174 V ! 2080 918 L ! 2243 772 L ! 2420 643 L ! 2609 532 L ! 201 -91 V 210 -72 V 216 -50 V 221 -29 V ! 223 -6 V 224 16 V ! 222 38 V ! 217 61 V 211 82 V ! 203 103 V ! 192 124 V ! 179 142 V ! 164 161 V 148 176 V 130 191 V 111 204 V 90 214 V 69 223 V ! 46 229 V 23 234 V + % End plot #1 stroke LTb ! 1206 4871 N ! 0 -4703 V ! 4703 0 V ! 0 4703 V ! -4703 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/polar.pdf and octave-3.0.4/doc/interpreter/polar.pdf differ Files octave-3.0.3/doc/interpreter/polar.png and octave-3.0.4/doc/interpreter/polar.png differ diff -cNr octave-3.0.3/doc/interpreter/poly.texi octave-3.0.4/doc/interpreter/poly.texi *** octave-3.0.3/doc/interpreter/poly.texi 2008-10-03 12:17:36.000000000 +0200 --- octave-3.0.4/doc/interpreter/poly.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 73,87 **** provides such an algorithm. @anchor{doc-polyval} ! @deftypefn {Function File} {} polyval (@var{c}, @var{x}) ! Evaluate a polynomial. ! ! @code{polyval (@var{c}, @var{x})} will evaluate the polynomial at the ! specified value of @var{x}. ! ! If @var{x} is a vector or matrix, the polynomial is evaluated at each of the elements of @var{x}. ! @seealso{polyvalm, poly, roots, conv, deconv, residue, filter, polyderiv, polyinteg} @end deftypefn --- 73,92 ---- provides such an algorithm. @anchor{doc-polyval} ! @deftypefn {Function File} {@var{y}=} polyval (@var{p}, @var{x}) ! @deftypefnx {Function File} {@var{y}=} polyval (@var{p}, @var{x}, [], @var{mu}) ! Evaluate the polynomial at of the specified values for @var{x}. When @var{mu} ! is present evaluate the polynomial for (@var{x}-@var{mu}(1))/@var{mu}(2). ! If @var{x} is a vector or matrix, the polynomial is evaluated for each of the elements of @var{x}. ! @deftypefnx {Function File} {[@var{y}, @var{dy}] =} polyval (@var{p}, @var{x}, @var{s}) ! @deftypefnx {Function File} {[@var{y}, @var{dy}] =} polyval (@var{p}, @var{x}, @var{s}, @var{mu}) ! In addition to evaluating the polynomial, the second output ! represents the prediction interval, @var{y} +/- @var{dy}, which ! contains at least 50% of the future predictions. To calculate the ! prediction interval, the structured variable @var{s}, originating ! form `polyfit', must be present. ! @seealso{polyfit, polyvalm, poly, roots, conv, deconv, residue, filter, polyderiv, polyinteg} @end deftypefn *************** *** 463,492 **** in a least-squares sense, which is what the @code{polyfit} function does. @anchor{doc-polyfit} ! @deftypefn {Function File} {[@var{p}, @var{s}] =} polyfit (@var{x}, @var{y}, @var{n}) Return the coefficients of a polynomial @var{p}(@var{x}) of degree ! @var{n} that minimizes ! @iftex ! @tex ! $$ ! \sum_{i=1}^N (p(x_i) - y_i)^2 ! $$ ! @end tex ! @end iftex ! @ifinfo ! @code{sumsq (p(x(i)) - y(i))}, ! @end ifinfo ! to best fit the data in the least squares sense. The polynomial coefficients are returned in a row vector. ! If two output arguments are requested, the second is a structure ! containing the following fields: ! @table @code @item R ! The Cholesky factor of the Vandermonde matrix used to compute the ! polynomial coefficients. @item X The Vandermonde matrix used to compute the polynomial coefficients. @item df --- 468,484 ---- in a least-squares sense, which is what the @code{polyfit} function does. @anchor{doc-polyfit} ! @deftypefn {Function File} {[@var{p}, @var{s}, @var{mu}] =} polyfit (@var{x}, @var{y}, @var{n}) Return the coefficients of a polynomial @var{p}(@var{x}) of degree ! @var{n} that minimizes the least-squares-error of the fit. The polynomial coefficients are returned in a row vector. ! The second output is a structure containing the following fields: ! @table @samp @item R ! Triangular factor R from the QR decomposition. @item X The Vandermonde matrix used to compute the polynomial coefficients. @item df *************** *** 496,501 **** --- 488,504 ---- @item yf The values of the polynomial for each value of @var{x}. @end table + + The second output may be used by @code{polyval} to calculate the + statistical error limits of the predicted values. + + When the third output, @var{mu}, is present the + coefficients, @var{p}, are associated with a polynomial in + @var{xhat} = (@var{x}-@var{mu}(1))/@var{mu}(2). + Where @var{mu}(1) = mean (@var{x}), and @var{mu}(2) = std (@var{x}). + This linear transformation of @var{x} improves the numerical + stability of the fit. + @seealso{polyval, polyconf, residue} @end deftypefn diff -cNr octave-3.0.3/doc/interpreter/set.texi octave-3.0.4/doc/interpreter/set.texi *** octave-3.0.3/doc/interpreter/set.texi 2008-10-03 12:17:36.000000000 +0200 --- octave-3.0.4/doc/interpreter/set.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 27,42 **** @anchor{doc-create_set} @deftypefn {Function File} {} create_set (@var{x}) Return a row vector containing the unique values in @var{x}, sorted in ascending order. For example, @example @group ! create_set ([ 1, 2; 3, 4; 4, 2 ]) @result{} [ 1, 2, 3, 4 ] @end group @end example ! @seealso{union, intersection, complement} @end deftypefn --- 27,54 ---- @anchor{doc-create_set} @deftypefn {Function File} {} create_set (@var{x}) + @deftypefnx{Function File} {} create_set (@var{x}, "rows") Return a row vector containing the unique values in @var{x}, sorted in ascending order. For example, @example @group ! create_set ([ 1, 2; 3, 4; 4, 2; 1, 2 ]) @result{} [ 1, 2, 3, 4 ] @end group @end example ! ! If the optional second input argument is the string "rows" each row of ! the matrix @var{x} will be considered an element of set. For example, ! @example ! @group ! create_set ([ 1, 2; 3, 4; 4, 2; 1, 2 ], "rows") ! @result{} 1 2 ! 3 4 ! 4 2 ! @end group ! @end example ! @seealso{union, intersection, complement, unique} @end deftypefn *************** *** 55,60 **** --- 67,76 ---- Return index vectors @var{i} and @var{j} such that @code{x(i)==y} and @code{y(j)==x}. + + Additionally, one of 'first' or 'last' can be given as an argument. + 'last' (default) specifies that the highest possible indices are returned + in @var{i}, while 'first' means the lowest. @seealso{union, intersect, setdiff, setxor, ismember} @end deftypefn *************** *** 129,144 **** @anchor{doc-union} ! @deftypefn {Function File} {} union (@var{x}, @var{y}) ! Return the set of elements that are in either of the sets @var{x} and ! @var{y}. For example, @example @group ! union ([ 1, 2, 4 ], [ 2, 3, 5 ]) ! @result{} [ 1, 2, 3, 4, 5 ] @end group @end example @seealso{create_set, intersection, complement} @end deftypefn --- 145,179 ---- @anchor{doc-union} ! @deftypefn {Function File} {} union (@var{a}, @var{b}) ! @deftypefnx{Function File} {} union (@var{a}, @var{b}, "rows") ! Return the set of elements that are in either of the sets @var{a} and ! @var{b}. For example, @example @group ! union ([1, 2, 4], [2, 3, 5]) ! @result{} [1, 2, 3, 4, 5] @end group @end example + + If the optional third input argument is the string "rows" each row of + the matrices @var{a} and @var{b} will be considered an element of sets. + For example, + @example + @group + union([1, 2; 2, 3], [1, 2; 3, 4], "rows") + @result{} 1 2 + 2 3 + 3 4 + @end group + @end example + + @deftypefnx {Function File} {[@var{c}, @var{ia}, @var{ib}] =} union (@var{a}, @var{b}) + + Return index vectors @var{ia} and @var{ib} such that @code{a==c(ia)} and + @code{b==c(ib)}. + @seealso{create_set, intersection, complement} @end deftypefn *************** *** 176,198 **** --- 211,242 ---- @anchor{doc-setdiff} @deftypefn {Function File} {} setdiff (@var{a}, @var{b}) @deftypefnx {Function File} {} setdiff (@var{a}, @var{b}, "rows") + @deftypefnx {Function File} {[@var{c}, @var{i}] = } setdiff (@var{a}, @var{b}) Return the elements in @var{a} that are not in @var{b}, sorted in ascending order. If @var{a} and @var{b} are both column vectors return a column vector, otherwise return a row vector. Given the optional third argument @samp{"rows"}, return the rows in @var{a} that are not in @var{b}, sorted in ascending order by rows. + + If requested, return @var{i} such that @code{c = a(i)}. @seealso{unique, union, intersect, setxor, ismember} @end deftypefn @anchor{doc-setxor} @deftypefn {Function File} {} setxor (@var{a}, @var{b}) + @deftypefnx {Function File} {} setxor (@var{a}, @var{b}, 'rows') Return the elements exclusive to @var{a} or @var{b}, sorted in ascending order. If @var{a} and @var{b} are both column vectors return a column vector, otherwise return a row vector. + @deftypefnx {Function File} {[@var{c}, @var{ia}, @var{ib}] =} setxor (@var{a}, @var{b}) + + Return index vectors @var{ia} and @var{ib} such that @code{a==c(ia)} and + @code{b==c(ib)}. + @seealso{unique, union, intersect, setdiff, ismember} @end deftypefn diff -cNr octave-3.0.3/doc/interpreter/signal.texi octave-3.0.4/doc/interpreter/signal.texi *** octave-3.0.3/doc/interpreter/signal.texi 2008-10-03 12:17:36.000000000 +0200 --- octave-3.0.4/doc/interpreter/signal.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 55,60 **** --- 55,72 ---- @end deftypefn + Octave uses the FFTW libraries to perform FFT computations. When Octave + starts up and initializes the FFTW libraries, they read a system wide + file (on a Unix system, it is typically @file{/etc/fftw/wisdom}) that + contains information useful to speed up FFT computations. This + information is called the @emph{wisdom}. The system-wide file allows + wisdom to be shared between all applications using the FFTW libraries. + + Use the @code{fftw} function to generate and save wisdom. Using the + utilities provided together with the FFTW libraries + (@command{fftw-wisdom} on Unix systems), you can even add wisdom + generated by Octave to the system-wide wisdom file. + @anchor{doc-fftw} @deftypefn {Loadable Function} {@var{method} =} fftw ('planner') @deftypefnx {Loadable Function} {} fftw ('planner', @var{method}) diff -cNr octave-3.0.3/doc/interpreter/signal.txi octave-3.0.4/doc/interpreter/signal.txi *** octave-3.0.3/doc/interpreter/signal.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/signal.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 23,28 **** --- 23,40 ---- @DOCSTRING(fft) + Octave uses the FFTW libraries to perform FFT computations. When Octave + starts up and initializes the FFTW libraries, they read a system wide + file (on a Unix system, it is typically @file{/etc/fftw/wisdom}) that + contains information useful to speed up FFT computations. This + information is called the @emph{wisdom}. The system-wide file allows + wisdom to be shared between all applications using the FFTW libraries. + + Use the @code{fftw} function to generate and save wisdom. Using the + utilities provided together with the FFTW libraries + (@command{fftw-wisdom} on Unix systems), you can even add wisdom + generated by Octave to the system-wide wisdom file. + @DOCSTRING(fftw) @DOCSTRING(ifft) diff -cNr octave-3.0.3/doc/interpreter/sparse.texi octave-3.0.4/doc/interpreter/sparse.texi *** octave-3.0.3/doc/interpreter/sparse.texi 2008-10-03 12:17:36.000000000 +0200 --- octave-3.0.4/doc/interpreter/sparse.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 282,288 **** Otherwise a matrix of @var{m} by @var{n} is created with the diagonals given by @var{v}. ! Negative values of @var{c} representive diagonals below the main diagonal, and positive values of @var{c} diagonals above the main diagonal. --- 282,288 ---- Otherwise a matrix of @var{m} by @var{n} is created with the diagonals given by @var{v}. ! Negative values of @var{c} represent diagonals below the main diagonal, and positive values of @var{c} diagonals above the main diagonal. diff -cNr octave-3.0.3/doc/interpreter/spchol.eps octave-3.0.4/doc/interpreter/spchol.eps *** octave-3.0.3/doc/interpreter/spchol.eps 2008-09-24 10:31:53.000000000 +0200 --- octave-3.0.4/doc/interpreter/spchol.eps 2009-01-29 09:11:07.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: spchol.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:31:53 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: spchol.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:07 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (spchol.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:31:53 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (spchol.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:07 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,10860 **** } ifelse 0.500 UL LTb ! 490 4872 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 4872 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 490 3730 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3730 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MRshow 0.500 UL LTb ! 490 2587 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2587 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MRshow 0.500 UL LTb ! 490 1445 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 1445 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MRshow 0.500 UL LTb ! 490 303 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 303 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MRshow 0.500 UL LTb ! 490 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 490 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 2100 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2100 140 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MCshow 0.500 UL LTb ! 3710 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3710 140 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MCshow 0.500 UL LTb ! 5320 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5320 140 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MCshow 0.500 UL LTb ! 6930 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6930 140 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL LTb 1.000 UP 0.500 UL LT0 ! 0.00 0.00 1.00 C 522 4849 Star ! 554 4849 Star ! 554 4826 Star ! 587 4826 Star ! 587 4803 Star ! 619 4826 Star ! 619 4803 Star ! 619 4781 Star ! 651 4803 Star ! 651 4781 Star ! 651 4758 Star ! 683 4803 Star ! 683 4781 Star ! 683 4758 Star ! 683 4735 Star ! 715 4781 Star ! 715 4758 Star ! 715 4735 Star ! 715 4712 Star ! 748 4781 Star ! 748 4758 Star ! 748 4735 Star ! 748 4712 Star ! 748 4689 Star ! 780 4758 Star ! 780 4735 Star ! 780 4712 Star ! 780 4689 Star ! 780 4666 Star ! 812 4758 Star ! 812 4735 Star ! 812 4712 Star ! 812 4689 Star ! 812 4666 Star ! 812 4644 Star ! 844 4735 Star ! 844 4712 Star ! 844 4689 Star ! 844 4666 Star ! 844 4644 Star ! 844 4621 Star ! 876 4735 Star ! 876 4712 Star ! 876 4689 Star ! 876 4666 Star ! 876 4644 Star ! 876 4621 Star ! 876 4598 Star ! 909 4712 Star ! 909 4689 Star ! 909 4666 Star ! 909 4644 Star ! 909 4621 Star ! 909 4598 Star ! 909 4575 Star ! 941 4712 Star ! 941 4689 Star ! 941 4666 Star ! 941 4644 Star ! 941 4621 Star ! 941 4598 Star ! 941 4575 Star ! 941 4552 Star ! 973 4689 Star ! 973 4666 Star ! 973 4644 Star ! 973 4621 Star ! 973 4598 Star ! 973 4575 Star ! 973 4552 Star ! 973 4529 Star ! 1005 4689 Star ! 1005 4666 Star ! 1005 4644 Star ! 1005 4621 Star ! 1005 4598 Star ! 1005 4575 Star ! 1005 4552 Star ! 1005 4529 Star ! 1005 4506 Star ! 1037 4666 Star ! 1037 4644 Star ! 1037 4621 Star ! 1037 4598 Star ! 1037 4575 Star ! 1037 4552 Star ! 1037 4529 Star ! 1037 4506 Star ! 1037 4484 Star ! 1070 4666 Star ! 1070 4644 Star ! 1070 4621 Star ! 1070 4598 Star ! 1070 4575 Star ! 1070 4552 Star ! 1070 4529 Star ! 1070 4506 Star ! 1070 4484 Star ! 1070 4461 Star ! 1102 4644 Star ! 1102 4621 Star ! 1102 4598 Star ! 1102 4575 Star ! 1102 4552 Star ! 1102 4529 Star ! 1102 4506 Star ! 1102 4484 Star ! 1102 4461 Star ! 1102 4438 Star ! 1134 4644 Star ! 1134 4621 Star ! 1134 4598 Star ! 1134 4575 Star ! 1134 4552 Star ! 1134 4529 Star ! 1134 4506 Star ! 1134 4484 Star ! 1134 4461 Star ! 1134 4438 Star ! 1134 4415 Star ! 1166 4621 Star ! 1166 4598 Star ! 1166 4575 Star ! 1166 4552 Star ! 1166 4529 Star ! 1166 4506 Star ! 1166 4484 Star ! 1166 4461 Star ! 1166 4438 Star ! 1166 4415 Star ! 1166 4392 Star ! 1198 4621 Star ! 1198 4598 Star ! 1198 4575 Star ! 1198 4552 Star ! 1198 4529 Star ! 1198 4506 Star ! 1198 4484 Star ! 1198 4461 Star ! 1198 4438 Star ! 1198 4415 Star ! 1198 4392 Star ! 1198 4369 Star ! 1231 4598 Star ! 1231 4575 Star ! 1231 4552 Star ! 1231 4529 Star ! 1231 4506 Star ! 1231 4484 Star ! 1231 4461 Star ! 1231 4438 Star ! 1231 4415 Star ! 1231 4392 Star ! 1231 4369 Star ! 1231 4347 Star ! 1263 4598 Star ! 1263 4575 Star ! 1263 4552 Star ! 1263 4529 Star ! 1263 4506 Star ! 1263 4484 Star ! 1263 4461 Star ! 1263 4438 Star ! 1263 4415 Star ! 1263 4392 Star ! 1263 4369 Star ! 1263 4347 Star ! 1263 4324 Star ! 1295 4575 Star ! 1295 4552 Star ! 1295 4529 Star ! 1295 4506 Star ! 1295 4484 Star ! 1295 4461 Star ! 1295 4438 Star ! 1295 4415 Star ! 1295 4392 Star ! 1295 4369 Star ! 1295 4347 Star ! 1295 4324 Star ! 1295 4301 Star ! 1327 4575 Star ! 1327 4552 Star ! 1327 4529 Star ! 1327 4506 Star ! 1327 4484 Star ! 1327 4461 Star ! 1327 4438 Star ! 1327 4415 Star ! 1327 4392 Star ! 1327 4369 Star ! 1327 4347 Star ! 1327 4324 Star ! 1327 4301 Star ! 1327 4278 Star ! 1359 4552 Star ! 1359 4529 Star ! 1359 4506 Star ! 1359 4484 Star ! 1359 4461 Star ! 1359 4438 Star ! 1359 4415 Star ! 1359 4392 Star ! 1359 4369 Star ! 1359 4347 Star ! 1359 4324 Star ! 1359 4301 Star ! 1359 4278 Star ! 1359 4255 Star ! 1392 4552 Star ! 1392 4529 Star ! 1392 4506 Star ! 1392 4484 Star ! 1392 4461 Star ! 1392 4438 Star ! 1392 4415 Star ! 1392 4392 Star ! 1392 4369 Star ! 1392 4347 Star ! 1392 4324 Star ! 1392 4301 Star ! 1392 4278 Star ! 1392 4255 Star ! 1392 4232 Star ! 1424 4529 Star ! 1424 4506 Star ! 1424 4484 Star ! 1424 4461 Star ! 1424 4438 Star ! 1424 4415 Star ! 1424 4392 Star ! 1424 4369 Star ! 1424 4347 Star ! 1424 4324 Star ! 1424 4301 Star ! 1424 4278 Star ! 1424 4255 Star ! 1424 4232 Star ! 1424 4209 Star ! 1456 4529 Star ! 1456 4506 Star ! 1456 4484 Star ! 1456 4461 Star ! 1456 4438 Star ! 1456 4415 Star ! 1456 4392 Star ! 1456 4369 Star ! 1456 4347 Star ! 1456 4324 Star ! 1456 4301 Star ! 1456 4278 Star ! 1456 4255 Star ! 1456 4232 Star ! 1456 4209 Star ! 1456 4187 Star ! 1488 4506 Star ! 1488 4484 Star ! 1488 4461 Star ! 1488 4438 Star ! 1488 4415 Star ! 1488 4392 Star ! 1488 4369 Star ! 1488 4347 Star ! 1488 4324 Star ! 1488 4301 Star ! 1488 4278 Star ! 1488 4255 Star ! 1488 4232 Star ! 1488 4209 Star ! 1488 4187 Star ! 1488 4164 Star ! 1520 4506 Star ! 1520 4484 Star ! 1520 4461 Star ! 1520 4438 Star ! 1520 4415 Star ! 1520 4392 Star ! 1520 4369 Star ! 1520 4347 Star ! 1520 4324 Star ! 1520 4301 Star ! 1520 4278 Star ! 1520 4255 Star ! 1520 4232 Star ! 1520 4209 Star ! 1520 4187 Star ! 1520 4164 Star ! 1520 4141 Star ! 1553 4484 Star ! 1553 4461 Star ! 1553 4438 Star ! 1553 4415 Star ! 1553 4392 Star ! 1553 4369 Star ! 1553 4347 Star ! 1553 4324 Star ! 1553 4301 Star ! 1553 4278 Star ! 1553 4255 Star ! 1553 4232 Star ! 1553 4209 Star ! 1553 4187 Star ! 1553 4164 Star ! 1553 4141 Star ! 1553 4118 Star ! 1585 4484 Star ! 1585 4461 Star ! 1585 4438 Star ! 1585 4415 Star ! 1585 4392 Star ! 1585 4369 Star ! 1585 4347 Star ! 1585 4324 Star ! 1585 4301 Star ! 1585 4278 Star ! 1585 4255 Star ! 1585 4232 Star ! 1585 4209 Star ! 1585 4187 Star ! 1585 4164 Star ! 1585 4141 Star ! 1585 4118 Star ! 1585 4095 Star ! 1617 4461 Star ! 1617 4438 Star ! 1617 4415 Star ! 1617 4392 Star ! 1617 4369 Star ! 1617 4347 Star ! 1617 4324 Star ! 1617 4301 Star ! 1617 4278 Star ! 1617 4255 Star ! 1617 4232 Star ! 1617 4209 Star ! 1617 4187 Star ! 1617 4164 Star ! 1617 4141 Star ! 1617 4118 Star ! 1617 4095 Star ! 1617 4072 Star ! 1649 4461 Star ! 1649 4438 Star ! 1649 4415 Star ! 1649 4392 Star ! 1649 4369 Star ! 1649 4347 Star ! 1649 4324 Star ! 1649 4301 Star ! 1649 4278 Star ! 1649 4255 Star ! 1649 4232 Star ! 1649 4209 Star ! 1649 4187 Star ! 1649 4164 Star ! 1649 4141 Star ! 1649 4118 Star ! 1649 4095 Star ! 1649 4072 Star ! 1649 4050 Star ! 1681 4438 Star ! 1681 4415 Star ! 1681 4392 Star ! 1681 4369 Star ! 1681 4347 Star ! 1681 4324 Star ! 1681 4301 Star ! 1681 4278 Star ! 1681 4255 Star ! 1681 4232 Star ! 1681 4209 Star ! 1681 4187 Star ! 1681 4164 Star ! 1681 4141 Star ! 1681 4118 Star ! 1681 4095 Star ! 1681 4072 Star ! 1681 4050 Star ! 1681 4027 Star ! 1714 4438 Star ! 1714 4415 Star ! 1714 4392 Star ! 1714 4369 Star ! 1714 4347 Star ! 1714 4324 Star ! 1714 4301 Star ! 1714 4278 Star ! 1714 4255 Star ! 1714 4232 Star ! 1714 4209 Star ! 1714 4187 Star ! 1714 4164 Star ! 1714 4141 Star ! 1714 4118 Star ! 1714 4095 Star ! 1714 4072 Star ! 1714 4050 Star ! 1714 4027 Star ! 1714 4004 Star ! 1746 4415 Star ! 1746 4392 Star ! 1746 4369 Star ! 1746 4347 Star ! 1746 4324 Star ! 1746 4301 Star ! 1746 4278 Star ! 1746 4255 Star ! 1746 4232 Star ! 1746 4209 Star ! 1746 4187 Star ! 1746 4164 Star ! 1746 4141 Star ! 1746 4118 Star ! 1746 4095 Star ! 1746 4072 Star ! 1746 4050 Star ! 1746 4027 Star ! 1746 4004 Star ! 1746 3981 Star ! 1778 4415 Star ! 1778 4392 Star ! 1778 4369 Star ! 1778 4347 Star ! 1778 4324 Star ! 1778 4301 Star ! 1778 4278 Star ! 1778 4255 Star ! 1778 4232 Star ! 1778 4209 Star ! 1778 4187 Star ! 1778 4164 Star ! 1778 4141 Star ! 1778 4118 Star ! 1778 4095 Star ! 1778 4072 Star ! 1778 4050 Star ! 1778 4027 Star ! 1778 4004 Star ! 1778 3981 Star ! 1778 3958 Star ! 1810 4392 Star ! 1810 4369 Star ! 1810 4347 Star ! 1810 4324 Star ! 1810 4301 Star ! 1810 4278 Star ! 1810 4255 Star ! 1810 4232 Star ! 1810 4209 Star ! 1810 4187 Star ! 1810 4164 Star ! 1810 4141 Star ! 1810 4118 Star ! 1810 4095 Star ! 1810 4072 Star ! 1810 4050 Star ! 1810 4027 Star ! 1810 4004 Star ! 1810 3981 Star ! 1810 3958 Star ! 1810 3935 Star ! 1842 4392 Star ! 1842 4369 Star ! 1842 4347 Star ! 1842 4324 Star ! 1842 4301 Star ! 1842 4278 Star ! 1842 4255 Star ! 1842 4232 Star ! 1842 4209 Star ! 1842 4187 Star ! 1842 4164 Star ! 1842 4141 Star ! 1842 4118 Star ! 1842 4095 Star ! 1842 4072 Star ! 1842 4050 Star ! 1842 4027 Star ! 1842 4004 Star ! 1842 3981 Star ! 1842 3958 Star ! 1842 3935 Star ! 1842 3912 Star ! 1875 4369 Star ! 1875 4347 Star ! 1875 4324 Star ! 1875 4301 Star ! 1875 4278 Star ! 1875 4255 Star ! 1875 4232 Star ! 1875 4209 Star ! 1875 4187 Star ! 1875 4164 Star ! 1875 4141 Star ! 1875 4118 Star ! 1875 4095 Star ! 1875 4072 Star ! 1875 4050 Star ! 1875 4027 Star ! 1875 4004 Star ! 1875 3981 Star ! 1875 3958 Star ! 1875 3935 Star ! 1875 3912 Star ! 1875 3890 Star ! 1907 4369 Star ! 1907 4347 Star ! 1907 4324 Star ! 1907 4301 Star ! 1907 4278 Star ! 1907 4255 Star ! 1907 4232 Star ! 1907 4209 Star ! 1907 4187 Star ! 1907 4164 Star ! 1907 4141 Star ! 1907 4118 Star ! 1907 4095 Star ! 1907 4072 Star ! 1907 4050 Star ! 1907 4027 Star ! 1907 4004 Star ! 1907 3981 Star ! 1907 3958 Star ! 1907 3935 Star ! 1907 3912 Star ! 1907 3890 Star ! 1907 3867 Star ! 1939 4347 Star ! 1939 4324 Star ! 1939 4301 Star ! 1939 4278 Star ! 1939 4255 Star ! 1939 4232 Star ! 1939 4209 Star ! 1939 4187 Star ! 1939 4164 Star ! 1939 4141 Star ! 1939 4118 Star ! 1939 4095 Star ! 1939 4072 Star ! 1939 4050 Star ! 1939 4027 Star ! 1939 4004 Star ! 1939 3981 Star ! 1939 3958 Star ! 1939 3935 Star ! 1939 3912 Star ! 1939 3890 Star ! 1939 3867 Star ! 1939 3844 Star ! 1971 4347 Star ! 1971 4324 Star ! 1971 4301 Star ! 1971 4278 Star ! 1971 4255 Star ! 1971 4232 Star ! 1971 4209 Star ! 1971 4187 Star ! 1971 4164 Star ! 1971 4141 Star ! 1971 4118 Star ! 1971 4095 Star ! 1971 4072 Star ! 1971 4050 Star ! 1971 4027 Star ! 1971 4004 Star ! 1971 3981 Star ! 1971 3958 Star ! 1971 3935 Star ! 1971 3912 Star ! 1971 3890 Star ! 1971 3867 Star ! 1971 3844 Star ! 1971 3821 Star ! 2003 4324 Star ! 2003 4301 Star ! 2003 4278 Star ! 2003 4255 Star ! 2003 4232 Star ! 2003 4209 Star ! 2003 4187 Star ! 2003 4164 Star ! 2003 4141 Star ! 2003 4118 Star ! 2003 4095 Star ! 2003 4072 Star ! 2003 4050 Star ! 2003 4027 Star ! 2003 4004 Star ! 2003 3981 Star ! 2003 3958 Star ! 2003 3935 Star ! 2003 3912 Star ! 2003 3890 Star ! 2003 3867 Star ! 2003 3844 Star ! 2003 3821 Star ! 2003 3798 Star ! 2036 4324 Star ! 2036 4301 Star ! 2036 4278 Star ! 2036 4255 Star ! 2036 4232 Star ! 2036 4209 Star ! 2036 4187 Star ! 2036 4164 Star ! 2036 4141 Star ! 2036 4118 Star ! 2036 4095 Star ! 2036 4072 Star ! 2036 4050 Star ! 2036 4027 Star ! 2036 4004 Star ! 2036 3981 Star ! 2036 3958 Star ! 2036 3935 Star ! 2036 3912 Star ! 2036 3890 Star ! 2036 3867 Star ! 2036 3844 Star ! 2036 3821 Star ! 2036 3798 Star ! 2036 3775 Star ! 2068 4301 Star ! 2068 4278 Star ! 2068 4255 Star ! 2068 4232 Star ! 2068 4209 Star ! 2068 4187 Star ! 2068 4164 Star ! 2068 4141 Star ! 2068 4118 Star ! 2068 4095 Star ! 2068 4072 Star ! 2068 4050 Star ! 2068 4027 Star ! 2068 4004 Star ! 2068 3981 Star ! 2068 3958 Star ! 2068 3935 Star ! 2068 3912 Star ! 2068 3890 Star ! 2068 3867 Star ! 2068 3844 Star ! 2068 3821 Star ! 2068 3798 Star ! 2068 3775 Star ! 2068 3753 Star ! 2100 4301 Star ! 2100 4278 Star ! 2100 4255 Star ! 2100 4232 Star ! 2100 4209 Star ! 2100 4187 Star ! 2100 4164 Star ! 2100 4141 Star ! 2100 4118 Star ! 2100 4095 Star ! 2100 4072 Star ! 2100 4050 Star ! 2100 4027 Star ! 2100 4004 Star ! 2100 3981 Star ! 2100 3958 Star ! 2100 3935 Star ! 2100 3912 Star ! 2100 3890 Star ! 2100 3867 Star ! 2100 3844 Star ! 2100 3821 Star ! 2100 3798 Star ! 2100 3775 Star ! 2100 3753 Star ! 2100 3730 Star ! 2132 4278 Star ! 2132 4255 Star ! 2132 4232 Star ! 2132 4209 Star ! 2132 4187 Star ! 2132 4164 Star ! 2132 4141 Star ! 2132 4118 Star ! 2132 4095 Star ! 2132 4072 Star ! 2132 4050 Star ! 2132 4027 Star ! 2132 4004 Star ! 2132 3981 Star ! 2132 3958 Star ! 2132 3935 Star ! 2132 3912 Star ! 2132 3890 Star ! 2132 3867 Star ! 2132 3844 Star ! 2132 3821 Star ! 2132 3798 Star ! 2132 3775 Star ! 2132 3753 Star ! 2132 3730 Star ! 2132 3707 Star ! 2164 4278 Star ! 2164 4255 Star ! 2164 4232 Star ! 2164 4209 Star ! 2164 4187 Star ! 2164 4164 Star ! 2164 4141 Star ! 2164 4118 Star ! 2164 4095 Star ! 2164 4072 Star ! 2164 4050 Star ! 2164 4027 Star ! 2164 4004 Star ! 2164 3981 Star ! 2164 3958 Star ! 2164 3935 Star ! 2164 3912 Star ! 2164 3890 Star ! 2164 3867 Star ! 2164 3844 Star ! 2164 3821 Star ! 2164 3798 Star ! 2164 3775 Star ! 2164 3753 Star ! 2164 3730 Star ! 2164 3707 Star ! 2164 3684 Star ! 2197 4255 Star ! 2197 4232 Star ! 2197 4209 Star ! 2197 4187 Star ! 2197 4164 Star ! 2197 4141 Star ! 2197 4118 Star ! 2197 4095 Star ! 2197 4072 Star ! 2197 4050 Star ! 2197 4027 Star ! 2197 4004 Star ! 2197 3981 Star ! 2197 3958 Star ! 2197 3935 Star ! 2197 3912 Star ! 2197 3890 Star ! 2197 3867 Star ! 2197 3844 Star ! 2197 3821 Star ! 2197 3798 Star ! 2197 3775 Star ! 2197 3753 Star ! 2197 3730 Star ! 2197 3707 Star ! 2197 3684 Star ! 2197 3661 Star ! 2229 4255 Star ! 2229 4232 Star ! 2229 4209 Star ! 2229 4187 Star ! 2229 4164 Star ! 2229 4141 Star ! 2229 4118 Star ! 2229 4095 Star ! 2229 4072 Star ! 2229 4050 Star ! 2229 4027 Star ! 2229 4004 Star ! 2229 3981 Star ! 2229 3958 Star ! 2229 3935 Star ! 2229 3912 Star ! 2229 3890 Star ! 2229 3867 Star ! 2229 3844 Star ! 2229 3821 Star ! 2229 3798 Star ! 2229 3775 Star ! 2229 3753 Star ! 2229 3730 Star ! 2229 3707 Star ! 2229 3684 Star ! 2229 3661 Star ! 2229 3638 Star ! 2261 4232 Star ! 2261 4209 Star ! 2261 4187 Star ! 2261 4164 Star ! 2261 4141 Star ! 2261 4118 Star ! 2261 4095 Star ! 2261 4072 Star ! 2261 4050 Star ! 2261 4027 Star ! 2261 4004 Star ! 2261 3981 Star ! 2261 3958 Star ! 2261 3935 Star ! 2261 3912 Star ! 2261 3890 Star ! 2261 3867 Star ! 2261 3844 Star ! 2261 3821 Star ! 2261 3798 Star ! 2261 3775 Star ! 2261 3753 Star ! 2261 3730 Star ! 2261 3707 Star ! 2261 3684 Star ! 2261 3661 Star ! 2261 3638 Star ! 2261 3615 Star ! 2293 4232 Star ! 2293 4209 Star ! 2293 4187 Star ! 2293 4164 Star ! 2293 4141 Star ! 2293 4118 Star ! 2293 4095 Star ! 2293 4072 Star ! 2293 4050 Star ! 2293 4027 Star ! 2293 4004 Star ! 2293 3981 Star ! 2293 3958 Star ! 2293 3935 Star ! 2293 3912 Star ! 2293 3890 Star ! 2293 3867 Star ! 2293 3844 Star ! 2293 3821 Star ! 2293 3798 Star ! 2293 3775 Star ! 2293 3753 Star ! 2293 3730 Star ! 2293 3707 Star ! 2293 3684 Star ! 2293 3661 Star ! 2293 3638 Star ! 2293 3615 Star ! 2293 3593 Star ! 2325 4209 Star ! 2325 4187 Star ! 2325 4164 Star ! 2325 4141 Star ! 2325 4118 Star ! 2325 4095 Star ! 2325 4072 Star ! 2325 4050 Star ! 2325 4027 Star ! 2325 4004 Star ! 2325 3981 Star ! 2325 3958 Star ! 2325 3935 Star ! 2325 3912 Star ! 2325 3890 Star ! 2325 3867 Star ! 2325 3844 Star ! 2325 3821 Star ! 2325 3798 Star ! 2325 3775 Star ! 2325 3753 Star ! 2325 3730 Star ! 2325 3707 Star ! 2325 3684 Star ! 2325 3661 Star ! 2325 3638 Star ! 2325 3615 Star ! 2325 3593 Star ! 2325 3570 Star ! 2358 4209 Star ! 2358 4187 Star ! 2358 4164 Star ! 2358 4141 Star ! 2358 4118 Star ! 2358 4095 Star ! 2358 4072 Star ! 2358 4050 Star ! 2358 4027 Star ! 2358 4004 Star ! 2358 3981 Star ! 2358 3958 Star ! 2358 3935 Star ! 2358 3912 Star ! 2358 3890 Star ! 2358 3867 Star ! 2358 3844 Star ! 2358 3821 Star ! 2358 3798 Star ! 2358 3775 Star ! 2358 3753 Star ! 2358 3730 Star ! 2358 3707 Star ! 2358 3684 Star ! 2358 3661 Star ! 2358 3638 Star ! 2358 3615 Star ! 2358 3593 Star ! 2358 3570 Star ! 2358 3547 Star ! 2390 4187 Star ! 2390 4164 Star ! 2390 4141 Star ! 2390 4118 Star ! 2390 4095 Star ! 2390 4072 Star ! 2390 4050 Star ! 2390 4027 Star ! 2390 4004 Star ! 2390 3981 Star ! 2390 3958 Star ! 2390 3935 Star ! 2390 3912 Star ! 2390 3890 Star ! 2390 3867 Star ! 2390 3844 Star ! 2390 3821 Star ! 2390 3798 Star ! 2390 3775 Star ! 2390 3753 Star ! 2390 3730 Star ! 2390 3707 Star ! 2390 3684 Star ! 2390 3661 Star ! 2390 3638 Star ! 2390 3615 Star ! 2390 3593 Star ! 2390 3570 Star ! 2390 3547 Star ! 2390 3524 Star ! 2422 4187 Star ! 2422 4164 Star ! 2422 4141 Star ! 2422 4118 Star ! 2422 4095 Star ! 2422 4072 Star ! 2422 4050 Star ! 2422 4027 Star ! 2422 4004 Star ! 2422 3981 Star ! 2422 3958 Star ! 2422 3935 Star ! 2422 3912 Star ! 2422 3890 Star ! 2422 3867 Star ! 2422 3844 Star ! 2422 3821 Star ! 2422 3798 Star ! 2422 3775 Star ! 2422 3753 Star ! 2422 3730 Star ! 2422 3707 Star ! 2422 3684 Star ! 2422 3661 Star ! 2422 3638 Star ! 2422 3615 Star ! 2422 3593 Star ! 2422 3570 Star ! 2422 3547 Star ! 2422 3524 Star ! 2422 3501 Star ! 2454 4164 Star ! 2454 4141 Star ! 2454 4118 Star ! 2454 4095 Star ! 2454 4072 Star ! 2454 4050 Star ! 2454 4027 Star ! 2454 4004 Star ! 2454 3981 Star ! 2454 3958 Star ! 2454 3935 Star ! 2454 3912 Star ! 2454 3890 Star ! 2454 3867 Star ! 2454 3844 Star ! 2454 3821 Star ! 2454 3798 Star ! 2454 3775 Star ! 2454 3753 Star ! 2454 3730 Star ! 2454 3707 Star ! 2454 3684 Star ! 2454 3661 Star ! 2454 3638 Star ! 2454 3615 Star ! 2454 3593 Star ! 2454 3570 Star ! 2454 3547 Star ! 2454 3524 Star ! 2454 3501 Star ! 2454 3478 Star ! 2486 4164 Star ! 2486 4141 Star ! 2486 4118 Star ! 2486 4095 Star ! 2486 4072 Star ! 2486 4050 Star ! 2486 4027 Star ! 2486 4004 Star ! 2486 3981 Star ! 2486 3958 Star ! 2486 3935 Star ! 2486 3912 Star ! 2486 3890 Star ! 2486 3867 Star ! 2486 3844 Star ! 2486 3821 Star ! 2486 3798 Star ! 2486 3775 Star ! 2486 3753 Star ! 2486 3730 Star ! 2486 3707 Star ! 2486 3684 Star ! 2486 3661 Star ! 2486 3638 Star ! 2486 3615 Star ! 2486 3593 Star ! 2486 3570 Star ! 2486 3547 Star ! 2486 3524 Star ! 2486 3501 Star ! 2486 3478 Star ! 2486 3456 Star ! 2519 4141 Star ! 2519 4118 Star ! 2519 4095 Star ! 2519 4072 Star ! 2519 4050 Star ! 2519 4027 Star ! 2519 4004 Star ! 2519 3981 Star ! 2519 3958 Star ! 2519 3935 Star ! 2519 3912 Star ! 2519 3890 Star ! 2519 3867 Star ! 2519 3844 Star ! 2519 3821 Star ! 2519 3798 Star ! 2519 3775 Star ! 2519 3753 Star ! 2519 3730 Star ! 2519 3707 Star ! 2519 3684 Star ! 2519 3661 Star ! 2519 3638 Star ! 2519 3615 Star ! 2519 3593 Star ! 2519 3570 Star ! 2519 3547 Star ! 2519 3524 Star ! 2519 3501 Star ! 2519 3478 Star ! 2519 3456 Star ! 2519 3433 Star ! 2551 4141 Star ! 2551 4118 Star ! 2551 4095 Star ! 2551 4072 Star ! 2551 4050 Star ! 2551 4027 Star ! 2551 4004 Star ! 2551 3981 Star ! 2551 3958 Star ! 2551 3935 Star ! 2551 3912 Star ! 2551 3890 Star ! 2551 3867 Star ! 2551 3844 Star ! 2551 3821 Star ! 2551 3798 Star ! 2551 3775 Star ! 2551 3753 Star ! 2551 3730 Star ! 2551 3707 Star ! 2551 3684 Star ! 2551 3661 Star ! 2551 3638 Star ! 2551 3615 Star ! 2551 3593 Star ! 2551 3570 Star ! 2551 3547 Star ! 2551 3524 Star ! 2551 3501 Star ! 2551 3478 Star ! 2551 3456 Star ! 2551 3433 Star ! 2551 3410 Star ! 2583 4118 Star ! 2583 4095 Star ! 2583 4072 Star ! 2583 4050 Star ! 2583 4027 Star ! 2583 4004 Star ! 2583 3981 Star ! 2583 3958 Star ! 2583 3935 Star ! 2583 3912 Star ! 2583 3890 Star ! 2583 3867 Star ! 2583 3844 Star ! 2583 3821 Star ! 2583 3798 Star ! 2583 3775 Star ! 2583 3753 Star ! 2583 3730 Star ! 2583 3707 Star ! 2583 3684 Star ! 2583 3661 Star ! 2583 3638 Star ! 2583 3615 Star ! 2583 3593 Star ! 2583 3570 Star ! 2583 3547 Star ! 2583 3524 Star ! 2583 3501 Star ! 2583 3478 Star ! 2583 3456 Star ! 2583 3433 Star ! 2583 3410 Star ! 2583 3387 Star ! 2615 4118 Star ! 2615 4095 Star ! 2615 4072 Star ! 2615 4050 Star ! 2615 4027 Star ! 2615 4004 Star ! 2615 3981 Star ! 2615 3958 Star ! 2615 3935 Star ! 2615 3912 Star ! 2615 3890 Star ! 2615 3867 Star ! 2615 3844 Star ! 2615 3821 Star ! 2615 3798 Star ! 2615 3775 Star ! 2615 3753 Star ! 2615 3730 Star ! 2615 3707 Star ! 2615 3684 Star ! 2615 3661 Star ! 2615 3638 Star ! 2615 3615 Star ! 2615 3593 Star ! 2615 3570 Star ! 2615 3547 Star ! 2615 3524 Star ! 2615 3501 Star ! 2615 3478 Star ! 2615 3456 Star ! 2615 3433 Star ! 2615 3410 Star ! 2615 3387 Star ! 2615 3364 Star ! 2647 4095 Star ! 2647 4072 Star ! 2647 4050 Star ! 2647 4027 Star ! 2647 4004 Star ! 2647 3981 Star ! 2647 3958 Star ! 2647 3935 Star ! 2647 3912 Star ! 2647 3890 Star ! 2647 3867 Star ! 2647 3844 Star ! 2647 3821 Star ! 2647 3798 Star ! 2647 3775 Star ! 2647 3753 Star ! 2647 3730 Star ! 2647 3707 Star ! 2647 3684 Star ! 2647 3661 Star ! 2647 3638 Star ! 2647 3615 Star ! 2647 3593 Star ! 2647 3570 Star ! 2647 3547 Star ! 2647 3524 Star ! 2647 3501 Star ! 2647 3478 Star ! 2647 3456 Star ! 2647 3433 Star ! 2647 3410 Star ! 2647 3387 Star ! 2647 3364 Star ! 2647 3341 Star ! 2680 4095 Star ! 2680 4072 Star ! 2680 4050 Star ! 2680 4027 Star ! 2680 4004 Star ! 2680 3981 Star ! 2680 3958 Star ! 2680 3935 Star ! 2680 3912 Star ! 2680 3890 Star ! 2680 3867 Star ! 2680 3844 Star ! 2680 3821 Star ! 2680 3798 Star ! 2680 3775 Star ! 2680 3753 Star ! 2680 3730 Star ! 2680 3707 Star ! 2680 3684 Star ! 2680 3661 Star ! 2680 3638 Star ! 2680 3615 Star ! 2680 3593 Star ! 2680 3570 Star ! 2680 3547 Star ! 2680 3524 Star ! 2680 3501 Star ! 2680 3478 Star ! 2680 3456 Star ! 2680 3433 Star ! 2680 3410 Star ! 2680 3387 Star ! 2680 3364 Star ! 2680 3341 Star ! 2680 3318 Star ! 2712 4072 Star ! 2712 4050 Star ! 2712 4027 Star ! 2712 4004 Star ! 2712 3981 Star ! 2712 3958 Star ! 2712 3935 Star ! 2712 3912 Star ! 2712 3890 Star ! 2712 3867 Star ! 2712 3844 Star ! 2712 3821 Star ! 2712 3798 Star ! 2712 3775 Star ! 2712 3753 Star ! 2712 3730 Star ! 2712 3707 Star ! 2712 3684 Star ! 2712 3661 Star ! 2712 3638 Star ! 2712 3615 Star ! 2712 3593 Star ! 2712 3570 Star ! 2712 3547 Star ! 2712 3524 Star ! 2712 3501 Star ! 2712 3478 Star ! 2712 3456 Star ! 2712 3433 Star ! 2712 3410 Star ! 2712 3387 Star ! 2712 3364 Star ! 2712 3341 Star ! 2712 3318 Star ! 2712 3296 Star ! 2744 4072 Star ! 2744 4050 Star ! 2744 4027 Star ! 2744 4004 Star ! 2744 3981 Star ! 2744 3958 Star ! 2744 3935 Star ! 2744 3912 Star ! 2744 3890 Star ! 2744 3867 Star ! 2744 3844 Star ! 2744 3821 Star ! 2744 3798 Star ! 2744 3775 Star ! 2744 3753 Star ! 2744 3730 Star ! 2744 3707 Star ! 2744 3684 Star ! 2744 3661 Star ! 2744 3638 Star ! 2744 3615 Star ! 2744 3593 Star ! 2744 3570 Star ! 2744 3547 Star ! 2744 3524 Star ! 2744 3501 Star ! 2744 3478 Star ! 2744 3456 Star ! 2744 3433 Star ! 2744 3410 Star ! 2744 3387 Star ! 2744 3364 Star ! 2744 3341 Star ! 2744 3318 Star ! 2744 3296 Star ! 2744 3273 Star ! 2776 4050 Star ! 2776 4027 Star ! 2776 4004 Star ! 2776 3981 Star ! 2776 3958 Star ! 2776 3935 Star ! 2776 3912 Star ! 2776 3890 Star ! 2776 3867 Star ! 2776 3844 Star ! 2776 3821 Star ! 2776 3798 Star ! 2776 3775 Star ! 2776 3753 Star ! 2776 3730 Star ! 2776 3707 Star ! 2776 3684 Star ! 2776 3661 Star ! 2776 3638 Star ! 2776 3615 Star ! 2776 3593 Star ! 2776 3570 Star ! 2776 3547 Star ! 2776 3524 Star ! 2776 3501 Star ! 2776 3478 Star ! 2776 3456 Star ! 2776 3433 Star ! 2776 3410 Star ! 2776 3387 Star ! 2776 3364 Star ! 2776 3341 Star ! 2776 3318 Star ! 2776 3296 Star ! 2776 3273 Star ! 2776 3250 Star ! 2808 4050 Star ! 2808 4027 Star ! 2808 4004 Star ! 2808 3981 Star ! 2808 3958 Star ! 2808 3935 Star ! 2808 3912 Star ! 2808 3890 Star ! 2808 3867 Star ! 2808 3844 Star ! 2808 3821 Star ! 2808 3798 Star ! 2808 3775 Star ! 2808 3753 Star ! 2808 3730 Star ! 2808 3707 Star ! 2808 3684 Star ! 2808 3661 Star ! 2808 3638 Star ! 2808 3615 Star ! 2808 3593 Star ! 2808 3570 Star ! 2808 3547 Star ! 2808 3524 Star ! 2808 3501 Star ! 2808 3478 Star ! 2808 3456 Star ! 2808 3433 Star ! 2808 3410 Star ! 2808 3387 Star ! 2808 3364 Star ! 2808 3341 Star ! 2808 3318 Star ! 2808 3296 Star ! 2808 3273 Star ! 2808 3250 Star ! 2808 3227 Star ! 2841 4027 Star ! 2841 4004 Star ! 2841 3981 Star ! 2841 3958 Star ! 2841 3935 Star ! 2841 3912 Star ! 2841 3890 Star ! 2841 3867 Star ! 2841 3844 Star ! 2841 3821 Star ! 2841 3798 Star ! 2841 3775 Star ! 2841 3753 Star ! 2841 3730 Star ! 2841 3707 Star ! 2841 3684 Star ! 2841 3661 Star ! 2841 3638 Star ! 2841 3615 Star ! 2841 3593 Star ! 2841 3570 Star ! 2841 3547 Star ! 2841 3524 Star ! 2841 3501 Star ! 2841 3478 Star ! 2841 3456 Star ! 2841 3433 Star ! 2841 3410 Star ! 2841 3387 Star ! 2841 3364 Star ! 2841 3341 Star ! 2841 3318 Star ! 2841 3296 Star ! 2841 3273 Star ! 2841 3250 Star ! 2841 3227 Star ! 2841 3204 Star ! 2873 4027 Star ! 2873 4004 Star ! 2873 3981 Star ! 2873 3958 Star ! 2873 3935 Star ! 2873 3912 Star ! 2873 3890 Star ! 2873 3867 Star ! 2873 3844 Star ! 2873 3821 Star ! 2873 3798 Star ! 2873 3775 Star ! 2873 3753 Star ! 2873 3730 Star ! 2873 3707 Star ! 2873 3684 Star ! 2873 3661 Star ! 2873 3638 Star ! 2873 3615 Star ! 2873 3593 Star ! 2873 3570 Star ! 2873 3547 Star ! 2873 3524 Star ! 2873 3501 Star ! 2873 3478 Star ! 2873 3456 Star ! 2873 3433 Star ! 2873 3410 Star ! 2873 3387 Star ! 2873 3364 Star ! 2873 3341 Star ! 2873 3318 Star ! 2873 3296 Star ! 2873 3273 Star ! 2873 3250 Star ! 2873 3227 Star ! 2873 3204 Star ! 2873 3181 Star ! 2905 4004 Star ! 2905 3981 Star ! 2905 3958 Star ! 2905 3935 Star ! 2905 3912 Star ! 2905 3890 Star ! 2905 3867 Star ! 2905 3844 Star ! 2905 3821 Star ! 2905 3798 Star ! 2905 3775 Star ! 2905 3753 Star ! 2905 3730 Star ! 2905 3707 Star ! 2905 3684 Star ! 2905 3661 Star ! 2905 3638 Star ! 2905 3615 Star ! 2905 3593 Star ! 2905 3570 Star ! 2905 3547 Star ! 2905 3524 Star ! 2905 3501 Star ! 2905 3478 Star ! 2905 3456 Star ! 2905 3433 Star ! 2905 3410 Star ! 2905 3387 Star ! 2905 3364 Star ! 2905 3341 Star ! 2905 3318 Star ! 2905 3296 Star ! 2905 3273 Star ! 2905 3250 Star ! 2905 3227 Star ! 2905 3204 Star ! 2905 3181 Star ! 2905 3159 Star ! 2937 4004 Star ! 2937 3981 Star ! 2937 3958 Star ! 2937 3935 Star ! 2937 3912 Star ! 2937 3890 Star ! 2937 3867 Star ! 2937 3844 Star ! 2937 3821 Star ! 2937 3798 Star ! 2937 3775 Star ! 2937 3753 Star ! 2937 3730 Star ! 2937 3707 Star ! 2937 3684 Star ! 2937 3661 Star ! 2937 3638 Star ! 2937 3615 Star ! 2937 3593 Star ! 2937 3570 Star ! 2937 3547 Star ! 2937 3524 Star ! 2937 3501 Star ! 2937 3478 Star ! 2937 3456 Star ! 2937 3433 Star ! 2937 3410 Star ! 2937 3387 Star ! 2937 3364 Star ! 2937 3341 Star ! 2937 3318 Star ! 2937 3296 Star ! 2937 3273 Star ! 2937 3250 Star ! 2937 3227 Star ! 2937 3204 Star ! 2937 3181 Star ! 2937 3159 Star ! 2937 3136 Star ! 2969 3981 Star ! 2969 3958 Star ! 2969 3935 Star ! 2969 3912 Star ! 2969 3890 Star ! 2969 3867 Star ! 2969 3844 Star ! 2969 3821 Star ! 2969 3798 Star ! 2969 3775 Star ! 2969 3753 Star ! 2969 3730 Star ! 2969 3707 Star ! 2969 3684 Star ! 2969 3661 Star ! 2969 3638 Star ! 2969 3615 Star ! 2969 3593 Star ! 2969 3570 Star ! 2969 3547 Star ! 2969 3524 Star ! 2969 3501 Star ! 2969 3478 Star ! 2969 3456 Star ! 2969 3433 Star ! 2969 3410 Star ! 2969 3387 Star ! 2969 3364 Star ! 2969 3341 Star ! 2969 3318 Star ! 2969 3296 Star ! 2969 3273 Star ! 2969 3250 Star ! 2969 3227 Star ! 2969 3204 Star ! 2969 3181 Star ! 2969 3159 Star ! 2969 3136 Star ! 2969 3113 Star ! 3002 3981 Star ! 3002 3958 Star ! 3002 3935 Star ! 3002 3912 Star ! 3002 3890 Star ! 3002 3867 Star ! 3002 3844 Star ! 3002 3821 Star ! 3002 3798 Star ! 3002 3775 Star ! 3002 3753 Star ! 3002 3730 Star ! 3002 3707 Star ! 3002 3684 Star ! 3002 3661 Star ! 3002 3638 Star ! 3002 3615 Star ! 3002 3593 Star ! 3002 3570 Star ! 3002 3547 Star ! 3002 3524 Star ! 3002 3501 Star ! 3002 3478 Star ! 3002 3456 Star ! 3002 3433 Star ! 3002 3410 Star ! 3002 3387 Star ! 3002 3364 Star ! 3002 3341 Star ! 3002 3318 Star ! 3002 3296 Star ! 3002 3273 Star ! 3002 3250 Star ! 3002 3227 Star ! 3002 3204 Star ! 3002 3181 Star ! 3002 3159 Star ! 3002 3136 Star ! 3002 3113 Star ! 3002 3090 Star ! 3034 3958 Star ! 3034 3935 Star ! 3034 3912 Star ! 3034 3890 Star ! 3034 3867 Star ! 3034 3844 Star ! 3034 3821 Star ! 3034 3798 Star ! 3034 3775 Star ! 3034 3753 Star ! 3034 3730 Star ! 3034 3707 Star ! 3034 3684 Star ! 3034 3661 Star ! 3034 3638 Star ! 3034 3615 Star ! 3034 3593 Star ! 3034 3570 Star ! 3034 3547 Star ! 3034 3524 Star ! 3034 3501 Star ! 3034 3478 Star ! 3034 3456 Star ! 3034 3433 Star ! 3034 3410 Star ! 3034 3387 Star ! 3034 3364 Star ! 3034 3341 Star ! 3034 3318 Star ! 3034 3296 Star ! 3034 3273 Star ! 3034 3250 Star ! 3034 3227 Star ! 3034 3204 Star ! 3034 3181 Star ! 3034 3159 Star ! 3034 3136 Star ! 3034 3113 Star ! 3034 3090 Star ! 3034 3067 Star ! 3066 3958 Star ! 3066 3935 Star ! 3066 3912 Star ! 3066 3890 Star ! 3066 3867 Star ! 3066 3844 Star ! 3066 3821 Star ! 3066 3798 Star ! 3066 3775 Star ! 3066 3753 Star ! 3066 3730 Star ! 3066 3707 Star ! 3066 3684 Star ! 3066 3661 Star ! 3066 3638 Star ! 3066 3615 Star ! 3066 3593 Star ! 3066 3570 Star ! 3066 3547 Star ! 3066 3524 Star ! 3066 3501 Star ! 3066 3478 Star ! 3066 3456 Star ! 3066 3433 Star ! 3066 3410 Star ! 3066 3387 Star ! 3066 3364 Star ! 3066 3341 Star ! 3066 3318 Star ! 3066 3296 Star ! 3066 3273 Star ! 3066 3250 Star ! 3066 3227 Star ! 3066 3204 Star ! 3066 3181 Star ! 3066 3159 Star ! 3066 3136 Star ! 3066 3113 Star ! 3066 3090 Star ! 3066 3067 Star ! 3066 3044 Star ! 3098 3935 Star ! 3098 3912 Star ! 3098 3890 Star ! 3098 3867 Star ! 3098 3844 Star ! 3098 3821 Star ! 3098 3798 Star ! 3098 3775 Star ! 3098 3753 Star ! 3098 3730 Star ! 3098 3707 Star ! 3098 3684 Star ! 3098 3661 Star ! 3098 3638 Star ! 3098 3615 Star ! 3098 3593 Star ! 3098 3570 Star ! 3098 3547 Star ! 3098 3524 Star ! 3098 3501 Star ! 3098 3478 Star ! 3098 3456 Star ! 3098 3433 Star ! 3098 3410 Star ! 3098 3387 Star ! 3098 3364 Star ! 3098 3341 Star ! 3098 3318 Star ! 3098 3296 Star ! 3098 3273 Star ! 3098 3250 Star ! 3098 3227 Star ! 3098 3204 Star ! 3098 3181 Star ! 3098 3159 Star ! 3098 3136 Star ! 3098 3113 Star ! 3098 3090 Star ! 3098 3067 Star ! 3098 3044 Star ! 3098 3021 Star ! 3130 3935 Star ! 3130 3912 Star ! 3130 3890 Star ! 3130 3867 Star ! 3130 3844 Star ! 3130 3821 Star ! 3130 3798 Star ! 3130 3775 Star ! 3130 3753 Star ! 3130 3730 Star ! 3130 3707 Star ! 3130 3684 Star ! 3130 3661 Star ! 3130 3638 Star ! 3130 3615 Star ! 3130 3593 Star ! 3130 3570 Star ! 3130 3547 Star ! 3130 3524 Star ! 3130 3501 Star ! 3130 3478 Star ! 3130 3456 Star ! 3130 3433 Star ! 3130 3410 Star ! 3130 3387 Star ! 3130 3364 Star ! 3130 3341 Star ! 3130 3318 Star ! 3130 3296 Star ! 3130 3273 Star ! 3130 3250 Star ! 3130 3227 Star ! 3130 3204 Star ! 3130 3181 Star ! 3130 3159 Star ! 3130 3136 Star ! 3130 3113 Star ! 3130 3090 Star ! 3130 3067 Star ! 3130 3044 Star ! 3130 3021 Star ! 3130 2999 Star ! 3163 3912 Star ! 3163 3890 Star ! 3163 3867 Star ! 3163 3844 Star ! 3163 3821 Star ! 3163 3798 Star ! 3163 3775 Star ! 3163 3753 Star ! 3163 3730 Star ! 3163 3707 Star ! 3163 3684 Star ! 3163 3661 Star ! 3163 3638 Star ! 3163 3615 Star ! 3163 3593 Star ! 3163 3570 Star ! 3163 3547 Star ! 3163 3524 Star ! 3163 3501 Star ! 3163 3478 Star ! 3163 3456 Star ! 3163 3433 Star ! 3163 3410 Star ! 3163 3387 Star ! 3163 3364 Star ! 3163 3341 Star ! 3163 3318 Star ! 3163 3296 Star ! 3163 3273 Star ! 3163 3250 Star ! 3163 3227 Star ! 3163 3204 Star ! 3163 3181 Star ! 3163 3159 Star ! 3163 3136 Star ! 3163 3113 Star ! 3163 3090 Star ! 3163 3067 Star ! 3163 3044 Star ! 3163 3021 Star ! 3163 2999 Star ! 3163 2976 Star ! 3195 3912 Star ! 3195 3890 Star ! 3195 3867 Star ! 3195 3844 Star ! 3195 3821 Star ! 3195 3798 Star ! 3195 3775 Star ! 3195 3753 Star ! 3195 3730 Star ! 3195 3707 Star ! 3195 3684 Star ! 3195 3661 Star ! 3195 3638 Star ! 3195 3615 Star ! 3195 3593 Star ! 3195 3570 Star ! 3195 3547 Star ! 3195 3524 Star ! 3195 3501 Star ! 3195 3478 Star ! 3195 3456 Star ! 3195 3433 Star ! 3195 3410 Star ! 3195 3387 Star ! 3195 3364 Star ! 3195 3341 Star ! 3195 3318 Star ! 3195 3296 Star ! 3195 3273 Star ! 3195 3250 Star ! 3195 3227 Star ! 3195 3204 Star ! 3195 3181 Star ! 3195 3159 Star ! 3195 3136 Star ! 3195 3113 Star ! 3195 3090 Star ! 3195 3067 Star ! 3195 3044 Star ! 3195 3021 Star ! 3195 2999 Star ! 3195 2976 Star ! 3195 2953 Star ! 3227 3890 Star ! 3227 3867 Star ! 3227 3844 Star ! 3227 3821 Star ! 3227 3798 Star ! 3227 3775 Star ! 3227 3753 Star ! 3227 3730 Star ! 3227 3707 Star ! 3227 3684 Star ! 3227 3661 Star ! 3227 3638 Star ! 3227 3615 Star ! 3227 3593 Star ! 3227 3570 Star ! 3227 3547 Star ! 3227 3524 Star ! 3227 3501 Star ! 3227 3478 Star ! 3227 3456 Star ! 3227 3433 Star ! 3227 3410 Star ! 3227 3387 Star ! 3227 3364 Star ! 3227 3341 Star ! 3227 3318 Star ! 3227 3296 Star ! 3227 3273 Star ! 3227 3250 Star ! 3227 3227 Star ! 3227 3204 Star ! 3227 3181 Star ! 3227 3159 Star ! 3227 3136 Star ! 3227 3113 Star ! 3227 3090 Star ! 3227 3067 Star ! 3227 3044 Star ! 3227 3021 Star ! 3227 2999 Star ! 3227 2976 Star ! 3227 2953 Star ! 3227 2930 Star ! 3259 3890 Star ! 3259 3867 Star ! 3259 3844 Star ! 3259 3821 Star ! 3259 3798 Star ! 3259 3775 Star ! 3259 3753 Star ! 3259 3730 Star ! 3259 3707 Star ! 3259 3684 Star ! 3259 3661 Star ! 3259 3638 Star ! 3259 3615 Star ! 3259 3593 Star ! 3259 3570 Star ! 3259 3547 Star ! 3259 3524 Star ! 3259 3501 Star ! 3259 3478 Star ! 3259 3456 Star ! 3259 3433 Star ! 3259 3410 Star ! 3259 3387 Star ! 3259 3364 Star ! 3259 3341 Star ! 3259 3318 Star ! 3259 3296 Star ! 3259 3273 Star ! 3259 3250 Star ! 3259 3227 Star ! 3259 3204 Star ! 3259 3181 Star ! 3259 3159 Star ! 3259 3136 Star ! 3259 3113 Star ! 3259 3090 Star ! 3259 3067 Star ! 3259 3044 Star ! 3259 3021 Star ! 3259 2999 Star ! 3259 2976 Star ! 3259 2953 Star ! 3259 2930 Star ! 3259 2907 Star ! 3291 3867 Star ! 3291 3844 Star ! 3291 3821 Star ! 3291 3798 Star ! 3291 3775 Star ! 3291 3753 Star ! 3291 3730 Star ! 3291 3707 Star ! 3291 3684 Star ! 3291 3661 Star ! 3291 3638 Star ! 3291 3615 Star ! 3291 3593 Star ! 3291 3570 Star ! 3291 3547 Star ! 3291 3524 Star ! 3291 3501 Star ! 3291 3478 Star ! 3291 3456 Star ! 3291 3433 Star ! 3291 3410 Star ! 3291 3387 Star ! 3291 3364 Star ! 3291 3341 Star ! 3291 3318 Star ! 3291 3296 Star ! 3291 3273 Star ! 3291 3250 Star ! 3291 3227 Star ! 3291 3204 Star ! 3291 3181 Star ! 3291 3159 Star ! 3291 3136 Star ! 3291 3113 Star ! 3291 3090 Star ! 3291 3067 Star ! 3291 3044 Star ! 3291 3021 Star ! 3291 2999 Star ! 3291 2976 Star ! 3291 2953 Star ! 3291 2930 Star ! 3291 2907 Star ! 3291 2884 Star ! 3324 3867 Star ! 3324 3844 Star ! 3324 3821 Star ! 3324 3798 Star ! 3324 3775 Star ! 3324 3753 Star ! 3324 3730 Star ! 3324 3707 Star ! 3324 3684 Star ! 3324 3661 Star ! 3324 3638 Star ! 3324 3615 Star ! 3324 3593 Star ! 3324 3570 Star ! 3324 3547 Star ! 3324 3524 Star ! 3324 3501 Star ! 3324 3478 Star ! 3324 3456 Star ! 3324 3433 Star ! 3324 3410 Star ! 3324 3387 Star ! 3324 3364 Star ! 3324 3341 Star ! 3324 3318 Star ! 3324 3296 Star ! 3324 3273 Star ! 3324 3250 Star ! 3324 3227 Star ! 3324 3204 Star ! 3324 3181 Star ! 3324 3159 Star ! 3324 3136 Star ! 3324 3113 Star ! 3324 3090 Star ! 3324 3067 Star ! 3324 3044 Star ! 3324 3021 Star ! 3324 2999 Star ! 3324 2976 Star ! 3324 2953 Star ! 3324 2930 Star ! 3324 2907 Star ! 3324 2884 Star ! 3324 2862 Star ! 3356 3844 Star ! 3356 3821 Star ! 3356 3798 Star ! 3356 3775 Star ! 3356 3753 Star ! 3356 3730 Star ! 3356 3707 Star ! 3356 3684 Star ! 3356 3661 Star ! 3356 3638 Star ! 3356 3615 Star ! 3356 3593 Star ! 3356 3570 Star ! 3356 3547 Star ! 3356 3524 Star ! 3356 3501 Star ! 3356 3478 Star ! 3356 3456 Star ! 3356 3433 Star ! 3356 3410 Star ! 3356 3387 Star ! 3356 3364 Star ! 3356 3341 Star ! 3356 3318 Star ! 3356 3296 Star ! 3356 3273 Star ! 3356 3250 Star ! 3356 3227 Star ! 3356 3204 Star ! 3356 3181 Star ! 3356 3159 Star ! 3356 3136 Star ! 3356 3113 Star ! 3356 3090 Star ! 3356 3067 Star ! 3356 3044 Star ! 3356 3021 Star ! 3356 2999 Star ! 3356 2976 Star ! 3356 2953 Star ! 3356 2930 Star ! 3356 2907 Star ! 3356 2884 Star ! 3356 2862 Star ! 3356 2839 Star ! 3388 3844 Star ! 3388 3821 Star ! 3388 3798 Star ! 3388 3775 Star ! 3388 3753 Star ! 3388 3730 Star ! 3388 3707 Star ! 3388 3684 Star ! 3388 3661 Star ! 3388 3638 Star ! 3388 3615 Star ! 3388 3593 Star ! 3388 3570 Star ! 3388 3547 Star ! 3388 3524 Star ! 3388 3501 Star ! 3388 3478 Star ! 3388 3456 Star ! 3388 3433 Star ! 3388 3410 Star ! 3388 3387 Star ! 3388 3364 Star ! 3388 3341 Star ! 3388 3318 Star ! 3388 3296 Star ! 3388 3273 Star ! 3388 3250 Star ! 3388 3227 Star ! 3388 3204 Star ! 3388 3181 Star ! 3388 3159 Star ! 3388 3136 Star ! 3388 3113 Star ! 3388 3090 Star ! 3388 3067 Star ! 3388 3044 Star ! 3388 3021 Star ! 3388 2999 Star ! 3388 2976 Star ! 3388 2953 Star ! 3388 2930 Star ! 3388 2907 Star ! 3388 2884 Star ! 3388 2862 Star ! 3388 2839 Star ! 3388 2816 Star ! 3420 3821 Star ! 3420 3798 Star ! 3420 3775 Star ! 3420 3753 Star ! 3420 3730 Star ! 3420 3707 Star ! 3420 3684 Star ! 3420 3661 Star ! 3420 3638 Star ! 3420 3615 Star ! 3420 3593 Star ! 3420 3570 Star ! 3420 3547 Star ! 3420 3524 Star ! 3420 3501 Star ! 3420 3478 Star ! 3420 3456 Star ! 3420 3433 Star ! 3420 3410 Star ! 3420 3387 Star ! 3420 3364 Star ! 3420 3341 Star ! 3420 3318 Star ! 3420 3296 Star ! 3420 3273 Star ! 3420 3250 Star ! 3420 3227 Star ! 3420 3204 Star ! 3420 3181 Star ! 3420 3159 Star ! 3420 3136 Star ! 3420 3113 Star ! 3420 3090 Star ! 3420 3067 Star ! 3420 3044 Star ! 3420 3021 Star ! 3420 2999 Star ! 3420 2976 Star ! 3420 2953 Star ! 3420 2930 Star ! 3420 2907 Star ! 3420 2884 Star ! 3420 2862 Star ! 3420 2839 Star ! 3420 2816 Star ! 3420 2793 Star ! 3452 3821 Star ! 3452 3798 Star ! 3452 3775 Star ! 3452 3753 Star ! 3452 3730 Star ! 3452 3707 Star ! 3452 3684 Star ! 3452 3661 Star ! 3452 3638 Star ! 3452 3615 Star ! 3452 3593 Star ! 3452 3570 Star ! 3452 3547 Star ! 3452 3524 Star ! 3452 3501 Star ! 3452 3478 Star ! 3452 3456 Star ! 3452 3433 Star ! 3452 3410 Star ! 3452 3387 Star ! 3452 3364 Star ! 3452 3341 Star ! 3452 3318 Star ! 3452 3296 Star ! 3452 3273 Star ! 3452 3250 Star ! 3452 3227 Star ! 3452 3204 Star ! 3452 3181 Star ! 3452 3159 Star ! 3452 3136 Star ! 3452 3113 Star ! 3452 3090 Star ! 3452 3067 Star ! 3452 3044 Star ! 3452 3021 Star ! 3452 2999 Star ! 3452 2976 Star ! 3452 2953 Star ! 3452 2930 Star ! 3452 2907 Star ! 3452 2884 Star ! 3452 2862 Star ! 3452 2839 Star ! 3452 2816 Star ! 3452 2793 Star ! 3452 2770 Star ! 3485 3798 Star ! 3485 3775 Star ! 3485 3753 Star ! 3485 3730 Star ! 3485 3707 Star ! 3485 3684 Star ! 3485 3661 Star ! 3485 3638 Star ! 3485 3615 Star ! 3485 3593 Star ! 3485 3570 Star ! 3485 3547 Star ! 3485 3524 Star ! 3485 3501 Star ! 3485 3478 Star ! 3485 3456 Star ! 3485 3433 Star ! 3485 3410 Star ! 3485 3387 Star ! 3485 3364 Star ! 3485 3341 Star ! 3485 3318 Star ! 3485 3296 Star ! 3485 3273 Star ! 3485 3250 Star ! 3485 3227 Star ! 3485 3204 Star ! 3485 3181 Star ! 3485 3159 Star ! 3485 3136 Star ! 3485 3113 Star ! 3485 3090 Star ! 3485 3067 Star ! 3485 3044 Star ! 3485 3021 Star ! 3485 2999 Star ! 3485 2976 Star ! 3485 2953 Star ! 3485 2930 Star ! 3485 2907 Star ! 3485 2884 Star ! 3485 2862 Star ! 3485 2839 Star ! 3485 2816 Star ! 3485 2793 Star ! 3485 2770 Star ! 3485 2747 Star ! 3517 3798 Star ! 3517 3775 Star ! 3517 3753 Star ! 3517 3730 Star ! 3517 3707 Star ! 3517 3684 Star ! 3517 3661 Star ! 3517 3638 Star ! 3517 3615 Star ! 3517 3593 Star ! 3517 3570 Star ! 3517 3547 Star ! 3517 3524 Star ! 3517 3501 Star ! 3517 3478 Star ! 3517 3456 Star ! 3517 3433 Star ! 3517 3410 Star ! 3517 3387 Star ! 3517 3364 Star ! 3517 3341 Star ! 3517 3318 Star ! 3517 3296 Star ! 3517 3273 Star ! 3517 3250 Star ! 3517 3227 Star ! 3517 3204 Star ! 3517 3181 Star ! 3517 3159 Star ! 3517 3136 Star ! 3517 3113 Star ! 3517 3090 Star ! 3517 3067 Star ! 3517 3044 Star ! 3517 3021 Star ! 3517 2999 Star ! 3517 2976 Star ! 3517 2953 Star ! 3517 2930 Star ! 3517 2907 Star ! 3517 2884 Star ! 3517 2862 Star ! 3517 2839 Star ! 3517 2816 Star ! 3517 2793 Star ! 3517 2770 Star ! 3517 2747 Star ! 3517 2724 Star ! 3549 3775 Star ! 3549 3753 Star ! 3549 3730 Star ! 3549 3707 Star ! 3549 3684 Star ! 3549 3661 Star ! 3549 3638 Star ! 3549 3615 Star ! 3549 3593 Star ! 3549 3570 Star ! 3549 3547 Star ! 3549 3524 Star ! 3549 3501 Star ! 3549 3478 Star ! 3549 3456 Star ! 3549 3433 Star ! 3549 3410 Star ! 3549 3387 Star ! 3549 3364 Star ! 3549 3341 Star ! 3549 3318 Star ! 3549 3296 Star ! 3549 3273 Star ! 3549 3250 Star ! 3549 3227 Star ! 3549 3204 Star ! 3549 3181 Star ! 3549 3159 Star ! 3549 3136 Star ! 3549 3113 Star ! 3549 3090 Star ! 3549 3067 Star ! 3549 3044 Star ! 3549 3021 Star ! 3549 2999 Star ! 3549 2976 Star ! 3549 2953 Star ! 3549 2930 Star ! 3549 2907 Star ! 3549 2884 Star ! 3549 2862 Star ! 3549 2839 Star ! 3549 2816 Star ! 3549 2793 Star ! 3549 2770 Star ! 3549 2747 Star ! 3549 2724 Star ! 3549 2702 Star ! 3581 3775 Star ! 3581 3753 Star ! 3581 3730 Star ! 3581 3707 Star ! 3581 3684 Star ! 3581 3661 Star ! 3581 3638 Star ! 3581 3615 Star ! 3581 3593 Star ! 3581 3570 Star ! 3581 3547 Star ! 3581 3524 Star ! 3581 3501 Star ! 3581 3478 Star ! 3581 3456 Star ! 3581 3433 Star ! 3581 3410 Star ! 3581 3387 Star ! 3581 3364 Star ! 3581 3341 Star ! 3581 3318 Star ! 3581 3296 Star ! 3581 3273 Star ! 3581 3250 Star ! 3581 3227 Star ! 3581 3204 Star ! 3581 3181 Star ! 3581 3159 Star ! 3581 3136 Star ! 3581 3113 Star ! 3581 3090 Star ! 3581 3067 Star ! 3581 3044 Star ! 3581 3021 Star ! 3581 2999 Star ! 3581 2976 Star ! 3581 2953 Star ! 3581 2930 Star ! 3581 2907 Star ! 3581 2884 Star ! 3581 2862 Star ! 3581 2839 Star ! 3581 2816 Star ! 3581 2793 Star ! 3581 2770 Star ! 3581 2747 Star ! 3581 2724 Star ! 3581 2702 Star ! 3581 2679 Star ! 3613 3753 Star ! 3613 3730 Star ! 3613 3707 Star ! 3613 3684 Star ! 3613 3661 Star ! 3613 3638 Star ! 3613 3615 Star ! 3613 3593 Star ! 3613 3570 Star ! 3613 3547 Star ! 3613 3524 Star ! 3613 3501 Star ! 3613 3478 Star ! 3613 3456 Star ! 3613 3433 Star ! 3613 3410 Star ! 3613 3387 Star ! 3613 3364 Star ! 3613 3341 Star ! 3613 3318 Star ! 3613 3296 Star ! 3613 3273 Star ! 3613 3250 Star ! 3613 3227 Star ! 3613 3204 Star ! 3613 3181 Star ! 3613 3159 Star ! 3613 3136 Star ! 3613 3113 Star ! 3613 3090 Star ! 3613 3067 Star ! 3613 3044 Star ! 3613 3021 Star ! 3613 2999 Star ! 3613 2976 Star ! 3613 2953 Star ! 3613 2930 Star ! 3613 2907 Star ! 3613 2884 Star ! 3613 2862 Star ! 3613 2839 Star ! 3613 2816 Star ! 3613 2793 Star ! 3613 2770 Star ! 3613 2747 Star ! 3613 2724 Star ! 3613 2702 Star ! 3613 2679 Star ! 3613 2656 Star ! 3646 3753 Star ! 3646 3730 Star ! 3646 3707 Star ! 3646 3684 Star ! 3646 3661 Star ! 3646 3638 Star ! 3646 3615 Star ! 3646 3593 Star ! 3646 3570 Star ! 3646 3547 Star ! 3646 3524 Star ! 3646 3501 Star ! 3646 3478 Star ! 3646 3456 Star ! 3646 3433 Star ! 3646 3410 Star ! 3646 3387 Star ! 3646 3364 Star ! 3646 3341 Star ! 3646 3318 Star ! 3646 3296 Star ! 3646 3273 Star ! 3646 3250 Star ! 3646 3227 Star ! 3646 3204 Star ! 3646 3181 Star ! 3646 3159 Star ! 3646 3136 Star ! 3646 3113 Star ! 3646 3090 Star ! 3646 3067 Star ! 3646 3044 Star ! 3646 3021 Star ! 3646 2999 Star ! 3646 2976 Star ! 3646 2953 Star ! 3646 2930 Star ! 3646 2907 Star ! 3646 2884 Star ! 3646 2862 Star ! 3646 2839 Star ! 3646 2816 Star ! 3646 2793 Star ! 3646 2770 Star ! 3646 2747 Star ! 3646 2724 Star ! 3646 2702 Star ! 3646 2679 Star ! 3646 2656 Star ! 3646 2633 Star ! 3678 3730 Star ! 3678 3707 Star ! 3678 3684 Star ! 3678 3661 Star ! 3678 3638 Star ! 3678 3615 Star ! 3678 3593 Star ! 3678 3570 Star ! 3678 3547 Star ! 3678 3524 Star ! 3678 3501 Star ! 3678 3478 Star ! 3678 3456 Star ! 3678 3433 Star ! 3678 3410 Star ! 3678 3387 Star ! 3678 3364 Star ! 3678 3341 Star ! 3678 3318 Star ! 3678 3296 Star ! 3678 3273 Star ! 3678 3250 Star ! 3678 3227 Star ! 3678 3204 Star ! 3678 3181 Star ! 3678 3159 Star ! 3678 3136 Star ! 3678 3113 Star ! 3678 3090 Star ! 3678 3067 Star ! 3678 3044 Star ! 3678 3021 Star ! 3678 2999 Star ! 3678 2976 Star ! 3678 2953 Star ! 3678 2930 Star ! 3678 2907 Star ! 3678 2884 Star ! 3678 2862 Star ! 3678 2839 Star ! 3678 2816 Star ! 3678 2793 Star ! 3678 2770 Star ! 3678 2747 Star ! 3678 2724 Star ! 3678 2702 Star ! 3678 2679 Star ! 3678 2656 Star ! 3678 2633 Star ! 3678 2610 Star ! 3710 3730 Star ! 3710 3707 Star ! 3710 3684 Star ! 3710 3661 Star ! 3710 3638 Star ! 3710 3615 Star ! 3710 3593 Star ! 3710 3570 Star ! 3710 3547 Star ! 3710 3524 Star ! 3710 3501 Star ! 3710 3478 Star ! 3710 3456 Star ! 3710 3433 Star ! 3710 3410 Star ! 3710 3387 Star ! 3710 3364 Star ! 3710 3341 Star ! 3710 3318 Star ! 3710 3296 Star ! 3710 3273 Star ! 3710 3250 Star ! 3710 3227 Star ! 3710 3204 Star ! 3710 3181 Star ! 3710 3159 Star ! 3710 3136 Star ! 3710 3113 Star ! 3710 3090 Star ! 3710 3067 Star ! 3710 3044 Star ! 3710 3021 Star ! 3710 2999 Star ! 3710 2976 Star ! 3710 2953 Star ! 3710 2930 Star ! 3710 2907 Star ! 3710 2884 Star ! 3710 2862 Star ! 3710 2839 Star ! 3710 2816 Star ! 3710 2793 Star ! 3710 2770 Star ! 3710 2747 Star ! 3710 2724 Star ! 3710 2702 Star ! 3710 2679 Star ! 3710 2656 Star ! 3710 2633 Star ! 3710 2610 Star ! 3710 2587 Star ! 3742 3707 Star ! 3742 3684 Star ! 3742 3661 Star ! 3742 3638 Star ! 3742 3615 Star ! 3742 3593 Star ! 3742 3570 Star ! 3742 3547 Star ! 3742 3524 Star ! 3742 3501 Star ! 3742 3478 Star ! 3742 3456 Star ! 3742 3433 Star ! 3742 3410 Star ! 3742 3387 Star ! 3742 3364 Star ! 3742 3341 Star ! 3742 3318 Star ! 3742 3296 Star ! 3742 3273 Star ! 3742 3250 Star ! 3742 3227 Star ! 3742 3204 Star ! 3742 3181 Star ! 3742 3159 Star ! 3742 3136 Star ! 3742 3113 Star ! 3742 3090 Star ! 3742 3067 Star ! 3742 3044 Star ! 3742 3021 Star ! 3742 2999 Star ! 3742 2976 Star ! 3742 2953 Star ! 3742 2930 Star ! 3742 2907 Star ! 3742 2884 Star ! 3742 2862 Star ! 3742 2839 Star ! 3742 2816 Star ! 3742 2793 Star ! 3742 2770 Star ! 3742 2747 Star ! 3742 2724 Star ! 3742 2702 Star ! 3742 2679 Star ! 3742 2656 Star ! 3742 2633 Star ! 3742 2610 Star ! 3742 2587 Star ! 3742 2565 Star ! 3774 3707 Star ! 3774 3684 Star ! 3774 3661 Star ! 3774 3638 Star ! 3774 3615 Star ! 3774 3593 Star ! 3774 3570 Star ! 3774 3547 Star ! 3774 3524 Star ! 3774 3501 Star ! 3774 3478 Star ! 3774 3456 Star ! 3774 3433 Star ! 3774 3410 Star ! 3774 3387 Star ! 3774 3364 Star ! 3774 3341 Star ! 3774 3318 Star ! 3774 3296 Star ! 3774 3273 Star ! 3774 3250 Star ! 3774 3227 Star ! 3774 3204 Star ! 3774 3181 Star ! 3774 3159 Star ! 3774 3136 Star ! 3774 3113 Star ! 3774 3090 Star ! 3774 3067 Star ! 3774 3044 Star ! 3774 3021 Star ! 3774 2999 Star ! 3774 2976 Star ! 3774 2953 Star ! 3774 2930 Star ! 3774 2907 Star ! 3774 2884 Star ! 3774 2862 Star ! 3774 2839 Star ! 3774 2816 Star ! 3774 2793 Star ! 3774 2770 Star ! 3774 2747 Star ! 3774 2724 Star ! 3774 2702 Star ! 3774 2679 Star ! 3774 2656 Star ! 3774 2633 Star ! 3774 2610 Star ! 3774 2587 Star ! 3774 2565 Star ! 3774 2542 Star ! 3806 3684 Star ! 3806 3661 Star ! 3806 3638 Star ! 3806 3615 Star ! 3806 3593 Star ! 3806 3570 Star ! 3806 3547 Star ! 3806 3524 Star ! 3806 3501 Star ! 3806 3478 Star ! 3806 3456 Star ! 3806 3433 Star ! 3806 3410 Star ! 3806 3387 Star ! 3806 3364 Star ! 3806 3341 Star ! 3806 3318 Star ! 3806 3296 Star ! 3806 3273 Star ! 3806 3250 Star ! 3806 3227 Star ! 3806 3204 Star ! 3806 3181 Star ! 3806 3159 Star ! 3806 3136 Star ! 3806 3113 Star ! 3806 3090 Star ! 3806 3067 Star ! 3806 3044 Star ! 3806 3021 Star ! 3806 2999 Star ! 3806 2976 Star ! 3806 2953 Star ! 3806 2930 Star ! 3806 2907 Star ! 3806 2884 Star ! 3806 2862 Star ! 3806 2839 Star ! 3806 2816 Star ! 3806 2793 Star ! 3806 2770 Star ! 3806 2747 Star ! 3806 2724 Star ! 3806 2702 Star ! 3806 2679 Star ! 3806 2656 Star ! 3806 2633 Star ! 3806 2610 Star ! 3806 2587 Star ! 3806 2565 Star ! 3806 2542 Star ! 3806 2519 Star ! 3839 3684 Star ! 3839 3661 Star ! 3839 3638 Star ! 3839 3615 Star ! 3839 3593 Star ! 3839 3570 Star ! 3839 3547 Star ! 3839 3524 Star ! 3839 3501 Star ! 3839 3478 Star ! 3839 3456 Star ! 3839 3433 Star ! 3839 3410 Star ! 3839 3387 Star ! 3839 3364 Star ! 3839 3341 Star ! 3839 3318 Star ! 3839 3296 Star ! 3839 3273 Star ! 3839 3250 Star ! 3839 3227 Star ! 3839 3204 Star ! 3839 3181 Star ! 3839 3159 Star ! 3839 3136 Star ! 3839 3113 Star ! 3839 3090 Star ! 3839 3067 Star ! 3839 3044 Star ! 3839 3021 Star ! 3839 2999 Star ! 3839 2976 Star ! 3839 2953 Star ! 3839 2930 Star ! 3839 2907 Star ! 3839 2884 Star ! 3839 2862 Star ! 3839 2839 Star ! 3839 2816 Star ! 3839 2793 Star ! 3839 2770 Star ! 3839 2747 Star ! 3839 2724 Star ! 3839 2702 Star ! 3839 2679 Star ! 3839 2656 Star ! 3839 2633 Star ! 3839 2610 Star ! 3839 2587 Star ! 3839 2565 Star ! 3839 2542 Star ! 3839 2519 Star ! 3839 2496 Star ! 3871 3661 Star ! 3871 3638 Star ! 3871 3615 Star ! 3871 3593 Star ! 3871 3570 Star ! 3871 3547 Star ! 3871 3524 Star ! 3871 3501 Star ! 3871 3478 Star ! 3871 3456 Star ! 3871 3433 Star ! 3871 3410 Star ! 3871 3387 Star ! 3871 3364 Star ! 3871 3341 Star ! 3871 3318 Star ! 3871 3296 Star ! 3871 3273 Star ! 3871 3250 Star ! 3871 3227 Star ! 3871 3204 Star ! 3871 3181 Star ! 3871 3159 Star ! 3871 3136 Star ! 3871 3113 Star ! 3871 3090 Star ! 3871 3067 Star ! 3871 3044 Star ! 3871 3021 Star ! 3871 2999 Star ! 3871 2976 Star ! 3871 2953 Star ! 3871 2930 Star ! 3871 2907 Star ! 3871 2884 Star ! 3871 2862 Star ! 3871 2839 Star ! 3871 2816 Star ! 3871 2793 Star ! 3871 2770 Star ! 3871 2747 Star ! 3871 2724 Star ! 3871 2702 Star ! 3871 2679 Star ! 3871 2656 Star ! 3871 2633 Star ! 3871 2610 Star ! 3871 2587 Star ! 3871 2565 Star ! 3871 2542 Star ! 3871 2519 Star ! 3871 2496 Star ! 3871 2473 Star ! 3903 3661 Star ! 3903 3638 Star ! 3903 3615 Star ! 3903 3593 Star ! 3903 3570 Star ! 3903 3547 Star ! 3903 3524 Star ! 3903 3501 Star ! 3903 3478 Star ! 3903 3456 Star ! 3903 3433 Star ! 3903 3410 Star ! 3903 3387 Star ! 3903 3364 Star ! 3903 3341 Star ! 3903 3318 Star ! 3903 3296 Star ! 3903 3273 Star ! 3903 3250 Star ! 3903 3227 Star ! 3903 3204 Star ! 3903 3181 Star ! 3903 3159 Star ! 3903 3136 Star ! 3903 3113 Star ! 3903 3090 Star ! 3903 3067 Star ! 3903 3044 Star ! 3903 3021 Star ! 3903 2999 Star ! 3903 2976 Star ! 3903 2953 Star ! 3903 2930 Star ! 3903 2907 Star ! 3903 2884 Star ! 3903 2862 Star ! 3903 2839 Star ! 3903 2816 Star ! 3903 2793 Star ! 3903 2770 Star ! 3903 2747 Star ! 3903 2724 Star ! 3903 2702 Star ! 3903 2679 Star ! 3903 2656 Star ! 3903 2633 Star ! 3903 2610 Star ! 3903 2587 Star ! 3903 2565 Star ! 3903 2542 Star ! 3903 2519 Star ! 3903 2496 Star ! 3903 2473 Star ! 3903 2450 Star ! 3935 3638 Star ! 3935 3615 Star ! 3935 3593 Star ! 3935 3570 Star ! 3935 3547 Star ! 3935 3524 Star ! 3935 3501 Star ! 3935 3478 Star ! 3935 3456 Star ! 3935 3433 Star ! 3935 3410 Star ! 3935 3387 Star ! 3935 3364 Star ! 3935 3341 Star ! 3935 3318 Star ! 3935 3296 Star ! 3935 3273 Star ! 3935 3250 Star ! 3935 3227 Star ! 3935 3204 Star ! 3935 3181 Star ! 3935 3159 Star ! 3935 3136 Star ! 3935 3113 Star ! 3935 3090 Star ! 3935 3067 Star ! 3935 3044 Star ! 3935 3021 Star ! 3935 2999 Star ! 3935 2976 Star ! 3935 2953 Star ! 3935 2930 Star ! 3935 2907 Star ! 3935 2884 Star ! 3935 2862 Star ! 3935 2839 Star ! 3935 2816 Star ! 3935 2793 Star ! 3935 2770 Star ! 3935 2747 Star ! 3935 2724 Star ! 3935 2702 Star ! 3935 2679 Star ! 3935 2656 Star ! 3935 2633 Star ! 3935 2610 Star ! 3935 2587 Star ! 3935 2565 Star ! 3935 2542 Star ! 3935 2519 Star ! 3935 2496 Star ! 3935 2473 Star ! 3935 2450 Star ! 3935 2428 Star ! 3967 3638 Star ! 3967 3615 Star ! 3967 3593 Star ! 3967 3570 Star ! 3967 3547 Star ! 3967 3524 Star ! 3967 3501 Star ! 3967 3478 Star ! 3967 3456 Star ! 3967 3433 Star ! 3967 3410 Star ! 3967 3387 Star ! 3967 3364 Star ! 3967 3341 Star ! 3967 3318 Star ! 3967 3296 Star ! 3967 3273 Star ! 3967 3250 Star ! 3967 3227 Star ! 3967 3204 Star ! 3967 3181 Star ! 3967 3159 Star ! 3967 3136 Star ! 3967 3113 Star ! 3967 3090 Star ! 3967 3067 Star ! 3967 3044 Star ! 3967 3021 Star ! 3967 2999 Star ! 3967 2976 Star ! 3967 2953 Star ! 3967 2930 Star ! 3967 2907 Star ! 3967 2884 Star ! 3967 2862 Star ! 3967 2839 Star ! 3967 2816 Star ! 3967 2793 Star ! 3967 2770 Star ! 3967 2747 Star ! 3967 2724 Star ! 3967 2702 Star ! 3967 2679 Star ! 3967 2656 Star ! 3967 2633 Star ! 3967 2610 Star ! 3967 2587 Star ! 3967 2565 Star ! 3967 2542 Star ! 3967 2519 Star ! 3967 2496 Star ! 3967 2473 Star ! 3967 2450 Star ! 3967 2428 Star ! 3967 2405 Star ! 4000 3615 Star ! 4000 3593 Star ! 4000 3570 Star ! 4000 3547 Star ! 4000 3524 Star ! 4000 3501 Star ! 4000 3478 Star ! 4000 3456 Star ! 4000 3433 Star ! 4000 3410 Star ! 4000 3387 Star ! 4000 3364 Star ! 4000 3341 Star ! 4000 3318 Star ! 4000 3296 Star ! 4000 3273 Star ! 4000 3250 Star ! 4000 3227 Star ! 4000 3204 Star ! 4000 3181 Star ! 4000 3159 Star ! 4000 3136 Star ! 4000 3113 Star ! 4000 3090 Star ! 4000 3067 Star ! 4000 3044 Star ! 4000 3021 Star ! 4000 2999 Star ! 4000 2976 Star ! 4000 2953 Star ! 4000 2930 Star ! 4000 2907 Star ! 4000 2884 Star ! 4000 2862 Star ! 4000 2839 Star ! 4000 2816 Star ! 4000 2793 Star ! 4000 2770 Star ! 4000 2747 Star ! 4000 2724 Star ! 4000 2702 Star ! 4000 2679 Star ! 4000 2656 Star ! 4000 2633 Star ! 4000 2610 Star ! 4000 2587 Star ! 4000 2565 Star ! 4000 2542 Star ! 4000 2519 Star ! 4000 2496 Star ! 4000 2473 Star ! 4000 2450 Star ! 4000 2428 Star ! 4000 2405 Star ! 4000 2382 Star ! 4032 3615 Star ! 4032 3593 Star ! 4032 3570 Star ! 4032 3547 Star ! 4032 3524 Star ! 4032 3501 Star ! 4032 3478 Star ! 4032 3456 Star ! 4032 3433 Star ! 4032 3410 Star ! 4032 3387 Star ! 4032 3364 Star ! 4032 3341 Star ! 4032 3318 Star ! 4032 3296 Star ! 4032 3273 Star ! 4032 3250 Star ! 4032 3227 Star ! 4032 3204 Star ! 4032 3181 Star ! 4032 3159 Star ! 4032 3136 Star ! 4032 3113 Star ! 4032 3090 Star ! 4032 3067 Star ! 4032 3044 Star ! 4032 3021 Star ! 4032 2999 Star ! 4032 2976 Star ! 4032 2953 Star ! 4032 2930 Star ! 4032 2907 Star ! 4032 2884 Star ! 4032 2862 Star ! 4032 2839 Star ! 4032 2816 Star ! 4032 2793 Star ! 4032 2770 Star ! 4032 2747 Star ! 4032 2724 Star ! 4032 2702 Star ! 4032 2679 Star ! 4032 2656 Star ! 4032 2633 Star ! 4032 2610 Star ! 4032 2587 Star ! 4032 2565 Star ! 4032 2542 Star ! 4032 2519 Star ! 4032 2496 Star ! 4032 2473 Star ! 4032 2450 Star ! 4032 2428 Star ! 4032 2405 Star ! 4032 2382 Star ! 4032 2359 Star ! 4064 3593 Star ! 4064 3570 Star ! 4064 3547 Star ! 4064 3524 Star ! 4064 3501 Star ! 4064 3478 Star ! 4064 3456 Star ! 4064 3433 Star ! 4064 3410 Star ! 4064 3387 Star ! 4064 3364 Star ! 4064 3341 Star ! 4064 3318 Star ! 4064 3296 Star ! 4064 3273 Star ! 4064 3250 Star ! 4064 3227 Star ! 4064 3204 Star ! 4064 3181 Star ! 4064 3159 Star ! 4064 3136 Star ! 4064 3113 Star ! 4064 3090 Star ! 4064 3067 Star ! 4064 3044 Star ! 4064 3021 Star ! 4064 2999 Star ! 4064 2976 Star ! 4064 2953 Star ! 4064 2930 Star ! 4064 2907 Star ! 4064 2884 Star ! 4064 2862 Star ! 4064 2839 Star ! 4064 2816 Star ! 4064 2793 Star ! 4064 2770 Star ! 4064 2747 Star ! 4064 2724 Star ! 4064 2702 Star ! 4064 2679 Star ! 4064 2656 Star ! 4064 2633 Star ! 4064 2610 Star ! 4064 2587 Star ! 4064 2565 Star ! 4064 2542 Star ! 4064 2519 Star ! 4064 2496 Star ! 4064 2473 Star ! 4064 2450 Star ! 4064 2428 Star ! 4064 2405 Star ! 4064 2382 Star ! 4064 2359 Star ! 4064 2336 Star ! 4096 3593 Star ! 4096 3570 Star ! 4096 3547 Star ! 4096 3524 Star ! 4096 3501 Star ! 4096 3478 Star ! 4096 3456 Star ! 4096 3433 Star ! 4096 3410 Star ! 4096 3387 Star ! 4096 3364 Star ! 4096 3341 Star ! 4096 3318 Star ! 4096 3296 Star ! 4096 3273 Star ! 4096 3250 Star ! 4096 3227 Star ! 4096 3204 Star ! 4096 3181 Star ! 4096 3159 Star ! 4096 3136 Star ! 4096 3113 Star ! 4096 3090 Star ! 4096 3067 Star ! 4096 3044 Star ! 4096 3021 Star ! 4096 2999 Star ! 4096 2976 Star ! 4096 2953 Star ! 4096 2930 Star ! 4096 2907 Star ! 4096 2884 Star ! 4096 2862 Star ! 4096 2839 Star ! 4096 2816 Star ! 4096 2793 Star ! 4096 2770 Star ! 4096 2747 Star ! 4096 2724 Star ! 4096 2702 Star ! 4096 2679 Star ! 4096 2656 Star ! 4096 2633 Star ! 4096 2610 Star ! 4096 2587 Star ! 4096 2565 Star ! 4096 2542 Star ! 4096 2519 Star ! 4096 2496 Star ! 4096 2473 Star ! 4096 2450 Star ! 4096 2428 Star ! 4096 2405 Star ! 4096 2382 Star ! 4096 2359 Star ! 4096 2336 Star ! 4096 2313 Star ! 4128 3570 Star ! 4128 3547 Star ! 4128 3524 Star ! 4128 3501 Star ! 4128 3478 Star ! 4128 3456 Star ! 4128 3433 Star ! 4128 3410 Star ! 4128 3387 Star ! 4128 3364 Star ! 4128 3341 Star ! 4128 3318 Star ! 4128 3296 Star ! 4128 3273 Star ! 4128 3250 Star ! 4128 3227 Star ! 4128 3204 Star ! 4128 3181 Star ! 4128 3159 Star ! 4128 3136 Star ! 4128 3113 Star ! 4128 3090 Star ! 4128 3067 Star ! 4128 3044 Star ! 4128 3021 Star ! 4128 2999 Star ! 4128 2976 Star ! 4128 2953 Star ! 4128 2930 Star ! 4128 2907 Star ! 4128 2884 Star ! 4128 2862 Star ! 4128 2839 Star ! 4128 2816 Star ! 4128 2793 Star ! 4128 2770 Star ! 4128 2747 Star ! 4128 2724 Star ! 4128 2702 Star ! 4128 2679 Star ! 4128 2656 Star ! 4128 2633 Star ! 4128 2610 Star ! 4128 2587 Star ! 4128 2565 Star ! 4128 2542 Star ! 4128 2519 Star ! 4128 2496 Star ! 4128 2473 Star ! 4128 2450 Star ! 4128 2428 Star ! 4128 2405 Star ! 4128 2382 Star ! 4128 2359 Star ! 4128 2336 Star ! 4128 2313 Star ! 4128 2290 Star ! 4161 3570 Star ! 4161 3547 Star ! 4161 3524 Star ! 4161 3501 Star ! 4161 3478 Star ! 4161 3456 Star ! 4161 3433 Star ! 4161 3410 Star ! 4161 3387 Star ! 4161 3364 Star ! 4161 3341 Star ! 4161 3318 Star ! 4161 3296 Star ! 4161 3273 Star ! 4161 3250 Star ! 4161 3227 Star ! 4161 3204 Star ! 4161 3181 Star ! 4161 3159 Star ! 4161 3136 Star ! 4161 3113 Star ! 4161 3090 Star ! 4161 3067 Star ! 4161 3044 Star ! 4161 3021 Star ! 4161 2999 Star ! 4161 2976 Star ! 4161 2953 Star ! 4161 2930 Star ! 4161 2907 Star ! 4161 2884 Star ! 4161 2862 Star ! 4161 2839 Star ! 4161 2816 Star ! 4161 2793 Star ! 4161 2770 Star ! 4161 2747 Star ! 4161 2724 Star ! 4161 2702 Star ! 4161 2679 Star ! 4161 2656 Star ! 4161 2633 Star ! 4161 2610 Star ! 4161 2587 Star ! 4161 2565 Star ! 4161 2542 Star ! 4161 2519 Star ! 4161 2496 Star ! 4161 2473 Star ! 4161 2450 Star ! 4161 2428 Star ! 4161 2405 Star ! 4161 2382 Star ! 4161 2359 Star ! 4161 2336 Star ! 4161 2313 Star ! 4161 2290 Star ! 4161 2268 Star ! 4193 3547 Star ! 4193 3524 Star ! 4193 3501 Star ! 4193 3478 Star ! 4193 3456 Star ! 4193 3433 Star ! 4193 3410 Star ! 4193 3387 Star ! 4193 3364 Star ! 4193 3341 Star ! 4193 3318 Star ! 4193 3296 Star ! 4193 3273 Star ! 4193 3250 Star ! 4193 3227 Star ! 4193 3204 Star ! 4193 3181 Star ! 4193 3159 Star ! 4193 3136 Star ! 4193 3113 Star ! 4193 3090 Star ! 4193 3067 Star ! 4193 3044 Star ! 4193 3021 Star ! 4193 2999 Star ! 4193 2976 Star ! 4193 2953 Star ! 4193 2930 Star ! 4193 2907 Star ! 4193 2884 Star ! 4193 2862 Star ! 4193 2839 Star ! 4193 2816 Star ! 4193 2793 Star ! 4193 2770 Star ! 4193 2747 Star ! 4193 2724 Star ! 4193 2702 Star ! 4193 2679 Star ! 4193 2656 Star ! 4193 2633 Star ! 4193 2610 Star ! 4193 2587 Star ! 4193 2565 Star ! 4193 2542 Star ! 4193 2519 Star ! 4193 2496 Star ! 4193 2473 Star ! 4193 2450 Star ! 4193 2428 Star ! 4193 2405 Star ! 4193 2382 Star ! 4193 2359 Star ! 4193 2336 Star ! 4193 2313 Star ! 4193 2290 Star ! 4193 2268 Star ! 4193 2245 Star ! 4225 3547 Star ! 4225 3524 Star ! 4225 3501 Star ! 4225 3478 Star ! 4225 3456 Star ! 4225 3433 Star ! 4225 3410 Star ! 4225 3387 Star ! 4225 3364 Star ! 4225 3341 Star ! 4225 3318 Star ! 4225 3296 Star ! 4225 3273 Star ! 4225 3250 Star ! 4225 3227 Star ! 4225 3204 Star ! 4225 3181 Star ! 4225 3159 Star ! 4225 3136 Star ! 4225 3113 Star ! 4225 3090 Star ! 4225 3067 Star ! 4225 3044 Star ! 4225 3021 Star ! 4225 2999 Star ! 4225 2976 Star ! 4225 2953 Star ! 4225 2930 Star ! 4225 2907 Star ! 4225 2884 Star ! 4225 2862 Star ! 4225 2839 Star ! 4225 2816 Star ! 4225 2793 Star ! 4225 2770 Star ! 4225 2747 Star ! 4225 2724 Star ! 4225 2702 Star ! 4225 2679 Star ! 4225 2656 Star ! 4225 2633 Star ! 4225 2610 Star ! 4225 2587 Star ! 4225 2565 Star ! 4225 2542 Star ! 4225 2519 Star ! 4225 2496 Star ! 4225 2473 Star ! 4225 2450 Star ! 4225 2428 Star ! 4225 2405 Star ! 4225 2382 Star ! 4225 2359 Star ! 4225 2336 Star ! 4225 2313 Star ! 4225 2290 Star ! 4225 2268 Star ! 4225 2245 Star ! 4225 2222 Star ! 4257 3524 Star ! 4257 3501 Star ! 4257 3478 Star ! 4257 3456 Star ! 4257 3433 Star ! 4257 3410 Star ! 4257 3387 Star ! 4257 3364 Star ! 4257 3341 Star ! 4257 3318 Star ! 4257 3296 Star ! 4257 3273 Star ! 4257 3250 Star ! 4257 3227 Star ! 4257 3204 Star ! 4257 3181 Star ! 4257 3159 Star ! 4257 3136 Star ! 4257 3113 Star ! 4257 3090 Star ! 4257 3067 Star ! 4257 3044 Star ! 4257 3021 Star ! 4257 2999 Star ! 4257 2976 Star ! 4257 2953 Star ! 4257 2930 Star ! 4257 2907 Star ! 4257 2884 Star ! 4257 2862 Star ! 4257 2839 Star ! 4257 2816 Star ! 4257 2793 Star ! 4257 2770 Star ! 4257 2747 Star ! 4257 2724 Star ! 4257 2702 Star ! 4257 2679 Star ! 4257 2656 Star ! 4257 2633 Star ! 4257 2610 Star ! 4257 2587 Star ! 4257 2565 Star ! 4257 2542 Star ! 4257 2519 Star ! 4257 2496 Star ! 4257 2473 Star ! 4257 2450 Star ! 4257 2428 Star ! 4257 2405 Star ! 4257 2382 Star ! 4257 2359 Star ! 4257 2336 Star ! 4257 2313 Star ! 4257 2290 Star ! 4257 2268 Star ! 4257 2245 Star ! 4257 2222 Star ! 4257 2199 Star ! 4289 3524 Star ! 4289 3501 Star ! 4289 3478 Star ! 4289 3456 Star ! 4289 3433 Star ! 4289 3410 Star ! 4289 3387 Star ! 4289 3364 Star ! 4289 3341 Star ! 4289 3318 Star ! 4289 3296 Star ! 4289 3273 Star ! 4289 3250 Star ! 4289 3227 Star ! 4289 3204 Star ! 4289 3181 Star ! 4289 3159 Star ! 4289 3136 Star ! 4289 3113 Star ! 4289 3090 Star ! 4289 3067 Star ! 4289 3044 Star ! 4289 3021 Star ! 4289 2999 Star ! 4289 2976 Star ! 4289 2953 Star ! 4289 2930 Star ! 4289 2907 Star ! 4289 2884 Star ! 4289 2862 Star ! 4289 2839 Star ! 4289 2816 Star ! 4289 2793 Star ! 4289 2770 Star ! 4289 2747 Star ! 4289 2724 Star ! 4289 2702 Star ! 4289 2679 Star ! 4289 2656 Star ! 4289 2633 Star ! 4289 2610 Star ! 4289 2587 Star ! 4289 2565 Star ! 4289 2542 Star ! 4289 2519 Star ! 4289 2496 Star ! 4289 2473 Star ! 4289 2450 Star ! 4289 2428 Star ! 4289 2405 Star ! 4289 2382 Star ! 4289 2359 Star ! 4289 2336 Star ! 4289 2313 Star ! 4289 2290 Star ! 4289 2268 Star ! 4289 2245 Star ! 4289 2222 Star ! 4289 2199 Star ! 4289 2176 Star ! 4322 3501 Star ! 4322 3478 Star ! 4322 3456 Star ! 4322 3433 Star ! 4322 3410 Star ! 4322 3387 Star ! 4322 3364 Star ! 4322 3341 Star ! 4322 3318 Star ! 4322 3296 Star ! 4322 3273 Star ! 4322 3250 Star ! 4322 3227 Star ! 4322 3204 Star ! 4322 3181 Star ! 4322 3159 Star ! 4322 3136 Star ! 4322 3113 Star ! 4322 3090 Star ! 4322 3067 Star ! 4322 3044 Star ! 4322 3021 Star ! 4322 2999 Star ! 4322 2976 Star ! 4322 2953 Star ! 4322 2930 Star ! 4322 2907 Star ! 4322 2884 Star ! 4322 2862 Star ! 4322 2839 Star ! 4322 2816 Star ! 4322 2793 Star ! 4322 2770 Star ! 4322 2747 Star ! 4322 2724 Star ! 4322 2702 Star ! 4322 2679 Star ! 4322 2656 Star ! 4322 2633 Star ! 4322 2610 Star ! 4322 2587 Star ! 4322 2565 Star ! 4322 2542 Star ! 4322 2519 Star ! 4322 2496 Star ! 4322 2473 Star ! 4322 2450 Star ! 4322 2428 Star ! 4322 2405 Star ! 4322 2382 Star ! 4322 2359 Star ! 4322 2336 Star ! 4322 2313 Star ! 4322 2290 Star ! 4322 2268 Star ! 4322 2245 Star ! 4322 2222 Star ! 4322 2199 Star ! 4322 2176 Star ! 4322 2153 Star ! 4354 3501 Star ! 4354 3478 Star ! 4354 3456 Star ! 4354 3433 Star ! 4354 3410 Star ! 4354 3387 Star ! 4354 3364 Star ! 4354 3341 Star ! 4354 3318 Star ! 4354 3296 Star ! 4354 3273 Star ! 4354 3250 Star ! 4354 3227 Star ! 4354 3204 Star ! 4354 3181 Star ! 4354 3159 Star ! 4354 3136 Star ! 4354 3113 Star ! 4354 3090 Star ! 4354 3067 Star ! 4354 3044 Star ! 4354 3021 Star ! 4354 2999 Star ! 4354 2976 Star ! 4354 2953 Star ! 4354 2930 Star ! 4354 2907 Star ! 4354 2884 Star ! 4354 2862 Star ! 4354 2839 Star ! 4354 2816 Star ! 4354 2793 Star ! 4354 2770 Star ! 4354 2747 Star ! 4354 2724 Star ! 4354 2702 Star ! 4354 2679 Star ! 4354 2656 Star ! 4354 2633 Star ! 4354 2610 Star ! 4354 2587 Star ! 4354 2565 Star ! 4354 2542 Star ! 4354 2519 Star ! 4354 2496 Star ! 4354 2473 Star ! 4354 2450 Star ! 4354 2428 Star ! 4354 2405 Star ! 4354 2382 Star ! 4354 2359 Star ! 4354 2336 Star ! 4354 2313 Star ! 4354 2290 Star ! 4354 2268 Star ! 4354 2245 Star ! 4354 2222 Star ! 4354 2199 Star ! 4354 2176 Star ! 4354 2153 Star ! 4354 2131 Star ! 4386 3478 Star ! 4386 3456 Star ! 4386 3433 Star ! 4386 3410 Star ! 4386 3387 Star ! 4386 3364 Star ! 4386 3341 Star ! 4386 3318 Star ! 4386 3296 Star ! 4386 3273 Star ! 4386 3250 Star ! 4386 3227 Star ! 4386 3204 Star ! 4386 3181 Star ! 4386 3159 Star ! 4386 3136 Star ! 4386 3113 Star ! 4386 3090 Star ! 4386 3067 Star ! 4386 3044 Star ! 4386 3021 Star ! 4386 2999 Star ! 4386 2976 Star ! 4386 2953 Star ! 4386 2930 Star ! 4386 2907 Star ! 4386 2884 Star ! 4386 2862 Star ! 4386 2839 Star ! 4386 2816 Star ! 4386 2793 Star ! 4386 2770 Star ! 4386 2747 Star ! 4386 2724 Star ! 4386 2702 Star ! 4386 2679 Star ! 4386 2656 Star ! 4386 2633 Star ! 4386 2610 Star ! 4386 2587 Star ! 4386 2565 Star ! 4386 2542 Star ! 4386 2519 Star ! 4386 2496 Star ! 4386 2473 Star ! 4386 2450 Star ! 4386 2428 Star ! 4386 2405 Star ! 4386 2382 Star ! 4386 2359 Star ! 4386 2336 Star ! 4386 2313 Star ! 4386 2290 Star ! 4386 2268 Star ! 4386 2245 Star ! 4386 2222 Star ! 4386 2199 Star ! 4386 2176 Star ! 4386 2153 Star ! 4386 2131 Star ! 4386 2108 Star ! 4418 3478 Star ! 4418 3456 Star ! 4418 3433 Star ! 4418 3410 Star ! 4418 3387 Star ! 4418 3364 Star ! 4418 3341 Star ! 4418 3318 Star ! 4418 3296 Star ! 4418 3273 Star ! 4418 3250 Star ! 4418 3227 Star ! 4418 3204 Star ! 4418 3181 Star ! 4418 3159 Star ! 4418 3136 Star ! 4418 3113 Star ! 4418 3090 Star ! 4418 3067 Star ! 4418 3044 Star ! 4418 3021 Star ! 4418 2999 Star ! 4418 2976 Star ! 4418 2953 Star ! 4418 2930 Star ! 4418 2907 Star ! 4418 2884 Star ! 4418 2862 Star ! 4418 2839 Star ! 4418 2816 Star ! 4418 2793 Star ! 4418 2770 Star ! 4418 2747 Star ! 4418 2724 Star ! 4418 2702 Star ! 4418 2679 Star ! 4418 2656 Star ! 4418 2633 Star ! 4418 2610 Star ! 4418 2587 Star ! 4418 2565 Star ! 4418 2542 Star ! 4418 2519 Star ! 4418 2496 Star ! 4418 2473 Star ! 4418 2450 Star ! 4418 2428 Star ! 4418 2405 Star ! 4418 2382 Star ! 4418 2359 Star ! 4418 2336 Star ! 4418 2313 Star ! 4418 2290 Star ! 4418 2268 Star ! 4418 2245 Star ! 4418 2222 Star ! 4418 2199 Star ! 4418 2176 Star ! 4418 2153 Star ! 4418 2131 Star ! 4418 2108 Star ! 4418 2085 Star ! 4450 3456 Star ! 4450 3433 Star ! 4450 3410 Star ! 4450 3387 Star ! 4450 3364 Star ! 4450 3341 Star ! 4450 3318 Star ! 4450 3296 Star ! 4450 3273 Star ! 4450 3250 Star ! 4450 3227 Star ! 4450 3204 Star ! 4450 3181 Star ! 4450 3159 Star ! 4450 3136 Star ! 4450 3113 Star ! 4450 3090 Star ! 4450 3067 Star ! 4450 3044 Star ! 4450 3021 Star ! 4450 2999 Star ! 4450 2976 Star ! 4450 2953 Star ! 4450 2930 Star ! 4450 2907 Star ! 4450 2884 Star ! 4450 2862 Star ! 4450 2839 Star ! 4450 2816 Star ! 4450 2793 Star ! 4450 2770 Star ! 4450 2747 Star ! 4450 2724 Star ! 4450 2702 Star ! 4450 2679 Star ! 4450 2656 Star ! 4450 2633 Star ! 4450 2610 Star ! 4450 2587 Star ! 4450 2565 Star ! 4450 2542 Star ! 4450 2519 Star ! 4450 2496 Star ! 4450 2473 Star ! 4450 2450 Star ! 4450 2428 Star ! 4450 2405 Star ! 4450 2382 Star ! 4450 2359 Star ! 4450 2336 Star ! 4450 2313 Star ! 4450 2290 Star ! 4450 2268 Star ! 4450 2245 Star ! 4450 2222 Star ! 4450 2199 Star ! 4450 2176 Star ! 4450 2153 Star ! 4450 2131 Star ! 4450 2108 Star ! 4450 2085 Star ! 4450 2062 Star ! 4483 3456 Star ! 4483 3433 Star ! 4483 3410 Star ! 4483 3387 Star ! 4483 3364 Star ! 4483 3341 Star ! 4483 3318 Star ! 4483 3296 Star ! 4483 3273 Star ! 4483 3250 Star ! 4483 3227 Star ! 4483 3204 Star ! 4483 3181 Star ! 4483 3159 Star ! 4483 3136 Star ! 4483 3113 Star ! 4483 3090 Star ! 4483 3067 Star ! 4483 3044 Star ! 4483 3021 Star ! 4483 2999 Star ! 4483 2976 Star ! 4483 2953 Star ! 4483 2930 Star ! 4483 2907 Star ! 4483 2884 Star ! 4483 2862 Star ! 4483 2839 Star ! 4483 2816 Star ! 4483 2793 Star ! 4483 2770 Star ! 4483 2747 Star ! 4483 2724 Star ! 4483 2702 Star ! 4483 2679 Star ! 4483 2656 Star ! 4483 2633 Star ! 4483 2610 Star ! 4483 2587 Star ! 4483 2565 Star ! 4483 2542 Star ! 4483 2519 Star ! 4483 2496 Star ! 4483 2473 Star ! 4483 2450 Star ! 4483 2428 Star ! 4483 2405 Star ! 4483 2382 Star ! 4483 2359 Star ! 4483 2336 Star ! 4483 2313 Star ! 4483 2290 Star ! 4483 2268 Star ! 4483 2245 Star ! 4483 2222 Star ! 4483 2199 Star ! 4483 2176 Star ! 4483 2153 Star ! 4483 2131 Star ! 4483 2108 Star ! 4483 2085 Star ! 4483 2062 Star ! 4483 2039 Star ! 4515 3433 Star ! 4515 3410 Star ! 4515 3387 Star ! 4515 3364 Star ! 4515 3341 Star ! 4515 3318 Star ! 4515 3296 Star ! 4515 3273 Star ! 4515 3250 Star ! 4515 3227 Star ! 4515 3204 Star ! 4515 3181 Star ! 4515 3159 Star ! 4515 3136 Star ! 4515 3113 Star ! 4515 3090 Star ! 4515 3067 Star ! 4515 3044 Star ! 4515 3021 Star ! 4515 2999 Star ! 4515 2976 Star ! 4515 2953 Star ! 4515 2930 Star ! 4515 2907 Star ! 4515 2884 Star ! 4515 2862 Star ! 4515 2839 Star ! 4515 2816 Star ! 4515 2793 Star ! 4515 2770 Star ! 4515 2747 Star ! 4515 2724 Star ! 4515 2702 Star ! 4515 2679 Star ! 4515 2656 Star ! 4515 2633 Star ! 4515 2610 Star ! 4515 2587 Star ! 4515 2565 Star ! 4515 2542 Star ! 4515 2519 Star ! 4515 2496 Star ! 4515 2473 Star ! 4515 2450 Star ! 4515 2428 Star ! 4515 2405 Star ! 4515 2382 Star ! 4515 2359 Star ! 4515 2336 Star ! 4515 2313 Star ! 4515 2290 Star ! 4515 2268 Star ! 4515 2245 Star ! 4515 2222 Star ! 4515 2199 Star ! 4515 2176 Star ! 4515 2153 Star ! 4515 2131 Star ! 4515 2108 Star ! 4515 2085 Star ! 4515 2062 Star ! 4515 2039 Star ! 4515 2016 Star ! 4547 3433 Star ! 4547 3410 Star ! 4547 3387 Star ! 4547 3364 Star ! 4547 3341 Star ! 4547 3318 Star ! 4547 3296 Star ! 4547 3273 Star ! 4547 3250 Star ! 4547 3227 Star ! 4547 3204 Star ! 4547 3181 Star ! 4547 3159 Star ! 4547 3136 Star ! 4547 3113 Star ! 4547 3090 Star ! 4547 3067 Star ! 4547 3044 Star ! 4547 3021 Star ! 4547 2999 Star ! 4547 2976 Star ! 4547 2953 Star ! 4547 2930 Star ! 4547 2907 Star ! 4547 2884 Star ! 4547 2862 Star ! 4547 2839 Star ! 4547 2816 Star ! 4547 2793 Star ! 4547 2770 Star ! 4547 2747 Star ! 4547 2724 Star ! 4547 2702 Star ! 4547 2679 Star ! 4547 2656 Star ! 4547 2633 Star ! 4547 2610 Star ! 4547 2587 Star ! 4547 2565 Star ! 4547 2542 Star ! 4547 2519 Star ! 4547 2496 Star ! 4547 2473 Star ! 4547 2450 Star ! 4547 2428 Star ! 4547 2405 Star ! 4547 2382 Star ! 4547 2359 Star ! 4547 2336 Star ! 4547 2313 Star ! 4547 2290 Star ! 4547 2268 Star ! 4547 2245 Star ! 4547 2222 Star ! 4547 2199 Star ! 4547 2176 Star ! 4547 2153 Star ! 4547 2131 Star ! 4547 2108 Star ! 4547 2085 Star ! 4547 2062 Star ! 4547 2039 Star ! 4547 2016 Star ! 4547 1993 Star ! 4579 3410 Star ! 4579 3387 Star ! 4579 3364 Star ! 4579 3341 Star ! 4579 3318 Star ! 4579 3296 Star ! 4579 3273 Star ! 4579 3250 Star ! 4579 3227 Star ! 4579 3204 Star ! 4579 3181 Star ! 4579 3159 Star ! 4579 3136 Star ! 4579 3113 Star ! 4579 3090 Star ! 4579 3067 Star ! 4579 3044 Star ! 4579 3021 Star ! 4579 2999 Star ! 4579 2976 Star ! 4579 2953 Star ! 4579 2930 Star ! 4579 2907 Star ! 4579 2884 Star ! 4579 2862 Star ! 4579 2839 Star ! 4579 2816 Star ! 4579 2793 Star ! 4579 2770 Star ! 4579 2747 Star ! 4579 2724 Star ! 4579 2702 Star ! 4579 2679 Star ! 4579 2656 Star ! 4579 2633 Star ! 4579 2610 Star ! 4579 2587 Star ! 4579 2565 Star ! 4579 2542 Star ! 4579 2519 Star ! 4579 2496 Star ! 4579 2473 Star ! 4579 2450 Star ! 4579 2428 Star ! 4579 2405 Star ! 4579 2382 Star ! 4579 2359 Star ! 4579 2336 Star ! 4579 2313 Star ! 4579 2290 Star ! 4579 2268 Star ! 4579 2245 Star ! 4579 2222 Star ! 4579 2199 Star ! 4579 2176 Star ! 4579 2153 Star ! 4579 2131 Star ! 4579 2108 Star ! 4579 2085 Star ! 4579 2062 Star ! 4579 2039 Star ! 4579 2016 Star ! 4579 1993 Star ! 4579 1971 Star ! 4611 3410 Star ! 4611 3387 Star ! 4611 3364 Star ! 4611 3341 Star ! 4611 3318 Star ! 4611 3296 Star ! 4611 3273 Star ! 4611 3250 Star ! 4611 3227 Star ! 4611 3204 Star ! 4611 3181 Star ! 4611 3159 Star ! 4611 3136 Star ! 4611 3113 Star ! 4611 3090 Star ! 4611 3067 Star ! 4611 3044 Star ! 4611 3021 Star ! 4611 2999 Star ! 4611 2976 Star ! 4611 2953 Star ! 4611 2930 Star ! 4611 2907 Star ! 4611 2884 Star ! 4611 2862 Star ! 4611 2839 Star ! 4611 2816 Star ! 4611 2793 Star ! 4611 2770 Star ! 4611 2747 Star ! 4611 2724 Star ! 4611 2702 Star ! 4611 2679 Star ! 4611 2656 Star ! 4611 2633 Star ! 4611 2610 Star ! 4611 2587 Star ! 4611 2565 Star ! 4611 2542 Star ! 4611 2519 Star ! 4611 2496 Star ! 4611 2473 Star ! 4611 2450 Star ! 4611 2428 Star ! 4611 2405 Star ! 4611 2382 Star ! 4611 2359 Star ! 4611 2336 Star ! 4611 2313 Star ! 4611 2290 Star ! 4611 2268 Star ! 4611 2245 Star ! 4611 2222 Star ! 4611 2199 Star ! 4611 2176 Star ! 4611 2153 Star ! 4611 2131 Star ! 4611 2108 Star ! 4611 2085 Star ! 4611 2062 Star ! 4611 2039 Star ! 4611 2016 Star ! 4611 1993 Star ! 4611 1971 Star ! 4611 1948 Star ! 4644 3387 Star ! 4644 3364 Star ! 4644 3341 Star ! 4644 3318 Star ! 4644 3296 Star ! 4644 3273 Star ! 4644 3250 Star ! 4644 3227 Star ! 4644 3204 Star ! 4644 3181 Star ! 4644 3159 Star ! 4644 3136 Star ! 4644 3113 Star ! 4644 3090 Star ! 4644 3067 Star ! 4644 3044 Star ! 4644 3021 Star ! 4644 2999 Star ! 4644 2976 Star ! 4644 2953 Star ! 4644 2930 Star ! 4644 2907 Star ! 4644 2884 Star ! 4644 2862 Star ! 4644 2839 Star ! 4644 2816 Star ! 4644 2793 Star ! 4644 2770 Star ! 4644 2747 Star ! 4644 2724 Star ! 4644 2702 Star ! 4644 2679 Star ! 4644 2656 Star ! 4644 2633 Star ! 4644 2610 Star ! 4644 2587 Star ! 4644 2565 Star ! 4644 2542 Star ! 4644 2519 Star ! 4644 2496 Star ! 4644 2473 Star ! 4644 2450 Star ! 4644 2428 Star ! 4644 2405 Star ! 4644 2382 Star ! 4644 2359 Star ! 4644 2336 Star ! 4644 2313 Star ! 4644 2290 Star ! 4644 2268 Star ! 4644 2245 Star ! 4644 2222 Star ! 4644 2199 Star ! 4644 2176 Star ! 4644 2153 Star ! 4644 2131 Star ! 4644 2108 Star ! 4644 2085 Star ! 4644 2062 Star ! 4644 2039 Star ! 4644 2016 Star ! 4644 1993 Star ! 4644 1971 Star ! 4644 1948 Star ! 4644 1925 Star ! 4676 3387 Star ! 4676 3364 Star ! 4676 3341 Star ! 4676 3318 Star ! 4676 3296 Star ! 4676 3273 Star ! 4676 3250 Star ! 4676 3227 Star ! 4676 3204 Star ! 4676 3181 Star ! 4676 3159 Star ! 4676 3136 Star ! 4676 3113 Star ! 4676 3090 Star ! 4676 3067 Star ! 4676 3044 Star ! 4676 3021 Star ! 4676 2999 Star ! 4676 2976 Star ! 4676 2953 Star ! 4676 2930 Star ! 4676 2907 Star ! 4676 2884 Star ! 4676 2862 Star ! 4676 2839 Star ! 4676 2816 Star ! 4676 2793 Star ! 4676 2770 Star ! 4676 2747 Star ! 4676 2724 Star ! 4676 2702 Star ! 4676 2679 Star ! 4676 2656 Star ! 4676 2633 Star ! 4676 2610 Star ! 4676 2587 Star ! 4676 2565 Star ! 4676 2542 Star ! 4676 2519 Star ! 4676 2496 Star ! 4676 2473 Star ! 4676 2450 Star ! 4676 2428 Star ! 4676 2405 Star ! 4676 2382 Star ! 4676 2359 Star ! 4676 2336 Star ! 4676 2313 Star ! 4676 2290 Star ! 4676 2268 Star ! 4676 2245 Star ! 4676 2222 Star ! 4676 2199 Star ! 4676 2176 Star ! 4676 2153 Star ! 4676 2131 Star ! 4676 2108 Star ! 4676 2085 Star ! 4676 2062 Star ! 4676 2039 Star ! 4676 2016 Star ! 4676 1993 Star ! 4676 1971 Star ! 4676 1948 Star ! 4676 1925 Star ! 4676 1902 Star ! 4708 3364 Star ! 4708 3341 Star ! 4708 3318 Star ! 4708 3296 Star ! 4708 3273 Star ! 4708 3250 Star ! 4708 3227 Star ! 4708 3204 Star ! 4708 3181 Star ! 4708 3159 Star ! 4708 3136 Star ! 4708 3113 Star ! 4708 3090 Star ! 4708 3067 Star ! 4708 3044 Star ! 4708 3021 Star ! 4708 2999 Star ! 4708 2976 Star ! 4708 2953 Star ! 4708 2930 Star ! 4708 2907 Star ! 4708 2884 Star ! 4708 2862 Star ! 4708 2839 Star ! 4708 2816 Star ! 4708 2793 Star ! 4708 2770 Star ! 4708 2747 Star ! 4708 2724 Star ! 4708 2702 Star ! 4708 2679 Star ! 4708 2656 Star ! 4708 2633 Star ! 4708 2610 Star ! 4708 2587 Star ! 4708 2565 Star ! 4708 2542 Star ! 4708 2519 Star ! 4708 2496 Star ! 4708 2473 Star ! 4708 2450 Star ! 4708 2428 Star ! 4708 2405 Star ! 4708 2382 Star ! 4708 2359 Star ! 4708 2336 Star ! 4708 2313 Star ! 4708 2290 Star ! 4708 2268 Star ! 4708 2245 Star ! 4708 2222 Star ! 4708 2199 Star ! 4708 2176 Star ! 4708 2153 Star ! 4708 2131 Star ! 4708 2108 Star ! 4708 2085 Star ! 4708 2062 Star ! 4708 2039 Star ! 4708 2016 Star ! 4708 1993 Star ! 4708 1971 Star ! 4708 1948 Star ! 4708 1925 Star ! 4708 1902 Star ! 4708 1879 Star ! 4740 3364 Star ! 4740 3341 Star ! 4740 3318 Star ! 4740 3296 Star ! 4740 3273 Star ! 4740 3250 Star ! 4740 3227 Star ! 4740 3204 Star ! 4740 3181 Star ! 4740 3159 Star ! 4740 3136 Star ! 4740 3113 Star ! 4740 3090 Star ! 4740 3067 Star ! 4740 3044 Star ! 4740 3021 Star ! 4740 2999 Star ! 4740 2976 Star ! 4740 2953 Star ! 4740 2930 Star ! 4740 2907 Star ! 4740 2884 Star ! 4740 2862 Star ! 4740 2839 Star ! 4740 2816 Star ! 4740 2793 Star ! 4740 2770 Star ! 4740 2747 Star ! 4740 2724 Star ! 4740 2702 Star ! 4740 2679 Star ! 4740 2656 Star ! 4740 2633 Star ! 4740 2610 Star ! 4740 2587 Star ! 4740 2565 Star ! 4740 2542 Star ! 4740 2519 Star ! 4740 2496 Star ! 4740 2473 Star ! 4740 2450 Star ! 4740 2428 Star ! 4740 2405 Star ! 4740 2382 Star ! 4740 2359 Star ! 4740 2336 Star ! 4740 2313 Star ! 4740 2290 Star ! 4740 2268 Star ! 4740 2245 Star ! 4740 2222 Star ! 4740 2199 Star ! 4740 2176 Star ! 4740 2153 Star ! 4740 2131 Star ! 4740 2108 Star ! 4740 2085 Star ! 4740 2062 Star ! 4740 2039 Star ! 4740 2016 Star ! 4740 1993 Star ! 4740 1971 Star ! 4740 1948 Star ! 4740 1925 Star ! 4740 1902 Star ! 4740 1879 Star ! 4740 1856 Star ! 4772 3341 Star ! 4772 3318 Star ! 4772 3296 Star ! 4772 3273 Star ! 4772 3250 Star ! 4772 3227 Star ! 4772 3204 Star ! 4772 3181 Star ! 4772 3159 Star ! 4772 3136 Star ! 4772 3113 Star ! 4772 3090 Star ! 4772 3067 Star ! 4772 3044 Star ! 4772 3021 Star ! 4772 2999 Star ! 4772 2976 Star ! 4772 2953 Star ! 4772 2930 Star ! 4772 2907 Star ! 4772 2884 Star ! 4772 2862 Star ! 4772 2839 Star ! 4772 2816 Star ! 4772 2793 Star ! 4772 2770 Star ! 4772 2747 Star ! 4772 2724 Star ! 4772 2702 Star ! 4772 2679 Star ! 4772 2656 Star ! 4772 2633 Star ! 4772 2610 Star ! 4772 2587 Star ! 4772 2565 Star ! 4772 2542 Star ! 4772 2519 Star ! 4772 2496 Star ! 4772 2473 Star ! 4772 2450 Star ! 4772 2428 Star ! 4772 2405 Star ! 4772 2382 Star ! 4772 2359 Star ! 4772 2336 Star ! 4772 2313 Star ! 4772 2290 Star ! 4772 2268 Star ! 4772 2245 Star ! 4772 2222 Star ! 4772 2199 Star ! 4772 2176 Star ! 4772 2153 Star ! 4772 2131 Star ! 4772 2108 Star ! 4772 2085 Star ! 4772 2062 Star ! 4772 2039 Star ! 4772 2016 Star ! 4772 1993 Star ! 4772 1971 Star ! 4772 1948 Star ! 4772 1925 Star ! 4772 1902 Star ! 4772 1879 Star ! 4772 1856 Star ! 4772 1834 Star ! 4805 3341 Star ! 4805 3318 Star ! 4805 3296 Star ! 4805 3273 Star ! 4805 3250 Star ! 4805 3227 Star ! 4805 3204 Star ! 4805 3181 Star ! 4805 3159 Star ! 4805 3136 Star ! 4805 3113 Star ! 4805 3090 Star ! 4805 3067 Star ! 4805 3044 Star ! 4805 3021 Star ! 4805 2999 Star ! 4805 2976 Star ! 4805 2953 Star ! 4805 2930 Star ! 4805 2907 Star ! 4805 2884 Star ! 4805 2862 Star ! 4805 2839 Star ! 4805 2816 Star ! 4805 2793 Star ! 4805 2770 Star ! 4805 2747 Star ! 4805 2724 Star ! 4805 2702 Star ! 4805 2679 Star ! 4805 2656 Star ! 4805 2633 Star ! 4805 2610 Star ! 4805 2587 Star ! 4805 2565 Star ! 4805 2542 Star ! 4805 2519 Star ! 4805 2496 Star ! 4805 2473 Star ! 4805 2450 Star ! 4805 2428 Star ! 4805 2405 Star ! 4805 2382 Star ! 4805 2359 Star ! 4805 2336 Star ! 4805 2313 Star ! 4805 2290 Star ! 4805 2268 Star ! 4805 2245 Star ! 4805 2222 Star ! 4805 2199 Star ! 4805 2176 Star ! 4805 2153 Star ! 4805 2131 Star ! 4805 2108 Star ! 4805 2085 Star ! 4805 2062 Star ! 4805 2039 Star ! 4805 2016 Star ! 4805 1993 Star ! 4805 1971 Star ! 4805 1948 Star ! 4805 1925 Star ! 4805 1902 Star ! 4805 1879 Star ! 4805 1856 Star ! 4805 1834 Star ! 4805 1811 Star ! 4837 3318 Star ! 4837 3296 Star ! 4837 3273 Star ! 4837 3250 Star ! 4837 3227 Star ! 4837 3204 Star ! 4837 3181 Star ! 4837 3159 Star ! 4837 3136 Star ! 4837 3113 Star ! 4837 3090 Star ! 4837 3067 Star ! 4837 3044 Star ! 4837 3021 Star ! 4837 2999 Star ! 4837 2976 Star ! 4837 2953 Star ! 4837 2930 Star ! 4837 2907 Star ! 4837 2884 Star ! 4837 2862 Star ! 4837 2839 Star ! 4837 2816 Star ! 4837 2793 Star ! 4837 2770 Star ! 4837 2747 Star ! 4837 2724 Star ! 4837 2702 Star ! 4837 2679 Star ! 4837 2656 Star ! 4837 2633 Star ! 4837 2610 Star ! 4837 2587 Star ! 4837 2565 Star ! 4837 2542 Star ! 4837 2519 Star ! 4837 2496 Star ! 4837 2473 Star ! 4837 2450 Star ! 4837 2428 Star ! 4837 2405 Star ! 4837 2382 Star ! 4837 2359 Star ! 4837 2336 Star ! 4837 2313 Star ! 4837 2290 Star ! 4837 2268 Star ! 4837 2245 Star ! 4837 2222 Star ! 4837 2199 Star ! 4837 2176 Star ! 4837 2153 Star ! 4837 2131 Star ! 4837 2108 Star ! 4837 2085 Star ! 4837 2062 Star ! 4837 2039 Star ! 4837 2016 Star ! 4837 1993 Star ! 4837 1971 Star ! 4837 1948 Star ! 4837 1925 Star ! 4837 1902 Star ! 4837 1879 Star ! 4837 1856 Star ! 4837 1834 Star ! 4837 1811 Star ! 4837 1788 Star ! 4869 3318 Star ! 4869 3296 Star ! 4869 3273 Star ! 4869 3250 Star ! 4869 3227 Star ! 4869 3204 Star ! 4869 3181 Star ! 4869 3159 Star ! 4869 3136 Star ! 4869 3113 Star ! 4869 3090 Star ! 4869 3067 Star ! 4869 3044 Star ! 4869 3021 Star ! 4869 2999 Star ! 4869 2976 Star ! 4869 2953 Star ! 4869 2930 Star ! 4869 2907 Star ! 4869 2884 Star ! 4869 2862 Star ! 4869 2839 Star ! 4869 2816 Star ! 4869 2793 Star ! 4869 2770 Star ! 4869 2747 Star ! 4869 2724 Star ! 4869 2702 Star ! 4869 2679 Star ! 4869 2656 Star ! 4869 2633 Star ! 4869 2610 Star ! 4869 2587 Star ! 4869 2565 Star ! 4869 2542 Star ! 4869 2519 Star ! 4869 2496 Star ! 4869 2473 Star ! 4869 2450 Star ! 4869 2428 Star ! 4869 2405 Star ! 4869 2382 Star ! 4869 2359 Star ! 4869 2336 Star ! 4869 2313 Star ! 4869 2290 Star ! 4869 2268 Star ! 4869 2245 Star ! 4869 2222 Star ! 4869 2199 Star ! 4869 2176 Star ! 4869 2153 Star ! 4869 2131 Star ! 4869 2108 Star ! 4869 2085 Star ! 4869 2062 Star ! 4869 2039 Star ! 4869 2016 Star ! 4869 1993 Star ! 4869 1971 Star ! 4869 1948 Star ! 4869 1925 Star ! 4869 1902 Star ! 4869 1879 Star ! 4869 1856 Star ! 4869 1834 Star ! 4869 1811 Star ! 4869 1788 Star ! 4869 1765 Star ! 4901 3296 Star ! 4901 3273 Star ! 4901 3250 Star ! 4901 3227 Star ! 4901 3204 Star ! 4901 3181 Star ! 4901 3159 Star ! 4901 3136 Star ! 4901 3113 Star ! 4901 3090 Star ! 4901 3067 Star ! 4901 3044 Star ! 4901 3021 Star ! 4901 2999 Star ! 4901 2976 Star ! 4901 2953 Star ! 4901 2930 Star ! 4901 2907 Star ! 4901 2884 Star ! 4901 2862 Star ! 4901 2839 Star ! 4901 2816 Star ! 4901 2793 Star ! 4901 2770 Star ! 4901 2747 Star ! 4901 2724 Star ! 4901 2702 Star ! 4901 2679 Star ! 4901 2656 Star ! 4901 2633 Star ! 4901 2610 Star ! 4901 2587 Star ! 4901 2565 Star ! 4901 2542 Star ! 4901 2519 Star ! 4901 2496 Star ! 4901 2473 Star ! 4901 2450 Star ! 4901 2428 Star ! 4901 2405 Star ! 4901 2382 Star ! 4901 2359 Star ! 4901 2336 Star ! 4901 2313 Star ! 4901 2290 Star ! 4901 2268 Star ! 4901 2245 Star ! 4901 2222 Star ! 4901 2199 Star ! 4901 2176 Star ! 4901 2153 Star ! 4901 2131 Star ! 4901 2108 Star ! 4901 2085 Star ! 4901 2062 Star ! 4901 2039 Star ! 4901 2016 Star ! 4901 1993 Star ! 4901 1971 Star ! 4901 1948 Star ! 4901 1925 Star ! 4901 1902 Star ! 4901 1879 Star ! 4901 1856 Star ! 4901 1834 Star ! 4901 1811 Star ! 4901 1788 Star ! 4901 1765 Star ! 4901 1742 Star ! 4933 3296 Star ! 4933 3273 Star ! 4933 3250 Star ! 4933 3227 Star ! 4933 3204 Star ! 4933 3181 Star ! 4933 3159 Star ! 4933 3136 Star ! 4933 3113 Star ! 4933 3090 Star ! 4933 3067 Star ! 4933 3044 Star ! 4933 3021 Star ! 4933 2999 Star ! 4933 2976 Star ! 4933 2953 Star ! 4933 2930 Star ! 4933 2907 Star ! 4933 2884 Star ! 4933 2862 Star ! 4933 2839 Star ! 4933 2816 Star ! 4933 2793 Star ! 4933 2770 Star ! 4933 2747 Star ! 4933 2724 Star ! 4933 2702 Star ! 4933 2679 Star ! 4933 2656 Star ! 4933 2633 Star ! 4933 2610 Star ! 4933 2587 Star ! 4933 2565 Star ! 4933 2542 Star ! 4933 2519 Star ! 4933 2496 Star ! 4933 2473 Star ! 4933 2450 Star ! 4933 2428 Star ! 4933 2405 Star ! 4933 2382 Star ! 4933 2359 Star ! 4933 2336 Star ! 4933 2313 Star ! 4933 2290 Star ! 4933 2268 Star ! 4933 2245 Star ! 4933 2222 Star ! 4933 2199 Star ! 4933 2176 Star ! 4933 2153 Star ! 4933 2131 Star ! 4933 2108 Star ! 4933 2085 Star ! 4933 2062 Star ! 4933 2039 Star ! 4933 2016 Star ! 4933 1993 Star ! 4933 1971 Star ! 4933 1948 Star ! 4933 1925 Star ! 4933 1902 Star ! 4933 1879 Star ! 4933 1856 Star ! 4933 1834 Star ! 4933 1811 Star ! 4933 1788 Star ! 4933 1765 Star ! 4933 1742 Star ! 4933 1719 Star ! 4966 3273 Star ! 4966 3250 Star ! 4966 3227 Star ! 4966 3204 Star ! 4966 3181 Star ! 4966 3159 Star ! 4966 3136 Star ! 4966 3113 Star ! 4966 3090 Star ! 4966 3067 Star ! 4966 3044 Star ! 4966 3021 Star ! 4966 2999 Star ! 4966 2976 Star ! 4966 2953 Star ! 4966 2930 Star ! 4966 2907 Star ! 4966 2884 Star ! 4966 2862 Star ! 4966 2839 Star ! 4966 2816 Star ! 4966 2793 Star ! 4966 2770 Star ! 4966 2747 Star ! 4966 2724 Star ! 4966 2702 Star ! 4966 2679 Star ! 4966 2656 Star ! 4966 2633 Star ! 4966 2610 Star ! 4966 2587 Star ! 4966 2565 Star ! 4966 2542 Star ! 4966 2519 Star ! 4966 2496 Star ! 4966 2473 Star ! 4966 2450 Star ! 4966 2428 Star ! 4966 2405 Star ! 4966 2382 Star ! 4966 2359 Star ! 4966 2336 Star ! 4966 2313 Star ! 4966 2290 Star ! 4966 2268 Star ! 4966 2245 Star ! 4966 2222 Star ! 4966 2199 Star ! 4966 2176 Star ! 4966 2153 Star ! 4966 2131 Star ! 4966 2108 Star ! 4966 2085 Star ! 4966 2062 Star ! 4966 2039 Star ! 4966 2016 Star ! 4966 1993 Star ! 4966 1971 Star ! 4966 1948 Star ! 4966 1925 Star ! 4966 1902 Star ! 4966 1879 Star ! 4966 1856 Star ! 4966 1834 Star ! 4966 1811 Star ! 4966 1788 Star ! 4966 1765 Star ! 4966 1742 Star ! 4966 1719 Star ! 4966 1696 Star ! 4998 3273 Star ! 4998 3250 Star ! 4998 3227 Star ! 4998 3204 Star ! 4998 3181 Star ! 4998 3159 Star ! 4998 3136 Star ! 4998 3113 Star ! 4998 3090 Star ! 4998 3067 Star ! 4998 3044 Star ! 4998 3021 Star ! 4998 2999 Star ! 4998 2976 Star ! 4998 2953 Star ! 4998 2930 Star ! 4998 2907 Star ! 4998 2884 Star ! 4998 2862 Star ! 4998 2839 Star ! 4998 2816 Star ! 4998 2793 Star ! 4998 2770 Star ! 4998 2747 Star ! 4998 2724 Star ! 4998 2702 Star ! 4998 2679 Star ! 4998 2656 Star ! 4998 2633 Star ! 4998 2610 Star ! 4998 2587 Star ! 4998 2565 Star ! 4998 2542 Star ! 4998 2519 Star ! 4998 2496 Star ! 4998 2473 Star ! 4998 2450 Star ! 4998 2428 Star ! 4998 2405 Star ! 4998 2382 Star ! 4998 2359 Star ! 4998 2336 Star ! 4998 2313 Star ! 4998 2290 Star ! 4998 2268 Star ! 4998 2245 Star ! 4998 2222 Star ! 4998 2199 Star ! 4998 2176 Star ! 4998 2153 Star ! 4998 2131 Star ! 4998 2108 Star ! 4998 2085 Star ! 4998 2062 Star ! 4998 2039 Star ! 4998 2016 Star ! 4998 1993 Star ! 4998 1971 Star ! 4998 1948 Star ! 4998 1925 Star ! 4998 1902 Star ! 4998 1879 Star ! 4998 1856 Star ! 4998 1834 Star ! 4998 1811 Star ! 4998 1788 Star ! 4998 1765 Star ! 4998 1742 Star ! 4998 1719 Star ! 4998 1696 Star ! 4998 1674 Star ! 5030 3250 Star ! 5030 3227 Star ! 5030 3204 Star ! 5030 3181 Star ! 5030 3159 Star ! 5030 3136 Star ! 5030 3113 Star ! 5030 3090 Star ! 5030 3067 Star ! 5030 3044 Star ! 5030 3021 Star ! 5030 2999 Star ! 5030 2976 Star ! 5030 2953 Star ! 5030 2930 Star ! 5030 2907 Star ! 5030 2884 Star ! 5030 2862 Star ! 5030 2839 Star ! 5030 2816 Star ! 5030 2793 Star ! 5030 2770 Star ! 5030 2747 Star ! 5030 2724 Star ! 5030 2702 Star ! 5030 2679 Star ! 5030 2656 Star ! 5030 2633 Star ! 5030 2610 Star ! 5030 2587 Star ! 5030 2565 Star ! 5030 2542 Star ! 5030 2519 Star ! 5030 2496 Star ! 5030 2473 Star ! 5030 2450 Star ! 5030 2428 Star ! 5030 2405 Star ! 5030 2382 Star ! 5030 2359 Star ! 5030 2336 Star ! 5030 2313 Star ! 5030 2290 Star ! 5030 2268 Star ! 5030 2245 Star ! 5030 2222 Star ! 5030 2199 Star ! 5030 2176 Star ! 5030 2153 Star ! 5030 2131 Star ! 5030 2108 Star ! 5030 2085 Star ! 5030 2062 Star ! 5030 2039 Star ! 5030 2016 Star ! 5030 1993 Star ! 5030 1971 Star ! 5030 1948 Star ! 5030 1925 Star ! 5030 1902 Star ! 5030 1879 Star ! 5030 1856 Star ! 5030 1834 Star ! 5030 1811 Star ! 5030 1788 Star ! 5030 1765 Star ! 5030 1742 Star ! 5030 1719 Star ! 5030 1696 Star ! 5030 1674 Star ! 5030 1651 Star ! 5062 3250 Star ! 5062 3227 Star ! 5062 3204 Star ! 5062 3181 Star ! 5062 3159 Star ! 5062 3136 Star ! 5062 3113 Star ! 5062 3090 Star ! 5062 3067 Star ! 5062 3044 Star ! 5062 3021 Star ! 5062 2999 Star ! 5062 2976 Star ! 5062 2953 Star ! 5062 2930 Star ! 5062 2907 Star ! 5062 2884 Star ! 5062 2862 Star ! 5062 2839 Star ! 5062 2816 Star ! 5062 2793 Star ! 5062 2770 Star ! 5062 2747 Star ! 5062 2724 Star ! 5062 2702 Star ! 5062 2679 Star ! 5062 2656 Star ! 5062 2633 Star ! 5062 2610 Star ! 5062 2587 Star ! 5062 2565 Star ! 5062 2542 Star ! 5062 2519 Star ! 5062 2496 Star ! 5062 2473 Star ! 5062 2450 Star ! 5062 2428 Star ! 5062 2405 Star ! 5062 2382 Star ! 5062 2359 Star ! 5062 2336 Star ! 5062 2313 Star ! 5062 2290 Star ! 5062 2268 Star ! 5062 2245 Star ! 5062 2222 Star ! 5062 2199 Star ! 5062 2176 Star ! 5062 2153 Star ! 5062 2131 Star ! 5062 2108 Star ! 5062 2085 Star ! 5062 2062 Star ! 5062 2039 Star ! 5062 2016 Star ! 5062 1993 Star ! 5062 1971 Star ! 5062 1948 Star ! 5062 1925 Star ! 5062 1902 Star ! 5062 1879 Star ! 5062 1856 Star ! 5062 1834 Star ! 5062 1811 Star ! 5062 1788 Star ! 5062 1765 Star ! 5062 1742 Star ! 5062 1719 Star ! 5062 1696 Star ! 5062 1674 Star ! 5062 1651 Star ! 5062 1628 Star ! 5094 3227 Star ! 5094 3204 Star ! 5094 3181 Star ! 5094 3159 Star ! 5094 3136 Star ! 5094 3113 Star ! 5094 3090 Star ! 5094 3067 Star ! 5094 3044 Star ! 5094 3021 Star ! 5094 2999 Star ! 5094 2976 Star ! 5094 2953 Star ! 5094 2930 Star ! 5094 2907 Star ! 5094 2884 Star ! 5094 2862 Star ! 5094 2839 Star ! 5094 2816 Star ! 5094 2793 Star ! 5094 2770 Star ! 5094 2747 Star ! 5094 2724 Star ! 5094 2702 Star ! 5094 2679 Star ! 5094 2656 Star ! 5094 2633 Star ! 5094 2610 Star ! 5094 2587 Star ! 5094 2565 Star ! 5094 2542 Star ! 5094 2519 Star ! 5094 2496 Star ! 5094 2473 Star ! 5094 2450 Star ! 5094 2428 Star ! 5094 2405 Star ! 5094 2382 Star ! 5094 2359 Star ! 5094 2336 Star ! 5094 2313 Star ! 5094 2290 Star ! 5094 2268 Star ! 5094 2245 Star ! 5094 2222 Star ! 5094 2199 Star ! 5094 2176 Star ! 5094 2153 Star ! 5094 2131 Star ! 5094 2108 Star ! 5094 2085 Star ! 5094 2062 Star ! 5094 2039 Star ! 5094 2016 Star ! 5094 1993 Star ! 5094 1971 Star ! 5094 1948 Star ! 5094 1925 Star ! 5094 1902 Star ! 5094 1879 Star ! 5094 1856 Star ! 5094 1834 Star ! 5094 1811 Star ! 5094 1788 Star ! 5094 1765 Star ! 5094 1742 Star ! 5094 1719 Star ! 5094 1696 Star ! 5094 1674 Star ! 5094 1651 Star ! 5094 1628 Star ! 5094 1605 Star ! 5127 3227 Star ! 5127 3204 Star ! 5127 3181 Star ! 5127 3159 Star ! 5127 3136 Star ! 5127 3113 Star ! 5127 3090 Star ! 5127 3067 Star ! 5127 3044 Star ! 5127 3021 Star ! 5127 2999 Star ! 5127 2976 Star ! 5127 2953 Star ! 5127 2930 Star ! 5127 2907 Star ! 5127 2884 Star ! 5127 2862 Star ! 5127 2839 Star ! 5127 2816 Star ! 5127 2793 Star ! 5127 2770 Star ! 5127 2747 Star ! 5127 2724 Star ! 5127 2702 Star ! 5127 2679 Star ! 5127 2656 Star ! 5127 2633 Star ! 5127 2610 Star ! 5127 2587 Star ! 5127 2565 Star ! 5127 2542 Star ! 5127 2519 Star ! 5127 2496 Star ! 5127 2473 Star ! 5127 2450 Star ! 5127 2428 Star ! 5127 2405 Star ! 5127 2382 Star ! 5127 2359 Star ! 5127 2336 Star ! 5127 2313 Star ! 5127 2290 Star ! 5127 2268 Star ! 5127 2245 Star ! 5127 2222 Star ! 5127 2199 Star ! 5127 2176 Star ! 5127 2153 Star ! 5127 2131 Star ! 5127 2108 Star ! 5127 2085 Star ! 5127 2062 Star ! 5127 2039 Star ! 5127 2016 Star ! 5127 1993 Star ! 5127 1971 Star ! 5127 1948 Star ! 5127 1925 Star ! 5127 1902 Star ! 5127 1879 Star ! 5127 1856 Star ! 5127 1834 Star ! 5127 1811 Star ! 5127 1788 Star ! 5127 1765 Star ! 5127 1742 Star ! 5127 1719 Star ! 5127 1696 Star ! 5127 1674 Star ! 5127 1651 Star ! 5127 1628 Star ! 5127 1605 Star ! 5127 1582 Star ! 5159 3204 Star ! 5159 3181 Star ! 5159 3159 Star ! 5159 3136 Star ! 5159 3113 Star ! 5159 3090 Star ! 5159 3067 Star ! 5159 3044 Star ! 5159 3021 Star ! 5159 2999 Star ! 5159 2976 Star ! 5159 2953 Star ! 5159 2930 Star ! 5159 2907 Star ! 5159 2884 Star ! 5159 2862 Star ! 5159 2839 Star ! 5159 2816 Star ! 5159 2793 Star ! 5159 2770 Star ! 5159 2747 Star ! 5159 2724 Star ! 5159 2702 Star ! 5159 2679 Star ! 5159 2656 Star ! 5159 2633 Star ! 5159 2610 Star ! 5159 2587 Star ! 5159 2565 Star ! 5159 2542 Star ! 5159 2519 Star ! 5159 2496 Star ! 5159 2473 Star ! 5159 2450 Star ! 5159 2428 Star ! 5159 2405 Star ! 5159 2382 Star ! 5159 2359 Star ! 5159 2336 Star ! 5159 2313 Star ! 5159 2290 Star ! 5159 2268 Star ! 5159 2245 Star ! 5159 2222 Star ! 5159 2199 Star ! 5159 2176 Star ! 5159 2153 Star ! 5159 2131 Star ! 5159 2108 Star ! 5159 2085 Star ! 5159 2062 Star ! 5159 2039 Star ! 5159 2016 Star ! 5159 1993 Star ! 5159 1971 Star ! 5159 1948 Star ! 5159 1925 Star ! 5159 1902 Star ! 5159 1879 Star ! 5159 1856 Star ! 5159 1834 Star ! 5159 1811 Star ! 5159 1788 Star ! 5159 1765 Star ! 5159 1742 Star ! 5159 1719 Star ! 5159 1696 Star ! 5159 1674 Star ! 5159 1651 Star ! 5159 1628 Star ! 5159 1605 Star ! 5159 1582 Star ! 5159 1559 Star ! 5191 3204 Star ! 5191 3181 Star ! 5191 3159 Star ! 5191 3136 Star ! 5191 3113 Star ! 5191 3090 Star ! 5191 3067 Star ! 5191 3044 Star ! 5191 3021 Star ! 5191 2999 Star ! 5191 2976 Star ! 5191 2953 Star ! 5191 2930 Star ! 5191 2907 Star ! 5191 2884 Star ! 5191 2862 Star ! 5191 2839 Star ! 5191 2816 Star ! 5191 2793 Star ! 5191 2770 Star ! 5191 2747 Star ! 5191 2724 Star ! 5191 2702 Star ! 5191 2679 Star ! 5191 2656 Star ! 5191 2633 Star ! 5191 2610 Star ! 5191 2587 Star ! 5191 2565 Star ! 5191 2542 Star ! 5191 2519 Star ! 5191 2496 Star ! 5191 2473 Star ! 5191 2450 Star ! 5191 2428 Star ! 5191 2405 Star ! 5191 2382 Star ! 5191 2359 Star ! 5191 2336 Star ! 5191 2313 Star ! 5191 2290 Star ! 5191 2268 Star ! 5191 2245 Star ! 5191 2222 Star ! 5191 2199 Star ! 5191 2176 Star ! 5191 2153 Star ! 5191 2131 Star ! 5191 2108 Star ! 5191 2085 Star ! 5191 2062 Star ! 5191 2039 Star ! 5191 2016 Star ! 5191 1993 Star ! 5191 1971 Star ! 5191 1948 Star ! 5191 1925 Star ! 5191 1902 Star ! 5191 1879 Star ! 5191 1856 Star ! 5191 1834 Star ! 5191 1811 Star ! 5191 1788 Star ! 5191 1765 Star ! 5191 1742 Star ! 5191 1719 Star ! 5191 1696 Star ! 5191 1674 Star ! 5191 1651 Star ! 5191 1628 Star ! 5191 1605 Star ! 5191 1582 Star ! 5191 1559 Star ! 5191 1537 Star ! 5223 3181 Star ! 5223 3159 Star ! 5223 3136 Star ! 5223 3113 Star ! 5223 3090 Star ! 5223 3067 Star ! 5223 3044 Star ! 5223 3021 Star ! 5223 2999 Star ! 5223 2976 Star ! 5223 2953 Star ! 5223 2930 Star ! 5223 2907 Star ! 5223 2884 Star ! 5223 2862 Star ! 5223 2839 Star ! 5223 2816 Star ! 5223 2793 Star ! 5223 2770 Star ! 5223 2747 Star ! 5223 2724 Star ! 5223 2702 Star ! 5223 2679 Star ! 5223 2656 Star ! 5223 2633 Star ! 5223 2610 Star ! 5223 2587 Star ! 5223 2565 Star ! 5223 2542 Star ! 5223 2519 Star ! 5223 2496 Star ! 5223 2473 Star ! 5223 2450 Star ! 5223 2428 Star ! 5223 2405 Star ! 5223 2382 Star ! 5223 2359 Star ! 5223 2336 Star ! 5223 2313 Star ! 5223 2290 Star ! 5223 2268 Star ! 5223 2245 Star ! 5223 2222 Star ! 5223 2199 Star ! 5223 2176 Star ! 5223 2153 Star ! 5223 2131 Star ! 5223 2108 Star ! 5223 2085 Star ! 5223 2062 Star ! 5223 2039 Star ! 5223 2016 Star ! 5223 1993 Star ! 5223 1971 Star ! 5223 1948 Star ! 5223 1925 Star ! 5223 1902 Star ! 5223 1879 Star ! 5223 1856 Star ! 5223 1834 Star ! 5223 1811 Star ! 5223 1788 Star ! 5223 1765 Star ! 5223 1742 Star ! 5223 1719 Star ! 5223 1696 Star ! 5223 1674 Star ! 5223 1651 Star ! 5223 1628 Star ! 5223 1605 Star ! 5223 1582 Star ! 5223 1559 Star ! 5223 1537 Star ! 5223 1514 Star ! 5255 3181 Star ! 5255 3159 Star ! 5255 3136 Star ! 5255 3113 Star ! 5255 3090 Star ! 5255 3067 Star ! 5255 3044 Star ! 5255 3021 Star ! 5255 2999 Star ! 5255 2976 Star ! 5255 2953 Star ! 5255 2930 Star ! 5255 2907 Star ! 5255 2884 Star ! 5255 2862 Star ! 5255 2839 Star ! 5255 2816 Star ! 5255 2793 Star ! 5255 2770 Star ! 5255 2747 Star ! 5255 2724 Star ! 5255 2702 Star ! 5255 2679 Star ! 5255 2656 Star ! 5255 2633 Star ! 5255 2610 Star ! 5255 2587 Star ! 5255 2565 Star ! 5255 2542 Star ! 5255 2519 Star ! 5255 2496 Star ! 5255 2473 Star ! 5255 2450 Star ! 5255 2428 Star ! 5255 2405 Star ! 5255 2382 Star ! 5255 2359 Star ! 5255 2336 Star ! 5255 2313 Star ! 5255 2290 Star ! 5255 2268 Star ! 5255 2245 Star ! 5255 2222 Star ! 5255 2199 Star ! 5255 2176 Star ! 5255 2153 Star ! 5255 2131 Star ! 5255 2108 Star ! 5255 2085 Star ! 5255 2062 Star ! 5255 2039 Star ! 5255 2016 Star ! 5255 1993 Star ! 5255 1971 Star ! 5255 1948 Star ! 5255 1925 Star ! 5255 1902 Star ! 5255 1879 Star ! 5255 1856 Star ! 5255 1834 Star ! 5255 1811 Star ! 5255 1788 Star ! 5255 1765 Star ! 5255 1742 Star ! 5255 1719 Star ! 5255 1696 Star ! 5255 1674 Star ! 5255 1651 Star ! 5255 1628 Star ! 5255 1605 Star ! 5255 1582 Star ! 5255 1559 Star ! 5255 1537 Star ! 5255 1514 Star ! 5255 1491 Star ! 5288 3159 Star ! 5288 3136 Star ! 5288 3113 Star ! 5288 3090 Star ! 5288 3067 Star ! 5288 3044 Star ! 5288 3021 Star ! 5288 2999 Star ! 5288 2976 Star ! 5288 2953 Star ! 5288 2930 Star ! 5288 2907 Star ! 5288 2884 Star ! 5288 2862 Star ! 5288 2839 Star ! 5288 2816 Star ! 5288 2793 Star ! 5288 2770 Star ! 5288 2747 Star ! 5288 2724 Star ! 5288 2702 Star ! 5288 2679 Star ! 5288 2656 Star ! 5288 2633 Star ! 5288 2610 Star ! 5288 2587 Star ! 5288 2565 Star ! 5288 2542 Star ! 5288 2519 Star ! 5288 2496 Star ! 5288 2473 Star ! 5288 2450 Star ! 5288 2428 Star ! 5288 2405 Star ! 5288 2382 Star ! 5288 2359 Star ! 5288 2336 Star ! 5288 2313 Star ! 5288 2290 Star ! 5288 2268 Star ! 5288 2245 Star ! 5288 2222 Star ! 5288 2199 Star ! 5288 2176 Star ! 5288 2153 Star ! 5288 2131 Star ! 5288 2108 Star ! 5288 2085 Star ! 5288 2062 Star ! 5288 2039 Star ! 5288 2016 Star ! 5288 1993 Star ! 5288 1971 Star ! 5288 1948 Star ! 5288 1925 Star ! 5288 1902 Star ! 5288 1879 Star ! 5288 1856 Star ! 5288 1834 Star ! 5288 1811 Star ! 5288 1788 Star ! 5288 1765 Star ! 5288 1742 Star ! 5288 1719 Star ! 5288 1696 Star ! 5288 1674 Star ! 5288 1651 Star ! 5288 1628 Star ! 5288 1605 Star ! 5288 1582 Star ! 5288 1559 Star ! 5288 1537 Star ! 5288 1514 Star ! 5288 1491 Star ! 5288 1468 Star ! 5320 3159 Star ! 5320 3136 Star ! 5320 3113 Star ! 5320 3090 Star ! 5320 3067 Star ! 5320 3044 Star ! 5320 3021 Star ! 5320 2999 Star ! 5320 2976 Star ! 5320 2953 Star ! 5320 2930 Star ! 5320 2907 Star ! 5320 2884 Star ! 5320 2862 Star ! 5320 2839 Star ! 5320 2816 Star ! 5320 2793 Star ! 5320 2770 Star ! 5320 2747 Star ! 5320 2724 Star ! 5320 2702 Star ! 5320 2679 Star ! 5320 2656 Star ! 5320 2633 Star ! 5320 2610 Star ! 5320 2587 Star ! 5320 2565 Star ! 5320 2542 Star ! 5320 2519 Star ! 5320 2496 Star ! 5320 2473 Star ! 5320 2450 Star ! 5320 2428 Star ! 5320 2405 Star ! 5320 2382 Star ! 5320 2359 Star ! 5320 2336 Star ! 5320 2313 Star ! 5320 2290 Star ! 5320 2268 Star ! 5320 2245 Star ! 5320 2222 Star ! 5320 2199 Star ! 5320 2176 Star ! 5320 2153 Star ! 5320 2131 Star ! 5320 2108 Star ! 5320 2085 Star ! 5320 2062 Star ! 5320 2039 Star ! 5320 2016 Star ! 5320 1993 Star ! 5320 1971 Star ! 5320 1948 Star ! 5320 1925 Star ! 5320 1902 Star ! 5320 1879 Star ! 5320 1856 Star ! 5320 1834 Star ! 5320 1811 Star ! 5320 1788 Star ! 5320 1765 Star ! 5320 1742 Star ! 5320 1719 Star ! 5320 1696 Star ! 5320 1674 Star ! 5320 1651 Star ! 5320 1628 Star ! 5320 1605 Star ! 5320 1582 Star ! 5320 1559 Star ! 5320 1537 Star ! 5320 1514 Star ! 5320 1491 Star ! 5320 1468 Star ! 5320 1445 Star ! 5352 3136 Star ! 5352 3113 Star ! 5352 3090 Star ! 5352 3067 Star ! 5352 3044 Star ! 5352 3021 Star ! 5352 2999 Star ! 5352 2976 Star ! 5352 2953 Star ! 5352 2930 Star ! 5352 2907 Star ! 5352 2884 Star ! 5352 2862 Star ! 5352 2839 Star ! 5352 2816 Star ! 5352 2793 Star ! 5352 2770 Star ! 5352 2747 Star ! 5352 2724 Star ! 5352 2702 Star ! 5352 2679 Star ! 5352 2656 Star ! 5352 2633 Star ! 5352 2610 Star ! 5352 2587 Star ! 5352 2565 Star ! 5352 2542 Star ! 5352 2519 Star ! 5352 2496 Star ! 5352 2473 Star ! 5352 2450 Star ! 5352 2428 Star ! 5352 2405 Star ! 5352 2382 Star ! 5352 2359 Star ! 5352 2336 Star ! 5352 2313 Star ! 5352 2290 Star ! 5352 2268 Star ! 5352 2245 Star ! 5352 2222 Star ! 5352 2199 Star ! 5352 2176 Star ! 5352 2153 Star ! 5352 2131 Star ! 5352 2108 Star ! 5352 2085 Star ! 5352 2062 Star ! 5352 2039 Star ! 5352 2016 Star ! 5352 1993 Star ! 5352 1971 Star ! 5352 1948 Star ! 5352 1925 Star ! 5352 1902 Star ! 5352 1879 Star ! 5352 1856 Star ! 5352 1834 Star ! 5352 1811 Star ! 5352 1788 Star ! 5352 1765 Star ! 5352 1742 Star ! 5352 1719 Star ! 5352 1696 Star ! 5352 1674 Star ! 5352 1651 Star ! 5352 1628 Star ! 5352 1605 Star ! 5352 1582 Star ! 5352 1559 Star ! 5352 1537 Star ! 5352 1514 Star ! 5352 1491 Star ! 5352 1468 Star ! 5352 1445 Star ! 5352 1422 Star ! 5384 3136 Star ! 5384 3113 Star ! 5384 3090 Star ! 5384 3067 Star ! 5384 3044 Star ! 5384 3021 Star ! 5384 2999 Star ! 5384 2976 Star ! 5384 2953 Star ! 5384 2930 Star ! 5384 2907 Star ! 5384 2884 Star ! 5384 2862 Star ! 5384 2839 Star ! 5384 2816 Star ! 5384 2793 Star ! 5384 2770 Star ! 5384 2747 Star ! 5384 2724 Star ! 5384 2702 Star ! 5384 2679 Star ! 5384 2656 Star ! 5384 2633 Star ! 5384 2610 Star ! 5384 2587 Star ! 5384 2565 Star ! 5384 2542 Star ! 5384 2519 Star ! 5384 2496 Star ! 5384 2473 Star ! 5384 2450 Star ! 5384 2428 Star ! 5384 2405 Star ! 5384 2382 Star ! 5384 2359 Star ! 5384 2336 Star ! 5384 2313 Star ! 5384 2290 Star ! 5384 2268 Star ! 5384 2245 Star ! 5384 2222 Star ! 5384 2199 Star ! 5384 2176 Star ! 5384 2153 Star ! 5384 2131 Star ! 5384 2108 Star ! 5384 2085 Star ! 5384 2062 Star ! 5384 2039 Star ! 5384 2016 Star ! 5384 1993 Star ! 5384 1971 Star ! 5384 1948 Star ! 5384 1925 Star ! 5384 1902 Star ! 5384 1879 Star ! 5384 1856 Star ! 5384 1834 Star ! 5384 1811 Star ! 5384 1788 Star ! 5384 1765 Star ! 5384 1742 Star ! 5384 1719 Star ! 5384 1696 Star ! 5384 1674 Star ! 5384 1651 Star ! 5384 1628 Star ! 5384 1605 Star ! 5384 1582 Star ! 5384 1559 Star ! 5384 1537 Star ! 5384 1514 Star ! 5384 1491 Star ! 5384 1468 Star ! 5384 1445 Star ! 5384 1422 Star ! 5384 1399 Star ! 5416 3113 Star ! 5416 3090 Star ! 5416 3067 Star ! 5416 3044 Star ! 5416 3021 Star ! 5416 2999 Star ! 5416 2976 Star ! 5416 2953 Star ! 5416 2930 Star ! 5416 2907 Star ! 5416 2884 Star ! 5416 2862 Star ! 5416 2839 Star ! 5416 2816 Star ! 5416 2793 Star ! 5416 2770 Star ! 5416 2747 Star ! 5416 2724 Star ! 5416 2702 Star ! 5416 2679 Star ! 5416 2656 Star ! 5416 2633 Star ! 5416 2610 Star ! 5416 2587 Star ! 5416 2565 Star ! 5416 2542 Star ! 5416 2519 Star ! 5416 2496 Star ! 5416 2473 Star ! 5416 2450 Star ! 5416 2428 Star ! 5416 2405 Star ! 5416 2382 Star ! 5416 2359 Star ! 5416 2336 Star ! 5416 2313 Star ! 5416 2290 Star ! 5416 2268 Star ! 5416 2245 Star ! 5416 2222 Star ! 5416 2199 Star ! 5416 2176 Star ! 5416 2153 Star ! 5416 2131 Star ! 5416 2108 Star ! 5416 2085 Star ! 5416 2062 Star ! 5416 2039 Star ! 5416 2016 Star ! 5416 1993 Star ! 5416 1971 Star ! 5416 1948 Star ! 5416 1925 Star ! 5416 1902 Star ! 5416 1879 Star ! 5416 1856 Star ! 5416 1834 Star ! 5416 1811 Star ! 5416 1788 Star ! 5416 1765 Star ! 5416 1742 Star ! 5416 1719 Star ! 5416 1696 Star ! 5416 1674 Star ! 5416 1651 Star ! 5416 1628 Star ! 5416 1605 Star ! 5416 1582 Star ! 5416 1559 Star ! 5416 1537 Star ! 5416 1514 Star ! 5416 1491 Star ! 5416 1468 Star ! 5416 1445 Star ! 5416 1422 Star ! 5416 1399 Star ! 5416 1377 Star ! 5449 3113 Star ! 5449 3090 Star ! 5449 3067 Star ! 5449 3044 Star ! 5449 3021 Star ! 5449 2999 Star ! 5449 2976 Star ! 5449 2953 Star ! 5449 2930 Star ! 5449 2907 Star ! 5449 2884 Star ! 5449 2862 Star ! 5449 2839 Star ! 5449 2816 Star ! 5449 2793 Star ! 5449 2770 Star ! 5449 2747 Star ! 5449 2724 Star ! 5449 2702 Star ! 5449 2679 Star ! 5449 2656 Star ! 5449 2633 Star ! 5449 2610 Star ! 5449 2587 Star ! 5449 2565 Star ! 5449 2542 Star ! 5449 2519 Star ! 5449 2496 Star ! 5449 2473 Star ! 5449 2450 Star ! 5449 2428 Star ! 5449 2405 Star ! 5449 2382 Star ! 5449 2359 Star ! 5449 2336 Star ! 5449 2313 Star ! 5449 2290 Star ! 5449 2268 Star ! 5449 2245 Star ! 5449 2222 Star ! 5449 2199 Star ! 5449 2176 Star ! 5449 2153 Star ! 5449 2131 Star ! 5449 2108 Star ! 5449 2085 Star ! 5449 2062 Star ! 5449 2039 Star ! 5449 2016 Star ! 5449 1993 Star ! 5449 1971 Star ! 5449 1948 Star ! 5449 1925 Star ! 5449 1902 Star ! 5449 1879 Star ! 5449 1856 Star ! 5449 1834 Star ! 5449 1811 Star ! 5449 1788 Star ! 5449 1765 Star ! 5449 1742 Star ! 5449 1719 Star ! 5449 1696 Star ! 5449 1674 Star ! 5449 1651 Star ! 5449 1628 Star ! 5449 1605 Star ! 5449 1582 Star ! 5449 1559 Star ! 5449 1537 Star ! 5449 1514 Star ! 5449 1491 Star ! 5449 1468 Star ! 5449 1445 Star ! 5449 1422 Star ! 5449 1399 Star ! 5449 1377 Star ! 5449 1354 Star ! 5481 3090 Star ! 5481 3067 Star ! 5481 3044 Star ! 5481 3021 Star ! 5481 2999 Star ! 5481 2976 Star ! 5481 2953 Star ! 5481 2930 Star ! 5481 2907 Star ! 5481 2884 Star ! 5481 2862 Star ! 5481 2839 Star ! 5481 2816 Star ! 5481 2793 Star ! 5481 2770 Star ! 5481 2747 Star ! 5481 2724 Star ! 5481 2702 Star ! 5481 2679 Star ! 5481 2656 Star ! 5481 2633 Star ! 5481 2610 Star ! 5481 2587 Star ! 5481 2565 Star ! 5481 2542 Star ! 5481 2519 Star ! 5481 2496 Star ! 5481 2473 Star ! 5481 2450 Star ! 5481 2428 Star ! 5481 2405 Star ! 5481 2382 Star ! 5481 2359 Star ! 5481 2336 Star ! 5481 2313 Star ! 5481 2290 Star ! 5481 2268 Star ! 5481 2245 Star ! 5481 2222 Star ! 5481 2199 Star ! 5481 2176 Star ! 5481 2153 Star ! 5481 2131 Star ! 5481 2108 Star ! 5481 2085 Star ! 5481 2062 Star ! 5481 2039 Star ! 5481 2016 Star ! 5481 1993 Star ! 5481 1971 Star ! 5481 1948 Star ! 5481 1925 Star ! 5481 1902 Star ! 5481 1879 Star ! 5481 1856 Star ! 5481 1834 Star ! 5481 1811 Star ! 5481 1788 Star ! 5481 1765 Star ! 5481 1742 Star ! 5481 1719 Star ! 5481 1696 Star ! 5481 1674 Star ! 5481 1651 Star ! 5481 1628 Star ! 5481 1605 Star ! 5481 1582 Star ! 5481 1559 Star ! 5481 1537 Star ! 5481 1514 Star ! 5481 1491 Star ! 5481 1468 Star ! 5481 1445 Star ! 5481 1422 Star ! 5481 1399 Star ! 5481 1377 Star ! 5481 1354 Star ! 5481 1331 Star ! 5513 3090 Star ! 5513 3067 Star ! 5513 3044 Star ! 5513 3021 Star ! 5513 2999 Star ! 5513 2976 Star ! 5513 2953 Star ! 5513 2930 Star ! 5513 2907 Star ! 5513 2884 Star ! 5513 2862 Star ! 5513 2839 Star ! 5513 2816 Star ! 5513 2793 Star ! 5513 2770 Star ! 5513 2747 Star ! 5513 2724 Star ! 5513 2702 Star ! 5513 2679 Star ! 5513 2656 Star ! 5513 2633 Star ! 5513 2610 Star ! 5513 2587 Star ! 5513 2565 Star ! 5513 2542 Star ! 5513 2519 Star ! 5513 2496 Star ! 5513 2473 Star ! 5513 2450 Star ! 5513 2428 Star ! 5513 2405 Star ! 5513 2382 Star ! 5513 2359 Star ! 5513 2336 Star ! 5513 2313 Star ! 5513 2290 Star ! 5513 2268 Star ! 5513 2245 Star ! 5513 2222 Star ! 5513 2199 Star ! 5513 2176 Star ! 5513 2153 Star ! 5513 2131 Star ! 5513 2108 Star ! 5513 2085 Star ! 5513 2062 Star ! 5513 2039 Star ! 5513 2016 Star ! 5513 1993 Star ! 5513 1971 Star ! 5513 1948 Star ! 5513 1925 Star ! 5513 1902 Star ! 5513 1879 Star ! 5513 1856 Star ! 5513 1834 Star ! 5513 1811 Star ! 5513 1788 Star ! 5513 1765 Star ! 5513 1742 Star ! 5513 1719 Star ! 5513 1696 Star ! 5513 1674 Star ! 5513 1651 Star ! 5513 1628 Star ! 5513 1605 Star ! 5513 1582 Star ! 5513 1559 Star ! 5513 1537 Star ! 5513 1514 Star ! 5513 1491 Star ! 5513 1468 Star ! 5513 1445 Star ! 5513 1422 Star ! 5513 1399 Star ! 5513 1377 Star ! 5513 1354 Star ! 5513 1331 Star ! 5513 1308 Star ! 5545 3067 Star ! 5545 3044 Star ! 5545 3021 Star ! 5545 2999 Star ! 5545 2976 Star ! 5545 2953 Star ! 5545 2930 Star ! 5545 2907 Star ! 5545 2884 Star ! 5545 2862 Star ! 5545 2839 Star ! 5545 2816 Star ! 5545 2793 Star ! 5545 2770 Star ! 5545 2747 Star ! 5545 2724 Star ! 5545 2702 Star ! 5545 2679 Star ! 5545 2656 Star ! 5545 2633 Star ! 5545 2610 Star ! 5545 2587 Star ! 5545 2565 Star ! 5545 2542 Star ! 5545 2519 Star ! 5545 2496 Star ! 5545 2473 Star ! 5545 2450 Star ! 5545 2428 Star ! 5545 2405 Star ! 5545 2382 Star ! 5545 2359 Star ! 5545 2336 Star ! 5545 2313 Star ! 5545 2290 Star ! 5545 2268 Star ! 5545 2245 Star ! 5545 2222 Star ! 5545 2199 Star ! 5545 2176 Star ! 5545 2153 Star ! 5545 2131 Star ! 5545 2108 Star ! 5545 2085 Star ! 5545 2062 Star ! 5545 2039 Star ! 5545 2016 Star ! 5545 1993 Star ! 5545 1971 Star ! 5545 1948 Star ! 5545 1925 Star ! 5545 1902 Star ! 5545 1879 Star ! 5545 1856 Star ! 5545 1834 Star ! 5545 1811 Star ! 5545 1788 Star ! 5545 1765 Star ! 5545 1742 Star ! 5545 1719 Star ! 5545 1696 Star ! 5545 1674 Star ! 5545 1651 Star ! 5545 1628 Star ! 5545 1605 Star ! 5545 1582 Star ! 5545 1559 Star ! 5545 1537 Star ! 5545 1514 Star ! 5545 1491 Star ! 5545 1468 Star ! 5545 1445 Star ! 5545 1422 Star ! 5545 1399 Star ! 5545 1377 Star ! 5545 1354 Star ! 5545 1331 Star ! 5545 1308 Star ! 5545 1285 Star ! 5577 3067 Star ! 5577 3044 Star ! 5577 3021 Star ! 5577 2999 Star ! 5577 2976 Star ! 5577 2953 Star ! 5577 2930 Star ! 5577 2907 Star ! 5577 2884 Star ! 5577 2862 Star ! 5577 2839 Star ! 5577 2816 Star ! 5577 2793 Star ! 5577 2770 Star ! 5577 2747 Star ! 5577 2724 Star ! 5577 2702 Star ! 5577 2679 Star ! 5577 2656 Star ! 5577 2633 Star ! 5577 2610 Star ! 5577 2587 Star ! 5577 2565 Star ! 5577 2542 Star ! 5577 2519 Star ! 5577 2496 Star ! 5577 2473 Star ! 5577 2450 Star ! 5577 2428 Star ! 5577 2405 Star ! 5577 2382 Star ! 5577 2359 Star ! 5577 2336 Star ! 5577 2313 Star ! 5577 2290 Star ! 5577 2268 Star ! 5577 2245 Star ! 5577 2222 Star ! 5577 2199 Star ! 5577 2176 Star ! 5577 2153 Star ! 5577 2131 Star ! 5577 2108 Star ! 5577 2085 Star ! 5577 2062 Star ! 5577 2039 Star ! 5577 2016 Star ! 5577 1993 Star ! 5577 1971 Star ! 5577 1948 Star ! 5577 1925 Star ! 5577 1902 Star ! 5577 1879 Star ! 5577 1856 Star ! 5577 1834 Star ! 5577 1811 Star ! 5577 1788 Star ! 5577 1765 Star ! 5577 1742 Star ! 5577 1719 Star ! 5577 1696 Star ! 5577 1674 Star ! 5577 1651 Star ! 5577 1628 Star ! 5577 1605 Star ! 5577 1582 Star ! 5577 1559 Star ! 5577 1537 Star ! 5577 1514 Star ! 5577 1491 Star ! 5577 1468 Star ! 5577 1445 Star ! 5577 1422 Star ! 5577 1399 Star ! 5577 1377 Star ! 5577 1354 Star ! 5577 1331 Star ! 5577 1308 Star ! 5577 1285 Star ! 5577 1262 Star ! 5610 3044 Star ! 5610 3021 Star ! 5610 2999 Star ! 5610 2976 Star ! 5610 2953 Star ! 5610 2930 Star ! 5610 2907 Star ! 5610 2884 Star ! 5610 2862 Star ! 5610 2839 Star ! 5610 2816 Star ! 5610 2793 Star ! 5610 2770 Star ! 5610 2747 Star ! 5610 2724 Star ! 5610 2702 Star ! 5610 2679 Star ! 5610 2656 Star ! 5610 2633 Star ! 5610 2610 Star ! 5610 2587 Star ! 5610 2565 Star ! 5610 2542 Star ! 5610 2519 Star ! 5610 2496 Star ! 5610 2473 Star ! 5610 2450 Star ! 5610 2428 Star ! 5610 2405 Star ! 5610 2382 Star ! 5610 2359 Star ! 5610 2336 Star ! 5610 2313 Star ! 5610 2290 Star ! 5610 2268 Star ! 5610 2245 Star ! 5610 2222 Star ! 5610 2199 Star ! 5610 2176 Star ! 5610 2153 Star ! 5610 2131 Star ! 5610 2108 Star ! 5610 2085 Star ! 5610 2062 Star ! 5610 2039 Star ! 5610 2016 Star ! 5610 1993 Star ! 5610 1971 Star ! 5610 1948 Star ! 5610 1925 Star ! 5610 1902 Star ! 5610 1879 Star ! 5610 1856 Star ! 5610 1834 Star ! 5610 1811 Star ! 5610 1788 Star ! 5610 1765 Star ! 5610 1742 Star ! 5610 1719 Star ! 5610 1696 Star ! 5610 1674 Star ! 5610 1651 Star ! 5610 1628 Star ! 5610 1605 Star ! 5610 1582 Star ! 5610 1559 Star ! 5610 1537 Star ! 5610 1514 Star ! 5610 1491 Star ! 5610 1468 Star ! 5610 1445 Star ! 5610 1422 Star ! 5610 1399 Star ! 5610 1377 Star ! 5610 1354 Star ! 5610 1331 Star ! 5610 1308 Star ! 5610 1285 Star ! 5610 1262 Star ! 5610 1240 Star ! 5642 3044 Star ! 5642 3021 Star ! 5642 2999 Star ! 5642 2976 Star ! 5642 2953 Star ! 5642 2930 Star ! 5642 2907 Star ! 5642 2884 Star ! 5642 2862 Star ! 5642 2839 Star ! 5642 2816 Star ! 5642 2793 Star ! 5642 2770 Star ! 5642 2747 Star ! 5642 2724 Star ! 5642 2702 Star ! 5642 2679 Star ! 5642 2656 Star ! 5642 2633 Star ! 5642 2610 Star ! 5642 2587 Star ! 5642 2565 Star ! 5642 2542 Star ! 5642 2519 Star ! 5642 2496 Star ! 5642 2473 Star ! 5642 2450 Star ! 5642 2428 Star ! 5642 2405 Star ! 5642 2382 Star ! 5642 2359 Star ! 5642 2336 Star ! 5642 2313 Star ! 5642 2290 Star ! 5642 2268 Star ! 5642 2245 Star ! 5642 2222 Star ! 5642 2199 Star ! 5642 2176 Star ! 5642 2153 Star ! 5642 2131 Star ! 5642 2108 Star ! 5642 2085 Star ! 5642 2062 Star ! 5642 2039 Star ! 5642 2016 Star ! 5642 1993 Star ! 5642 1971 Star ! 5642 1948 Star ! 5642 1925 Star ! 5642 1902 Star ! 5642 1879 Star ! 5642 1856 Star ! 5642 1834 Star ! 5642 1811 Star ! 5642 1788 Star ! 5642 1765 Star ! 5642 1742 Star ! 5642 1719 Star ! 5642 1696 Star ! 5642 1674 Star ! 5642 1651 Star ! 5642 1628 Star ! 5642 1605 Star ! 5642 1582 Star ! 5642 1559 Star ! 5642 1537 Star ! 5642 1514 Star ! 5642 1491 Star ! 5642 1468 Star ! 5642 1445 Star ! 5642 1422 Star ! 5642 1399 Star ! 5642 1377 Star ! 5642 1354 Star ! 5642 1331 Star ! 5642 1308 Star ! 5642 1285 Star ! 5642 1262 Star ! 5642 1240 Star ! 5642 1217 Star ! 5674 3021 Star ! 5674 2999 Star ! 5674 2976 Star ! 5674 2953 Star ! 5674 2930 Star ! 5674 2907 Star ! 5674 2884 Star ! 5674 2862 Star ! 5674 2839 Star ! 5674 2816 Star ! 5674 2793 Star ! 5674 2770 Star ! 5674 2747 Star ! 5674 2724 Star ! 5674 2702 Star ! 5674 2679 Star ! 5674 2656 Star ! 5674 2633 Star ! 5674 2610 Star ! 5674 2587 Star ! 5674 2565 Star ! 5674 2542 Star ! 5674 2519 Star ! 5674 2496 Star ! 5674 2473 Star ! 5674 2450 Star ! 5674 2428 Star ! 5674 2405 Star ! 5674 2382 Star ! 5674 2359 Star ! 5674 2336 Star ! 5674 2313 Star ! 5674 2290 Star ! 5674 2268 Star ! 5674 2245 Star ! 5674 2222 Star ! 5674 2199 Star ! 5674 2176 Star ! 5674 2153 Star ! 5674 2131 Star ! 5674 2108 Star ! 5674 2085 Star ! 5674 2062 Star ! 5674 2039 Star ! 5674 2016 Star ! 5674 1993 Star ! 5674 1971 Star ! 5674 1948 Star ! 5674 1925 Star ! 5674 1902 Star ! 5674 1879 Star ! 5674 1856 Star ! 5674 1834 Star ! 5674 1811 Star ! 5674 1788 Star ! 5674 1765 Star ! 5674 1742 Star ! 5674 1719 Star ! 5674 1696 Star ! 5674 1674 Star ! 5674 1651 Star ! 5674 1628 Star ! 5674 1605 Star ! 5674 1582 Star ! 5674 1559 Star ! 5674 1537 Star ! 5674 1514 Star ! 5674 1491 Star ! 5674 1468 Star ! 5674 1445 Star ! 5674 1422 Star ! 5674 1399 Star ! 5674 1377 Star ! 5674 1354 Star ! 5674 1331 Star ! 5674 1308 Star ! 5674 1285 Star ! 5674 1262 Star ! 5674 1240 Star ! 5674 1217 Star ! 5674 1194 Star ! 5706 3021 Star ! 5706 2999 Star ! 5706 2976 Star ! 5706 2953 Star ! 5706 2930 Star ! 5706 2907 Star ! 5706 2884 Star ! 5706 2862 Star ! 5706 2839 Star ! 5706 2816 Star ! 5706 2793 Star ! 5706 2770 Star ! 5706 2747 Star ! 5706 2724 Star ! 5706 2702 Star ! 5706 2679 Star ! 5706 2656 Star ! 5706 2633 Star ! 5706 2610 Star ! 5706 2587 Star ! 5706 2565 Star ! 5706 2542 Star ! 5706 2519 Star ! 5706 2496 Star ! 5706 2473 Star ! 5706 2450 Star ! 5706 2428 Star ! 5706 2405 Star ! 5706 2382 Star ! 5706 2359 Star ! 5706 2336 Star ! 5706 2313 Star ! 5706 2290 Star ! 5706 2268 Star ! 5706 2245 Star ! 5706 2222 Star ! 5706 2199 Star ! 5706 2176 Star ! 5706 2153 Star ! 5706 2131 Star ! 5706 2108 Star ! 5706 2085 Star ! 5706 2062 Star ! 5706 2039 Star ! 5706 2016 Star ! 5706 1993 Star ! 5706 1971 Star ! 5706 1948 Star ! 5706 1925 Star ! 5706 1902 Star ! 5706 1879 Star ! 5706 1856 Star ! 5706 1834 Star ! 5706 1811 Star ! 5706 1788 Star ! 5706 1765 Star ! 5706 1742 Star ! 5706 1719 Star ! 5706 1696 Star ! 5706 1674 Star ! 5706 1651 Star ! 5706 1628 Star ! 5706 1605 Star ! 5706 1582 Star ! 5706 1559 Star ! 5706 1537 Star ! 5706 1514 Star ! 5706 1491 Star ! 5706 1468 Star ! 5706 1445 Star ! 5706 1422 Star ! 5706 1399 Star ! 5706 1377 Star ! 5706 1354 Star ! 5706 1331 Star ! 5706 1308 Star ! 5706 1285 Star ! 5706 1262 Star ! 5706 1240 Star ! 5706 1217 Star ! 5706 1194 Star ! 5706 1171 Star ! 5738 2999 Star ! 5738 2976 Star ! 5738 2953 Star ! 5738 2930 Star ! 5738 2907 Star ! 5738 2884 Star ! 5738 2862 Star ! 5738 2839 Star ! 5738 2816 Star ! 5738 2793 Star ! 5738 2770 Star ! 5738 2747 Star ! 5738 2724 Star ! 5738 2702 Star ! 5738 2679 Star ! 5738 2656 Star ! 5738 2633 Star ! 5738 2610 Star ! 5738 2587 Star ! 5738 2565 Star ! 5738 2542 Star ! 5738 2519 Star ! 5738 2496 Star ! 5738 2473 Star ! 5738 2450 Star ! 5738 2428 Star ! 5738 2405 Star ! 5738 2382 Star ! 5738 2359 Star ! 5738 2336 Star ! 5738 2313 Star ! 5738 2290 Star ! 5738 2268 Star ! 5738 2245 Star ! 5738 2222 Star ! 5738 2199 Star ! 5738 2176 Star ! 5738 2153 Star ! 5738 2131 Star ! 5738 2108 Star ! 5738 2085 Star ! 5738 2062 Star ! 5738 2039 Star ! 5738 2016 Star ! 5738 1993 Star ! 5738 1971 Star ! 5738 1948 Star ! 5738 1925 Star ! 5738 1902 Star ! 5738 1879 Star ! 5738 1856 Star ! 5738 1834 Star ! 5738 1811 Star ! 5738 1788 Star ! 5738 1765 Star ! 5738 1742 Star ! 5738 1719 Star ! 5738 1696 Star ! 5738 1674 Star ! 5738 1651 Star ! 5738 1628 Star ! 5738 1605 Star ! 5738 1582 Star ! 5738 1559 Star ! 5738 1537 Star ! 5738 1514 Star ! 5738 1491 Star ! 5738 1468 Star ! 5738 1445 Star ! 5738 1422 Star ! 5738 1399 Star ! 5738 1377 Star ! 5738 1354 Star ! 5738 1331 Star ! 5738 1308 Star ! 5738 1285 Star ! 5738 1262 Star ! 5738 1240 Star ! 5738 1217 Star ! 5738 1194 Star ! 5738 1171 Star ! 5738 1148 Star ! 5771 2999 Star ! 5771 2976 Star ! 5771 2953 Star 5771 2930 Star 5771 2907 Star 5771 2884 Star ! 5771 2862 Star ! 5771 2839 Star ! 5771 2816 Star ! 5771 2793 Star 5771 2770 Star 5771 2747 Star 5771 2724 Star ! 5771 2702 Star ! 5771 2679 Star ! 5771 2656 Star 5771 2633 Star 5771 2610 Star 5771 2587 Star ! 5771 2565 Star ! 5771 2542 Star ! 5771 2519 Star 5771 2496 Star 5771 2473 Star 5771 2450 Star ! 5771 2428 Star ! 5771 2405 Star ! 5771 2382 Star 5771 2359 Star 5771 2336 Star 5771 2313 Star 5771 2290 Star ! 5771 2268 Star ! 5771 2245 Star ! 5771 2222 Star 5771 2199 Star 5771 2176 Star 5771 2153 Star ! 5771 2131 Star ! 5771 2108 Star ! 5771 2085 Star 5771 2062 Star 5771 2039 Star 5771 2016 Star 5771 1993 Star ! 5771 1971 Star ! 5771 1948 Star 5771 1925 Star 5771 1902 Star 5771 1879 Star 5771 1856 Star ! 5771 1834 Star ! 5771 1811 Star ! 5771 1788 Star 5771 1765 Star 5771 1742 Star 5771 1719 Star 5771 1696 Star ! 5771 1674 Star ! 5771 1651 Star 5771 1628 Star 5771 1605 Star 5771 1582 Star 5771 1559 Star ! 5771 1537 Star ! 5771 1514 Star 5771 1491 Star 5771 1468 Star 5771 1445 Star 5771 1422 Star 5771 1399 Star ! 5771 1377 Star 5771 1354 Star 5771 1331 Star 5771 1308 Star 5771 1285 Star 5771 1262 Star ! 5771 1240 Star ! 5771 1217 Star 5771 1194 Star 5771 1171 Star 5771 1148 Star ! 5771 1125 Star ! 5803 2976 Star ! 5803 2953 Star 5803 2930 Star 5803 2907 Star 5803 2884 Star ! 5803 2862 Star ! 5803 2839 Star ! 5803 2816 Star ! 5803 2793 Star 5803 2770 Star 5803 2747 Star 5803 2724 Star ! 5803 2702 Star ! 5803 2679 Star ! 5803 2656 Star 5803 2633 Star 5803 2610 Star 5803 2587 Star ! 5803 2565 Star ! 5803 2542 Star ! 5803 2519 Star 5803 2496 Star 5803 2473 Star 5803 2450 Star ! 5803 2428 Star ! 5803 2405 Star ! 5803 2382 Star 5803 2359 Star 5803 2336 Star 5803 2313 Star 5803 2290 Star ! 5803 2268 Star ! 5803 2245 Star ! 5803 2222 Star 5803 2199 Star 5803 2176 Star 5803 2153 Star ! 5803 2131 Star ! 5803 2108 Star ! 5803 2085 Star 5803 2062 Star 5803 2039 Star 5803 2016 Star 5803 1993 Star ! 5803 1971 Star ! 5803 1948 Star 5803 1925 Star 5803 1902 Star 5803 1879 Star 5803 1856 Star ! 5803 1834 Star ! 5803 1811 Star ! 5803 1788 Star 5803 1765 Star 5803 1742 Star 5803 1719 Star 5803 1696 Star ! 5803 1674 Star ! 5803 1651 Star 5803 1628 Star 5803 1605 Star 5803 1582 Star 5803 1559 Star ! 5803 1537 Star ! 5803 1514 Star 5803 1491 Star 5803 1468 Star 5803 1445 Star 5803 1422 Star 5803 1399 Star ! 5803 1377 Star 5803 1354 Star 5803 1331 Star 5803 1308 Star 5803 1285 Star 5803 1262 Star ! 5803 1240 Star ! 5803 1217 Star 5803 1194 Star 5803 1171 Star 5803 1148 Star 5803 1125 Star ! 5803 1102 Star ! 5835 2976 Star ! 5835 2953 Star 5835 2930 Star 5835 2907 Star 5835 2884 Star ! 5835 2862 Star ! 5835 2839 Star ! 5835 2816 Star ! 5835 2793 Star 5835 2770 Star 5835 2747 Star 5835 2724 Star ! 5835 2702 Star ! 5835 2679 Star ! 5835 2656 Star 5835 2633 Star 5835 2610 Star 5835 2587 Star ! 5835 2565 Star ! 5835 2542 Star ! 5835 2519 Star 5835 2496 Star 5835 2473 Star 5835 2450 Star ! 5835 2428 Star ! 5835 2405 Star ! 5835 2382 Star 5835 2359 Star 5835 2336 Star 5835 2313 Star 5835 2290 Star ! 5835 2268 Star ! 5835 2245 Star ! 5835 2222 Star 5835 2199 Star 5835 2176 Star 5835 2153 Star ! 5835 2131 Star ! 5835 2108 Star ! 5835 2085 Star 5835 2062 Star 5835 2039 Star 5835 2016 Star 5835 1993 Star ! 5835 1971 Star ! 5835 1948 Star 5835 1925 Star 5835 1902 Star 5835 1879 Star 5835 1856 Star ! 5835 1834 Star ! 5835 1811 Star ! 5835 1788 Star 5835 1765 Star 5835 1742 Star 5835 1719 Star 5835 1696 Star ! 5835 1674 Star ! 5835 1651 Star 5835 1628 Star 5835 1605 Star 5835 1582 Star 5835 1559 Star ! 5835 1537 Star ! 5835 1514 Star 5835 1491 Star 5835 1468 Star 5835 1445 Star 5835 1422 Star 5835 1399 Star ! 5835 1377 Star 5835 1354 Star 5835 1331 Star 5835 1308 Star 5835 1285 Star 5835 1262 Star ! 5835 1240 Star ! 5835 1217 Star 5835 1194 Star 5835 1171 Star 5835 1148 Star 5835 1125 Star 5835 1102 Star ! 5835 1080 Star ! 5867 2953 Star 5867 2930 Star 5867 2907 Star 5867 2884 Star ! 5867 2862 Star ! 5867 2839 Star ! 5867 2816 Star ! 5867 2793 Star 5867 2770 Star 5867 2747 Star 5867 2724 Star ! 5867 2702 Star ! 5867 2679 Star ! 5867 2656 Star 5867 2633 Star 5867 2610 Star 5867 2587 Star ! 5867 2565 Star ! 5867 2542 Star ! 5867 2519 Star 5867 2496 Star 5867 2473 Star 5867 2450 Star ! 5867 2428 Star ! 5867 2405 Star ! 5867 2382 Star 5867 2359 Star 5867 2336 Star 5867 2313 Star 5867 2290 Star ! 5867 2268 Star ! 5867 2245 Star ! 5867 2222 Star 5867 2199 Star 5867 2176 Star 5867 2153 Star ! 5867 2131 Star ! 5867 2108 Star ! 5867 2085 Star 5867 2062 Star 5867 2039 Star 5867 2016 Star 5867 1993 Star ! 5867 1971 Star ! 5867 1948 Star 5867 1925 Star 5867 1902 Star 5867 1879 Star 5867 1856 Star ! 5867 1834 Star ! 5867 1811 Star ! 5867 1788 Star 5867 1765 Star 5867 1742 Star 5867 1719 Star 5867 1696 Star ! 5867 1674 Star ! 5867 1651 Star 5867 1628 Star 5867 1605 Star 5867 1582 Star 5867 1559 Star ! 5867 1537 Star ! 5867 1514 Star 5867 1491 Star 5867 1468 Star 5867 1445 Star 5867 1422 Star 5867 1399 Star ! 5867 1377 Star 5867 1354 Star 5867 1331 Star 5867 1308 Star 5867 1285 Star 5867 1262 Star ! 5867 1240 Star ! 5867 1217 Star 5867 1194 Star 5867 1171 Star 5867 1148 Star 5867 1125 Star 5867 1102 Star ! 5867 1080 Star ! 5867 1057 Star ! 5899 2953 Star 5899 2930 Star 5899 2907 Star 5899 2884 Star ! 5899 2862 Star ! 5899 2839 Star ! 5899 2816 Star ! 5899 2793 Star 5899 2770 Star 5899 2747 Star 5899 2724 Star ! 5899 2702 Star ! 5899 2679 Star ! 5899 2656 Star 5899 2633 Star 5899 2610 Star 5899 2587 Star ! 5899 2565 Star ! 5899 2542 Star ! 5899 2519 Star 5899 2496 Star 5899 2473 Star 5899 2450 Star ! 5899 2428 Star ! 5899 2405 Star ! 5899 2382 Star 5899 2359 Star 5899 2336 Star 5899 2313 Star 5899 2290 Star ! 5899 2268 Star ! 5899 2245 Star ! 5899 2222 Star 5899 2199 Star 5899 2176 Star 5899 2153 Star ! 5899 2131 Star ! 5899 2108 Star ! 5899 2085 Star 5899 2062 Star 5899 2039 Star 5899 2016 Star 5899 1993 Star ! 5899 1971 Star ! 5899 1948 Star 5899 1925 Star 5899 1902 Star 5899 1879 Star 5899 1856 Star ! 5899 1834 Star ! 5899 1811 Star ! 5899 1788 Star 5899 1765 Star 5899 1742 Star 5899 1719 Star 5899 1696 Star ! 5899 1674 Star ! 5899 1651 Star 5899 1628 Star 5899 1605 Star 5899 1582 Star 5899 1559 Star ! 5899 1537 Star ! 5899 1514 Star 5899 1491 Star 5899 1468 Star 5899 1445 Star 5899 1422 Star 5899 1399 Star ! 5899 1377 Star 5899 1354 Star 5899 1331 Star 5899 1308 Star 5899 1285 Star 5899 1262 Star ! 5899 1240 Star ! 5899 1217 Star 5899 1194 Star 5899 1171 Star 5899 1148 Star 5899 1125 Star 5899 1102 Star ! 5899 1080 Star 5899 1057 Star ! 5899 1034 Star ! 5932 2930 Star ! 5932 2907 Star ! 5932 2884 Star ! 5932 2862 Star ! 5932 2839 Star ! 5932 2816 Star ! 5932 2793 Star ! 5932 2770 Star ! 5932 2747 Star ! 5932 2724 Star ! 5932 2702 Star ! 5932 2679 Star ! 5932 2656 Star ! 5932 2633 Star ! 5932 2610 Star ! 5932 2587 Star ! 5932 2565 Star ! 5932 2542 Star ! 5932 2519 Star ! 5932 2496 Star ! 5932 2473 Star ! 5932 2450 Star ! 5932 2428 Star ! 5932 2405 Star ! 5932 2382 Star ! 5932 2359 Star ! 5932 2336 Star ! 5932 2313 Star ! 5932 2290 Star ! 5932 2268 Star ! 5932 2245 Star ! 5932 2222 Star ! 5932 2199 Star ! 5932 2176 Star ! 5932 2153 Star ! 5932 2131 Star ! 5932 2108 Star ! 5932 2085 Star ! 5932 2062 Star ! 5932 2039 Star ! 5932 2016 Star ! 5932 1993 Star ! 5932 1971 Star ! 5932 1948 Star ! 5932 1925 Star ! 5932 1902 Star ! 5932 1879 Star ! 5932 1856 Star ! 5932 1834 Star ! 5932 1811 Star ! 5932 1788 Star ! 5932 1765 Star ! 5932 1742 Star ! 5932 1719 Star ! 5932 1696 Star ! 5932 1674 Star ! 5932 1651 Star ! 5932 1628 Star ! 5932 1605 Star ! 5932 1582 Star ! 5932 1559 Star ! 5932 1537 Star ! 5932 1514 Star ! 5932 1491 Star ! 5932 1468 Star ! 5932 1445 Star ! 5932 1422 Star ! 5932 1399 Star ! 5932 1377 Star ! 5932 1354 Star ! 5932 1331 Star ! 5932 1308 Star ! 5932 1285 Star ! 5932 1262 Star ! 5932 1240 Star ! 5932 1217 Star ! 5932 1194 Star ! 5932 1171 Star ! 5932 1148 Star ! 5932 1125 Star ! 5932 1102 Star ! 5932 1080 Star ! 5932 1057 Star ! 5932 1034 Star ! 5932 1011 Star ! 5964 2930 Star ! 5964 2907 Star ! 5964 2884 Star ! 5964 2862 Star ! 5964 2839 Star ! 5964 2816 Star ! 5964 2793 Star ! 5964 2770 Star ! 5964 2747 Star ! 5964 2724 Star ! 5964 2702 Star ! 5964 2679 Star ! 5964 2656 Star ! 5964 2633 Star ! 5964 2610 Star ! 5964 2587 Star ! 5964 2565 Star ! 5964 2542 Star ! 5964 2519 Star ! 5964 2496 Star ! 5964 2473 Star ! 5964 2450 Star ! 5964 2428 Star ! 5964 2405 Star ! 5964 2382 Star ! 5964 2359 Star ! 5964 2336 Star ! 5964 2313 Star ! 5964 2290 Star ! 5964 2268 Star ! 5964 2245 Star ! 5964 2222 Star ! 5964 2199 Star ! 5964 2176 Star ! 5964 2153 Star ! 5964 2131 Star ! 5964 2108 Star ! 5964 2085 Star ! 5964 2062 Star ! 5964 2039 Star ! 5964 2016 Star ! 5964 1993 Star ! 5964 1971 Star ! 5964 1948 Star ! 5964 1925 Star ! 5964 1902 Star ! 5964 1879 Star ! 5964 1856 Star ! 5964 1834 Star ! 5964 1811 Star ! 5964 1788 Star ! 5964 1765 Star ! 5964 1742 Star ! 5964 1719 Star ! 5964 1696 Star ! 5964 1674 Star ! 5964 1651 Star ! 5964 1628 Star ! 5964 1605 Star ! 5964 1582 Star ! 5964 1559 Star ! 5964 1537 Star ! 5964 1514 Star ! 5964 1491 Star ! 5964 1468 Star ! 5964 1445 Star ! 5964 1422 Star ! 5964 1399 Star ! 5964 1377 Star ! 5964 1354 Star ! 5964 1331 Star ! 5964 1308 Star ! 5964 1285 Star ! 5964 1262 Star ! 5964 1240 Star ! 5964 1217 Star ! 5964 1194 Star ! 5964 1171 Star ! 5964 1148 Star ! 5964 1125 Star ! 5964 1102 Star ! 5964 1080 Star ! 5964 1057 Star ! 5964 1034 Star ! 5964 1011 Star ! 5964 988 Star ! 5996 2907 Star ! 5996 2884 Star ! 5996 2862 Star ! 5996 2839 Star ! 5996 2816 Star ! 5996 2793 Star ! 5996 2770 Star ! 5996 2747 Star ! 5996 2724 Star ! 5996 2702 Star ! 5996 2679 Star ! 5996 2656 Star ! 5996 2633 Star ! 5996 2610 Star ! 5996 2587 Star ! 5996 2565 Star ! 5996 2542 Star ! 5996 2519 Star ! 5996 2496 Star ! 5996 2473 Star ! 5996 2450 Star ! 5996 2428 Star ! 5996 2405 Star ! 5996 2382 Star ! 5996 2359 Star ! 5996 2336 Star ! 5996 2313 Star ! 5996 2290 Star ! 5996 2268 Star ! 5996 2245 Star ! 5996 2222 Star ! 5996 2199 Star ! 5996 2176 Star ! 5996 2153 Star ! 5996 2131 Star ! 5996 2108 Star ! 5996 2085 Star ! 5996 2062 Star ! 5996 2039 Star ! 5996 2016 Star ! 5996 1993 Star ! 5996 1971 Star ! 5996 1948 Star ! 5996 1925 Star ! 5996 1902 Star ! 5996 1879 Star ! 5996 1856 Star ! 5996 1834 Star ! 5996 1811 Star ! 5996 1788 Star ! 5996 1765 Star ! 5996 1742 Star ! 5996 1719 Star ! 5996 1696 Star ! 5996 1674 Star ! 5996 1651 Star ! 5996 1628 Star ! 5996 1605 Star ! 5996 1582 Star ! 5996 1559 Star ! 5996 1537 Star ! 5996 1514 Star ! 5996 1491 Star ! 5996 1468 Star ! 5996 1445 Star ! 5996 1422 Star ! 5996 1399 Star ! 5996 1377 Star ! 5996 1354 Star ! 5996 1331 Star ! 5996 1308 Star ! 5996 1285 Star ! 5996 1262 Star ! 5996 1240 Star ! 5996 1217 Star ! 5996 1194 Star ! 5996 1171 Star ! 5996 1148 Star ! 5996 1125 Star ! 5996 1102 Star ! 5996 1080 Star ! 5996 1057 Star ! 5996 1034 Star ! 5996 1011 Star ! 5996 988 Star ! 5996 965 Star ! 6028 2907 Star ! 6028 2884 Star ! 6028 2862 Star ! 6028 2839 Star ! 6028 2816 Star ! 6028 2793 Star ! 6028 2770 Star ! 6028 2747 Star ! 6028 2724 Star ! 6028 2702 Star ! 6028 2679 Star ! 6028 2656 Star ! 6028 2633 Star ! 6028 2610 Star ! 6028 2587 Star ! 6028 2565 Star ! 6028 2542 Star ! 6028 2519 Star ! 6028 2496 Star ! 6028 2473 Star ! 6028 2450 Star ! 6028 2428 Star ! 6028 2405 Star ! 6028 2382 Star ! 6028 2359 Star ! 6028 2336 Star ! 6028 2313 Star ! 6028 2290 Star ! 6028 2268 Star ! 6028 2245 Star ! 6028 2222 Star ! 6028 2199 Star ! 6028 2176 Star ! 6028 2153 Star ! 6028 2131 Star ! 6028 2108 Star ! 6028 2085 Star ! 6028 2062 Star ! 6028 2039 Star ! 6028 2016 Star ! 6028 1993 Star ! 6028 1971 Star ! 6028 1948 Star ! 6028 1925 Star ! 6028 1902 Star ! 6028 1879 Star ! 6028 1856 Star ! 6028 1834 Star ! 6028 1811 Star ! 6028 1788 Star ! 6028 1765 Star ! 6028 1742 Star ! 6028 1719 Star ! 6028 1696 Star ! 6028 1674 Star ! 6028 1651 Star ! 6028 1628 Star ! 6028 1605 Star ! 6028 1582 Star ! 6028 1559 Star ! 6028 1537 Star ! 6028 1514 Star ! 6028 1491 Star ! 6028 1468 Star ! 6028 1445 Star ! 6028 1422 Star ! 6028 1399 Star ! 6028 1377 Star ! 6028 1354 Star ! 6028 1331 Star ! 6028 1308 Star ! 6028 1285 Star ! 6028 1262 Star ! 6028 1240 Star ! 6028 1217 Star ! 6028 1194 Star ! 6028 1171 Star ! 6028 1148 Star ! 6028 1125 Star ! 6028 1102 Star ! 6028 1080 Star ! 6028 1057 Star ! 6028 1034 Star ! 6028 1011 Star ! 6028 988 Star ! 6028 965 Star ! 6028 943 Star ! 6060 2884 Star ! 6060 2862 Star ! 6060 2839 Star ! 6060 2816 Star ! 6060 2793 Star ! 6060 2770 Star ! 6060 2747 Star ! 6060 2724 Star ! 6060 2702 Star ! 6060 2679 Star ! 6060 2656 Star ! 6060 2633 Star ! 6060 2610 Star ! 6060 2587 Star ! 6060 2565 Star ! 6060 2542 Star ! 6060 2519 Star ! 6060 2496 Star ! 6060 2473 Star ! 6060 2450 Star ! 6060 2428 Star ! 6060 2405 Star ! 6060 2382 Star ! 6060 2359 Star ! 6060 2336 Star ! 6060 2313 Star ! 6060 2290 Star ! 6060 2268 Star ! 6060 2245 Star ! 6060 2222 Star ! 6060 2199 Star ! 6060 2176 Star ! 6060 2153 Star ! 6060 2131 Star ! 6060 2108 Star ! 6060 2085 Star ! 6060 2062 Star ! 6060 2039 Star ! 6060 2016 Star ! 6060 1993 Star ! 6060 1971 Star ! 6060 1948 Star ! 6060 1925 Star ! 6060 1902 Star ! 6060 1879 Star ! 6060 1856 Star ! 6060 1834 Star ! 6060 1811 Star ! 6060 1788 Star ! 6060 1765 Star ! 6060 1742 Star ! 6060 1719 Star ! 6060 1696 Star ! 6060 1674 Star ! 6060 1651 Star ! 6060 1628 Star ! 6060 1605 Star ! 6060 1582 Star ! 6060 1559 Star ! 6060 1537 Star ! 6060 1514 Star ! 6060 1491 Star ! 6060 1468 Star ! 6060 1445 Star ! 6060 1422 Star ! 6060 1399 Star ! 6060 1377 Star ! 6060 1354 Star ! 6060 1331 Star ! 6060 1308 Star ! 6060 1285 Star ! 6060 1262 Star ! 6060 1240 Star ! 6060 1217 Star ! 6060 1194 Star ! 6060 1171 Star ! 6060 1148 Star ! 6060 1125 Star ! 6060 1102 Star ! 6060 1080 Star ! 6060 1057 Star ! 6060 1034 Star ! 6060 1011 Star ! 6060 988 Star ! 6060 965 Star ! 6060 943 Star ! 6060 920 Star ! 6093 2884 Star ! 6093 2862 Star ! 6093 2839 Star ! 6093 2816 Star ! 6093 2793 Star ! 6093 2770 Star ! 6093 2747 Star ! 6093 2724 Star ! 6093 2702 Star ! 6093 2679 Star ! 6093 2656 Star ! 6093 2633 Star ! 6093 2610 Star ! 6093 2587 Star ! 6093 2565 Star ! 6093 2542 Star ! 6093 2519 Star ! 6093 2496 Star ! 6093 2473 Star ! 6093 2450 Star ! 6093 2428 Star ! 6093 2405 Star ! 6093 2382 Star ! 6093 2359 Star ! 6093 2336 Star ! 6093 2313 Star ! 6093 2290 Star ! 6093 2268 Star ! 6093 2245 Star ! 6093 2222 Star ! 6093 2199 Star ! 6093 2176 Star ! 6093 2153 Star ! 6093 2131 Star ! 6093 2108 Star ! 6093 2085 Star ! 6093 2062 Star ! 6093 2039 Star ! 6093 2016 Star ! 6093 1993 Star ! 6093 1971 Star ! 6093 1948 Star ! 6093 1925 Star ! 6093 1902 Star ! 6093 1879 Star ! 6093 1856 Star ! 6093 1834 Star ! 6093 1811 Star ! 6093 1788 Star ! 6093 1765 Star ! 6093 1742 Star ! 6093 1719 Star ! 6093 1696 Star ! 6093 1674 Star ! 6093 1651 Star ! 6093 1628 Star ! 6093 1605 Star ! 6093 1582 Star ! 6093 1559 Star ! 6093 1537 Star ! 6093 1514 Star ! 6093 1491 Star ! 6093 1468 Star ! 6093 1445 Star ! 6093 1422 Star ! 6093 1399 Star ! 6093 1377 Star ! 6093 1354 Star ! 6093 1331 Star ! 6093 1308 Star ! 6093 1285 Star ! 6093 1262 Star ! 6093 1240 Star ! 6093 1217 Star ! 6093 1194 Star ! 6093 1171 Star ! 6093 1148 Star ! 6093 1125 Star ! 6093 1102 Star ! 6093 1080 Star ! 6093 1057 Star ! 6093 1034 Star ! 6093 1011 Star ! 6093 988 Star ! 6093 965 Star ! 6093 943 Star ! 6093 920 Star ! 6093 897 Star ! 6125 2862 Star ! 6125 2839 Star ! 6125 2816 Star ! 6125 2793 Star ! 6125 2770 Star ! 6125 2747 Star ! 6125 2724 Star ! 6125 2702 Star ! 6125 2679 Star ! 6125 2656 Star ! 6125 2633 Star ! 6125 2610 Star ! 6125 2587 Star ! 6125 2565 Star ! 6125 2542 Star ! 6125 2519 Star ! 6125 2496 Star ! 6125 2473 Star ! 6125 2450 Star ! 6125 2428 Star ! 6125 2405 Star ! 6125 2382 Star ! 6125 2359 Star ! 6125 2336 Star ! 6125 2313 Star ! 6125 2290 Star ! 6125 2268 Star ! 6125 2245 Star ! 6125 2222 Star ! 6125 2199 Star ! 6125 2176 Star ! 6125 2153 Star ! 6125 2131 Star ! 6125 2108 Star ! 6125 2085 Star ! 6125 2062 Star ! 6125 2039 Star ! 6125 2016 Star ! 6125 1993 Star ! 6125 1971 Star ! 6125 1948 Star ! 6125 1925 Star ! 6125 1902 Star ! 6125 1879 Star ! 6125 1856 Star ! 6125 1834 Star ! 6125 1811 Star ! 6125 1788 Star ! 6125 1765 Star ! 6125 1742 Star ! 6125 1719 Star ! 6125 1696 Star ! 6125 1674 Star ! 6125 1651 Star ! 6125 1628 Star ! 6125 1605 Star ! 6125 1582 Star ! 6125 1559 Star ! 6125 1537 Star ! 6125 1514 Star ! 6125 1491 Star ! 6125 1468 Star ! 6125 1445 Star ! 6125 1422 Star ! 6125 1399 Star ! 6125 1377 Star ! 6125 1354 Star ! 6125 1331 Star ! 6125 1308 Star ! 6125 1285 Star ! 6125 1262 Star ! 6125 1240 Star ! 6125 1217 Star ! 6125 1194 Star ! 6125 1171 Star ! 6125 1148 Star ! 6125 1125 Star ! 6125 1102 Star ! 6125 1080 Star ! 6125 1057 Star ! 6125 1034 Star ! 6125 1011 Star ! 6125 988 Star ! 6125 965 Star ! 6125 943 Star ! 6125 920 Star ! 6125 897 Star ! 6125 874 Star ! 6157 2862 Star ! 6157 2839 Star ! 6157 2816 Star ! 6157 2793 Star ! 6157 2770 Star ! 6157 2747 Star ! 6157 2724 Star ! 6157 2702 Star ! 6157 2679 Star ! 6157 2656 Star ! 6157 2633 Star ! 6157 2610 Star ! 6157 2587 Star ! 6157 2565 Star ! 6157 2542 Star ! 6157 2519 Star ! 6157 2496 Star ! 6157 2473 Star ! 6157 2450 Star ! 6157 2428 Star ! 6157 2405 Star ! 6157 2382 Star ! 6157 2359 Star ! 6157 2336 Star ! 6157 2313 Star ! 6157 2290 Star ! 6157 2268 Star ! 6157 2245 Star ! 6157 2222 Star ! 6157 2199 Star ! 6157 2176 Star ! 6157 2153 Star ! 6157 2131 Star ! 6157 2108 Star ! 6157 2085 Star ! 6157 2062 Star ! 6157 2039 Star ! 6157 2016 Star ! 6157 1993 Star ! 6157 1971 Star ! 6157 1948 Star ! 6157 1925 Star ! 6157 1902 Star ! 6157 1879 Star ! 6157 1856 Star ! 6157 1834 Star ! 6157 1811 Star ! 6157 1788 Star ! 6157 1765 Star ! 6157 1742 Star ! 6157 1719 Star ! 6157 1696 Star ! 6157 1674 Star ! 6157 1651 Star ! 6157 1628 Star ! 6157 1605 Star ! 6157 1582 Star ! 6157 1559 Star ! 6157 1537 Star ! 6157 1514 Star ! 6157 1491 Star ! 6157 1468 Star ! 6157 1445 Star ! 6157 1422 Star ! 6157 1399 Star ! 6157 1377 Star ! 6157 1354 Star ! 6157 1331 Star ! 6157 1308 Star ! 6157 1285 Star ! 6157 1262 Star ! 6157 1240 Star ! 6157 1217 Star ! 6157 1194 Star ! 6157 1171 Star ! 6157 1148 Star ! 6157 1125 Star ! 6157 1102 Star ! 6157 1080 Star ! 6157 1057 Star ! 6157 1034 Star ! 6157 1011 Star ! 6157 988 Star ! 6157 965 Star ! 6157 943 Star ! 6157 920 Star ! 6157 897 Star ! 6157 874 Star ! 6157 851 Star ! 6189 2839 Star ! 6189 2816 Star ! 6189 2793 Star ! 6189 2770 Star ! 6189 2747 Star ! 6189 2724 Star ! 6189 2702 Star ! 6189 2679 Star ! 6189 2656 Star ! 6189 2633 Star ! 6189 2610 Star ! 6189 2587 Star ! 6189 2565 Star ! 6189 2542 Star ! 6189 2519 Star ! 6189 2496 Star ! 6189 2473 Star ! 6189 2450 Star ! 6189 2428 Star ! 6189 2405 Star ! 6189 2382 Star ! 6189 2359 Star ! 6189 2336 Star ! 6189 2313 Star ! 6189 2290 Star ! 6189 2268 Star ! 6189 2245 Star ! 6189 2222 Star ! 6189 2199 Star ! 6189 2176 Star ! 6189 2153 Star ! 6189 2131 Star ! 6189 2108 Star ! 6189 2085 Star ! 6189 2062 Star ! 6189 2039 Star ! 6189 2016 Star ! 6189 1993 Star ! 6189 1971 Star ! 6189 1948 Star ! 6189 1925 Star ! 6189 1902 Star ! 6189 1879 Star ! 6189 1856 Star ! 6189 1834 Star ! 6189 1811 Star ! 6189 1788 Star ! 6189 1765 Star ! 6189 1742 Star ! 6189 1719 Star ! 6189 1696 Star ! 6189 1674 Star ! 6189 1651 Star ! 6189 1628 Star ! 6189 1605 Star ! 6189 1582 Star ! 6189 1559 Star ! 6189 1537 Star ! 6189 1514 Star ! 6189 1491 Star ! 6189 1468 Star ! 6189 1445 Star ! 6189 1422 Star ! 6189 1399 Star ! 6189 1377 Star ! 6189 1354 Star ! 6189 1331 Star ! 6189 1308 Star ! 6189 1285 Star ! 6189 1262 Star ! 6189 1240 Star ! 6189 1217 Star ! 6189 1194 Star ! 6189 1171 Star ! 6189 1148 Star ! 6189 1125 Star ! 6189 1102 Star ! 6189 1080 Star ! 6189 1057 Star ! 6189 1034 Star ! 6189 1011 Star ! 6189 988 Star ! 6189 965 Star ! 6189 943 Star ! 6189 920 Star ! 6189 897 Star ! 6189 874 Star ! 6189 851 Star ! 6189 828 Star ! 6221 2839 Star ! 6221 2816 Star ! 6221 2793 Star ! 6221 2770 Star ! 6221 2747 Star ! 6221 2724 Star ! 6221 2702 Star ! 6221 2679 Star ! 6221 2656 Star ! 6221 2633 Star ! 6221 2610 Star ! 6221 2587 Star ! 6221 2565 Star ! 6221 2542 Star ! 6221 2519 Star ! 6221 2496 Star ! 6221 2473 Star ! 6221 2450 Star ! 6221 2428 Star ! 6221 2405 Star ! 6221 2382 Star ! 6221 2359 Star ! 6221 2336 Star ! 6221 2313 Star ! 6221 2290 Star ! 6221 2268 Star ! 6221 2245 Star ! 6221 2222 Star ! 6221 2199 Star ! 6221 2176 Star ! 6221 2153 Star ! 6221 2131 Star ! 6221 2108 Star ! 6221 2085 Star ! 6221 2062 Star ! 6221 2039 Star ! 6221 2016 Star ! 6221 1993 Star ! 6221 1971 Star ! 6221 1948 Star ! 6221 1925 Star ! 6221 1902 Star ! 6221 1879 Star ! 6221 1856 Star ! 6221 1834 Star ! 6221 1811 Star ! 6221 1788 Star ! 6221 1765 Star ! 6221 1742 Star ! 6221 1719 Star ! 6221 1696 Star ! 6221 1674 Star ! 6221 1651 Star ! 6221 1628 Star ! 6221 1605 Star ! 6221 1582 Star ! 6221 1559 Star ! 6221 1537 Star ! 6221 1514 Star ! 6221 1491 Star ! 6221 1468 Star ! 6221 1445 Star ! 6221 1422 Star ! 6221 1399 Star ! 6221 1377 Star ! 6221 1354 Star ! 6221 1331 Star ! 6221 1308 Star ! 6221 1285 Star ! 6221 1262 Star ! 6221 1240 Star ! 6221 1217 Star ! 6221 1194 Star ! 6221 1171 Star ! 6221 1148 Star ! 6221 1125 Star ! 6221 1102 Star ! 6221 1080 Star ! 6221 1057 Star ! 6221 1034 Star ! 6221 1011 Star ! 6221 988 Star ! 6221 965 Star ! 6221 943 Star ! 6221 920 Star ! 6221 897 Star ! 6221 874 Star ! 6221 851 Star ! 6221 828 Star ! 6221 805 Star ! 6254 2816 Star ! 6254 2793 Star ! 6254 2770 Star ! 6254 2747 Star ! 6254 2724 Star ! 6254 2702 Star ! 6254 2679 Star ! 6254 2656 Star ! 6254 2633 Star ! 6254 2610 Star ! 6254 2587 Star ! 6254 2565 Star ! 6254 2542 Star ! 6254 2519 Star ! 6254 2496 Star ! 6254 2473 Star ! 6254 2450 Star ! 6254 2428 Star ! 6254 2405 Star ! 6254 2382 Star ! 6254 2359 Star ! 6254 2336 Star ! 6254 2313 Star ! 6254 2290 Star ! 6254 2268 Star ! 6254 2245 Star ! 6254 2222 Star ! 6254 2199 Star ! 6254 2176 Star ! 6254 2153 Star ! 6254 2131 Star ! 6254 2108 Star ! 6254 2085 Star ! 6254 2062 Star ! 6254 2039 Star ! 6254 2016 Star ! 6254 1993 Star ! 6254 1971 Star ! 6254 1948 Star ! 6254 1925 Star ! 6254 1902 Star ! 6254 1879 Star ! 6254 1856 Star ! 6254 1834 Star ! 6254 1811 Star ! 6254 1788 Star ! 6254 1765 Star ! 6254 1742 Star ! 6254 1719 Star ! 6254 1696 Star ! 6254 1674 Star ! 6254 1651 Star ! 6254 1628 Star ! 6254 1605 Star ! 6254 1582 Star ! 6254 1559 Star ! 6254 1537 Star ! 6254 1514 Star ! 6254 1491 Star ! 6254 1468 Star ! 6254 1445 Star ! 6254 1422 Star ! 6254 1399 Star ! 6254 1377 Star ! 6254 1354 Star ! 6254 1331 Star ! 6254 1308 Star ! 6254 1285 Star ! 6254 1262 Star ! 6254 1240 Star ! 6254 1217 Star ! 6254 1194 Star ! 6254 1171 Star ! 6254 1148 Star ! 6254 1125 Star ! 6254 1102 Star ! 6254 1080 Star ! 6254 1057 Star ! 6254 1034 Star ! 6254 1011 Star ! 6254 988 Star ! 6254 965 Star ! 6254 943 Star ! 6254 920 Star ! 6254 897 Star ! 6254 874 Star ! 6254 851 Star ! 6254 828 Star ! 6254 805 Star ! 6254 783 Star ! 6286 2816 Star ! 6286 2793 Star ! 6286 2770 Star ! 6286 2747 Star ! 6286 2724 Star ! 6286 2702 Star ! 6286 2679 Star ! 6286 2656 Star ! 6286 2633 Star ! 6286 2610 Star ! 6286 2587 Star ! 6286 2565 Star ! 6286 2542 Star ! 6286 2519 Star ! 6286 2496 Star ! 6286 2473 Star ! 6286 2450 Star ! 6286 2428 Star ! 6286 2405 Star ! 6286 2382 Star ! 6286 2359 Star ! 6286 2336 Star ! 6286 2313 Star ! 6286 2290 Star ! 6286 2268 Star ! 6286 2245 Star ! 6286 2222 Star ! 6286 2199 Star ! 6286 2176 Star ! 6286 2153 Star ! 6286 2131 Star ! 6286 2108 Star ! 6286 2085 Star ! 6286 2062 Star ! 6286 2039 Star ! 6286 2016 Star ! 6286 1993 Star ! 6286 1971 Star ! 6286 1948 Star ! 6286 1925 Star ! 6286 1902 Star ! 6286 1879 Star ! 6286 1856 Star ! 6286 1834 Star ! 6286 1811 Star ! 6286 1788 Star ! 6286 1765 Star ! 6286 1742 Star ! 6286 1719 Star ! 6286 1696 Star ! 6286 1674 Star ! 6286 1651 Star ! 6286 1628 Star ! 6286 1605 Star ! 6286 1582 Star ! 6286 1559 Star ! 6286 1537 Star ! 6286 1514 Star ! 6286 1491 Star ! 6286 1468 Star ! 6286 1445 Star ! 6286 1422 Star ! 6286 1399 Star ! 6286 1377 Star ! 6286 1354 Star ! 6286 1331 Star ! 6286 1308 Star ! 6286 1285 Star ! 6286 1262 Star ! 6286 1240 Star ! 6286 1217 Star ! 6286 1194 Star ! 6286 1171 Star ! 6286 1148 Star ! 6286 1125 Star ! 6286 1102 Star ! 6286 1080 Star ! 6286 1057 Star ! 6286 1034 Star ! 6286 1011 Star ! 6286 988 Star ! 6286 965 Star ! 6286 943 Star ! 6286 920 Star ! 6286 897 Star ! 6286 874 Star ! 6286 851 Star ! 6286 828 Star ! 6286 805 Star ! 6286 783 Star ! 6286 760 Star ! 6318 2793 Star ! 6318 2770 Star ! 6318 2747 Star ! 6318 2724 Star ! 6318 2702 Star ! 6318 2679 Star ! 6318 2656 Star ! 6318 2633 Star ! 6318 2610 Star ! 6318 2587 Star ! 6318 2565 Star ! 6318 2542 Star ! 6318 2519 Star ! 6318 2496 Star ! 6318 2473 Star ! 6318 2450 Star ! 6318 2428 Star ! 6318 2405 Star ! 6318 2382 Star ! 6318 2359 Star ! 6318 2336 Star ! 6318 2313 Star ! 6318 2290 Star ! 6318 2268 Star ! 6318 2245 Star ! 6318 2222 Star ! 6318 2199 Star ! 6318 2176 Star ! 6318 2153 Star ! 6318 2131 Star ! 6318 2108 Star ! 6318 2085 Star ! 6318 2062 Star ! 6318 2039 Star ! 6318 2016 Star ! 6318 1993 Star ! 6318 1971 Star ! 6318 1948 Star ! 6318 1925 Star ! 6318 1902 Star ! 6318 1879 Star ! 6318 1856 Star ! 6318 1834 Star ! 6318 1811 Star ! 6318 1788 Star ! 6318 1765 Star ! 6318 1742 Star ! 6318 1719 Star ! 6318 1696 Star ! 6318 1674 Star ! 6318 1651 Star ! 6318 1628 Star ! 6318 1605 Star ! 6318 1582 Star ! 6318 1559 Star ! 6318 1537 Star ! 6318 1514 Star ! 6318 1491 Star ! 6318 1468 Star ! 6318 1445 Star ! 6318 1422 Star ! 6318 1399 Star ! 6318 1377 Star ! 6318 1354 Star ! 6318 1331 Star ! 6318 1308 Star ! 6318 1285 Star ! 6318 1262 Star ! 6318 1240 Star ! 6318 1217 Star ! 6318 1194 Star ! 6318 1171 Star ! 6318 1148 Star ! 6318 1125 Star ! 6318 1102 Star ! 6318 1080 Star ! 6318 1057 Star ! 6318 1034 Star ! 6318 1011 Star ! 6318 988 Star ! 6318 965 Star ! 6318 943 Star ! 6318 920 Star ! 6318 897 Star ! 6318 874 Star ! 6318 851 Star ! 6318 828 Star ! 6318 805 Star ! 6318 783 Star ! 6318 760 Star ! 6318 737 Star ! 6350 2793 Star ! 6350 2770 Star ! 6350 2747 Star ! 6350 2724 Star ! 6350 2702 Star ! 6350 2679 Star ! 6350 2656 Star ! 6350 2633 Star ! 6350 2610 Star ! 6350 2587 Star ! 6350 2565 Star ! 6350 2542 Star ! 6350 2519 Star ! 6350 2496 Star ! 6350 2473 Star ! 6350 2450 Star ! 6350 2428 Star ! 6350 2405 Star ! 6350 2382 Star ! 6350 2359 Star ! 6350 2336 Star ! 6350 2313 Star ! 6350 2290 Star ! 6350 2268 Star ! 6350 2245 Star ! 6350 2222 Star ! 6350 2199 Star ! 6350 2176 Star ! 6350 2153 Star ! 6350 2131 Star ! 6350 2108 Star ! 6350 2085 Star ! 6350 2062 Star ! 6350 2039 Star ! 6350 2016 Star ! 6350 1993 Star ! 6350 1971 Star ! 6350 1948 Star ! 6350 1925 Star ! 6350 1902 Star ! 6350 1879 Star ! 6350 1856 Star ! 6350 1834 Star ! 6350 1811 Star ! 6350 1788 Star ! 6350 1765 Star ! 6350 1742 Star ! 6350 1719 Star ! 6350 1696 Star ! 6350 1674 Star ! 6350 1651 Star ! 6350 1628 Star ! 6350 1605 Star ! 6350 1582 Star ! 6350 1559 Star ! 6350 1537 Star ! 6350 1514 Star ! 6350 1491 Star ! 6350 1468 Star ! 6350 1445 Star ! 6350 1422 Star ! 6350 1399 Star ! 6350 1377 Star ! 6350 1354 Star ! 6350 1331 Star ! 6350 1308 Star ! 6350 1285 Star ! 6350 1262 Star ! 6350 1240 Star ! 6350 1217 Star ! 6350 1194 Star ! 6350 1171 Star ! 6350 1148 Star ! 6350 1125 Star ! 6350 1102 Star ! 6350 1080 Star ! 6350 1057 Star ! 6350 1034 Star ! 6350 1011 Star ! 6350 988 Star ! 6350 965 Star ! 6350 943 Star ! 6350 920 Star ! 6350 897 Star ! 6350 874 Star ! 6350 851 Star ! 6350 828 Star ! 6350 805 Star ! 6350 783 Star ! 6350 760 Star ! 6350 737 Star ! 6350 714 Star ! 6382 2770 Star ! 6382 2747 Star ! 6382 2724 Star ! 6382 2702 Star ! 6382 2679 Star ! 6382 2656 Star ! 6382 2633 Star ! 6382 2610 Star ! 6382 2587 Star ! 6382 2565 Star ! 6382 2542 Star ! 6382 2519 Star ! 6382 2496 Star ! 6382 2473 Star ! 6382 2450 Star ! 6382 2428 Star ! 6382 2405 Star ! 6382 2382 Star ! 6382 2359 Star ! 6382 2336 Star ! 6382 2313 Star ! 6382 2290 Star ! 6382 2268 Star ! 6382 2245 Star ! 6382 2222 Star ! 6382 2199 Star ! 6382 2176 Star ! 6382 2153 Star ! 6382 2131 Star ! 6382 2108 Star ! 6382 2085 Star ! 6382 2062 Star ! 6382 2039 Star ! 6382 2016 Star ! 6382 1993 Star ! 6382 1971 Star ! 6382 1948 Star ! 6382 1925 Star ! 6382 1902 Star ! 6382 1879 Star ! 6382 1856 Star ! 6382 1834 Star ! 6382 1811 Star ! 6382 1788 Star ! 6382 1765 Star ! 6382 1742 Star ! 6382 1719 Star ! 6382 1696 Star ! 6382 1674 Star ! 6382 1651 Star ! 6382 1628 Star ! 6382 1605 Star ! 6382 1582 Star ! 6382 1559 Star ! 6382 1537 Star ! 6382 1514 Star ! 6382 1491 Star ! 6382 1468 Star ! 6382 1445 Star ! 6382 1422 Star ! 6382 1399 Star ! 6382 1377 Star ! 6382 1354 Star ! 6382 1331 Star ! 6382 1308 Star ! 6382 1285 Star ! 6382 1262 Star ! 6382 1240 Star ! 6382 1217 Star ! 6382 1194 Star ! 6382 1171 Star ! 6382 1148 Star ! 6382 1125 Star ! 6382 1102 Star ! 6382 1080 Star ! 6382 1057 Star ! 6382 1034 Star ! 6382 1011 Star ! 6382 988 Star ! 6382 965 Star ! 6382 943 Star ! 6382 920 Star ! 6382 897 Star ! 6382 874 Star ! 6382 851 Star ! 6382 828 Star ! 6382 805 Star ! 6382 783 Star ! 6382 760 Star ! 6382 737 Star ! 6382 714 Star ! 6382 691 Star ! 6415 2770 Star ! 6415 2747 Star ! 6415 2724 Star ! 6415 2702 Star ! 6415 2679 Star ! 6415 2656 Star ! 6415 2633 Star ! 6415 2610 Star ! 6415 2587 Star ! 6415 2565 Star ! 6415 2542 Star ! 6415 2519 Star ! 6415 2496 Star ! 6415 2473 Star ! 6415 2450 Star ! 6415 2428 Star ! 6415 2405 Star ! 6415 2382 Star ! 6415 2359 Star ! 6415 2336 Star ! 6415 2313 Star ! 6415 2290 Star ! 6415 2268 Star ! 6415 2245 Star ! 6415 2222 Star ! 6415 2199 Star ! 6415 2176 Star ! 6415 2153 Star ! 6415 2131 Star ! 6415 2108 Star ! 6415 2085 Star ! 6415 2062 Star ! 6415 2039 Star ! 6415 2016 Star ! 6415 1993 Star ! 6415 1971 Star ! 6415 1948 Star ! 6415 1925 Star ! 6415 1902 Star ! 6415 1879 Star ! 6415 1856 Star ! 6415 1834 Star ! 6415 1811 Star ! 6415 1788 Star ! 6415 1765 Star ! 6415 1742 Star ! 6415 1719 Star ! 6415 1696 Star ! 6415 1674 Star ! 6415 1651 Star ! 6415 1628 Star ! 6415 1605 Star ! 6415 1582 Star ! 6415 1559 Star ! 6415 1537 Star ! 6415 1514 Star ! 6415 1491 Star ! 6415 1468 Star ! 6415 1445 Star ! 6415 1422 Star ! 6415 1399 Star ! 6415 1377 Star ! 6415 1354 Star ! 6415 1331 Star ! 6415 1308 Star ! 6415 1285 Star ! 6415 1262 Star ! 6415 1240 Star ! 6415 1217 Star ! 6415 1194 Star ! 6415 1171 Star ! 6415 1148 Star ! 6415 1125 Star ! 6415 1102 Star ! 6415 1080 Star ! 6415 1057 Star ! 6415 1034 Star ! 6415 1011 Star ! 6415 988 Star ! 6415 965 Star ! 6415 943 Star ! 6415 920 Star ! 6415 897 Star ! 6415 874 Star ! 6415 851 Star ! 6415 828 Star ! 6415 805 Star ! 6415 783 Star ! 6415 760 Star ! 6415 737 Star ! 6415 714 Star ! 6415 691 Star ! 6415 668 Star ! 6447 2747 Star ! 6447 2724 Star ! 6447 2702 Star ! 6447 2679 Star ! 6447 2656 Star ! 6447 2633 Star ! 6447 2610 Star ! 6447 2587 Star ! 6447 2565 Star ! 6447 2542 Star ! 6447 2519 Star ! 6447 2496 Star ! 6447 2473 Star ! 6447 2450 Star ! 6447 2428 Star ! 6447 2405 Star ! 6447 2382 Star ! 6447 2359 Star ! 6447 2336 Star ! 6447 2313 Star ! 6447 2290 Star ! 6447 2268 Star ! 6447 2245 Star ! 6447 2222 Star ! 6447 2199 Star ! 6447 2176 Star ! 6447 2153 Star ! 6447 2131 Star ! 6447 2108 Star ! 6447 2085 Star ! 6447 2062 Star ! 6447 2039 Star ! 6447 2016 Star ! 6447 1993 Star ! 6447 1971 Star ! 6447 1948 Star ! 6447 1925 Star ! 6447 1902 Star ! 6447 1879 Star ! 6447 1856 Star ! 6447 1834 Star ! 6447 1811 Star ! 6447 1788 Star ! 6447 1765 Star ! 6447 1742 Star ! 6447 1719 Star ! 6447 1696 Star ! 6447 1674 Star ! 6447 1651 Star ! 6447 1628 Star ! 6447 1605 Star ! 6447 1582 Star ! 6447 1559 Star ! 6447 1537 Star ! 6447 1514 Star ! 6447 1491 Star ! 6447 1468 Star ! 6447 1445 Star ! 6447 1422 Star ! 6447 1399 Star ! 6447 1377 Star ! 6447 1354 Star ! 6447 1331 Star ! 6447 1308 Star ! 6447 1285 Star ! 6447 1262 Star ! 6447 1240 Star ! 6447 1217 Star ! 6447 1194 Star ! 6447 1171 Star ! 6447 1148 Star ! 6447 1125 Star ! 6447 1102 Star ! 6447 1080 Star ! 6447 1057 Star ! 6447 1034 Star ! 6447 1011 Star ! 6447 988 Star ! 6447 965 Star ! 6447 943 Star ! 6447 920 Star ! 6447 897 Star ! 6447 874 Star ! 6447 851 Star ! 6447 828 Star ! 6447 805 Star ! 6447 783 Star ! 6447 760 Star ! 6447 737 Star ! 6447 714 Star ! 6447 691 Star ! 6447 668 Star ! 6447 646 Star ! 6479 2747 Star ! 6479 2724 Star ! 6479 2702 Star ! 6479 2679 Star ! 6479 2656 Star ! 6479 2633 Star ! 6479 2610 Star ! 6479 2587 Star ! 6479 2565 Star ! 6479 2542 Star ! 6479 2519 Star ! 6479 2496 Star ! 6479 2473 Star ! 6479 2450 Star ! 6479 2428 Star ! 6479 2405 Star ! 6479 2382 Star ! 6479 2359 Star ! 6479 2336 Star ! 6479 2313 Star ! 6479 2290 Star ! 6479 2268 Star ! 6479 2245 Star ! 6479 2222 Star ! 6479 2199 Star ! 6479 2176 Star ! 6479 2153 Star ! 6479 2131 Star ! 6479 2108 Star ! 6479 2085 Star ! 6479 2062 Star ! 6479 2039 Star ! 6479 2016 Star ! 6479 1993 Star ! 6479 1971 Star ! 6479 1948 Star ! 6479 1925 Star ! 6479 1902 Star ! 6479 1879 Star ! 6479 1856 Star ! 6479 1834 Star ! 6479 1811 Star ! 6479 1788 Star ! 6479 1765 Star ! 6479 1742 Star ! 6479 1719 Star ! 6479 1696 Star ! 6479 1674 Star ! 6479 1651 Star ! 6479 1628 Star ! 6479 1605 Star ! 6479 1582 Star ! 6479 1559 Star ! 6479 1537 Star ! 6479 1514 Star ! 6479 1491 Star ! 6479 1468 Star ! 6479 1445 Star ! 6479 1422 Star ! 6479 1399 Star ! 6479 1377 Star ! 6479 1354 Star ! 6479 1331 Star ! 6479 1308 Star ! 6479 1285 Star ! 6479 1262 Star ! 6479 1240 Star ! 6479 1217 Star ! 6479 1194 Star ! 6479 1171 Star ! 6479 1148 Star ! 6479 1125 Star ! 6479 1102 Star ! 6479 1080 Star ! 6479 1057 Star ! 6479 1034 Star ! 6479 1011 Star ! 6479 988 Star ! 6479 965 Star ! 6479 943 Star ! 6479 920 Star ! 6479 897 Star ! 6479 874 Star ! 6479 851 Star ! 6479 828 Star ! 6479 805 Star ! 6479 783 Star ! 6479 760 Star ! 6479 737 Star ! 6479 714 Star ! 6479 691 Star ! 6479 668 Star ! 6479 646 Star ! 6479 623 Star ! 6511 2724 Star ! 6511 2702 Star ! 6511 2679 Star ! 6511 2656 Star ! 6511 2633 Star ! 6511 2610 Star ! 6511 2587 Star ! 6511 2565 Star ! 6511 2542 Star ! 6511 2519 Star ! 6511 2496 Star ! 6511 2473 Star ! 6511 2450 Star ! 6511 2428 Star ! 6511 2405 Star ! 6511 2382 Star ! 6511 2359 Star ! 6511 2336 Star ! 6511 2313 Star ! 6511 2290 Star ! 6511 2268 Star ! 6511 2245 Star ! 6511 2222 Star ! 6511 2199 Star ! 6511 2176 Star ! 6511 2153 Star ! 6511 2131 Star ! 6511 2108 Star ! 6511 2085 Star ! 6511 2062 Star ! 6511 2039 Star ! 6511 2016 Star ! 6511 1993 Star ! 6511 1971 Star ! 6511 1948 Star ! 6511 1925 Star ! 6511 1902 Star ! 6511 1879 Star ! 6511 1856 Star ! 6511 1834 Star ! 6511 1811 Star ! 6511 1788 Star ! 6511 1765 Star ! 6511 1742 Star ! 6511 1719 Star ! 6511 1696 Star ! 6511 1674 Star ! 6511 1651 Star ! 6511 1628 Star ! 6511 1605 Star ! 6511 1582 Star ! 6511 1559 Star ! 6511 1537 Star ! 6511 1514 Star ! 6511 1491 Star ! 6511 1468 Star ! 6511 1445 Star ! 6511 1422 Star ! 6511 1399 Star ! 6511 1377 Star ! 6511 1354 Star ! 6511 1331 Star ! 6511 1308 Star ! 6511 1285 Star ! 6511 1262 Star ! 6511 1240 Star ! 6511 1217 Star ! 6511 1194 Star ! 6511 1171 Star ! 6511 1148 Star ! 6511 1125 Star ! 6511 1102 Star ! 6511 1080 Star ! 6511 1057 Star ! 6511 1034 Star ! 6511 1011 Star ! 6511 988 Star ! 6511 965 Star ! 6511 943 Star ! 6511 920 Star ! 6511 897 Star ! 6511 874 Star ! 6511 851 Star ! 6511 828 Star ! 6511 805 Star ! 6511 783 Star ! 6511 760 Star ! 6511 737 Star ! 6511 714 Star ! 6511 691 Star ! 6511 668 Star ! 6511 646 Star ! 6511 623 Star ! 6511 600 Star ! 6543 2724 Star ! 6543 2702 Star ! 6543 2679 Star ! 6543 2656 Star ! 6543 2633 Star ! 6543 2610 Star ! 6543 2587 Star ! 6543 2565 Star ! 6543 2542 Star ! 6543 2519 Star ! 6543 2496 Star ! 6543 2473 Star ! 6543 2450 Star ! 6543 2428 Star ! 6543 2405 Star ! 6543 2382 Star ! 6543 2359 Star ! 6543 2336 Star ! 6543 2313 Star ! 6543 2290 Star ! 6543 2268 Star ! 6543 2245 Star ! 6543 2222 Star ! 6543 2199 Star ! 6543 2176 Star ! 6543 2153 Star ! 6543 2131 Star ! 6543 2108 Star ! 6543 2085 Star ! 6543 2062 Star ! 6543 2039 Star ! 6543 2016 Star ! 6543 1993 Star ! 6543 1971 Star ! 6543 1948 Star ! 6543 1925 Star ! 6543 1902 Star ! 6543 1879 Star ! 6543 1856 Star ! 6543 1834 Star ! 6543 1811 Star ! 6543 1788 Star ! 6543 1765 Star ! 6543 1742 Star ! 6543 1719 Star ! 6543 1696 Star ! 6543 1674 Star ! 6543 1651 Star ! 6543 1628 Star ! 6543 1605 Star ! 6543 1582 Star ! 6543 1559 Star ! 6543 1537 Star ! 6543 1514 Star ! 6543 1491 Star ! 6543 1468 Star ! 6543 1445 Star ! 6543 1422 Star ! 6543 1399 Star ! 6543 1377 Star ! 6543 1354 Star ! 6543 1331 Star ! 6543 1308 Star ! 6543 1285 Star ! 6543 1262 Star ! 6543 1240 Star ! 6543 1217 Star ! 6543 1194 Star ! 6543 1171 Star ! 6543 1148 Star ! 6543 1125 Star ! 6543 1102 Star ! 6543 1080 Star ! 6543 1057 Star ! 6543 1034 Star ! 6543 1011 Star ! 6543 988 Star ! 6543 965 Star ! 6543 943 Star ! 6543 920 Star ! 6543 897 Star ! 6543 874 Star ! 6543 851 Star ! 6543 828 Star ! 6543 805 Star ! 6543 783 Star ! 6543 760 Star ! 6543 737 Star ! 6543 714 Star ! 6543 691 Star ! 6543 668 Star ! 6543 646 Star ! 6543 623 Star ! 6543 600 Star ! 6543 577 Star ! 6576 2702 Star ! 6576 2679 Star ! 6576 2656 Star ! 6576 2633 Star ! 6576 2610 Star ! 6576 2587 Star ! 6576 2565 Star ! 6576 2542 Star ! 6576 2519 Star ! 6576 2496 Star ! 6576 2473 Star ! 6576 2450 Star ! 6576 2428 Star ! 6576 2405 Star ! 6576 2382 Star ! 6576 2359 Star ! 6576 2336 Star ! 6576 2313 Star ! 6576 2290 Star ! 6576 2268 Star ! 6576 2245 Star ! 6576 2222 Star ! 6576 2199 Star ! 6576 2176 Star ! 6576 2153 Star ! 6576 2131 Star ! 6576 2108 Star ! 6576 2085 Star ! 6576 2062 Star ! 6576 2039 Star ! 6576 2016 Star ! 6576 1993 Star ! 6576 1971 Star ! 6576 1948 Star ! 6576 1925 Star ! 6576 1902 Star ! 6576 1879 Star ! 6576 1856 Star ! 6576 1834 Star ! 6576 1811 Star ! 6576 1788 Star ! 6576 1765 Star ! 6576 1742 Star ! 6576 1719 Star ! 6576 1696 Star ! 6576 1674 Star ! 6576 1651 Star ! 6576 1628 Star ! 6576 1605 Star ! 6576 1582 Star ! 6576 1559 Star ! 6576 1537 Star ! 6576 1514 Star ! 6576 1491 Star ! 6576 1468 Star ! 6576 1445 Star ! 6576 1422 Star ! 6576 1399 Star ! 6576 1377 Star ! 6576 1354 Star ! 6576 1331 Star ! 6576 1308 Star ! 6576 1285 Star ! 6576 1262 Star ! 6576 1240 Star ! 6576 1217 Star ! 6576 1194 Star ! 6576 1171 Star ! 6576 1148 Star ! 6576 1125 Star ! 6576 1102 Star ! 6576 1080 Star ! 6576 1057 Star ! 6576 1034 Star ! 6576 1011 Star ! 6576 988 Star ! 6576 965 Star ! 6576 943 Star ! 6576 920 Star ! 6576 897 Star ! 6576 874 Star ! 6576 851 Star ! 6576 828 Star ! 6576 805 Star ! 6576 783 Star ! 6576 760 Star ! 6576 737 Star ! 6576 714 Star ! 6576 691 Star ! 6576 668 Star ! 6576 646 Star ! 6576 623 Star ! 6576 600 Star ! 6576 577 Star ! 6576 554 Star ! 6608 2702 Star ! 6608 2679 Star ! 6608 2656 Star ! 6608 2633 Star ! 6608 2610 Star ! 6608 2587 Star ! 6608 2565 Star ! 6608 2542 Star ! 6608 2519 Star ! 6608 2496 Star ! 6608 2473 Star ! 6608 2450 Star ! 6608 2428 Star ! 6608 2405 Star ! 6608 2382 Star ! 6608 2359 Star ! 6608 2336 Star ! 6608 2313 Star ! 6608 2290 Star ! 6608 2268 Star ! 6608 2245 Star ! 6608 2222 Star ! 6608 2199 Star ! 6608 2176 Star ! 6608 2153 Star ! 6608 2131 Star ! 6608 2108 Star ! 6608 2085 Star ! 6608 2062 Star ! 6608 2039 Star ! 6608 2016 Star ! 6608 1993 Star ! 6608 1971 Star ! 6608 1948 Star ! 6608 1925 Star ! 6608 1902 Star ! 6608 1879 Star ! 6608 1856 Star ! 6608 1834 Star ! 6608 1811 Star ! 6608 1788 Star ! 6608 1765 Star ! 6608 1742 Star ! 6608 1719 Star ! 6608 1696 Star ! 6608 1674 Star ! 6608 1651 Star ! 6608 1628 Star ! 6608 1605 Star ! 6608 1582 Star ! 6608 1559 Star ! 6608 1537 Star ! 6608 1514 Star ! 6608 1491 Star ! 6608 1468 Star ! 6608 1445 Star ! 6608 1422 Star ! 6608 1399 Star ! 6608 1377 Star ! 6608 1354 Star ! 6608 1331 Star ! 6608 1308 Star ! 6608 1285 Star ! 6608 1262 Star ! 6608 1240 Star ! 6608 1217 Star ! 6608 1194 Star ! 6608 1171 Star ! 6608 1148 Star ! 6608 1125 Star ! 6608 1102 Star ! 6608 1080 Star ! 6608 1057 Star ! 6608 1034 Star ! 6608 1011 Star ! 6608 988 Star ! 6608 965 Star ! 6608 943 Star ! 6608 920 Star ! 6608 897 Star ! 6608 874 Star ! 6608 851 Star ! 6608 828 Star ! 6608 805 Star ! 6608 783 Star ! 6608 760 Star ! 6608 737 Star ! 6608 714 Star ! 6608 691 Star ! 6608 668 Star ! 6608 646 Star ! 6608 623 Star ! 6608 600 Star ! 6608 577 Star ! 6608 554 Star ! 6608 531 Star ! 6640 2679 Star ! 6640 2656 Star ! 6640 2633 Star ! 6640 2610 Star ! 6640 2587 Star ! 6640 2565 Star ! 6640 2542 Star ! 6640 2519 Star ! 6640 2496 Star ! 6640 2473 Star ! 6640 2450 Star ! 6640 2428 Star ! 6640 2405 Star ! 6640 2382 Star ! 6640 2359 Star ! 6640 2336 Star ! 6640 2313 Star ! 6640 2290 Star ! 6640 2268 Star ! 6640 2245 Star ! 6640 2222 Star ! 6640 2199 Star ! 6640 2176 Star ! 6640 2153 Star ! 6640 2131 Star ! 6640 2108 Star ! 6640 2085 Star ! 6640 2062 Star ! 6640 2039 Star ! 6640 2016 Star ! 6640 1993 Star ! 6640 1971 Star ! 6640 1948 Star ! 6640 1925 Star ! 6640 1902 Star ! 6640 1879 Star ! 6640 1856 Star ! 6640 1834 Star ! 6640 1811 Star ! 6640 1788 Star ! 6640 1765 Star ! 6640 1742 Star ! 6640 1719 Star ! 6640 1696 Star ! 6640 1674 Star ! 6640 1651 Star ! 6640 1628 Star ! 6640 1605 Star ! 6640 1582 Star ! 6640 1559 Star ! 6640 1537 Star ! 6640 1514 Star ! 6640 1491 Star ! 6640 1468 Star ! 6640 1445 Star ! 6640 1422 Star ! 6640 1399 Star ! 6640 1377 Star ! 6640 1354 Star ! 6640 1331 Star ! 6640 1308 Star ! 6640 1285 Star ! 6640 1262 Star ! 6640 1240 Star ! 6640 1217 Star ! 6640 1194 Star ! 6640 1171 Star ! 6640 1148 Star ! 6640 1125 Star ! 6640 1102 Star ! 6640 1080 Star ! 6640 1057 Star ! 6640 1034 Star ! 6640 1011 Star ! 6640 988 Star ! 6640 965 Star ! 6640 943 Star ! 6640 920 Star ! 6640 897 Star ! 6640 874 Star ! 6640 851 Star ! 6640 828 Star ! 6640 805 Star ! 6640 783 Star ! 6640 760 Star ! 6640 737 Star ! 6640 714 Star ! 6640 691 Star ! 6640 668 Star ! 6640 646 Star ! 6640 623 Star ! 6640 600 Star ! 6640 577 Star ! 6640 554 Star ! 6640 531 Star ! 6640 508 Star ! 6672 2679 Star ! 6672 2656 Star ! 6672 2633 Star ! 6672 2610 Star ! 6672 2587 Star ! 6672 2565 Star ! 6672 2542 Star ! 6672 2519 Star ! 6672 2496 Star ! 6672 2473 Star ! 6672 2450 Star ! 6672 2428 Star ! 6672 2405 Star ! 6672 2382 Star ! 6672 2359 Star ! 6672 2336 Star ! 6672 2313 Star ! 6672 2290 Star ! 6672 2268 Star ! 6672 2245 Star ! 6672 2222 Star ! 6672 2199 Star ! 6672 2176 Star ! 6672 2153 Star ! 6672 2131 Star ! 6672 2108 Star ! 6672 2085 Star ! 6672 2062 Star ! 6672 2039 Star ! 6672 2016 Star ! 6672 1993 Star ! 6672 1971 Star ! 6672 1948 Star ! 6672 1925 Star ! 6672 1902 Star ! 6672 1879 Star ! 6672 1856 Star ! 6672 1834 Star ! 6672 1811 Star ! 6672 1788 Star ! 6672 1765 Star ! 6672 1742 Star ! 6672 1719 Star ! 6672 1696 Star ! 6672 1674 Star ! 6672 1651 Star ! 6672 1628 Star ! 6672 1605 Star ! 6672 1582 Star ! 6672 1559 Star ! 6672 1537 Star ! 6672 1514 Star ! 6672 1491 Star ! 6672 1468 Star ! 6672 1445 Star ! 6672 1422 Star ! 6672 1399 Star ! 6672 1377 Star ! 6672 1354 Star ! 6672 1331 Star ! 6672 1308 Star ! 6672 1285 Star ! 6672 1262 Star ! 6672 1240 Star ! 6672 1217 Star ! 6672 1194 Star ! 6672 1171 Star ! 6672 1148 Star ! 6672 1125 Star ! 6672 1102 Star ! 6672 1080 Star ! 6672 1057 Star ! 6672 1034 Star ! 6672 1011 Star ! 6672 988 Star ! 6672 965 Star ! 6672 943 Star ! 6672 920 Star ! 6672 897 Star ! 6672 874 Star ! 6672 851 Star ! 6672 828 Star ! 6672 805 Star ! 6672 783 Star ! 6672 760 Star ! 6672 737 Star ! 6672 714 Star ! 6672 691 Star ! 6672 668 Star ! 6672 646 Star ! 6672 623 Star ! 6672 600 Star ! 6672 577 Star ! 6672 554 Star ! 6672 531 Star ! 6672 508 Star ! 6672 486 Star ! 6704 2656 Star ! 6704 2633 Star ! 6704 2610 Star ! 6704 2587 Star ! 6704 2565 Star ! 6704 2542 Star ! 6704 2519 Star ! 6704 2496 Star ! 6704 2473 Star ! 6704 2450 Star ! 6704 2428 Star ! 6704 2405 Star ! 6704 2382 Star ! 6704 2359 Star ! 6704 2336 Star ! 6704 2313 Star ! 6704 2290 Star ! 6704 2268 Star ! 6704 2245 Star ! 6704 2222 Star ! 6704 2199 Star ! 6704 2176 Star ! 6704 2153 Star ! 6704 2131 Star ! 6704 2108 Star ! 6704 2085 Star ! 6704 2062 Star ! 6704 2039 Star ! 6704 2016 Star ! 6704 1993 Star ! 6704 1971 Star ! 6704 1948 Star ! 6704 1925 Star ! 6704 1902 Star ! 6704 1879 Star ! 6704 1856 Star ! 6704 1834 Star ! 6704 1811 Star ! 6704 1788 Star ! 6704 1765 Star ! 6704 1742 Star ! 6704 1719 Star ! 6704 1696 Star ! 6704 1674 Star ! 6704 1651 Star ! 6704 1628 Star ! 6704 1605 Star ! 6704 1582 Star ! 6704 1559 Star ! 6704 1537 Star ! 6704 1514 Star ! 6704 1491 Star ! 6704 1468 Star ! 6704 1445 Star ! 6704 1422 Star ! 6704 1399 Star ! 6704 1377 Star ! 6704 1354 Star ! 6704 1331 Star ! 6704 1308 Star ! 6704 1285 Star ! 6704 1262 Star ! 6704 1240 Star ! 6704 1217 Star ! 6704 1194 Star ! 6704 1171 Star ! 6704 1148 Star ! 6704 1125 Star ! 6704 1102 Star ! 6704 1080 Star ! 6704 1057 Star ! 6704 1034 Star ! 6704 1011 Star ! 6704 988 Star ! 6704 965 Star ! 6704 943 Star ! 6704 920 Star ! 6704 897 Star ! 6704 874 Star ! 6704 851 Star ! 6704 828 Star ! 6704 805 Star ! 6704 783 Star ! 6704 760 Star ! 6704 737 Star ! 6704 714 Star ! 6704 691 Star ! 6704 668 Star ! 6704 646 Star ! 6704 623 Star ! 6704 600 Star ! 6704 577 Star ! 6704 554 Star ! 6704 531 Star ! 6704 508 Star ! 6704 486 Star ! 6704 463 Star ! 6737 2656 Star ! 6737 2633 Star ! 6737 2610 Star ! 6737 2587 Star ! 6737 2565 Star ! 6737 2542 Star ! 6737 2519 Star ! 6737 2496 Star ! 6737 2473 Star ! 6737 2450 Star ! 6737 2428 Star ! 6737 2405 Star ! 6737 2382 Star ! 6737 2359 Star ! 6737 2336 Star ! 6737 2313 Star ! 6737 2290 Star ! 6737 2268 Star ! 6737 2245 Star ! 6737 2222 Star ! 6737 2199 Star ! 6737 2176 Star ! 6737 2153 Star ! 6737 2131 Star ! 6737 2108 Star ! 6737 2085 Star ! 6737 2062 Star ! 6737 2039 Star ! 6737 2016 Star ! 6737 1993 Star ! 6737 1971 Star ! 6737 1948 Star ! 6737 1925 Star ! 6737 1902 Star ! 6737 1879 Star ! 6737 1856 Star ! 6737 1834 Star ! 6737 1811 Star ! 6737 1788 Star ! 6737 1765 Star ! 6737 1742 Star ! 6737 1719 Star ! 6737 1696 Star ! 6737 1674 Star ! 6737 1651 Star ! 6737 1628 Star ! 6737 1605 Star ! 6737 1582 Star ! 6737 1559 Star ! 6737 1537 Star ! 6737 1514 Star ! 6737 1491 Star ! 6737 1468 Star ! 6737 1445 Star ! 6737 1422 Star ! 6737 1399 Star ! 6737 1377 Star ! 6737 1354 Star ! 6737 1331 Star ! 6737 1308 Star ! 6737 1285 Star ! 6737 1262 Star ! 6737 1240 Star ! 6737 1217 Star ! 6737 1194 Star ! 6737 1171 Star ! 6737 1148 Star ! 6737 1125 Star ! 6737 1102 Star ! 6737 1080 Star ! 6737 1057 Star ! 6737 1034 Star ! 6737 1011 Star ! 6737 988 Star ! 6737 965 Star ! 6737 943 Star ! 6737 920 Star ! 6737 897 Star ! 6737 874 Star ! 6737 851 Star ! 6737 828 Star ! 6737 805 Star ! 6737 783 Star ! 6737 760 Star ! 6737 737 Star ! 6737 714 Star ! 6737 691 Star ! 6737 668 Star ! 6737 646 Star ! 6737 623 Star ! 6737 600 Star ! 6737 577 Star ! 6737 554 Star ! 6737 531 Star ! 6737 508 Star ! 6737 486 Star ! 6737 463 Star ! 6737 440 Star ! 6769 2633 Star ! 6769 2610 Star ! 6769 2587 Star ! 6769 2565 Star ! 6769 2542 Star ! 6769 2519 Star ! 6769 2496 Star ! 6769 2473 Star ! 6769 2450 Star ! 6769 2428 Star ! 6769 2405 Star ! 6769 2382 Star ! 6769 2359 Star ! 6769 2336 Star ! 6769 2313 Star ! 6769 2290 Star ! 6769 2268 Star ! 6769 2245 Star ! 6769 2222 Star ! 6769 2199 Star ! 6769 2176 Star ! 6769 2153 Star ! 6769 2131 Star ! 6769 2108 Star ! 6769 2085 Star ! 6769 2062 Star ! 6769 2039 Star ! 6769 2016 Star ! 6769 1993 Star ! 6769 1971 Star ! 6769 1948 Star ! 6769 1925 Star ! 6769 1902 Star ! 6769 1879 Star ! 6769 1856 Star ! 6769 1834 Star ! 6769 1811 Star ! 6769 1788 Star ! 6769 1765 Star ! 6769 1742 Star ! 6769 1719 Star ! 6769 1696 Star ! 6769 1674 Star ! 6769 1651 Star ! 6769 1628 Star ! 6769 1605 Star ! 6769 1582 Star ! 6769 1559 Star ! 6769 1537 Star ! 6769 1514 Star ! 6769 1491 Star ! 6769 1468 Star ! 6769 1445 Star ! 6769 1422 Star ! 6769 1399 Star ! 6769 1377 Star ! 6769 1354 Star ! 6769 1331 Star ! 6769 1308 Star ! 6769 1285 Star ! 6769 1262 Star ! 6769 1240 Star ! 6769 1217 Star ! 6769 1194 Star ! 6769 1171 Star ! 6769 1148 Star ! 6769 1125 Star ! 6769 1102 Star ! 6769 1080 Star ! 6769 1057 Star ! 6769 1034 Star ! 6769 1011 Star ! 6769 988 Star ! 6769 965 Star ! 6769 943 Star ! 6769 920 Star ! 6769 897 Star ! 6769 874 Star ! 6769 851 Star ! 6769 828 Star ! 6769 805 Star ! 6769 783 Star ! 6769 760 Star ! 6769 737 Star ! 6769 714 Star ! 6769 691 Star ! 6769 668 Star ! 6769 646 Star ! 6769 623 Star ! 6769 600 Star ! 6769 577 Star ! 6769 554 Star ! 6769 531 Star ! 6769 508 Star ! 6769 486 Star ! 6769 463 Star ! 6769 440 Star ! 6769 417 Star ! 6801 2633 Star ! 6801 2610 Star ! 6801 2587 Star ! 6801 2565 Star ! 6801 2542 Star ! 6801 2519 Star ! 6801 2496 Star ! 6801 2473 Star ! 6801 2450 Star ! 6801 2428 Star ! 6801 2405 Star ! 6801 2382 Star ! 6801 2359 Star ! 6801 2336 Star ! 6801 2313 Star ! 6801 2290 Star ! 6801 2268 Star ! 6801 2245 Star ! 6801 2222 Star ! 6801 2199 Star ! 6801 2176 Star ! 6801 2153 Star ! 6801 2131 Star ! 6801 2108 Star ! 6801 2085 Star ! 6801 2062 Star ! 6801 2039 Star ! 6801 2016 Star ! 6801 1993 Star ! 6801 1971 Star ! 6801 1948 Star ! 6801 1925 Star ! 6801 1902 Star ! 6801 1879 Star ! 6801 1856 Star ! 6801 1834 Star ! 6801 1811 Star ! 6801 1788 Star ! 6801 1765 Star ! 6801 1742 Star ! 6801 1719 Star ! 6801 1696 Star ! 6801 1674 Star ! 6801 1651 Star ! 6801 1628 Star ! 6801 1605 Star ! 6801 1582 Star ! 6801 1559 Star ! 6801 1537 Star ! 6801 1514 Star ! 6801 1491 Star ! 6801 1468 Star ! 6801 1445 Star ! 6801 1422 Star ! 6801 1399 Star ! 6801 1377 Star ! 6801 1354 Star ! 6801 1331 Star ! 6801 1308 Star ! 6801 1285 Star ! 6801 1262 Star ! 6801 1240 Star ! 6801 1217 Star ! 6801 1194 Star ! 6801 1171 Star ! 6801 1148 Star ! 6801 1125 Star ! 6801 1102 Star ! 6801 1080 Star ! 6801 1057 Star ! 6801 1034 Star ! 6801 1011 Star ! 6801 988 Star ! 6801 965 Star ! 6801 943 Star ! 6801 920 Star ! 6801 897 Star ! 6801 874 Star ! 6801 851 Star ! 6801 828 Star ! 6801 805 Star ! 6801 783 Star ! 6801 760 Star ! 6801 737 Star ! 6801 714 Star ! 6801 691 Star ! 6801 668 Star ! 6801 646 Star ! 6801 623 Star ! 6801 600 Star ! 6801 577 Star ! 6801 554 Star ! 6801 531 Star ! 6801 508 Star ! 6801 486 Star ! 6801 463 Star ! 6801 440 Star ! 6801 417 Star ! 6801 394 Star ! 6833 2610 Star ! 6833 2587 Star ! 6833 2565 Star ! 6833 2542 Star ! 6833 2519 Star ! 6833 2496 Star ! 6833 2473 Star ! 6833 2450 Star ! 6833 2428 Star ! 6833 2405 Star ! 6833 2382 Star ! 6833 2359 Star ! 6833 2336 Star ! 6833 2313 Star ! 6833 2290 Star ! 6833 2268 Star ! 6833 2245 Star ! 6833 2222 Star ! 6833 2199 Star ! 6833 2176 Star ! 6833 2153 Star ! 6833 2131 Star ! 6833 2108 Star ! 6833 2085 Star ! 6833 2062 Star ! 6833 2039 Star ! 6833 2016 Star ! 6833 1993 Star ! 6833 1971 Star ! 6833 1948 Star ! 6833 1925 Star ! 6833 1902 Star ! 6833 1879 Star ! 6833 1856 Star ! 6833 1834 Star ! 6833 1811 Star ! 6833 1788 Star ! 6833 1765 Star ! 6833 1742 Star ! 6833 1719 Star ! 6833 1696 Star ! 6833 1674 Star ! 6833 1651 Star ! 6833 1628 Star ! 6833 1605 Star ! 6833 1582 Star ! 6833 1559 Star ! 6833 1537 Star ! 6833 1514 Star ! 6833 1491 Star ! 6833 1468 Star ! 6833 1445 Star ! 6833 1422 Star ! 6833 1399 Star ! 6833 1377 Star ! 6833 1354 Star ! 6833 1331 Star ! 6833 1308 Star ! 6833 1285 Star ! 6833 1262 Star ! 6833 1240 Star ! 6833 1217 Star ! 6833 1194 Star ! 6833 1171 Star ! 6833 1148 Star ! 6833 1125 Star ! 6833 1102 Star ! 6833 1080 Star ! 6833 1057 Star ! 6833 1034 Star ! 6833 1011 Star ! 6833 988 Star ! 6833 965 Star ! 6833 943 Star ! 6833 920 Star ! 6833 897 Star ! 6833 874 Star ! 6833 851 Star ! 6833 828 Star ! 6833 805 Star ! 6833 783 Star ! 6833 760 Star ! 6833 737 Star ! 6833 714 Star ! 6833 691 Star ! 6833 668 Star ! 6833 646 Star ! 6833 623 Star ! 6833 600 Star ! 6833 577 Star ! 6833 554 Star ! 6833 531 Star ! 6833 508 Star ! 6833 486 Star ! 6833 463 Star ! 6833 440 Star ! 6833 417 Star ! 6833 394 Star ! 6833 371 Star ! 6865 2610 Star ! 6865 2587 Star ! 6865 2565 Star ! 6865 2542 Star ! 6865 2519 Star ! 6865 2496 Star ! 6865 2473 Star ! 6865 2450 Star ! 6865 2428 Star ! 6865 2405 Star ! 6865 2382 Star ! 6865 2359 Star ! 6865 2336 Star ! 6865 2313 Star ! 6865 2290 Star ! 6865 2268 Star ! 6865 2245 Star ! 6865 2222 Star ! 6865 2199 Star ! 6865 2176 Star ! 6865 2153 Star ! 6865 2131 Star ! 6865 2108 Star ! 6865 2085 Star ! 6865 2062 Star ! 6865 2039 Star ! 6865 2016 Star ! 6865 1993 Star ! 6865 1971 Star ! 6865 1948 Star ! 6865 1925 Star ! 6865 1902 Star ! 6865 1879 Star ! 6865 1856 Star ! 6865 1834 Star ! 6865 1811 Star ! 6865 1788 Star ! 6865 1765 Star ! 6865 1742 Star ! 6865 1719 Star ! 6865 1696 Star ! 6865 1674 Star ! 6865 1651 Star ! 6865 1628 Star ! 6865 1605 Star ! 6865 1582 Star ! 6865 1559 Star ! 6865 1537 Star ! 6865 1514 Star ! 6865 1491 Star ! 6865 1468 Star ! 6865 1445 Star ! 6865 1422 Star ! 6865 1399 Star ! 6865 1377 Star ! 6865 1354 Star ! 6865 1331 Star ! 6865 1308 Star ! 6865 1285 Star ! 6865 1262 Star ! 6865 1240 Star ! 6865 1217 Star ! 6865 1194 Star ! 6865 1171 Star ! 6865 1148 Star ! 6865 1125 Star ! 6865 1102 Star ! 6865 1080 Star ! 6865 1057 Star ! 6865 1034 Star ! 6865 1011 Star ! 6865 988 Star ! 6865 965 Star ! 6865 943 Star ! 6865 920 Star ! 6865 897 Star ! 6865 874 Star ! 6865 851 Star ! 6865 828 Star ! 6865 805 Star ! 6865 783 Star ! 6865 760 Star ! 6865 737 Star ! 6865 714 Star ! 6865 691 Star ! 6865 668 Star ! 6865 646 Star ! 6865 623 Star ! 6865 600 Star ! 6865 577 Star ! 6865 554 Star ! 6865 531 Star ! 6865 508 Star ! 6865 486 Star ! 6865 463 Star ! 6865 440 Star ! 6865 417 Star ! 6865 394 Star ! 6865 371 Star ! 6865 349 Star ! 6898 2587 Star ! 6898 2565 Star ! 6898 2542 Star ! 6898 2519 Star ! 6898 2496 Star ! 6898 2473 Star ! 6898 2450 Star ! 6898 2428 Star ! 6898 2405 Star ! 6898 2382 Star ! 6898 2359 Star ! 6898 2336 Star ! 6898 2313 Star ! 6898 2290 Star ! 6898 2268 Star ! 6898 2245 Star ! 6898 2222 Star ! 6898 2199 Star ! 6898 2176 Star ! 6898 2153 Star ! 6898 2131 Star ! 6898 2108 Star ! 6898 2085 Star ! 6898 2062 Star ! 6898 2039 Star ! 6898 2016 Star ! 6898 1993 Star ! 6898 1971 Star ! 6898 1948 Star ! 6898 1925 Star ! 6898 1902 Star ! 6898 1879 Star ! 6898 1856 Star ! 6898 1834 Star ! 6898 1811 Star ! 6898 1788 Star ! 6898 1765 Star ! 6898 1742 Star ! 6898 1719 Star ! 6898 1696 Star ! 6898 1674 Star ! 6898 1651 Star ! 6898 1628 Star ! 6898 1605 Star ! 6898 1582 Star ! 6898 1559 Star ! 6898 1537 Star ! 6898 1514 Star ! 6898 1491 Star ! 6898 1468 Star ! 6898 1445 Star ! 6898 1422 Star ! 6898 1399 Star ! 6898 1377 Star ! 6898 1354 Star ! 6898 1331 Star ! 6898 1308 Star ! 6898 1285 Star ! 6898 1262 Star ! 6898 1240 Star ! 6898 1217 Star ! 6898 1194 Star ! 6898 1171 Star ! 6898 1148 Star ! 6898 1125 Star ! 6898 1102 Star ! 6898 1080 Star ! 6898 1057 Star ! 6898 1034 Star ! 6898 1011 Star ! 6898 988 Star ! 6898 965 Star ! 6898 943 Star ! 6898 920 Star ! 6898 897 Star ! 6898 874 Star ! 6898 851 Star ! 6898 828 Star ! 6898 805 Star ! 6898 783 Star ! 6898 760 Star ! 6898 737 Star ! 6898 714 Star ! 6898 691 Star ! 6898 668 Star ! 6898 646 Star ! 6898 623 Star ! 6898 600 Star ! 6898 577 Star ! 6898 554 Star ! 6898 531 Star ! 6898 508 Star ! 6898 486 Star ! 6898 463 Star ! 6898 440 Star ! 6898 417 Star ! 6898 394 Star ! 6898 371 Star ! 6898 349 Star ! 6898 326 Star ! 6930 2587 Star ! 6930 2565 Star ! 6930 2542 Star ! 6930 2519 Star ! 6930 2496 Star ! 6930 2473 Star ! 6930 2450 Star ! 6930 2428 Star ! 6930 2405 Star ! 6930 2382 Star ! 6930 2359 Star ! 6930 2336 Star ! 6930 2313 Star ! 6930 2290 Star ! 6930 2268 Star ! 6930 2245 Star ! 6930 2222 Star ! 6930 2199 Star ! 6930 2176 Star ! 6930 2153 Star ! 6930 2131 Star ! 6930 2108 Star ! 6930 2085 Star ! 6930 2062 Star ! 6930 2039 Star ! 6930 2016 Star ! 6930 1993 Star ! 6930 1971 Star ! 6930 1948 Star ! 6930 1925 Star ! 6930 1902 Star ! 6930 1879 Star ! 6930 1856 Star ! 6930 1834 Star ! 6930 1811 Star ! 6930 1788 Star ! 6930 1765 Star ! 6930 1742 Star ! 6930 1719 Star ! 6930 1696 Star ! 6930 1674 Star ! 6930 1651 Star ! 6930 1628 Star ! 6930 1605 Star ! 6930 1582 Star ! 6930 1559 Star ! 6930 1537 Star ! 6930 1514 Star ! 6930 1491 Star ! 6930 1468 Star ! 6930 1445 Star ! 6930 1422 Star ! 6930 1399 Star ! 6930 1377 Star ! 6930 1354 Star ! 6930 1331 Star ! 6930 1308 Star ! 6930 1285 Star ! 6930 1262 Star ! 6930 1240 Star ! 6930 1217 Star ! 6930 1194 Star ! 6930 1171 Star ! 6930 1148 Star ! 6930 1125 Star ! 6930 1102 Star ! 6930 1080 Star ! 6930 1057 Star ! 6930 1034 Star ! 6930 1011 Star ! 6930 988 Star ! 6930 965 Star ! 6930 943 Star ! 6930 920 Star ! 6930 897 Star ! 6930 874 Star ! 6930 851 Star ! 6930 828 Star ! 6930 805 Star ! 6930 783 Star ! 6930 760 Star ! 6930 737 Star ! 6930 714 Star ! 6930 691 Star ! 6930 668 Star ! 6930 646 Star ! 6930 623 Star ! 6930 600 Star ! 6930 577 Star ! 6930 554 Star ! 6930 531 Star ! 6930 508 Star ! 6930 486 Star ! 6930 463 Star ! 6930 440 Star ! 6930 417 Star ! 6930 394 Star ! 6930 371 Star ! 6930 349 Star ! 6930 326 Star ! 6930 303 Star 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL --- 543,10871 ---- } ifelse 0.500 UL LTb ! 546 4871 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 4871 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 546 3729 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3729 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MRshow 0.500 UL LTb ! 546 2587 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2587 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MRshow 0.500 UL LTb ! 546 1445 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 1445 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MRshow 0.500 UL LTb ! 546 303 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 303 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MRshow 0.500 UL LTb ! 546 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 546 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 2149 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2149 140 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MCshow 0.500 UL LTb ! 3751 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3751 140 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MCshow 0.500 UL LTb ! 5354 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5354 140 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MCshow 0.500 UL LTb ! 6957 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6957 140 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 1.000 UP 0.500 UL LT0 ! 0.00 0.00 1.00 C 578 4848 Star ! 610 4848 Star ! 610 4825 Star ! 642 4825 Star ! 642 4802 Star ! 674 4825 Star ! 674 4802 Star ! 674 4780 Star ! 706 4802 Star ! 706 4780 Star ! 706 4757 Star ! 738 4802 Star ! 738 4780 Star ! 738 4757 Star ! 738 4734 Star ! 770 4780 Star ! 770 4757 Star ! 770 4734 Star ! 770 4711 Star ! 802 4780 Star ! 802 4757 Star ! 802 4734 Star ! 802 4711 Star ! 802 4688 Star ! 834 4757 Star ! 834 4734 Star ! 834 4711 Star ! 834 4688 Star ! 834 4665 Star ! 867 4757 Star ! 867 4734 Star ! 867 4711 Star ! 867 4688 Star ! 867 4665 Star ! 867 4643 Star ! 899 4734 Star ! 899 4711 Star ! 899 4688 Star ! 899 4665 Star ! 899 4643 Star ! 899 4620 Star ! 931 4734 Star ! 931 4711 Star ! 931 4688 Star ! 931 4665 Star ! 931 4643 Star ! 931 4620 Star ! 931 4597 Star ! 963 4711 Star ! 963 4688 Star ! 963 4665 Star ! 963 4643 Star ! 963 4620 Star ! 963 4597 Star ! 963 4574 Star ! 995 4711 Star ! 995 4688 Star ! 995 4665 Star ! 995 4643 Star ! 995 4620 Star ! 995 4597 Star ! 995 4574 Star ! 995 4551 Star ! 1027 4688 Star ! 1027 4665 Star ! 1027 4643 Star ! 1027 4620 Star ! 1027 4597 Star ! 1027 4574 Star ! 1027 4551 Star ! 1027 4528 Star ! 1059 4688 Star ! 1059 4665 Star ! 1059 4643 Star ! 1059 4620 Star ! 1059 4597 Star ! 1059 4574 Star ! 1059 4551 Star ! 1059 4528 Star ! 1059 4506 Star ! 1091 4665 Star ! 1091 4643 Star ! 1091 4620 Star ! 1091 4597 Star ! 1091 4574 Star ! 1091 4551 Star ! 1091 4528 Star ! 1091 4506 Star ! 1091 4483 Star ! 1123 4665 Star ! 1123 4643 Star ! 1123 4620 Star ! 1123 4597 Star ! 1123 4574 Star ! 1123 4551 Star ! 1123 4528 Star ! 1123 4506 Star ! 1123 4483 Star ! 1123 4460 Star ! 1155 4643 Star ! 1155 4620 Star ! 1155 4597 Star ! 1155 4574 Star ! 1155 4551 Star ! 1155 4528 Star ! 1155 4506 Star ! 1155 4483 Star ! 1155 4460 Star ! 1155 4437 Star ! 1187 4643 Star ! 1187 4620 Star ! 1187 4597 Star ! 1187 4574 Star ! 1187 4551 Star ! 1187 4528 Star ! 1187 4506 Star ! 1187 4483 Star ! 1187 4460 Star ! 1187 4437 Star ! 1187 4414 Star ! 1219 4620 Star ! 1219 4597 Star ! 1219 4574 Star ! 1219 4551 Star ! 1219 4528 Star ! 1219 4506 Star ! 1219 4483 Star ! 1219 4460 Star ! 1219 4437 Star ! 1219 4414 Star ! 1219 4391 Star ! 1251 4620 Star ! 1251 4597 Star ! 1251 4574 Star ! 1251 4551 Star ! 1251 4528 Star ! 1251 4506 Star ! 1251 4483 Star ! 1251 4460 Star ! 1251 4437 Star ! 1251 4414 Star ! 1251 4391 Star ! 1251 4369 Star ! 1283 4597 Star ! 1283 4574 Star ! 1283 4551 Star ! 1283 4528 Star ! 1283 4506 Star ! 1283 4483 Star ! 1283 4460 Star ! 1283 4437 Star ! 1283 4414 Star ! 1283 4391 Star ! 1283 4369 Star ! 1283 4346 Star ! 1315 4597 Star ! 1315 4574 Star ! 1315 4551 Star ! 1315 4528 Star ! 1315 4506 Star ! 1315 4483 Star ! 1315 4460 Star ! 1315 4437 Star ! 1315 4414 Star ! 1315 4391 Star ! 1315 4369 Star ! 1315 4346 Star ! 1315 4323 Star ! 1347 4574 Star ! 1347 4551 Star ! 1347 4528 Star ! 1347 4506 Star ! 1347 4483 Star ! 1347 4460 Star ! 1347 4437 Star ! 1347 4414 Star ! 1347 4391 Star ! 1347 4369 Star ! 1347 4346 Star ! 1347 4323 Star ! 1347 4300 Star ! 1379 4574 Star ! 1379 4551 Star ! 1379 4528 Star ! 1379 4506 Star ! 1379 4483 Star ! 1379 4460 Star ! 1379 4437 Star ! 1379 4414 Star ! 1379 4391 Star ! 1379 4369 Star ! 1379 4346 Star ! 1379 4323 Star ! 1379 4300 Star ! 1379 4277 Star ! 1411 4551 Star ! 1411 4528 Star ! 1411 4506 Star ! 1411 4483 Star ! 1411 4460 Star ! 1411 4437 Star ! 1411 4414 Star ! 1411 4391 Star ! 1411 4369 Star ! 1411 4346 Star ! 1411 4323 Star ! 1411 4300 Star ! 1411 4277 Star ! 1411 4254 Star ! 1444 4551 Star ! 1444 4528 Star ! 1444 4506 Star ! 1444 4483 Star ! 1444 4460 Star ! 1444 4437 Star ! 1444 4414 Star ! 1444 4391 Star ! 1444 4369 Star ! 1444 4346 Star ! 1444 4323 Star ! 1444 4300 Star ! 1444 4277 Star ! 1444 4254 Star ! 1444 4231 Star ! 1476 4528 Star ! 1476 4506 Star ! 1476 4483 Star ! 1476 4460 Star ! 1476 4437 Star ! 1476 4414 Star ! 1476 4391 Star ! 1476 4369 Star ! 1476 4346 Star ! 1476 4323 Star ! 1476 4300 Star ! 1476 4277 Star ! 1476 4254 Star ! 1476 4231 Star ! 1476 4209 Star ! 1508 4528 Star ! 1508 4506 Star ! 1508 4483 Star ! 1508 4460 Star ! 1508 4437 Star ! 1508 4414 Star ! 1508 4391 Star ! 1508 4369 Star ! 1508 4346 Star ! 1508 4323 Star ! 1508 4300 Star ! 1508 4277 Star ! 1508 4254 Star ! 1508 4231 Star ! 1508 4209 Star ! 1508 4186 Star ! 1540 4506 Star ! 1540 4483 Star ! 1540 4460 Star ! 1540 4437 Star ! 1540 4414 Star ! 1540 4391 Star ! 1540 4369 Star ! 1540 4346 Star ! 1540 4323 Star ! 1540 4300 Star ! 1540 4277 Star ! 1540 4254 Star ! 1540 4231 Star ! 1540 4209 Star ! 1540 4186 Star ! 1540 4163 Star ! 1572 4506 Star ! 1572 4483 Star ! 1572 4460 Star ! 1572 4437 Star ! 1572 4414 Star ! 1572 4391 Star ! 1572 4369 Star ! 1572 4346 Star ! 1572 4323 Star ! 1572 4300 Star ! 1572 4277 Star ! 1572 4254 Star ! 1572 4231 Star ! 1572 4209 Star ! 1572 4186 Star ! 1572 4163 Star ! 1572 4140 Star ! 1604 4483 Star ! 1604 4460 Star ! 1604 4437 Star ! 1604 4414 Star ! 1604 4391 Star ! 1604 4369 Star ! 1604 4346 Star ! 1604 4323 Star ! 1604 4300 Star ! 1604 4277 Star ! 1604 4254 Star ! 1604 4231 Star ! 1604 4209 Star ! 1604 4186 Star ! 1604 4163 Star ! 1604 4140 Star ! 1604 4117 Star ! 1636 4483 Star ! 1636 4460 Star ! 1636 4437 Star ! 1636 4414 Star ! 1636 4391 Star ! 1636 4369 Star ! 1636 4346 Star ! 1636 4323 Star ! 1636 4300 Star ! 1636 4277 Star ! 1636 4254 Star ! 1636 4231 Star ! 1636 4209 Star ! 1636 4186 Star ! 1636 4163 Star ! 1636 4140 Star ! 1636 4117 Star ! 1636 4094 Star ! 1668 4460 Star ! 1668 4437 Star ! 1668 4414 Star ! 1668 4391 Star ! 1668 4369 Star ! 1668 4346 Star ! 1668 4323 Star ! 1668 4300 Star ! 1668 4277 Star ! 1668 4254 Star ! 1668 4231 Star ! 1668 4209 Star ! 1668 4186 Star ! 1668 4163 Star ! 1668 4140 Star ! 1668 4117 Star ! 1668 4094 Star ! 1668 4072 Star ! 1700 4460 Star ! 1700 4437 Star ! 1700 4414 Star ! 1700 4391 Star ! 1700 4369 Star ! 1700 4346 Star ! 1700 4323 Star ! 1700 4300 Star ! 1700 4277 Star ! 1700 4254 Star ! 1700 4231 Star ! 1700 4209 Star ! 1700 4186 Star ! 1700 4163 Star ! 1700 4140 Star ! 1700 4117 Star ! 1700 4094 Star ! 1700 4072 Star ! 1700 4049 Star ! 1732 4437 Star ! 1732 4414 Star ! 1732 4391 Star ! 1732 4369 Star ! 1732 4346 Star ! 1732 4323 Star ! 1732 4300 Star ! 1732 4277 Star ! 1732 4254 Star ! 1732 4231 Star ! 1732 4209 Star ! 1732 4186 Star ! 1732 4163 Star ! 1732 4140 Star ! 1732 4117 Star ! 1732 4094 Star ! 1732 4072 Star ! 1732 4049 Star ! 1732 4026 Star ! 1764 4437 Star ! 1764 4414 Star ! 1764 4391 Star ! 1764 4369 Star ! 1764 4346 Star ! 1764 4323 Star ! 1764 4300 Star ! 1764 4277 Star ! 1764 4254 Star ! 1764 4231 Star ! 1764 4209 Star ! 1764 4186 Star ! 1764 4163 Star ! 1764 4140 Star ! 1764 4117 Star ! 1764 4094 Star ! 1764 4072 Star ! 1764 4049 Star ! 1764 4026 Star ! 1764 4003 Star ! 1796 4414 Star ! 1796 4391 Star ! 1796 4369 Star ! 1796 4346 Star ! 1796 4323 Star ! 1796 4300 Star ! 1796 4277 Star ! 1796 4254 Star ! 1796 4231 Star ! 1796 4209 Star ! 1796 4186 Star ! 1796 4163 Star ! 1796 4140 Star ! 1796 4117 Star ! 1796 4094 Star ! 1796 4072 Star ! 1796 4049 Star ! 1796 4026 Star ! 1796 4003 Star ! 1796 3980 Star ! 1828 4414 Star ! 1828 4391 Star ! 1828 4369 Star ! 1828 4346 Star ! 1828 4323 Star ! 1828 4300 Star ! 1828 4277 Star ! 1828 4254 Star ! 1828 4231 Star ! 1828 4209 Star ! 1828 4186 Star ! 1828 4163 Star ! 1828 4140 Star ! 1828 4117 Star ! 1828 4094 Star ! 1828 4072 Star ! 1828 4049 Star ! 1828 4026 Star ! 1828 4003 Star ! 1828 3980 Star ! 1828 3957 Star ! 1860 4391 Star ! 1860 4369 Star ! 1860 4346 Star ! 1860 4323 Star ! 1860 4300 Star ! 1860 4277 Star ! 1860 4254 Star ! 1860 4231 Star ! 1860 4209 Star ! 1860 4186 Star ! 1860 4163 Star ! 1860 4140 Star ! 1860 4117 Star ! 1860 4094 Star ! 1860 4072 Star ! 1860 4049 Star ! 1860 4026 Star ! 1860 4003 Star ! 1860 3980 Star ! 1860 3957 Star ! 1860 3935 Star ! 1892 4391 Star ! 1892 4369 Star ! 1892 4346 Star ! 1892 4323 Star ! 1892 4300 Star ! 1892 4277 Star ! 1892 4254 Star ! 1892 4231 Star ! 1892 4209 Star ! 1892 4186 Star ! 1892 4163 Star ! 1892 4140 Star ! 1892 4117 Star ! 1892 4094 Star ! 1892 4072 Star ! 1892 4049 Star ! 1892 4026 Star ! 1892 4003 Star ! 1892 3980 Star ! 1892 3957 Star ! 1892 3935 Star ! 1892 3912 Star ! 1924 4369 Star ! 1924 4346 Star ! 1924 4323 Star ! 1924 4300 Star ! 1924 4277 Star ! 1924 4254 Star ! 1924 4231 Star ! 1924 4209 Star ! 1924 4186 Star ! 1924 4163 Star ! 1924 4140 Star ! 1924 4117 Star ! 1924 4094 Star ! 1924 4072 Star ! 1924 4049 Star ! 1924 4026 Star ! 1924 4003 Star ! 1924 3980 Star ! 1924 3957 Star ! 1924 3935 Star ! 1924 3912 Star ! 1924 3889 Star ! 1956 4369 Star ! 1956 4346 Star ! 1956 4323 Star ! 1956 4300 Star ! 1956 4277 Star ! 1956 4254 Star ! 1956 4231 Star ! 1956 4209 Star ! 1956 4186 Star ! 1956 4163 Star ! 1956 4140 Star ! 1956 4117 Star ! 1956 4094 Star ! 1956 4072 Star ! 1956 4049 Star ! 1956 4026 Star ! 1956 4003 Star ! 1956 3980 Star ! 1956 3957 Star ! 1956 3935 Star ! 1956 3912 Star ! 1956 3889 Star ! 1956 3866 Star ! 1988 4346 Star ! 1988 4323 Star ! 1988 4300 Star ! 1988 4277 Star ! 1988 4254 Star ! 1988 4231 Star ! 1988 4209 Star ! 1988 4186 Star ! 1988 4163 Star ! 1988 4140 Star ! 1988 4117 Star ! 1988 4094 Star ! 1988 4072 Star ! 1988 4049 Star ! 1988 4026 Star ! 1988 4003 Star ! 1988 3980 Star ! 1988 3957 Star ! 1988 3935 Star ! 1988 3912 Star ! 1988 3889 Star ! 1988 3866 Star ! 1988 3843 Star ! 2021 4346 Star ! 2021 4323 Star ! 2021 4300 Star ! 2021 4277 Star ! 2021 4254 Star ! 2021 4231 Star ! 2021 4209 Star ! 2021 4186 Star ! 2021 4163 Star ! 2021 4140 Star ! 2021 4117 Star ! 2021 4094 Star ! 2021 4072 Star ! 2021 4049 Star ! 2021 4026 Star ! 2021 4003 Star ! 2021 3980 Star ! 2021 3957 Star ! 2021 3935 Star ! 2021 3912 Star ! 2021 3889 Star ! 2021 3866 Star ! 2021 3843 Star ! 2021 3820 Star ! 2053 4323 Star ! 2053 4300 Star ! 2053 4277 Star ! 2053 4254 Star ! 2053 4231 Star ! 2053 4209 Star ! 2053 4186 Star ! 2053 4163 Star ! 2053 4140 Star ! 2053 4117 Star ! 2053 4094 Star ! 2053 4072 Star ! 2053 4049 Star ! 2053 4026 Star ! 2053 4003 Star ! 2053 3980 Star ! 2053 3957 Star ! 2053 3935 Star ! 2053 3912 Star ! 2053 3889 Star ! 2053 3866 Star ! 2053 3843 Star ! 2053 3820 Star ! 2053 3797 Star ! 2085 4323 Star ! 2085 4300 Star ! 2085 4277 Star ! 2085 4254 Star ! 2085 4231 Star ! 2085 4209 Star ! 2085 4186 Star ! 2085 4163 Star ! 2085 4140 Star ! 2085 4117 Star ! 2085 4094 Star ! 2085 4072 Star ! 2085 4049 Star ! 2085 4026 Star ! 2085 4003 Star ! 2085 3980 Star ! 2085 3957 Star ! 2085 3935 Star ! 2085 3912 Star ! 2085 3889 Star ! 2085 3866 Star ! 2085 3843 Star ! 2085 3820 Star ! 2085 3797 Star ! 2085 3775 Star ! 2117 4300 Star ! 2117 4277 Star ! 2117 4254 Star ! 2117 4231 Star ! 2117 4209 Star ! 2117 4186 Star ! 2117 4163 Star ! 2117 4140 Star ! 2117 4117 Star ! 2117 4094 Star ! 2117 4072 Star ! 2117 4049 Star ! 2117 4026 Star ! 2117 4003 Star ! 2117 3980 Star ! 2117 3957 Star ! 2117 3935 Star ! 2117 3912 Star ! 2117 3889 Star ! 2117 3866 Star ! 2117 3843 Star ! 2117 3820 Star ! 2117 3797 Star ! 2117 3775 Star ! 2117 3752 Star ! 2149 4300 Star ! 2149 4277 Star ! 2149 4254 Star ! 2149 4231 Star ! 2149 4209 Star ! 2149 4186 Star ! 2149 4163 Star ! 2149 4140 Star ! 2149 4117 Star ! 2149 4094 Star ! 2149 4072 Star ! 2149 4049 Star ! 2149 4026 Star ! 2149 4003 Star ! 2149 3980 Star ! 2149 3957 Star ! 2149 3935 Star ! 2149 3912 Star ! 2149 3889 Star ! 2149 3866 Star ! 2149 3843 Star ! 2149 3820 Star ! 2149 3797 Star ! 2149 3775 Star ! 2149 3752 Star ! 2149 3729 Star ! 2181 4277 Star ! 2181 4254 Star ! 2181 4231 Star ! 2181 4209 Star ! 2181 4186 Star ! 2181 4163 Star ! 2181 4140 Star ! 2181 4117 Star ! 2181 4094 Star ! 2181 4072 Star ! 2181 4049 Star ! 2181 4026 Star ! 2181 4003 Star ! 2181 3980 Star ! 2181 3957 Star ! 2181 3935 Star ! 2181 3912 Star ! 2181 3889 Star ! 2181 3866 Star ! 2181 3843 Star ! 2181 3820 Star ! 2181 3797 Star ! 2181 3775 Star ! 2181 3752 Star ! 2181 3729 Star ! 2181 3706 Star ! 2213 4277 Star ! 2213 4254 Star ! 2213 4231 Star ! 2213 4209 Star ! 2213 4186 Star ! 2213 4163 Star ! 2213 4140 Star ! 2213 4117 Star ! 2213 4094 Star ! 2213 4072 Star ! 2213 4049 Star ! 2213 4026 Star ! 2213 4003 Star ! 2213 3980 Star ! 2213 3957 Star ! 2213 3935 Star ! 2213 3912 Star ! 2213 3889 Star ! 2213 3866 Star ! 2213 3843 Star ! 2213 3820 Star ! 2213 3797 Star ! 2213 3775 Star ! 2213 3752 Star ! 2213 3729 Star ! 2213 3706 Star ! 2213 3683 Star ! 2245 4254 Star ! 2245 4231 Star ! 2245 4209 Star ! 2245 4186 Star ! 2245 4163 Star ! 2245 4140 Star ! 2245 4117 Star ! 2245 4094 Star ! 2245 4072 Star ! 2245 4049 Star ! 2245 4026 Star ! 2245 4003 Star ! 2245 3980 Star ! 2245 3957 Star ! 2245 3935 Star ! 2245 3912 Star ! 2245 3889 Star ! 2245 3866 Star ! 2245 3843 Star ! 2245 3820 Star ! 2245 3797 Star ! 2245 3775 Star ! 2245 3752 Star ! 2245 3729 Star ! 2245 3706 Star ! 2245 3683 Star ! 2245 3660 Star ! 2277 4254 Star ! 2277 4231 Star ! 2277 4209 Star ! 2277 4186 Star ! 2277 4163 Star ! 2277 4140 Star ! 2277 4117 Star ! 2277 4094 Star ! 2277 4072 Star ! 2277 4049 Star ! 2277 4026 Star ! 2277 4003 Star ! 2277 3980 Star ! 2277 3957 Star ! 2277 3935 Star ! 2277 3912 Star ! 2277 3889 Star ! 2277 3866 Star ! 2277 3843 Star ! 2277 3820 Star ! 2277 3797 Star ! 2277 3775 Star ! 2277 3752 Star ! 2277 3729 Star ! 2277 3706 Star ! 2277 3683 Star ! 2277 3660 Star ! 2277 3638 Star ! 2309 4231 Star ! 2309 4209 Star ! 2309 4186 Star ! 2309 4163 Star ! 2309 4140 Star ! 2309 4117 Star ! 2309 4094 Star ! 2309 4072 Star ! 2309 4049 Star ! 2309 4026 Star ! 2309 4003 Star ! 2309 3980 Star ! 2309 3957 Star ! 2309 3935 Star ! 2309 3912 Star ! 2309 3889 Star ! 2309 3866 Star ! 2309 3843 Star ! 2309 3820 Star ! 2309 3797 Star ! 2309 3775 Star ! 2309 3752 Star ! 2309 3729 Star ! 2309 3706 Star ! 2309 3683 Star ! 2309 3660 Star ! 2309 3638 Star ! 2309 3615 Star ! 2341 4231 Star ! 2341 4209 Star ! 2341 4186 Star ! 2341 4163 Star ! 2341 4140 Star ! 2341 4117 Star ! 2341 4094 Star ! 2341 4072 Star ! 2341 4049 Star ! 2341 4026 Star ! 2341 4003 Star ! 2341 3980 Star ! 2341 3957 Star ! 2341 3935 Star ! 2341 3912 Star ! 2341 3889 Star ! 2341 3866 Star ! 2341 3843 Star ! 2341 3820 Star ! 2341 3797 Star ! 2341 3775 Star ! 2341 3752 Star ! 2341 3729 Star ! 2341 3706 Star ! 2341 3683 Star ! 2341 3660 Star ! 2341 3638 Star ! 2341 3615 Star ! 2341 3592 Star ! 2373 4209 Star ! 2373 4186 Star ! 2373 4163 Star ! 2373 4140 Star ! 2373 4117 Star ! 2373 4094 Star ! 2373 4072 Star ! 2373 4049 Star ! 2373 4026 Star ! 2373 4003 Star ! 2373 3980 Star ! 2373 3957 Star ! 2373 3935 Star ! 2373 3912 Star ! 2373 3889 Star ! 2373 3866 Star ! 2373 3843 Star ! 2373 3820 Star ! 2373 3797 Star ! 2373 3775 Star ! 2373 3752 Star ! 2373 3729 Star ! 2373 3706 Star ! 2373 3683 Star ! 2373 3660 Star ! 2373 3638 Star ! 2373 3615 Star ! 2373 3592 Star ! 2373 3569 Star ! 2405 4209 Star ! 2405 4186 Star ! 2405 4163 Star ! 2405 4140 Star ! 2405 4117 Star ! 2405 4094 Star ! 2405 4072 Star ! 2405 4049 Star ! 2405 4026 Star ! 2405 4003 Star ! 2405 3980 Star ! 2405 3957 Star ! 2405 3935 Star ! 2405 3912 Star ! 2405 3889 Star ! 2405 3866 Star ! 2405 3843 Star ! 2405 3820 Star ! 2405 3797 Star ! 2405 3775 Star ! 2405 3752 Star ! 2405 3729 Star ! 2405 3706 Star ! 2405 3683 Star ! 2405 3660 Star ! 2405 3638 Star ! 2405 3615 Star ! 2405 3592 Star ! 2405 3569 Star ! 2405 3546 Star ! 2437 4186 Star ! 2437 4163 Star ! 2437 4140 Star ! 2437 4117 Star ! 2437 4094 Star ! 2437 4072 Star ! 2437 4049 Star ! 2437 4026 Star ! 2437 4003 Star ! 2437 3980 Star ! 2437 3957 Star ! 2437 3935 Star ! 2437 3912 Star ! 2437 3889 Star ! 2437 3866 Star ! 2437 3843 Star ! 2437 3820 Star ! 2437 3797 Star ! 2437 3775 Star ! 2437 3752 Star ! 2437 3729 Star ! 2437 3706 Star ! 2437 3683 Star ! 2437 3660 Star ! 2437 3638 Star ! 2437 3615 Star ! 2437 3592 Star ! 2437 3569 Star ! 2437 3546 Star ! 2437 3523 Star ! 2469 4186 Star ! 2469 4163 Star ! 2469 4140 Star ! 2469 4117 Star ! 2469 4094 Star ! 2469 4072 Star ! 2469 4049 Star ! 2469 4026 Star ! 2469 4003 Star ! 2469 3980 Star ! 2469 3957 Star ! 2469 3935 Star ! 2469 3912 Star ! 2469 3889 Star ! 2469 3866 Star ! 2469 3843 Star ! 2469 3820 Star ! 2469 3797 Star ! 2469 3775 Star ! 2469 3752 Star ! 2469 3729 Star ! 2469 3706 Star ! 2469 3683 Star ! 2469 3660 Star ! 2469 3638 Star ! 2469 3615 Star ! 2469 3592 Star ! 2469 3569 Star ! 2469 3546 Star ! 2469 3523 Star ! 2469 3501 Star ! 2501 4163 Star ! 2501 4140 Star ! 2501 4117 Star ! 2501 4094 Star ! 2501 4072 Star ! 2501 4049 Star ! 2501 4026 Star ! 2501 4003 Star ! 2501 3980 Star ! 2501 3957 Star ! 2501 3935 Star ! 2501 3912 Star ! 2501 3889 Star ! 2501 3866 Star ! 2501 3843 Star ! 2501 3820 Star ! 2501 3797 Star ! 2501 3775 Star ! 2501 3752 Star ! 2501 3729 Star ! 2501 3706 Star ! 2501 3683 Star ! 2501 3660 Star ! 2501 3638 Star ! 2501 3615 Star ! 2501 3592 Star ! 2501 3569 Star ! 2501 3546 Star ! 2501 3523 Star ! 2501 3501 Star ! 2501 3478 Star ! 2533 4163 Star ! 2533 4140 Star ! 2533 4117 Star ! 2533 4094 Star ! 2533 4072 Star ! 2533 4049 Star ! 2533 4026 Star ! 2533 4003 Star ! 2533 3980 Star ! 2533 3957 Star ! 2533 3935 Star ! 2533 3912 Star ! 2533 3889 Star ! 2533 3866 Star ! 2533 3843 Star ! 2533 3820 Star ! 2533 3797 Star ! 2533 3775 Star ! 2533 3752 Star ! 2533 3729 Star ! 2533 3706 Star ! 2533 3683 Star ! 2533 3660 Star ! 2533 3638 Star ! 2533 3615 Star ! 2533 3592 Star ! 2533 3569 Star ! 2533 3546 Star ! 2533 3523 Star ! 2533 3501 Star ! 2533 3478 Star ! 2533 3455 Star ! 2565 4140 Star ! 2565 4117 Star ! 2565 4094 Star ! 2565 4072 Star ! 2565 4049 Star ! 2565 4026 Star ! 2565 4003 Star ! 2565 3980 Star ! 2565 3957 Star ! 2565 3935 Star ! 2565 3912 Star ! 2565 3889 Star ! 2565 3866 Star ! 2565 3843 Star ! 2565 3820 Star ! 2565 3797 Star ! 2565 3775 Star ! 2565 3752 Star ! 2565 3729 Star ! 2565 3706 Star ! 2565 3683 Star ! 2565 3660 Star ! 2565 3638 Star ! 2565 3615 Star ! 2565 3592 Star ! 2565 3569 Star ! 2565 3546 Star ! 2565 3523 Star ! 2565 3501 Star ! 2565 3478 Star ! 2565 3455 Star ! 2565 3432 Star ! 2598 4140 Star ! 2598 4117 Star ! 2598 4094 Star ! 2598 4072 Star ! 2598 4049 Star ! 2598 4026 Star ! 2598 4003 Star ! 2598 3980 Star ! 2598 3957 Star ! 2598 3935 Star ! 2598 3912 Star ! 2598 3889 Star ! 2598 3866 Star ! 2598 3843 Star ! 2598 3820 Star ! 2598 3797 Star ! 2598 3775 Star ! 2598 3752 Star ! 2598 3729 Star ! 2598 3706 Star ! 2598 3683 Star ! 2598 3660 Star ! 2598 3638 Star ! 2598 3615 Star ! 2598 3592 Star ! 2598 3569 Star ! 2598 3546 Star ! 2598 3523 Star ! 2598 3501 Star ! 2598 3478 Star ! 2598 3455 Star ! 2598 3432 Star ! 2598 3409 Star ! 2630 4117 Star ! 2630 4094 Star ! 2630 4072 Star ! 2630 4049 Star ! 2630 4026 Star ! 2630 4003 Star ! 2630 3980 Star ! 2630 3957 Star ! 2630 3935 Star ! 2630 3912 Star ! 2630 3889 Star ! 2630 3866 Star ! 2630 3843 Star ! 2630 3820 Star ! 2630 3797 Star ! 2630 3775 Star ! 2630 3752 Star ! 2630 3729 Star ! 2630 3706 Star ! 2630 3683 Star ! 2630 3660 Star ! 2630 3638 Star ! 2630 3615 Star ! 2630 3592 Star ! 2630 3569 Star ! 2630 3546 Star ! 2630 3523 Star ! 2630 3501 Star ! 2630 3478 Star ! 2630 3455 Star ! 2630 3432 Star ! 2630 3409 Star ! 2630 3386 Star ! 2662 4117 Star ! 2662 4094 Star ! 2662 4072 Star ! 2662 4049 Star ! 2662 4026 Star ! 2662 4003 Star ! 2662 3980 Star ! 2662 3957 Star ! 2662 3935 Star ! 2662 3912 Star ! 2662 3889 Star ! 2662 3866 Star ! 2662 3843 Star ! 2662 3820 Star ! 2662 3797 Star ! 2662 3775 Star ! 2662 3752 Star ! 2662 3729 Star ! 2662 3706 Star ! 2662 3683 Star ! 2662 3660 Star ! 2662 3638 Star ! 2662 3615 Star ! 2662 3592 Star ! 2662 3569 Star ! 2662 3546 Star ! 2662 3523 Star ! 2662 3501 Star ! 2662 3478 Star ! 2662 3455 Star ! 2662 3432 Star ! 2662 3409 Star ! 2662 3386 Star ! 2662 3364 Star ! 2694 4094 Star ! 2694 4072 Star ! 2694 4049 Star ! 2694 4026 Star ! 2694 4003 Star ! 2694 3980 Star ! 2694 3957 Star ! 2694 3935 Star ! 2694 3912 Star ! 2694 3889 Star ! 2694 3866 Star ! 2694 3843 Star ! 2694 3820 Star ! 2694 3797 Star ! 2694 3775 Star ! 2694 3752 Star ! 2694 3729 Star ! 2694 3706 Star ! 2694 3683 Star ! 2694 3660 Star ! 2694 3638 Star ! 2694 3615 Star ! 2694 3592 Star ! 2694 3569 Star ! 2694 3546 Star ! 2694 3523 Star ! 2694 3501 Star ! 2694 3478 Star ! 2694 3455 Star ! 2694 3432 Star ! 2694 3409 Star ! 2694 3386 Star ! 2694 3364 Star ! 2694 3341 Star ! 2726 4094 Star ! 2726 4072 Star ! 2726 4049 Star ! 2726 4026 Star ! 2726 4003 Star ! 2726 3980 Star ! 2726 3957 Star ! 2726 3935 Star ! 2726 3912 Star ! 2726 3889 Star ! 2726 3866 Star ! 2726 3843 Star ! 2726 3820 Star ! 2726 3797 Star ! 2726 3775 Star ! 2726 3752 Star ! 2726 3729 Star ! 2726 3706 Star ! 2726 3683 Star ! 2726 3660 Star ! 2726 3638 Star ! 2726 3615 Star ! 2726 3592 Star ! 2726 3569 Star ! 2726 3546 Star ! 2726 3523 Star ! 2726 3501 Star ! 2726 3478 Star ! 2726 3455 Star ! 2726 3432 Star ! 2726 3409 Star ! 2726 3386 Star ! 2726 3364 Star ! 2726 3341 Star ! 2726 3318 Star ! 2758 4072 Star ! 2758 4049 Star ! 2758 4026 Star ! 2758 4003 Star ! 2758 3980 Star ! 2758 3957 Star ! 2758 3935 Star ! 2758 3912 Star ! 2758 3889 Star ! 2758 3866 Star ! 2758 3843 Star ! 2758 3820 Star ! 2758 3797 Star ! 2758 3775 Star ! 2758 3752 Star ! 2758 3729 Star ! 2758 3706 Star ! 2758 3683 Star ! 2758 3660 Star ! 2758 3638 Star ! 2758 3615 Star ! 2758 3592 Star ! 2758 3569 Star ! 2758 3546 Star ! 2758 3523 Star ! 2758 3501 Star ! 2758 3478 Star ! 2758 3455 Star ! 2758 3432 Star ! 2758 3409 Star ! 2758 3386 Star ! 2758 3364 Star ! 2758 3341 Star ! 2758 3318 Star ! 2758 3295 Star ! 2790 4072 Star ! 2790 4049 Star ! 2790 4026 Star ! 2790 4003 Star ! 2790 3980 Star ! 2790 3957 Star ! 2790 3935 Star ! 2790 3912 Star ! 2790 3889 Star ! 2790 3866 Star ! 2790 3843 Star ! 2790 3820 Star ! 2790 3797 Star ! 2790 3775 Star ! 2790 3752 Star ! 2790 3729 Star ! 2790 3706 Star ! 2790 3683 Star ! 2790 3660 Star ! 2790 3638 Star ! 2790 3615 Star ! 2790 3592 Star ! 2790 3569 Star ! 2790 3546 Star ! 2790 3523 Star ! 2790 3501 Star ! 2790 3478 Star ! 2790 3455 Star ! 2790 3432 Star ! 2790 3409 Star ! 2790 3386 Star ! 2790 3364 Star ! 2790 3341 Star ! 2790 3318 Star ! 2790 3295 Star ! 2790 3272 Star ! 2822 4049 Star ! 2822 4026 Star ! 2822 4003 Star ! 2822 3980 Star ! 2822 3957 Star ! 2822 3935 Star ! 2822 3912 Star ! 2822 3889 Star ! 2822 3866 Star ! 2822 3843 Star ! 2822 3820 Star ! 2822 3797 Star ! 2822 3775 Star ! 2822 3752 Star ! 2822 3729 Star ! 2822 3706 Star ! 2822 3683 Star ! 2822 3660 Star ! 2822 3638 Star ! 2822 3615 Star ! 2822 3592 Star ! 2822 3569 Star ! 2822 3546 Star ! 2822 3523 Star ! 2822 3501 Star ! 2822 3478 Star ! 2822 3455 Star ! 2822 3432 Star ! 2822 3409 Star ! 2822 3386 Star ! 2822 3364 Star ! 2822 3341 Star ! 2822 3318 Star ! 2822 3295 Star ! 2822 3272 Star ! 2822 3249 Star ! 2854 4049 Star ! 2854 4026 Star ! 2854 4003 Star ! 2854 3980 Star ! 2854 3957 Star ! 2854 3935 Star ! 2854 3912 Star ! 2854 3889 Star ! 2854 3866 Star ! 2854 3843 Star ! 2854 3820 Star ! 2854 3797 Star ! 2854 3775 Star ! 2854 3752 Star ! 2854 3729 Star ! 2854 3706 Star ! 2854 3683 Star ! 2854 3660 Star ! 2854 3638 Star ! 2854 3615 Star ! 2854 3592 Star ! 2854 3569 Star ! 2854 3546 Star ! 2854 3523 Star ! 2854 3501 Star ! 2854 3478 Star ! 2854 3455 Star ! 2854 3432 Star ! 2854 3409 Star ! 2854 3386 Star ! 2854 3364 Star ! 2854 3341 Star ! 2854 3318 Star ! 2854 3295 Star ! 2854 3272 Star ! 2854 3249 Star ! 2854 3226 Star ! 2886 4026 Star ! 2886 4003 Star ! 2886 3980 Star ! 2886 3957 Star ! 2886 3935 Star ! 2886 3912 Star ! 2886 3889 Star ! 2886 3866 Star ! 2886 3843 Star ! 2886 3820 Star ! 2886 3797 Star ! 2886 3775 Star ! 2886 3752 Star ! 2886 3729 Star ! 2886 3706 Star ! 2886 3683 Star ! 2886 3660 Star ! 2886 3638 Star ! 2886 3615 Star ! 2886 3592 Star ! 2886 3569 Star ! 2886 3546 Star ! 2886 3523 Star ! 2886 3501 Star ! 2886 3478 Star ! 2886 3455 Star ! 2886 3432 Star ! 2886 3409 Star ! 2886 3386 Star ! 2886 3364 Star ! 2886 3341 Star ! 2886 3318 Star ! 2886 3295 Star ! 2886 3272 Star ! 2886 3249 Star ! 2886 3226 Star ! 2886 3204 Star ! 2918 4026 Star ! 2918 4003 Star ! 2918 3980 Star ! 2918 3957 Star ! 2918 3935 Star ! 2918 3912 Star ! 2918 3889 Star ! 2918 3866 Star ! 2918 3843 Star ! 2918 3820 Star ! 2918 3797 Star ! 2918 3775 Star ! 2918 3752 Star ! 2918 3729 Star ! 2918 3706 Star ! 2918 3683 Star ! 2918 3660 Star ! 2918 3638 Star ! 2918 3615 Star ! 2918 3592 Star ! 2918 3569 Star ! 2918 3546 Star ! 2918 3523 Star ! 2918 3501 Star ! 2918 3478 Star ! 2918 3455 Star ! 2918 3432 Star ! 2918 3409 Star ! 2918 3386 Star ! 2918 3364 Star ! 2918 3341 Star ! 2918 3318 Star ! 2918 3295 Star ! 2918 3272 Star ! 2918 3249 Star ! 2918 3226 Star ! 2918 3204 Star ! 2918 3181 Star ! 2950 4003 Star ! 2950 3980 Star ! 2950 3957 Star ! 2950 3935 Star ! 2950 3912 Star ! 2950 3889 Star ! 2950 3866 Star ! 2950 3843 Star ! 2950 3820 Star ! 2950 3797 Star ! 2950 3775 Star ! 2950 3752 Star ! 2950 3729 Star ! 2950 3706 Star ! 2950 3683 Star ! 2950 3660 Star ! 2950 3638 Star ! 2950 3615 Star ! 2950 3592 Star ! 2950 3569 Star ! 2950 3546 Star ! 2950 3523 Star ! 2950 3501 Star ! 2950 3478 Star ! 2950 3455 Star ! 2950 3432 Star ! 2950 3409 Star ! 2950 3386 Star ! 2950 3364 Star ! 2950 3341 Star ! 2950 3318 Star ! 2950 3295 Star ! 2950 3272 Star ! 2950 3249 Star ! 2950 3226 Star ! 2950 3204 Star ! 2950 3181 Star ! 2950 3158 Star ! 2982 4003 Star ! 2982 3980 Star ! 2982 3957 Star ! 2982 3935 Star ! 2982 3912 Star ! 2982 3889 Star ! 2982 3866 Star ! 2982 3843 Star ! 2982 3820 Star ! 2982 3797 Star ! 2982 3775 Star ! 2982 3752 Star ! 2982 3729 Star ! 2982 3706 Star ! 2982 3683 Star ! 2982 3660 Star ! 2982 3638 Star ! 2982 3615 Star ! 2982 3592 Star ! 2982 3569 Star ! 2982 3546 Star ! 2982 3523 Star ! 2982 3501 Star ! 2982 3478 Star ! 2982 3455 Star ! 2982 3432 Star ! 2982 3409 Star ! 2982 3386 Star ! 2982 3364 Star ! 2982 3341 Star ! 2982 3318 Star ! 2982 3295 Star ! 2982 3272 Star ! 2982 3249 Star ! 2982 3226 Star ! 2982 3204 Star ! 2982 3181 Star ! 2982 3158 Star ! 2982 3135 Star ! 3014 3980 Star ! 3014 3957 Star ! 3014 3935 Star ! 3014 3912 Star ! 3014 3889 Star ! 3014 3866 Star ! 3014 3843 Star ! 3014 3820 Star ! 3014 3797 Star ! 3014 3775 Star ! 3014 3752 Star ! 3014 3729 Star ! 3014 3706 Star ! 3014 3683 Star ! 3014 3660 Star ! 3014 3638 Star ! 3014 3615 Star ! 3014 3592 Star ! 3014 3569 Star ! 3014 3546 Star ! 3014 3523 Star ! 3014 3501 Star ! 3014 3478 Star ! 3014 3455 Star ! 3014 3432 Star ! 3014 3409 Star ! 3014 3386 Star ! 3014 3364 Star ! 3014 3341 Star ! 3014 3318 Star ! 3014 3295 Star ! 3014 3272 Star ! 3014 3249 Star ! 3014 3226 Star ! 3014 3204 Star ! 3014 3181 Star ! 3014 3158 Star ! 3014 3135 Star ! 3014 3112 Star ! 3046 3980 Star ! 3046 3957 Star ! 3046 3935 Star ! 3046 3912 Star ! 3046 3889 Star ! 3046 3866 Star ! 3046 3843 Star ! 3046 3820 Star ! 3046 3797 Star ! 3046 3775 Star ! 3046 3752 Star ! 3046 3729 Star ! 3046 3706 Star ! 3046 3683 Star ! 3046 3660 Star ! 3046 3638 Star ! 3046 3615 Star ! 3046 3592 Star ! 3046 3569 Star ! 3046 3546 Star ! 3046 3523 Star ! 3046 3501 Star ! 3046 3478 Star ! 3046 3455 Star ! 3046 3432 Star ! 3046 3409 Star ! 3046 3386 Star ! 3046 3364 Star ! 3046 3341 Star ! 3046 3318 Star ! 3046 3295 Star ! 3046 3272 Star ! 3046 3249 Star ! 3046 3226 Star ! 3046 3204 Star ! 3046 3181 Star ! 3046 3158 Star ! 3046 3135 Star ! 3046 3112 Star ! 3046 3089 Star ! 3078 3957 Star ! 3078 3935 Star ! 3078 3912 Star ! 3078 3889 Star ! 3078 3866 Star ! 3078 3843 Star ! 3078 3820 Star ! 3078 3797 Star ! 3078 3775 Star ! 3078 3752 Star ! 3078 3729 Star ! 3078 3706 Star ! 3078 3683 Star ! 3078 3660 Star ! 3078 3638 Star ! 3078 3615 Star ! 3078 3592 Star ! 3078 3569 Star ! 3078 3546 Star ! 3078 3523 Star ! 3078 3501 Star ! 3078 3478 Star ! 3078 3455 Star ! 3078 3432 Star ! 3078 3409 Star ! 3078 3386 Star ! 3078 3364 Star ! 3078 3341 Star ! 3078 3318 Star ! 3078 3295 Star ! 3078 3272 Star ! 3078 3249 Star ! 3078 3226 Star ! 3078 3204 Star ! 3078 3181 Star ! 3078 3158 Star ! 3078 3135 Star ! 3078 3112 Star ! 3078 3089 Star ! 3078 3067 Star ! 3110 3957 Star ! 3110 3935 Star ! 3110 3912 Star ! 3110 3889 Star ! 3110 3866 Star ! 3110 3843 Star ! 3110 3820 Star ! 3110 3797 Star ! 3110 3775 Star ! 3110 3752 Star ! 3110 3729 Star ! 3110 3706 Star ! 3110 3683 Star ! 3110 3660 Star ! 3110 3638 Star ! 3110 3615 Star ! 3110 3592 Star ! 3110 3569 Star ! 3110 3546 Star ! 3110 3523 Star ! 3110 3501 Star ! 3110 3478 Star ! 3110 3455 Star ! 3110 3432 Star ! 3110 3409 Star ! 3110 3386 Star ! 3110 3364 Star ! 3110 3341 Star ! 3110 3318 Star ! 3110 3295 Star ! 3110 3272 Star ! 3110 3249 Star ! 3110 3226 Star ! 3110 3204 Star ! 3110 3181 Star ! 3110 3158 Star ! 3110 3135 Star ! 3110 3112 Star ! 3110 3089 Star ! 3110 3067 Star ! 3110 3044 Star ! 3142 3935 Star ! 3142 3912 Star ! 3142 3889 Star ! 3142 3866 Star ! 3142 3843 Star ! 3142 3820 Star ! 3142 3797 Star ! 3142 3775 Star ! 3142 3752 Star ! 3142 3729 Star ! 3142 3706 Star ! 3142 3683 Star ! 3142 3660 Star ! 3142 3638 Star ! 3142 3615 Star ! 3142 3592 Star ! 3142 3569 Star ! 3142 3546 Star ! 3142 3523 Star ! 3142 3501 Star ! 3142 3478 Star ! 3142 3455 Star ! 3142 3432 Star ! 3142 3409 Star ! 3142 3386 Star ! 3142 3364 Star ! 3142 3341 Star ! 3142 3318 Star ! 3142 3295 Star ! 3142 3272 Star ! 3142 3249 Star ! 3142 3226 Star ! 3142 3204 Star ! 3142 3181 Star ! 3142 3158 Star ! 3142 3135 Star ! 3142 3112 Star ! 3142 3089 Star ! 3142 3067 Star ! 3142 3044 Star ! 3142 3021 Star ! 3174 3935 Star ! 3174 3912 Star ! 3174 3889 Star ! 3174 3866 Star ! 3174 3843 Star ! 3174 3820 Star ! 3174 3797 Star ! 3174 3775 Star ! 3174 3752 Star ! 3174 3729 Star ! 3174 3706 Star ! 3174 3683 Star ! 3174 3660 Star ! 3174 3638 Star ! 3174 3615 Star ! 3174 3592 Star ! 3174 3569 Star ! 3174 3546 Star ! 3174 3523 Star ! 3174 3501 Star ! 3174 3478 Star ! 3174 3455 Star ! 3174 3432 Star ! 3174 3409 Star ! 3174 3386 Star ! 3174 3364 Star ! 3174 3341 Star ! 3174 3318 Star ! 3174 3295 Star ! 3174 3272 Star ! 3174 3249 Star ! 3174 3226 Star ! 3174 3204 Star ! 3174 3181 Star ! 3174 3158 Star ! 3174 3135 Star ! 3174 3112 Star ! 3174 3089 Star ! 3174 3067 Star ! 3174 3044 Star ! 3174 3021 Star ! 3174 2998 Star ! 3207 3912 Star ! 3207 3889 Star ! 3207 3866 Star ! 3207 3843 Star ! 3207 3820 Star ! 3207 3797 Star ! 3207 3775 Star ! 3207 3752 Star ! 3207 3729 Star ! 3207 3706 Star ! 3207 3683 Star ! 3207 3660 Star ! 3207 3638 Star ! 3207 3615 Star ! 3207 3592 Star ! 3207 3569 Star ! 3207 3546 Star ! 3207 3523 Star ! 3207 3501 Star ! 3207 3478 Star ! 3207 3455 Star ! 3207 3432 Star ! 3207 3409 Star ! 3207 3386 Star ! 3207 3364 Star ! 3207 3341 Star ! 3207 3318 Star ! 3207 3295 Star ! 3207 3272 Star ! 3207 3249 Star ! 3207 3226 Star ! 3207 3204 Star ! 3207 3181 Star ! 3207 3158 Star ! 3207 3135 Star ! 3207 3112 Star ! 3207 3089 Star ! 3207 3067 Star ! 3207 3044 Star ! 3207 3021 Star ! 3207 2998 Star ! 3207 2975 Star ! 3239 3912 Star ! 3239 3889 Star ! 3239 3866 Star ! 3239 3843 Star ! 3239 3820 Star ! 3239 3797 Star ! 3239 3775 Star ! 3239 3752 Star ! 3239 3729 Star ! 3239 3706 Star ! 3239 3683 Star ! 3239 3660 Star ! 3239 3638 Star ! 3239 3615 Star ! 3239 3592 Star ! 3239 3569 Star ! 3239 3546 Star ! 3239 3523 Star ! 3239 3501 Star ! 3239 3478 Star ! 3239 3455 Star ! 3239 3432 Star ! 3239 3409 Star ! 3239 3386 Star ! 3239 3364 Star ! 3239 3341 Star ! 3239 3318 Star ! 3239 3295 Star ! 3239 3272 Star ! 3239 3249 Star ! 3239 3226 Star ! 3239 3204 Star ! 3239 3181 Star ! 3239 3158 Star ! 3239 3135 Star ! 3239 3112 Star ! 3239 3089 Star ! 3239 3067 Star ! 3239 3044 Star ! 3239 3021 Star ! 3239 2998 Star ! 3239 2975 Star ! 3239 2952 Star ! 3271 3889 Star ! 3271 3866 Star ! 3271 3843 Star ! 3271 3820 Star ! 3271 3797 Star ! 3271 3775 Star ! 3271 3752 Star ! 3271 3729 Star ! 3271 3706 Star ! 3271 3683 Star ! 3271 3660 Star ! 3271 3638 Star ! 3271 3615 Star ! 3271 3592 Star ! 3271 3569 Star ! 3271 3546 Star ! 3271 3523 Star ! 3271 3501 Star ! 3271 3478 Star ! 3271 3455 Star ! 3271 3432 Star ! 3271 3409 Star ! 3271 3386 Star ! 3271 3364 Star ! 3271 3341 Star ! 3271 3318 Star ! 3271 3295 Star ! 3271 3272 Star ! 3271 3249 Star ! 3271 3226 Star ! 3271 3204 Star ! 3271 3181 Star ! 3271 3158 Star ! 3271 3135 Star ! 3271 3112 Star ! 3271 3089 Star ! 3271 3067 Star ! 3271 3044 Star ! 3271 3021 Star ! 3271 2998 Star ! 3271 2975 Star ! 3271 2952 Star ! 3271 2930 Star ! 3303 3889 Star ! 3303 3866 Star ! 3303 3843 Star ! 3303 3820 Star ! 3303 3797 Star ! 3303 3775 Star ! 3303 3752 Star ! 3303 3729 Star ! 3303 3706 Star ! 3303 3683 Star ! 3303 3660 Star ! 3303 3638 Star ! 3303 3615 Star ! 3303 3592 Star ! 3303 3569 Star ! 3303 3546 Star ! 3303 3523 Star ! 3303 3501 Star ! 3303 3478 Star ! 3303 3455 Star ! 3303 3432 Star ! 3303 3409 Star ! 3303 3386 Star ! 3303 3364 Star ! 3303 3341 Star ! 3303 3318 Star ! 3303 3295 Star ! 3303 3272 Star ! 3303 3249 Star ! 3303 3226 Star ! 3303 3204 Star ! 3303 3181 Star ! 3303 3158 Star ! 3303 3135 Star ! 3303 3112 Star ! 3303 3089 Star ! 3303 3067 Star ! 3303 3044 Star ! 3303 3021 Star ! 3303 2998 Star ! 3303 2975 Star ! 3303 2952 Star ! 3303 2930 Star ! 3303 2907 Star ! 3335 3866 Star ! 3335 3843 Star ! 3335 3820 Star ! 3335 3797 Star ! 3335 3775 Star ! 3335 3752 Star ! 3335 3729 Star ! 3335 3706 Star ! 3335 3683 Star ! 3335 3660 Star ! 3335 3638 Star ! 3335 3615 Star ! 3335 3592 Star ! 3335 3569 Star ! 3335 3546 Star ! 3335 3523 Star ! 3335 3501 Star ! 3335 3478 Star ! 3335 3455 Star ! 3335 3432 Star ! 3335 3409 Star ! 3335 3386 Star ! 3335 3364 Star ! 3335 3341 Star ! 3335 3318 Star ! 3335 3295 Star ! 3335 3272 Star ! 3335 3249 Star ! 3335 3226 Star ! 3335 3204 Star ! 3335 3181 Star ! 3335 3158 Star ! 3335 3135 Star ! 3335 3112 Star ! 3335 3089 Star ! 3335 3067 Star ! 3335 3044 Star ! 3335 3021 Star ! 3335 2998 Star ! 3335 2975 Star ! 3335 2952 Star ! 3335 2930 Star ! 3335 2907 Star ! 3335 2884 Star ! 3367 3866 Star ! 3367 3843 Star ! 3367 3820 Star ! 3367 3797 Star ! 3367 3775 Star ! 3367 3752 Star ! 3367 3729 Star ! 3367 3706 Star ! 3367 3683 Star ! 3367 3660 Star ! 3367 3638 Star ! 3367 3615 Star ! 3367 3592 Star ! 3367 3569 Star ! 3367 3546 Star ! 3367 3523 Star ! 3367 3501 Star ! 3367 3478 Star ! 3367 3455 Star ! 3367 3432 Star ! 3367 3409 Star ! 3367 3386 Star ! 3367 3364 Star ! 3367 3341 Star ! 3367 3318 Star ! 3367 3295 Star ! 3367 3272 Star ! 3367 3249 Star ! 3367 3226 Star ! 3367 3204 Star ! 3367 3181 Star ! 3367 3158 Star ! 3367 3135 Star ! 3367 3112 Star ! 3367 3089 Star ! 3367 3067 Star ! 3367 3044 Star ! 3367 3021 Star ! 3367 2998 Star ! 3367 2975 Star ! 3367 2952 Star ! 3367 2930 Star ! 3367 2907 Star ! 3367 2884 Star ! 3367 2861 Star ! 3399 3843 Star ! 3399 3820 Star ! 3399 3797 Star ! 3399 3775 Star ! 3399 3752 Star ! 3399 3729 Star ! 3399 3706 Star ! 3399 3683 Star ! 3399 3660 Star ! 3399 3638 Star ! 3399 3615 Star ! 3399 3592 Star ! 3399 3569 Star ! 3399 3546 Star ! 3399 3523 Star ! 3399 3501 Star ! 3399 3478 Star ! 3399 3455 Star ! 3399 3432 Star ! 3399 3409 Star ! 3399 3386 Star ! 3399 3364 Star ! 3399 3341 Star ! 3399 3318 Star ! 3399 3295 Star ! 3399 3272 Star ! 3399 3249 Star ! 3399 3226 Star ! 3399 3204 Star ! 3399 3181 Star ! 3399 3158 Star ! 3399 3135 Star ! 3399 3112 Star ! 3399 3089 Star ! 3399 3067 Star ! 3399 3044 Star ! 3399 3021 Star ! 3399 2998 Star ! 3399 2975 Star ! 3399 2952 Star ! 3399 2930 Star ! 3399 2907 Star ! 3399 2884 Star ! 3399 2861 Star ! 3399 2838 Star ! 3431 3843 Star ! 3431 3820 Star ! 3431 3797 Star ! 3431 3775 Star ! 3431 3752 Star ! 3431 3729 Star ! 3431 3706 Star ! 3431 3683 Star ! 3431 3660 Star ! 3431 3638 Star ! 3431 3615 Star ! 3431 3592 Star ! 3431 3569 Star ! 3431 3546 Star ! 3431 3523 Star ! 3431 3501 Star ! 3431 3478 Star ! 3431 3455 Star ! 3431 3432 Star ! 3431 3409 Star ! 3431 3386 Star ! 3431 3364 Star ! 3431 3341 Star ! 3431 3318 Star ! 3431 3295 Star ! 3431 3272 Star ! 3431 3249 Star ! 3431 3226 Star ! 3431 3204 Star ! 3431 3181 Star ! 3431 3158 Star ! 3431 3135 Star ! 3431 3112 Star ! 3431 3089 Star ! 3431 3067 Star ! 3431 3044 Star ! 3431 3021 Star ! 3431 2998 Star ! 3431 2975 Star ! 3431 2952 Star ! 3431 2930 Star ! 3431 2907 Star ! 3431 2884 Star ! 3431 2861 Star ! 3431 2838 Star ! 3431 2815 Star ! 3463 3820 Star ! 3463 3797 Star ! 3463 3775 Star ! 3463 3752 Star ! 3463 3729 Star ! 3463 3706 Star ! 3463 3683 Star ! 3463 3660 Star ! 3463 3638 Star ! 3463 3615 Star ! 3463 3592 Star ! 3463 3569 Star ! 3463 3546 Star ! 3463 3523 Star ! 3463 3501 Star ! 3463 3478 Star ! 3463 3455 Star ! 3463 3432 Star ! 3463 3409 Star ! 3463 3386 Star ! 3463 3364 Star ! 3463 3341 Star ! 3463 3318 Star ! 3463 3295 Star ! 3463 3272 Star ! 3463 3249 Star ! 3463 3226 Star ! 3463 3204 Star ! 3463 3181 Star ! 3463 3158 Star ! 3463 3135 Star ! 3463 3112 Star ! 3463 3089 Star ! 3463 3067 Star ! 3463 3044 Star ! 3463 3021 Star ! 3463 2998 Star ! 3463 2975 Star ! 3463 2952 Star ! 3463 2930 Star ! 3463 2907 Star ! 3463 2884 Star ! 3463 2861 Star ! 3463 2838 Star ! 3463 2815 Star ! 3463 2792 Star ! 3495 3820 Star ! 3495 3797 Star ! 3495 3775 Star ! 3495 3752 Star ! 3495 3729 Star ! 3495 3706 Star ! 3495 3683 Star ! 3495 3660 Star ! 3495 3638 Star ! 3495 3615 Star ! 3495 3592 Star ! 3495 3569 Star ! 3495 3546 Star ! 3495 3523 Star ! 3495 3501 Star ! 3495 3478 Star ! 3495 3455 Star ! 3495 3432 Star ! 3495 3409 Star ! 3495 3386 Star ! 3495 3364 Star ! 3495 3341 Star ! 3495 3318 Star ! 3495 3295 Star ! 3495 3272 Star ! 3495 3249 Star ! 3495 3226 Star ! 3495 3204 Star ! 3495 3181 Star ! 3495 3158 Star ! 3495 3135 Star ! 3495 3112 Star ! 3495 3089 Star ! 3495 3067 Star ! 3495 3044 Star ! 3495 3021 Star ! 3495 2998 Star ! 3495 2975 Star ! 3495 2952 Star ! 3495 2930 Star ! 3495 2907 Star ! 3495 2884 Star ! 3495 2861 Star ! 3495 2838 Star ! 3495 2815 Star ! 3495 2792 Star ! 3495 2770 Star ! 3527 3797 Star ! 3527 3775 Star ! 3527 3752 Star ! 3527 3729 Star ! 3527 3706 Star ! 3527 3683 Star ! 3527 3660 Star ! 3527 3638 Star ! 3527 3615 Star ! 3527 3592 Star ! 3527 3569 Star ! 3527 3546 Star ! 3527 3523 Star ! 3527 3501 Star ! 3527 3478 Star ! 3527 3455 Star ! 3527 3432 Star ! 3527 3409 Star ! 3527 3386 Star ! 3527 3364 Star ! 3527 3341 Star ! 3527 3318 Star ! 3527 3295 Star ! 3527 3272 Star ! 3527 3249 Star ! 3527 3226 Star ! 3527 3204 Star ! 3527 3181 Star ! 3527 3158 Star ! 3527 3135 Star ! 3527 3112 Star ! 3527 3089 Star ! 3527 3067 Star ! 3527 3044 Star ! 3527 3021 Star ! 3527 2998 Star ! 3527 2975 Star ! 3527 2952 Star ! 3527 2930 Star ! 3527 2907 Star ! 3527 2884 Star ! 3527 2861 Star ! 3527 2838 Star ! 3527 2815 Star ! 3527 2792 Star ! 3527 2770 Star ! 3527 2747 Star ! 3559 3797 Star ! 3559 3775 Star ! 3559 3752 Star ! 3559 3729 Star ! 3559 3706 Star ! 3559 3683 Star ! 3559 3660 Star ! 3559 3638 Star ! 3559 3615 Star ! 3559 3592 Star ! 3559 3569 Star ! 3559 3546 Star ! 3559 3523 Star ! 3559 3501 Star ! 3559 3478 Star ! 3559 3455 Star ! 3559 3432 Star ! 3559 3409 Star ! 3559 3386 Star ! 3559 3364 Star ! 3559 3341 Star ! 3559 3318 Star ! 3559 3295 Star ! 3559 3272 Star ! 3559 3249 Star ! 3559 3226 Star ! 3559 3204 Star ! 3559 3181 Star ! 3559 3158 Star ! 3559 3135 Star ! 3559 3112 Star ! 3559 3089 Star ! 3559 3067 Star ! 3559 3044 Star ! 3559 3021 Star ! 3559 2998 Star ! 3559 2975 Star ! 3559 2952 Star ! 3559 2930 Star ! 3559 2907 Star ! 3559 2884 Star ! 3559 2861 Star ! 3559 2838 Star ! 3559 2815 Star ! 3559 2792 Star ! 3559 2770 Star ! 3559 2747 Star ! 3559 2724 Star ! 3591 3775 Star ! 3591 3752 Star ! 3591 3729 Star ! 3591 3706 Star ! 3591 3683 Star ! 3591 3660 Star ! 3591 3638 Star ! 3591 3615 Star ! 3591 3592 Star ! 3591 3569 Star ! 3591 3546 Star ! 3591 3523 Star ! 3591 3501 Star ! 3591 3478 Star ! 3591 3455 Star ! 3591 3432 Star ! 3591 3409 Star ! 3591 3386 Star ! 3591 3364 Star ! 3591 3341 Star ! 3591 3318 Star ! 3591 3295 Star ! 3591 3272 Star ! 3591 3249 Star ! 3591 3226 Star ! 3591 3204 Star ! 3591 3181 Star ! 3591 3158 Star ! 3591 3135 Star ! 3591 3112 Star ! 3591 3089 Star ! 3591 3067 Star ! 3591 3044 Star ! 3591 3021 Star ! 3591 2998 Star ! 3591 2975 Star ! 3591 2952 Star ! 3591 2930 Star ! 3591 2907 Star ! 3591 2884 Star ! 3591 2861 Star ! 3591 2838 Star ! 3591 2815 Star ! 3591 2792 Star ! 3591 2770 Star ! 3591 2747 Star ! 3591 2724 Star ! 3591 2701 Star ! 3623 3775 Star ! 3623 3752 Star ! 3623 3729 Star ! 3623 3706 Star ! 3623 3683 Star ! 3623 3660 Star ! 3623 3638 Star ! 3623 3615 Star ! 3623 3592 Star ! 3623 3569 Star ! 3623 3546 Star ! 3623 3523 Star ! 3623 3501 Star ! 3623 3478 Star ! 3623 3455 Star ! 3623 3432 Star ! 3623 3409 Star ! 3623 3386 Star ! 3623 3364 Star ! 3623 3341 Star ! 3623 3318 Star ! 3623 3295 Star ! 3623 3272 Star ! 3623 3249 Star ! 3623 3226 Star ! 3623 3204 Star ! 3623 3181 Star ! 3623 3158 Star ! 3623 3135 Star ! 3623 3112 Star ! 3623 3089 Star ! 3623 3067 Star ! 3623 3044 Star ! 3623 3021 Star ! 3623 2998 Star ! 3623 2975 Star ! 3623 2952 Star ! 3623 2930 Star ! 3623 2907 Star ! 3623 2884 Star ! 3623 2861 Star ! 3623 2838 Star ! 3623 2815 Star ! 3623 2792 Star ! 3623 2770 Star ! 3623 2747 Star ! 3623 2724 Star ! 3623 2701 Star ! 3623 2678 Star ! 3655 3752 Star ! 3655 3729 Star ! 3655 3706 Star ! 3655 3683 Star ! 3655 3660 Star ! 3655 3638 Star ! 3655 3615 Star ! 3655 3592 Star ! 3655 3569 Star ! 3655 3546 Star ! 3655 3523 Star ! 3655 3501 Star ! 3655 3478 Star ! 3655 3455 Star ! 3655 3432 Star ! 3655 3409 Star ! 3655 3386 Star ! 3655 3364 Star ! 3655 3341 Star ! 3655 3318 Star ! 3655 3295 Star ! 3655 3272 Star ! 3655 3249 Star ! 3655 3226 Star ! 3655 3204 Star ! 3655 3181 Star ! 3655 3158 Star ! 3655 3135 Star ! 3655 3112 Star ! 3655 3089 Star ! 3655 3067 Star ! 3655 3044 Star ! 3655 3021 Star ! 3655 2998 Star ! 3655 2975 Star ! 3655 2952 Star ! 3655 2930 Star ! 3655 2907 Star ! 3655 2884 Star ! 3655 2861 Star ! 3655 2838 Star ! 3655 2815 Star ! 3655 2792 Star ! 3655 2770 Star ! 3655 2747 Star ! 3655 2724 Star ! 3655 2701 Star ! 3655 2678 Star ! 3655 2655 Star ! 3687 3752 Star ! 3687 3729 Star ! 3687 3706 Star ! 3687 3683 Star ! 3687 3660 Star ! 3687 3638 Star ! 3687 3615 Star ! 3687 3592 Star ! 3687 3569 Star ! 3687 3546 Star ! 3687 3523 Star ! 3687 3501 Star ! 3687 3478 Star ! 3687 3455 Star ! 3687 3432 Star ! 3687 3409 Star ! 3687 3386 Star ! 3687 3364 Star ! 3687 3341 Star ! 3687 3318 Star ! 3687 3295 Star ! 3687 3272 Star ! 3687 3249 Star ! 3687 3226 Star ! 3687 3204 Star ! 3687 3181 Star ! 3687 3158 Star ! 3687 3135 Star ! 3687 3112 Star ! 3687 3089 Star ! 3687 3067 Star ! 3687 3044 Star ! 3687 3021 Star ! 3687 2998 Star ! 3687 2975 Star ! 3687 2952 Star ! 3687 2930 Star ! 3687 2907 Star ! 3687 2884 Star ! 3687 2861 Star ! 3687 2838 Star ! 3687 2815 Star ! 3687 2792 Star ! 3687 2770 Star ! 3687 2747 Star ! 3687 2724 Star ! 3687 2701 Star ! 3687 2678 Star ! 3687 2655 Star ! 3687 2633 Star ! 3719 3729 Star ! 3719 3706 Star ! 3719 3683 Star ! 3719 3660 Star ! 3719 3638 Star ! 3719 3615 Star ! 3719 3592 Star ! 3719 3569 Star ! 3719 3546 Star ! 3719 3523 Star ! 3719 3501 Star ! 3719 3478 Star ! 3719 3455 Star ! 3719 3432 Star ! 3719 3409 Star ! 3719 3386 Star ! 3719 3364 Star ! 3719 3341 Star ! 3719 3318 Star ! 3719 3295 Star ! 3719 3272 Star ! 3719 3249 Star ! 3719 3226 Star ! 3719 3204 Star ! 3719 3181 Star ! 3719 3158 Star ! 3719 3135 Star ! 3719 3112 Star ! 3719 3089 Star ! 3719 3067 Star ! 3719 3044 Star ! 3719 3021 Star ! 3719 2998 Star ! 3719 2975 Star ! 3719 2952 Star ! 3719 2930 Star ! 3719 2907 Star ! 3719 2884 Star ! 3719 2861 Star ! 3719 2838 Star ! 3719 2815 Star ! 3719 2792 Star ! 3719 2770 Star ! 3719 2747 Star ! 3719 2724 Star ! 3719 2701 Star ! 3719 2678 Star ! 3719 2655 Star ! 3719 2633 Star ! 3719 2610 Star ! 3751 3729 Star ! 3751 3706 Star ! 3751 3683 Star ! 3751 3660 Star ! 3751 3638 Star ! 3751 3615 Star ! 3751 3592 Star ! 3751 3569 Star ! 3751 3546 Star ! 3751 3523 Star ! 3751 3501 Star ! 3751 3478 Star ! 3751 3455 Star ! 3751 3432 Star ! 3751 3409 Star ! 3751 3386 Star ! 3751 3364 Star ! 3751 3341 Star ! 3751 3318 Star ! 3751 3295 Star ! 3751 3272 Star ! 3751 3249 Star ! 3751 3226 Star ! 3751 3204 Star ! 3751 3181 Star ! 3751 3158 Star ! 3751 3135 Star ! 3751 3112 Star ! 3751 3089 Star ! 3751 3067 Star ! 3751 3044 Star ! 3751 3021 Star ! 3751 2998 Star ! 3751 2975 Star ! 3751 2952 Star ! 3751 2930 Star ! 3751 2907 Star ! 3751 2884 Star ! 3751 2861 Star ! 3751 2838 Star ! 3751 2815 Star ! 3751 2792 Star ! 3751 2770 Star ! 3751 2747 Star ! 3751 2724 Star ! 3751 2701 Star ! 3751 2678 Star ! 3751 2655 Star ! 3751 2633 Star ! 3751 2610 Star ! 3751 2587 Star ! 3784 3706 Star ! 3784 3683 Star ! 3784 3660 Star ! 3784 3638 Star ! 3784 3615 Star ! 3784 3592 Star ! 3784 3569 Star ! 3784 3546 Star ! 3784 3523 Star ! 3784 3501 Star ! 3784 3478 Star ! 3784 3455 Star ! 3784 3432 Star ! 3784 3409 Star ! 3784 3386 Star ! 3784 3364 Star ! 3784 3341 Star ! 3784 3318 Star ! 3784 3295 Star ! 3784 3272 Star ! 3784 3249 Star ! 3784 3226 Star ! 3784 3204 Star ! 3784 3181 Star ! 3784 3158 Star ! 3784 3135 Star ! 3784 3112 Star ! 3784 3089 Star ! 3784 3067 Star ! 3784 3044 Star ! 3784 3021 Star ! 3784 2998 Star ! 3784 2975 Star ! 3784 2952 Star ! 3784 2930 Star ! 3784 2907 Star ! 3784 2884 Star ! 3784 2861 Star ! 3784 2838 Star ! 3784 2815 Star ! 3784 2792 Star ! 3784 2770 Star ! 3784 2747 Star ! 3784 2724 Star ! 3784 2701 Star ! 3784 2678 Star ! 3784 2655 Star ! 3784 2633 Star ! 3784 2610 Star ! 3784 2587 Star ! 3784 2564 Star ! 3816 3706 Star ! 3816 3683 Star ! 3816 3660 Star ! 3816 3638 Star ! 3816 3615 Star ! 3816 3592 Star ! 3816 3569 Star ! 3816 3546 Star ! 3816 3523 Star ! 3816 3501 Star ! 3816 3478 Star ! 3816 3455 Star ! 3816 3432 Star ! 3816 3409 Star ! 3816 3386 Star ! 3816 3364 Star ! 3816 3341 Star ! 3816 3318 Star ! 3816 3295 Star ! 3816 3272 Star ! 3816 3249 Star ! 3816 3226 Star ! 3816 3204 Star ! 3816 3181 Star ! 3816 3158 Star ! 3816 3135 Star ! 3816 3112 Star ! 3816 3089 Star ! 3816 3067 Star ! 3816 3044 Star ! 3816 3021 Star ! 3816 2998 Star ! 3816 2975 Star ! 3816 2952 Star ! 3816 2930 Star ! 3816 2907 Star ! 3816 2884 Star ! 3816 2861 Star ! 3816 2838 Star ! 3816 2815 Star ! 3816 2792 Star ! 3816 2770 Star ! 3816 2747 Star ! 3816 2724 Star ! 3816 2701 Star ! 3816 2678 Star ! 3816 2655 Star ! 3816 2633 Star ! 3816 2610 Star ! 3816 2587 Star ! 3816 2564 Star ! 3816 2541 Star ! 3848 3683 Star ! 3848 3660 Star ! 3848 3638 Star ! 3848 3615 Star ! 3848 3592 Star ! 3848 3569 Star ! 3848 3546 Star ! 3848 3523 Star ! 3848 3501 Star ! 3848 3478 Star ! 3848 3455 Star ! 3848 3432 Star ! 3848 3409 Star ! 3848 3386 Star ! 3848 3364 Star ! 3848 3341 Star ! 3848 3318 Star ! 3848 3295 Star ! 3848 3272 Star ! 3848 3249 Star ! 3848 3226 Star ! 3848 3204 Star ! 3848 3181 Star ! 3848 3158 Star ! 3848 3135 Star ! 3848 3112 Star ! 3848 3089 Star ! 3848 3067 Star ! 3848 3044 Star ! 3848 3021 Star ! 3848 2998 Star ! 3848 2975 Star ! 3848 2952 Star ! 3848 2930 Star ! 3848 2907 Star ! 3848 2884 Star ! 3848 2861 Star ! 3848 2838 Star ! 3848 2815 Star ! 3848 2792 Star ! 3848 2770 Star ! 3848 2747 Star ! 3848 2724 Star ! 3848 2701 Star ! 3848 2678 Star ! 3848 2655 Star ! 3848 2633 Star ! 3848 2610 Star ! 3848 2587 Star ! 3848 2564 Star ! 3848 2541 Star ! 3848 2518 Star ! 3880 3683 Star ! 3880 3660 Star ! 3880 3638 Star ! 3880 3615 Star ! 3880 3592 Star ! 3880 3569 Star ! 3880 3546 Star ! 3880 3523 Star ! 3880 3501 Star ! 3880 3478 Star ! 3880 3455 Star ! 3880 3432 Star ! 3880 3409 Star ! 3880 3386 Star ! 3880 3364 Star ! 3880 3341 Star ! 3880 3318 Star ! 3880 3295 Star ! 3880 3272 Star ! 3880 3249 Star ! 3880 3226 Star ! 3880 3204 Star ! 3880 3181 Star ! 3880 3158 Star ! 3880 3135 Star ! 3880 3112 Star ! 3880 3089 Star ! 3880 3067 Star ! 3880 3044 Star ! 3880 3021 Star ! 3880 2998 Star ! 3880 2975 Star ! 3880 2952 Star ! 3880 2930 Star ! 3880 2907 Star ! 3880 2884 Star ! 3880 2861 Star ! 3880 2838 Star ! 3880 2815 Star ! 3880 2792 Star ! 3880 2770 Star ! 3880 2747 Star ! 3880 2724 Star ! 3880 2701 Star ! 3880 2678 Star ! 3880 2655 Star ! 3880 2633 Star ! 3880 2610 Star ! 3880 2587 Star ! 3880 2564 Star ! 3880 2541 Star ! 3880 2518 Star ! 3880 2496 Star ! 3912 3660 Star ! 3912 3638 Star ! 3912 3615 Star ! 3912 3592 Star ! 3912 3569 Star ! 3912 3546 Star ! 3912 3523 Star ! 3912 3501 Star ! 3912 3478 Star ! 3912 3455 Star ! 3912 3432 Star ! 3912 3409 Star ! 3912 3386 Star ! 3912 3364 Star ! 3912 3341 Star ! 3912 3318 Star ! 3912 3295 Star ! 3912 3272 Star ! 3912 3249 Star ! 3912 3226 Star ! 3912 3204 Star ! 3912 3181 Star ! 3912 3158 Star ! 3912 3135 Star ! 3912 3112 Star ! 3912 3089 Star ! 3912 3067 Star ! 3912 3044 Star ! 3912 3021 Star ! 3912 2998 Star ! 3912 2975 Star ! 3912 2952 Star ! 3912 2930 Star ! 3912 2907 Star ! 3912 2884 Star ! 3912 2861 Star ! 3912 2838 Star ! 3912 2815 Star ! 3912 2792 Star ! 3912 2770 Star ! 3912 2747 Star ! 3912 2724 Star ! 3912 2701 Star ! 3912 2678 Star ! 3912 2655 Star ! 3912 2633 Star ! 3912 2610 Star ! 3912 2587 Star ! 3912 2564 Star ! 3912 2541 Star ! 3912 2518 Star ! 3912 2496 Star ! 3912 2473 Star ! 3944 3660 Star ! 3944 3638 Star ! 3944 3615 Star ! 3944 3592 Star ! 3944 3569 Star ! 3944 3546 Star ! 3944 3523 Star ! 3944 3501 Star ! 3944 3478 Star ! 3944 3455 Star ! 3944 3432 Star ! 3944 3409 Star ! 3944 3386 Star ! 3944 3364 Star ! 3944 3341 Star ! 3944 3318 Star ! 3944 3295 Star ! 3944 3272 Star ! 3944 3249 Star ! 3944 3226 Star ! 3944 3204 Star ! 3944 3181 Star ! 3944 3158 Star ! 3944 3135 Star ! 3944 3112 Star ! 3944 3089 Star ! 3944 3067 Star ! 3944 3044 Star ! 3944 3021 Star ! 3944 2998 Star ! 3944 2975 Star ! 3944 2952 Star ! 3944 2930 Star ! 3944 2907 Star ! 3944 2884 Star ! 3944 2861 Star ! 3944 2838 Star ! 3944 2815 Star ! 3944 2792 Star ! 3944 2770 Star ! 3944 2747 Star ! 3944 2724 Star ! 3944 2701 Star ! 3944 2678 Star ! 3944 2655 Star ! 3944 2633 Star ! 3944 2610 Star ! 3944 2587 Star ! 3944 2564 Star ! 3944 2541 Star ! 3944 2518 Star ! 3944 2496 Star ! 3944 2473 Star ! 3944 2450 Star ! 3976 3638 Star ! 3976 3615 Star ! 3976 3592 Star ! 3976 3569 Star ! 3976 3546 Star ! 3976 3523 Star ! 3976 3501 Star ! 3976 3478 Star ! 3976 3455 Star ! 3976 3432 Star ! 3976 3409 Star ! 3976 3386 Star ! 3976 3364 Star ! 3976 3341 Star ! 3976 3318 Star ! 3976 3295 Star ! 3976 3272 Star ! 3976 3249 Star ! 3976 3226 Star ! 3976 3204 Star ! 3976 3181 Star ! 3976 3158 Star ! 3976 3135 Star ! 3976 3112 Star ! 3976 3089 Star ! 3976 3067 Star ! 3976 3044 Star ! 3976 3021 Star ! 3976 2998 Star ! 3976 2975 Star ! 3976 2952 Star ! 3976 2930 Star ! 3976 2907 Star ! 3976 2884 Star ! 3976 2861 Star ! 3976 2838 Star ! 3976 2815 Star ! 3976 2792 Star ! 3976 2770 Star ! 3976 2747 Star ! 3976 2724 Star ! 3976 2701 Star ! 3976 2678 Star ! 3976 2655 Star ! 3976 2633 Star ! 3976 2610 Star ! 3976 2587 Star ! 3976 2564 Star ! 3976 2541 Star ! 3976 2518 Star ! 3976 2496 Star ! 3976 2473 Star ! 3976 2450 Star ! 3976 2427 Star ! 4008 3638 Star ! 4008 3615 Star ! 4008 3592 Star ! 4008 3569 Star ! 4008 3546 Star ! 4008 3523 Star ! 4008 3501 Star ! 4008 3478 Star ! 4008 3455 Star ! 4008 3432 Star ! 4008 3409 Star ! 4008 3386 Star ! 4008 3364 Star ! 4008 3341 Star ! 4008 3318 Star ! 4008 3295 Star ! 4008 3272 Star ! 4008 3249 Star ! 4008 3226 Star ! 4008 3204 Star ! 4008 3181 Star ! 4008 3158 Star ! 4008 3135 Star ! 4008 3112 Star ! 4008 3089 Star ! 4008 3067 Star ! 4008 3044 Star ! 4008 3021 Star ! 4008 2998 Star ! 4008 2975 Star ! 4008 2952 Star ! 4008 2930 Star ! 4008 2907 Star ! 4008 2884 Star ! 4008 2861 Star ! 4008 2838 Star ! 4008 2815 Star ! 4008 2792 Star ! 4008 2770 Star ! 4008 2747 Star ! 4008 2724 Star ! 4008 2701 Star ! 4008 2678 Star ! 4008 2655 Star ! 4008 2633 Star ! 4008 2610 Star ! 4008 2587 Star ! 4008 2564 Star ! 4008 2541 Star ! 4008 2518 Star ! 4008 2496 Star ! 4008 2473 Star ! 4008 2450 Star ! 4008 2427 Star ! 4008 2404 Star ! 4040 3615 Star ! 4040 3592 Star ! 4040 3569 Star ! 4040 3546 Star ! 4040 3523 Star ! 4040 3501 Star ! 4040 3478 Star ! 4040 3455 Star ! 4040 3432 Star ! 4040 3409 Star ! 4040 3386 Star ! 4040 3364 Star ! 4040 3341 Star ! 4040 3318 Star ! 4040 3295 Star ! 4040 3272 Star ! 4040 3249 Star ! 4040 3226 Star ! 4040 3204 Star ! 4040 3181 Star ! 4040 3158 Star ! 4040 3135 Star ! 4040 3112 Star ! 4040 3089 Star ! 4040 3067 Star ! 4040 3044 Star ! 4040 3021 Star ! 4040 2998 Star ! 4040 2975 Star ! 4040 2952 Star ! 4040 2930 Star ! 4040 2907 Star ! 4040 2884 Star ! 4040 2861 Star ! 4040 2838 Star ! 4040 2815 Star ! 4040 2792 Star ! 4040 2770 Star ! 4040 2747 Star ! 4040 2724 Star ! 4040 2701 Star ! 4040 2678 Star ! 4040 2655 Star ! 4040 2633 Star ! 4040 2610 Star ! 4040 2587 Star ! 4040 2564 Star ! 4040 2541 Star ! 4040 2518 Star ! 4040 2496 Star ! 4040 2473 Star ! 4040 2450 Star ! 4040 2427 Star ! 4040 2404 Star ! 4040 2381 Star ! 4072 3615 Star ! 4072 3592 Star ! 4072 3569 Star ! 4072 3546 Star ! 4072 3523 Star ! 4072 3501 Star ! 4072 3478 Star ! 4072 3455 Star ! 4072 3432 Star ! 4072 3409 Star ! 4072 3386 Star ! 4072 3364 Star ! 4072 3341 Star ! 4072 3318 Star ! 4072 3295 Star ! 4072 3272 Star ! 4072 3249 Star ! 4072 3226 Star ! 4072 3204 Star ! 4072 3181 Star ! 4072 3158 Star ! 4072 3135 Star ! 4072 3112 Star ! 4072 3089 Star ! 4072 3067 Star ! 4072 3044 Star ! 4072 3021 Star ! 4072 2998 Star ! 4072 2975 Star ! 4072 2952 Star ! 4072 2930 Star ! 4072 2907 Star ! 4072 2884 Star ! 4072 2861 Star ! 4072 2838 Star ! 4072 2815 Star ! 4072 2792 Star ! 4072 2770 Star ! 4072 2747 Star ! 4072 2724 Star ! 4072 2701 Star ! 4072 2678 Star ! 4072 2655 Star ! 4072 2633 Star ! 4072 2610 Star ! 4072 2587 Star ! 4072 2564 Star ! 4072 2541 Star ! 4072 2518 Star ! 4072 2496 Star ! 4072 2473 Star ! 4072 2450 Star ! 4072 2427 Star ! 4072 2404 Star ! 4072 2381 Star ! 4072 2359 Star ! 4104 3592 Star ! 4104 3569 Star ! 4104 3546 Star ! 4104 3523 Star ! 4104 3501 Star ! 4104 3478 Star ! 4104 3455 Star ! 4104 3432 Star ! 4104 3409 Star ! 4104 3386 Star ! 4104 3364 Star ! 4104 3341 Star ! 4104 3318 Star ! 4104 3295 Star ! 4104 3272 Star ! 4104 3249 Star ! 4104 3226 Star ! 4104 3204 Star ! 4104 3181 Star ! 4104 3158 Star ! 4104 3135 Star ! 4104 3112 Star ! 4104 3089 Star ! 4104 3067 Star ! 4104 3044 Star ! 4104 3021 Star ! 4104 2998 Star ! 4104 2975 Star ! 4104 2952 Star ! 4104 2930 Star ! 4104 2907 Star ! 4104 2884 Star ! 4104 2861 Star ! 4104 2838 Star ! 4104 2815 Star ! 4104 2792 Star ! 4104 2770 Star ! 4104 2747 Star ! 4104 2724 Star ! 4104 2701 Star ! 4104 2678 Star ! 4104 2655 Star ! 4104 2633 Star ! 4104 2610 Star ! 4104 2587 Star ! 4104 2564 Star ! 4104 2541 Star ! 4104 2518 Star ! 4104 2496 Star ! 4104 2473 Star ! 4104 2450 Star ! 4104 2427 Star ! 4104 2404 Star ! 4104 2381 Star ! 4104 2359 Star ! 4104 2336 Star ! 4136 3592 Star ! 4136 3569 Star ! 4136 3546 Star ! 4136 3523 Star ! 4136 3501 Star ! 4136 3478 Star ! 4136 3455 Star ! 4136 3432 Star ! 4136 3409 Star ! 4136 3386 Star ! 4136 3364 Star ! 4136 3341 Star ! 4136 3318 Star ! 4136 3295 Star ! 4136 3272 Star ! 4136 3249 Star ! 4136 3226 Star ! 4136 3204 Star ! 4136 3181 Star ! 4136 3158 Star ! 4136 3135 Star ! 4136 3112 Star ! 4136 3089 Star ! 4136 3067 Star ! 4136 3044 Star ! 4136 3021 Star ! 4136 2998 Star ! 4136 2975 Star ! 4136 2952 Star ! 4136 2930 Star ! 4136 2907 Star ! 4136 2884 Star ! 4136 2861 Star ! 4136 2838 Star ! 4136 2815 Star ! 4136 2792 Star ! 4136 2770 Star ! 4136 2747 Star ! 4136 2724 Star ! 4136 2701 Star ! 4136 2678 Star ! 4136 2655 Star ! 4136 2633 Star ! 4136 2610 Star ! 4136 2587 Star ! 4136 2564 Star ! 4136 2541 Star ! 4136 2518 Star ! 4136 2496 Star ! 4136 2473 Star ! 4136 2450 Star ! 4136 2427 Star ! 4136 2404 Star ! 4136 2381 Star ! 4136 2359 Star ! 4136 2336 Star ! 4136 2313 Star ! 4168 3569 Star ! 4168 3546 Star ! 4168 3523 Star ! 4168 3501 Star ! 4168 3478 Star ! 4168 3455 Star ! 4168 3432 Star ! 4168 3409 Star ! 4168 3386 Star ! 4168 3364 Star ! 4168 3341 Star ! 4168 3318 Star ! 4168 3295 Star ! 4168 3272 Star ! 4168 3249 Star ! 4168 3226 Star ! 4168 3204 Star ! 4168 3181 Star ! 4168 3158 Star ! 4168 3135 Star ! 4168 3112 Star ! 4168 3089 Star ! 4168 3067 Star ! 4168 3044 Star ! 4168 3021 Star ! 4168 2998 Star ! 4168 2975 Star ! 4168 2952 Star ! 4168 2930 Star ! 4168 2907 Star ! 4168 2884 Star ! 4168 2861 Star ! 4168 2838 Star ! 4168 2815 Star ! 4168 2792 Star ! 4168 2770 Star ! 4168 2747 Star ! 4168 2724 Star ! 4168 2701 Star ! 4168 2678 Star ! 4168 2655 Star ! 4168 2633 Star ! 4168 2610 Star ! 4168 2587 Star ! 4168 2564 Star ! 4168 2541 Star ! 4168 2518 Star ! 4168 2496 Star ! 4168 2473 Star ! 4168 2450 Star ! 4168 2427 Star ! 4168 2404 Star ! 4168 2381 Star ! 4168 2359 Star ! 4168 2336 Star ! 4168 2313 Star ! 4168 2290 Star ! 4200 3569 Star ! 4200 3546 Star ! 4200 3523 Star ! 4200 3501 Star ! 4200 3478 Star ! 4200 3455 Star ! 4200 3432 Star ! 4200 3409 Star ! 4200 3386 Star ! 4200 3364 Star ! 4200 3341 Star ! 4200 3318 Star ! 4200 3295 Star ! 4200 3272 Star ! 4200 3249 Star ! 4200 3226 Star ! 4200 3204 Star ! 4200 3181 Star ! 4200 3158 Star ! 4200 3135 Star ! 4200 3112 Star ! 4200 3089 Star ! 4200 3067 Star ! 4200 3044 Star ! 4200 3021 Star ! 4200 2998 Star ! 4200 2975 Star ! 4200 2952 Star ! 4200 2930 Star ! 4200 2907 Star ! 4200 2884 Star ! 4200 2861 Star ! 4200 2838 Star ! 4200 2815 Star ! 4200 2792 Star ! 4200 2770 Star ! 4200 2747 Star ! 4200 2724 Star ! 4200 2701 Star ! 4200 2678 Star ! 4200 2655 Star ! 4200 2633 Star ! 4200 2610 Star ! 4200 2587 Star ! 4200 2564 Star ! 4200 2541 Star ! 4200 2518 Star ! 4200 2496 Star ! 4200 2473 Star ! 4200 2450 Star ! 4200 2427 Star ! 4200 2404 Star ! 4200 2381 Star ! 4200 2359 Star ! 4200 2336 Star ! 4200 2313 Star ! 4200 2290 Star ! 4200 2267 Star ! 4232 3546 Star ! 4232 3523 Star ! 4232 3501 Star ! 4232 3478 Star ! 4232 3455 Star ! 4232 3432 Star ! 4232 3409 Star ! 4232 3386 Star ! 4232 3364 Star ! 4232 3341 Star ! 4232 3318 Star ! 4232 3295 Star ! 4232 3272 Star ! 4232 3249 Star ! 4232 3226 Star ! 4232 3204 Star ! 4232 3181 Star ! 4232 3158 Star ! 4232 3135 Star ! 4232 3112 Star ! 4232 3089 Star ! 4232 3067 Star ! 4232 3044 Star ! 4232 3021 Star ! 4232 2998 Star ! 4232 2975 Star ! 4232 2952 Star ! 4232 2930 Star ! 4232 2907 Star ! 4232 2884 Star ! 4232 2861 Star ! 4232 2838 Star ! 4232 2815 Star ! 4232 2792 Star ! 4232 2770 Star ! 4232 2747 Star ! 4232 2724 Star ! 4232 2701 Star ! 4232 2678 Star ! 4232 2655 Star ! 4232 2633 Star ! 4232 2610 Star ! 4232 2587 Star ! 4232 2564 Star ! 4232 2541 Star ! 4232 2518 Star ! 4232 2496 Star ! 4232 2473 Star ! 4232 2450 Star ! 4232 2427 Star ! 4232 2404 Star ! 4232 2381 Star ! 4232 2359 Star ! 4232 2336 Star ! 4232 2313 Star ! 4232 2290 Star ! 4232 2267 Star ! 4232 2244 Star ! 4264 3546 Star ! 4264 3523 Star ! 4264 3501 Star ! 4264 3478 Star ! 4264 3455 Star ! 4264 3432 Star ! 4264 3409 Star ! 4264 3386 Star ! 4264 3364 Star ! 4264 3341 Star ! 4264 3318 Star ! 4264 3295 Star ! 4264 3272 Star ! 4264 3249 Star ! 4264 3226 Star ! 4264 3204 Star ! 4264 3181 Star ! 4264 3158 Star ! 4264 3135 Star ! 4264 3112 Star ! 4264 3089 Star ! 4264 3067 Star ! 4264 3044 Star ! 4264 3021 Star ! 4264 2998 Star ! 4264 2975 Star ! 4264 2952 Star ! 4264 2930 Star ! 4264 2907 Star ! 4264 2884 Star ! 4264 2861 Star ! 4264 2838 Star ! 4264 2815 Star ! 4264 2792 Star ! 4264 2770 Star ! 4264 2747 Star ! 4264 2724 Star ! 4264 2701 Star ! 4264 2678 Star ! 4264 2655 Star ! 4264 2633 Star ! 4264 2610 Star ! 4264 2587 Star ! 4264 2564 Star ! 4264 2541 Star ! 4264 2518 Star ! 4264 2496 Star ! 4264 2473 Star ! 4264 2450 Star ! 4264 2427 Star ! 4264 2404 Star ! 4264 2381 Star ! 4264 2359 Star ! 4264 2336 Star ! 4264 2313 Star ! 4264 2290 Star ! 4264 2267 Star ! 4264 2244 Star ! 4264 2221 Star ! 4296 3523 Star ! 4296 3501 Star ! 4296 3478 Star ! 4296 3455 Star ! 4296 3432 Star ! 4296 3409 Star ! 4296 3386 Star ! 4296 3364 Star ! 4296 3341 Star ! 4296 3318 Star ! 4296 3295 Star ! 4296 3272 Star ! 4296 3249 Star ! 4296 3226 Star ! 4296 3204 Star ! 4296 3181 Star ! 4296 3158 Star ! 4296 3135 Star ! 4296 3112 Star ! 4296 3089 Star ! 4296 3067 Star ! 4296 3044 Star ! 4296 3021 Star ! 4296 2998 Star ! 4296 2975 Star ! 4296 2952 Star ! 4296 2930 Star ! 4296 2907 Star ! 4296 2884 Star ! 4296 2861 Star ! 4296 2838 Star ! 4296 2815 Star ! 4296 2792 Star ! 4296 2770 Star ! 4296 2747 Star ! 4296 2724 Star ! 4296 2701 Star ! 4296 2678 Star ! 4296 2655 Star ! 4296 2633 Star ! 4296 2610 Star ! 4296 2587 Star ! 4296 2564 Star ! 4296 2541 Star ! 4296 2518 Star ! 4296 2496 Star ! 4296 2473 Star ! 4296 2450 Star ! 4296 2427 Star ! 4296 2404 Star ! 4296 2381 Star ! 4296 2359 Star ! 4296 2336 Star ! 4296 2313 Star ! 4296 2290 Star ! 4296 2267 Star ! 4296 2244 Star ! 4296 2221 Star ! 4296 2199 Star ! 4328 3523 Star ! 4328 3501 Star ! 4328 3478 Star ! 4328 3455 Star ! 4328 3432 Star ! 4328 3409 Star ! 4328 3386 Star ! 4328 3364 Star ! 4328 3341 Star ! 4328 3318 Star ! 4328 3295 Star ! 4328 3272 Star ! 4328 3249 Star ! 4328 3226 Star ! 4328 3204 Star ! 4328 3181 Star ! 4328 3158 Star ! 4328 3135 Star ! 4328 3112 Star ! 4328 3089 Star ! 4328 3067 Star ! 4328 3044 Star ! 4328 3021 Star ! 4328 2998 Star ! 4328 2975 Star ! 4328 2952 Star ! 4328 2930 Star ! 4328 2907 Star ! 4328 2884 Star ! 4328 2861 Star ! 4328 2838 Star ! 4328 2815 Star ! 4328 2792 Star ! 4328 2770 Star ! 4328 2747 Star ! 4328 2724 Star ! 4328 2701 Star ! 4328 2678 Star ! 4328 2655 Star ! 4328 2633 Star ! 4328 2610 Star ! 4328 2587 Star ! 4328 2564 Star ! 4328 2541 Star ! 4328 2518 Star ! 4328 2496 Star ! 4328 2473 Star ! 4328 2450 Star ! 4328 2427 Star ! 4328 2404 Star ! 4328 2381 Star ! 4328 2359 Star ! 4328 2336 Star ! 4328 2313 Star ! 4328 2290 Star ! 4328 2267 Star ! 4328 2244 Star ! 4328 2221 Star ! 4328 2199 Star ! 4328 2176 Star ! 4361 3501 Star ! 4361 3478 Star ! 4361 3455 Star ! 4361 3432 Star ! 4361 3409 Star ! 4361 3386 Star ! 4361 3364 Star ! 4361 3341 Star ! 4361 3318 Star ! 4361 3295 Star ! 4361 3272 Star ! 4361 3249 Star ! 4361 3226 Star ! 4361 3204 Star ! 4361 3181 Star ! 4361 3158 Star ! 4361 3135 Star ! 4361 3112 Star ! 4361 3089 Star ! 4361 3067 Star ! 4361 3044 Star ! 4361 3021 Star ! 4361 2998 Star ! 4361 2975 Star ! 4361 2952 Star ! 4361 2930 Star ! 4361 2907 Star ! 4361 2884 Star ! 4361 2861 Star ! 4361 2838 Star ! 4361 2815 Star ! 4361 2792 Star ! 4361 2770 Star ! 4361 2747 Star ! 4361 2724 Star ! 4361 2701 Star ! 4361 2678 Star ! 4361 2655 Star ! 4361 2633 Star ! 4361 2610 Star ! 4361 2587 Star ! 4361 2564 Star ! 4361 2541 Star ! 4361 2518 Star ! 4361 2496 Star ! 4361 2473 Star ! 4361 2450 Star ! 4361 2427 Star ! 4361 2404 Star ! 4361 2381 Star ! 4361 2359 Star ! 4361 2336 Star ! 4361 2313 Star ! 4361 2290 Star ! 4361 2267 Star ! 4361 2244 Star ! 4361 2221 Star ! 4361 2199 Star ! 4361 2176 Star ! 4361 2153 Star ! 4393 3501 Star ! 4393 3478 Star ! 4393 3455 Star ! 4393 3432 Star ! 4393 3409 Star ! 4393 3386 Star ! 4393 3364 Star ! 4393 3341 Star ! 4393 3318 Star ! 4393 3295 Star ! 4393 3272 Star ! 4393 3249 Star ! 4393 3226 Star ! 4393 3204 Star ! 4393 3181 Star ! 4393 3158 Star ! 4393 3135 Star ! 4393 3112 Star ! 4393 3089 Star ! 4393 3067 Star ! 4393 3044 Star ! 4393 3021 Star ! 4393 2998 Star ! 4393 2975 Star ! 4393 2952 Star ! 4393 2930 Star ! 4393 2907 Star ! 4393 2884 Star ! 4393 2861 Star ! 4393 2838 Star ! 4393 2815 Star ! 4393 2792 Star ! 4393 2770 Star ! 4393 2747 Star ! 4393 2724 Star ! 4393 2701 Star ! 4393 2678 Star ! 4393 2655 Star ! 4393 2633 Star ! 4393 2610 Star ! 4393 2587 Star ! 4393 2564 Star ! 4393 2541 Star ! 4393 2518 Star ! 4393 2496 Star ! 4393 2473 Star ! 4393 2450 Star ! 4393 2427 Star ! 4393 2404 Star ! 4393 2381 Star ! 4393 2359 Star ! 4393 2336 Star ! 4393 2313 Star ! 4393 2290 Star ! 4393 2267 Star ! 4393 2244 Star ! 4393 2221 Star ! 4393 2199 Star ! 4393 2176 Star ! 4393 2153 Star ! 4393 2130 Star ! 4425 3478 Star ! 4425 3455 Star ! 4425 3432 Star ! 4425 3409 Star ! 4425 3386 Star ! 4425 3364 Star ! 4425 3341 Star ! 4425 3318 Star ! 4425 3295 Star ! 4425 3272 Star ! 4425 3249 Star ! 4425 3226 Star ! 4425 3204 Star ! 4425 3181 Star ! 4425 3158 Star ! 4425 3135 Star ! 4425 3112 Star ! 4425 3089 Star ! 4425 3067 Star ! 4425 3044 Star ! 4425 3021 Star ! 4425 2998 Star ! 4425 2975 Star ! 4425 2952 Star ! 4425 2930 Star ! 4425 2907 Star ! 4425 2884 Star ! 4425 2861 Star ! 4425 2838 Star ! 4425 2815 Star ! 4425 2792 Star ! 4425 2770 Star ! 4425 2747 Star ! 4425 2724 Star ! 4425 2701 Star ! 4425 2678 Star ! 4425 2655 Star ! 4425 2633 Star ! 4425 2610 Star ! 4425 2587 Star ! 4425 2564 Star ! 4425 2541 Star ! 4425 2518 Star ! 4425 2496 Star ! 4425 2473 Star ! 4425 2450 Star ! 4425 2427 Star ! 4425 2404 Star ! 4425 2381 Star ! 4425 2359 Star ! 4425 2336 Star ! 4425 2313 Star ! 4425 2290 Star ! 4425 2267 Star ! 4425 2244 Star ! 4425 2221 Star ! 4425 2199 Star ! 4425 2176 Star ! 4425 2153 Star ! 4425 2130 Star ! 4425 2107 Star ! 4457 3478 Star ! 4457 3455 Star ! 4457 3432 Star ! 4457 3409 Star ! 4457 3386 Star ! 4457 3364 Star ! 4457 3341 Star ! 4457 3318 Star ! 4457 3295 Star ! 4457 3272 Star ! 4457 3249 Star ! 4457 3226 Star ! 4457 3204 Star ! 4457 3181 Star ! 4457 3158 Star ! 4457 3135 Star ! 4457 3112 Star ! 4457 3089 Star ! 4457 3067 Star ! 4457 3044 Star ! 4457 3021 Star ! 4457 2998 Star ! 4457 2975 Star ! 4457 2952 Star ! 4457 2930 Star ! 4457 2907 Star ! 4457 2884 Star ! 4457 2861 Star ! 4457 2838 Star ! 4457 2815 Star ! 4457 2792 Star ! 4457 2770 Star ! 4457 2747 Star ! 4457 2724 Star ! 4457 2701 Star ! 4457 2678 Star ! 4457 2655 Star ! 4457 2633 Star ! 4457 2610 Star ! 4457 2587 Star ! 4457 2564 Star ! 4457 2541 Star ! 4457 2518 Star ! 4457 2496 Star ! 4457 2473 Star ! 4457 2450 Star ! 4457 2427 Star ! 4457 2404 Star ! 4457 2381 Star ! 4457 2359 Star ! 4457 2336 Star ! 4457 2313 Star ! 4457 2290 Star ! 4457 2267 Star ! 4457 2244 Star ! 4457 2221 Star ! 4457 2199 Star ! 4457 2176 Star ! 4457 2153 Star ! 4457 2130 Star ! 4457 2107 Star ! 4457 2084 Star ! 4489 3455 Star ! 4489 3432 Star ! 4489 3409 Star ! 4489 3386 Star ! 4489 3364 Star ! 4489 3341 Star ! 4489 3318 Star ! 4489 3295 Star ! 4489 3272 Star ! 4489 3249 Star ! 4489 3226 Star ! 4489 3204 Star ! 4489 3181 Star ! 4489 3158 Star ! 4489 3135 Star ! 4489 3112 Star ! 4489 3089 Star ! 4489 3067 Star ! 4489 3044 Star ! 4489 3021 Star ! 4489 2998 Star ! 4489 2975 Star ! 4489 2952 Star ! 4489 2930 Star ! 4489 2907 Star ! 4489 2884 Star ! 4489 2861 Star ! 4489 2838 Star ! 4489 2815 Star ! 4489 2792 Star ! 4489 2770 Star ! 4489 2747 Star ! 4489 2724 Star ! 4489 2701 Star ! 4489 2678 Star ! 4489 2655 Star ! 4489 2633 Star ! 4489 2610 Star ! 4489 2587 Star ! 4489 2564 Star ! 4489 2541 Star ! 4489 2518 Star ! 4489 2496 Star ! 4489 2473 Star ! 4489 2450 Star ! 4489 2427 Star ! 4489 2404 Star ! 4489 2381 Star ! 4489 2359 Star ! 4489 2336 Star ! 4489 2313 Star ! 4489 2290 Star ! 4489 2267 Star ! 4489 2244 Star ! 4489 2221 Star ! 4489 2199 Star ! 4489 2176 Star ! 4489 2153 Star ! 4489 2130 Star ! 4489 2107 Star ! 4489 2084 Star ! 4489 2062 Star ! 4521 3455 Star ! 4521 3432 Star ! 4521 3409 Star ! 4521 3386 Star ! 4521 3364 Star ! 4521 3341 Star ! 4521 3318 Star ! 4521 3295 Star ! 4521 3272 Star ! 4521 3249 Star ! 4521 3226 Star ! 4521 3204 Star ! 4521 3181 Star ! 4521 3158 Star ! 4521 3135 Star ! 4521 3112 Star ! 4521 3089 Star ! 4521 3067 Star ! 4521 3044 Star ! 4521 3021 Star ! 4521 2998 Star ! 4521 2975 Star ! 4521 2952 Star ! 4521 2930 Star ! 4521 2907 Star ! 4521 2884 Star ! 4521 2861 Star ! 4521 2838 Star ! 4521 2815 Star ! 4521 2792 Star ! 4521 2770 Star ! 4521 2747 Star ! 4521 2724 Star ! 4521 2701 Star ! 4521 2678 Star ! 4521 2655 Star ! 4521 2633 Star ! 4521 2610 Star ! 4521 2587 Star ! 4521 2564 Star ! 4521 2541 Star ! 4521 2518 Star ! 4521 2496 Star ! 4521 2473 Star ! 4521 2450 Star ! 4521 2427 Star ! 4521 2404 Star ! 4521 2381 Star ! 4521 2359 Star ! 4521 2336 Star ! 4521 2313 Star ! 4521 2290 Star ! 4521 2267 Star ! 4521 2244 Star ! 4521 2221 Star ! 4521 2199 Star ! 4521 2176 Star ! 4521 2153 Star ! 4521 2130 Star ! 4521 2107 Star ! 4521 2084 Star ! 4521 2062 Star ! 4521 2039 Star ! 4553 3432 Star ! 4553 3409 Star ! 4553 3386 Star ! 4553 3364 Star ! 4553 3341 Star ! 4553 3318 Star ! 4553 3295 Star ! 4553 3272 Star ! 4553 3249 Star ! 4553 3226 Star ! 4553 3204 Star ! 4553 3181 Star ! 4553 3158 Star ! 4553 3135 Star ! 4553 3112 Star ! 4553 3089 Star ! 4553 3067 Star ! 4553 3044 Star ! 4553 3021 Star ! 4553 2998 Star ! 4553 2975 Star ! 4553 2952 Star ! 4553 2930 Star ! 4553 2907 Star ! 4553 2884 Star ! 4553 2861 Star ! 4553 2838 Star ! 4553 2815 Star ! 4553 2792 Star ! 4553 2770 Star ! 4553 2747 Star ! 4553 2724 Star ! 4553 2701 Star ! 4553 2678 Star ! 4553 2655 Star ! 4553 2633 Star ! 4553 2610 Star ! 4553 2587 Star ! 4553 2564 Star ! 4553 2541 Star ! 4553 2518 Star ! 4553 2496 Star ! 4553 2473 Star ! 4553 2450 Star ! 4553 2427 Star ! 4553 2404 Star ! 4553 2381 Star ! 4553 2359 Star ! 4553 2336 Star ! 4553 2313 Star ! 4553 2290 Star ! 4553 2267 Star ! 4553 2244 Star ! 4553 2221 Star ! 4553 2199 Star ! 4553 2176 Star ! 4553 2153 Star ! 4553 2130 Star ! 4553 2107 Star ! 4553 2084 Star ! 4553 2062 Star ! 4553 2039 Star ! 4553 2016 Star ! 4585 3432 Star ! 4585 3409 Star ! 4585 3386 Star ! 4585 3364 Star ! 4585 3341 Star ! 4585 3318 Star ! 4585 3295 Star ! 4585 3272 Star ! 4585 3249 Star ! 4585 3226 Star ! 4585 3204 Star ! 4585 3181 Star ! 4585 3158 Star ! 4585 3135 Star ! 4585 3112 Star ! 4585 3089 Star ! 4585 3067 Star ! 4585 3044 Star ! 4585 3021 Star ! 4585 2998 Star ! 4585 2975 Star ! 4585 2952 Star ! 4585 2930 Star ! 4585 2907 Star ! 4585 2884 Star ! 4585 2861 Star ! 4585 2838 Star ! 4585 2815 Star ! 4585 2792 Star ! 4585 2770 Star ! 4585 2747 Star ! 4585 2724 Star ! 4585 2701 Star ! 4585 2678 Star ! 4585 2655 Star ! 4585 2633 Star ! 4585 2610 Star ! 4585 2587 Star ! 4585 2564 Star ! 4585 2541 Star ! 4585 2518 Star ! 4585 2496 Star ! 4585 2473 Star ! 4585 2450 Star ! 4585 2427 Star ! 4585 2404 Star ! 4585 2381 Star ! 4585 2359 Star ! 4585 2336 Star ! 4585 2313 Star ! 4585 2290 Star ! 4585 2267 Star ! 4585 2244 Star ! 4585 2221 Star ! 4585 2199 Star ! 4585 2176 Star ! 4585 2153 Star ! 4585 2130 Star ! 4585 2107 Star ! 4585 2084 Star ! 4585 2062 Star ! 4585 2039 Star ! 4585 2016 Star ! 4585 1993 Star ! 4617 3409 Star ! 4617 3386 Star ! 4617 3364 Star ! 4617 3341 Star ! 4617 3318 Star ! 4617 3295 Star ! 4617 3272 Star ! 4617 3249 Star ! 4617 3226 Star ! 4617 3204 Star ! 4617 3181 Star ! 4617 3158 Star ! 4617 3135 Star ! 4617 3112 Star ! 4617 3089 Star ! 4617 3067 Star ! 4617 3044 Star ! 4617 3021 Star ! 4617 2998 Star ! 4617 2975 Star ! 4617 2952 Star ! 4617 2930 Star ! 4617 2907 Star ! 4617 2884 Star ! 4617 2861 Star ! 4617 2838 Star ! 4617 2815 Star ! 4617 2792 Star ! 4617 2770 Star ! 4617 2747 Star ! 4617 2724 Star ! 4617 2701 Star ! 4617 2678 Star ! 4617 2655 Star ! 4617 2633 Star ! 4617 2610 Star ! 4617 2587 Star ! 4617 2564 Star ! 4617 2541 Star ! 4617 2518 Star ! 4617 2496 Star ! 4617 2473 Star ! 4617 2450 Star ! 4617 2427 Star ! 4617 2404 Star ! 4617 2381 Star ! 4617 2359 Star ! 4617 2336 Star ! 4617 2313 Star ! 4617 2290 Star ! 4617 2267 Star ! 4617 2244 Star ! 4617 2221 Star ! 4617 2199 Star ! 4617 2176 Star ! 4617 2153 Star ! 4617 2130 Star ! 4617 2107 Star ! 4617 2084 Star ! 4617 2062 Star ! 4617 2039 Star ! 4617 2016 Star ! 4617 1993 Star ! 4617 1970 Star ! 4649 3409 Star ! 4649 3386 Star ! 4649 3364 Star ! 4649 3341 Star ! 4649 3318 Star ! 4649 3295 Star ! 4649 3272 Star ! 4649 3249 Star ! 4649 3226 Star ! 4649 3204 Star ! 4649 3181 Star ! 4649 3158 Star ! 4649 3135 Star ! 4649 3112 Star ! 4649 3089 Star ! 4649 3067 Star ! 4649 3044 Star ! 4649 3021 Star ! 4649 2998 Star ! 4649 2975 Star ! 4649 2952 Star ! 4649 2930 Star ! 4649 2907 Star ! 4649 2884 Star ! 4649 2861 Star ! 4649 2838 Star ! 4649 2815 Star ! 4649 2792 Star ! 4649 2770 Star ! 4649 2747 Star ! 4649 2724 Star ! 4649 2701 Star ! 4649 2678 Star ! 4649 2655 Star ! 4649 2633 Star ! 4649 2610 Star ! 4649 2587 Star ! 4649 2564 Star ! 4649 2541 Star ! 4649 2518 Star ! 4649 2496 Star ! 4649 2473 Star ! 4649 2450 Star ! 4649 2427 Star ! 4649 2404 Star ! 4649 2381 Star ! 4649 2359 Star ! 4649 2336 Star ! 4649 2313 Star ! 4649 2290 Star ! 4649 2267 Star ! 4649 2244 Star ! 4649 2221 Star ! 4649 2199 Star ! 4649 2176 Star ! 4649 2153 Star ! 4649 2130 Star ! 4649 2107 Star ! 4649 2084 Star ! 4649 2062 Star ! 4649 2039 Star ! 4649 2016 Star ! 4649 1993 Star ! 4649 1970 Star ! 4649 1947 Star ! 4681 3386 Star ! 4681 3364 Star ! 4681 3341 Star ! 4681 3318 Star ! 4681 3295 Star ! 4681 3272 Star ! 4681 3249 Star ! 4681 3226 Star ! 4681 3204 Star ! 4681 3181 Star ! 4681 3158 Star ! 4681 3135 Star ! 4681 3112 Star ! 4681 3089 Star ! 4681 3067 Star ! 4681 3044 Star ! 4681 3021 Star ! 4681 2998 Star ! 4681 2975 Star ! 4681 2952 Star ! 4681 2930 Star ! 4681 2907 Star ! 4681 2884 Star ! 4681 2861 Star ! 4681 2838 Star ! 4681 2815 Star ! 4681 2792 Star ! 4681 2770 Star ! 4681 2747 Star ! 4681 2724 Star ! 4681 2701 Star ! 4681 2678 Star ! 4681 2655 Star ! 4681 2633 Star ! 4681 2610 Star ! 4681 2587 Star ! 4681 2564 Star ! 4681 2541 Star ! 4681 2518 Star ! 4681 2496 Star ! 4681 2473 Star ! 4681 2450 Star ! 4681 2427 Star ! 4681 2404 Star ! 4681 2381 Star ! 4681 2359 Star ! 4681 2336 Star ! 4681 2313 Star ! 4681 2290 Star ! 4681 2267 Star ! 4681 2244 Star ! 4681 2221 Star ! 4681 2199 Star ! 4681 2176 Star ! 4681 2153 Star ! 4681 2130 Star ! 4681 2107 Star ! 4681 2084 Star ! 4681 2062 Star ! 4681 2039 Star ! 4681 2016 Star ! 4681 1993 Star ! 4681 1970 Star ! 4681 1947 Star ! 4681 1925 Star ! 4713 3386 Star ! 4713 3364 Star ! 4713 3341 Star ! 4713 3318 Star ! 4713 3295 Star ! 4713 3272 Star ! 4713 3249 Star ! 4713 3226 Star ! 4713 3204 Star ! 4713 3181 Star ! 4713 3158 Star ! 4713 3135 Star ! 4713 3112 Star ! 4713 3089 Star ! 4713 3067 Star ! 4713 3044 Star ! 4713 3021 Star ! 4713 2998 Star ! 4713 2975 Star ! 4713 2952 Star ! 4713 2930 Star ! 4713 2907 Star ! 4713 2884 Star ! 4713 2861 Star ! 4713 2838 Star ! 4713 2815 Star ! 4713 2792 Star ! 4713 2770 Star ! 4713 2747 Star ! 4713 2724 Star ! 4713 2701 Star ! 4713 2678 Star ! 4713 2655 Star ! 4713 2633 Star ! 4713 2610 Star ! 4713 2587 Star ! 4713 2564 Star ! 4713 2541 Star ! 4713 2518 Star ! 4713 2496 Star ! 4713 2473 Star ! 4713 2450 Star ! 4713 2427 Star ! 4713 2404 Star ! 4713 2381 Star ! 4713 2359 Star ! 4713 2336 Star ! 4713 2313 Star ! 4713 2290 Star ! 4713 2267 Star ! 4713 2244 Star ! 4713 2221 Star ! 4713 2199 Star ! 4713 2176 Star ! 4713 2153 Star ! 4713 2130 Star ! 4713 2107 Star ! 4713 2084 Star ! 4713 2062 Star ! 4713 2039 Star ! 4713 2016 Star ! 4713 1993 Star ! 4713 1970 Star ! 4713 1947 Star ! 4713 1925 Star ! 4713 1902 Star ! 4745 3364 Star ! 4745 3341 Star ! 4745 3318 Star ! 4745 3295 Star ! 4745 3272 Star ! 4745 3249 Star ! 4745 3226 Star ! 4745 3204 Star ! 4745 3181 Star ! 4745 3158 Star ! 4745 3135 Star ! 4745 3112 Star ! 4745 3089 Star ! 4745 3067 Star ! 4745 3044 Star ! 4745 3021 Star ! 4745 2998 Star ! 4745 2975 Star ! 4745 2952 Star ! 4745 2930 Star ! 4745 2907 Star ! 4745 2884 Star ! 4745 2861 Star ! 4745 2838 Star ! 4745 2815 Star ! 4745 2792 Star ! 4745 2770 Star ! 4745 2747 Star ! 4745 2724 Star ! 4745 2701 Star ! 4745 2678 Star ! 4745 2655 Star ! 4745 2633 Star ! 4745 2610 Star ! 4745 2587 Star ! 4745 2564 Star ! 4745 2541 Star ! 4745 2518 Star ! 4745 2496 Star ! 4745 2473 Star ! 4745 2450 Star ! 4745 2427 Star ! 4745 2404 Star ! 4745 2381 Star ! 4745 2359 Star ! 4745 2336 Star ! 4745 2313 Star ! 4745 2290 Star ! 4745 2267 Star ! 4745 2244 Star ! 4745 2221 Star ! 4745 2199 Star ! 4745 2176 Star ! 4745 2153 Star ! 4745 2130 Star ! 4745 2107 Star ! 4745 2084 Star ! 4745 2062 Star ! 4745 2039 Star ! 4745 2016 Star ! 4745 1993 Star ! 4745 1970 Star ! 4745 1947 Star ! 4745 1925 Star ! 4745 1902 Star ! 4745 1879 Star ! 4777 3364 Star ! 4777 3341 Star ! 4777 3318 Star ! 4777 3295 Star ! 4777 3272 Star ! 4777 3249 Star ! 4777 3226 Star ! 4777 3204 Star ! 4777 3181 Star ! 4777 3158 Star ! 4777 3135 Star ! 4777 3112 Star ! 4777 3089 Star ! 4777 3067 Star ! 4777 3044 Star ! 4777 3021 Star ! 4777 2998 Star ! 4777 2975 Star ! 4777 2952 Star ! 4777 2930 Star ! 4777 2907 Star ! 4777 2884 Star ! 4777 2861 Star ! 4777 2838 Star ! 4777 2815 Star ! 4777 2792 Star ! 4777 2770 Star ! 4777 2747 Star ! 4777 2724 Star ! 4777 2701 Star ! 4777 2678 Star ! 4777 2655 Star ! 4777 2633 Star ! 4777 2610 Star ! 4777 2587 Star ! 4777 2564 Star ! 4777 2541 Star ! 4777 2518 Star ! 4777 2496 Star ! 4777 2473 Star ! 4777 2450 Star ! 4777 2427 Star ! 4777 2404 Star ! 4777 2381 Star ! 4777 2359 Star ! 4777 2336 Star ! 4777 2313 Star ! 4777 2290 Star ! 4777 2267 Star ! 4777 2244 Star ! 4777 2221 Star ! 4777 2199 Star ! 4777 2176 Star ! 4777 2153 Star ! 4777 2130 Star ! 4777 2107 Star ! 4777 2084 Star ! 4777 2062 Star ! 4777 2039 Star ! 4777 2016 Star ! 4777 1993 Star ! 4777 1970 Star ! 4777 1947 Star ! 4777 1925 Star ! 4777 1902 Star ! 4777 1879 Star ! 4777 1856 Star ! 4809 3341 Star ! 4809 3318 Star ! 4809 3295 Star ! 4809 3272 Star ! 4809 3249 Star ! 4809 3226 Star ! 4809 3204 Star ! 4809 3181 Star ! 4809 3158 Star ! 4809 3135 Star ! 4809 3112 Star ! 4809 3089 Star ! 4809 3067 Star ! 4809 3044 Star ! 4809 3021 Star ! 4809 2998 Star ! 4809 2975 Star ! 4809 2952 Star ! 4809 2930 Star ! 4809 2907 Star ! 4809 2884 Star ! 4809 2861 Star ! 4809 2838 Star ! 4809 2815 Star ! 4809 2792 Star ! 4809 2770 Star ! 4809 2747 Star ! 4809 2724 Star ! 4809 2701 Star ! 4809 2678 Star ! 4809 2655 Star ! 4809 2633 Star ! 4809 2610 Star ! 4809 2587 Star ! 4809 2564 Star ! 4809 2541 Star ! 4809 2518 Star ! 4809 2496 Star ! 4809 2473 Star ! 4809 2450 Star ! 4809 2427 Star ! 4809 2404 Star ! 4809 2381 Star ! 4809 2359 Star ! 4809 2336 Star ! 4809 2313 Star ! 4809 2290 Star ! 4809 2267 Star ! 4809 2244 Star ! 4809 2221 Star ! 4809 2199 Star ! 4809 2176 Star ! 4809 2153 Star ! 4809 2130 Star ! 4809 2107 Star ! 4809 2084 Star ! 4809 2062 Star ! 4809 2039 Star ! 4809 2016 Star ! 4809 1993 Star ! 4809 1970 Star ! 4809 1947 Star ! 4809 1925 Star ! 4809 1902 Star ! 4809 1879 Star ! 4809 1856 Star ! 4809 1833 Star ! 4841 3341 Star ! 4841 3318 Star ! 4841 3295 Star ! 4841 3272 Star ! 4841 3249 Star ! 4841 3226 Star ! 4841 3204 Star ! 4841 3181 Star ! 4841 3158 Star ! 4841 3135 Star ! 4841 3112 Star ! 4841 3089 Star ! 4841 3067 Star ! 4841 3044 Star ! 4841 3021 Star ! 4841 2998 Star ! 4841 2975 Star ! 4841 2952 Star ! 4841 2930 Star ! 4841 2907 Star ! 4841 2884 Star ! 4841 2861 Star ! 4841 2838 Star ! 4841 2815 Star ! 4841 2792 Star ! 4841 2770 Star ! 4841 2747 Star ! 4841 2724 Star ! 4841 2701 Star ! 4841 2678 Star ! 4841 2655 Star ! 4841 2633 Star ! 4841 2610 Star ! 4841 2587 Star ! 4841 2564 Star ! 4841 2541 Star ! 4841 2518 Star ! 4841 2496 Star ! 4841 2473 Star ! 4841 2450 Star ! 4841 2427 Star ! 4841 2404 Star ! 4841 2381 Star ! 4841 2359 Star ! 4841 2336 Star ! 4841 2313 Star ! 4841 2290 Star ! 4841 2267 Star ! 4841 2244 Star ! 4841 2221 Star ! 4841 2199 Star ! 4841 2176 Star ! 4841 2153 Star ! 4841 2130 Star ! 4841 2107 Star ! 4841 2084 Star ! 4841 2062 Star ! 4841 2039 Star ! 4841 2016 Star ! 4841 1993 Star ! 4841 1970 Star ! 4841 1947 Star ! 4841 1925 Star ! 4841 1902 Star ! 4841 1879 Star ! 4841 1856 Star ! 4841 1833 Star ! 4841 1810 Star ! 4873 3318 Star ! 4873 3295 Star ! 4873 3272 Star ! 4873 3249 Star ! 4873 3226 Star ! 4873 3204 Star ! 4873 3181 Star ! 4873 3158 Star ! 4873 3135 Star ! 4873 3112 Star ! 4873 3089 Star ! 4873 3067 Star ! 4873 3044 Star ! 4873 3021 Star ! 4873 2998 Star ! 4873 2975 Star ! 4873 2952 Star ! 4873 2930 Star ! 4873 2907 Star ! 4873 2884 Star ! 4873 2861 Star ! 4873 2838 Star ! 4873 2815 Star ! 4873 2792 Star ! 4873 2770 Star ! 4873 2747 Star ! 4873 2724 Star ! 4873 2701 Star ! 4873 2678 Star ! 4873 2655 Star ! 4873 2633 Star ! 4873 2610 Star ! 4873 2587 Star ! 4873 2564 Star ! 4873 2541 Star ! 4873 2518 Star ! 4873 2496 Star ! 4873 2473 Star ! 4873 2450 Star ! 4873 2427 Star ! 4873 2404 Star ! 4873 2381 Star ! 4873 2359 Star ! 4873 2336 Star ! 4873 2313 Star ! 4873 2290 Star ! 4873 2267 Star ! 4873 2244 Star ! 4873 2221 Star ! 4873 2199 Star ! 4873 2176 Star ! 4873 2153 Star ! 4873 2130 Star ! 4873 2107 Star ! 4873 2084 Star ! 4873 2062 Star ! 4873 2039 Star ! 4873 2016 Star ! 4873 1993 Star ! 4873 1970 Star ! 4873 1947 Star ! 4873 1925 Star ! 4873 1902 Star ! 4873 1879 Star ! 4873 1856 Star ! 4873 1833 Star ! 4873 1810 Star ! 4873 1787 Star ! 4905 3318 Star ! 4905 3295 Star ! 4905 3272 Star ! 4905 3249 Star ! 4905 3226 Star ! 4905 3204 Star ! 4905 3181 Star ! 4905 3158 Star ! 4905 3135 Star ! 4905 3112 Star ! 4905 3089 Star ! 4905 3067 Star ! 4905 3044 Star ! 4905 3021 Star ! 4905 2998 Star ! 4905 2975 Star ! 4905 2952 Star ! 4905 2930 Star ! 4905 2907 Star ! 4905 2884 Star ! 4905 2861 Star ! 4905 2838 Star ! 4905 2815 Star ! 4905 2792 Star ! 4905 2770 Star ! 4905 2747 Star ! 4905 2724 Star ! 4905 2701 Star ! 4905 2678 Star ! 4905 2655 Star ! 4905 2633 Star ! 4905 2610 Star ! 4905 2587 Star ! 4905 2564 Star ! 4905 2541 Star ! 4905 2518 Star ! 4905 2496 Star ! 4905 2473 Star ! 4905 2450 Star ! 4905 2427 Star ! 4905 2404 Star ! 4905 2381 Star ! 4905 2359 Star ! 4905 2336 Star ! 4905 2313 Star ! 4905 2290 Star ! 4905 2267 Star ! 4905 2244 Star ! 4905 2221 Star ! 4905 2199 Star ! 4905 2176 Star ! 4905 2153 Star ! 4905 2130 Star ! 4905 2107 Star ! 4905 2084 Star ! 4905 2062 Star ! 4905 2039 Star ! 4905 2016 Star ! 4905 1993 Star ! 4905 1970 Star ! 4905 1947 Star ! 4905 1925 Star ! 4905 1902 Star ! 4905 1879 Star ! 4905 1856 Star ! 4905 1833 Star ! 4905 1810 Star ! 4905 1787 Star ! 4905 1765 Star ! 4937 3295 Star ! 4937 3272 Star ! 4937 3249 Star ! 4937 3226 Star ! 4937 3204 Star ! 4937 3181 Star ! 4937 3158 Star ! 4937 3135 Star ! 4937 3112 Star ! 4937 3089 Star ! 4937 3067 Star ! 4937 3044 Star ! 4937 3021 Star ! 4937 2998 Star ! 4937 2975 Star ! 4937 2952 Star ! 4937 2930 Star ! 4937 2907 Star ! 4937 2884 Star ! 4937 2861 Star ! 4937 2838 Star ! 4937 2815 Star ! 4937 2792 Star ! 4937 2770 Star ! 4937 2747 Star ! 4937 2724 Star ! 4937 2701 Star ! 4937 2678 Star ! 4937 2655 Star ! 4937 2633 Star ! 4937 2610 Star ! 4937 2587 Star ! 4937 2564 Star ! 4937 2541 Star ! 4937 2518 Star ! 4937 2496 Star ! 4937 2473 Star ! 4937 2450 Star ! 4937 2427 Star ! 4937 2404 Star ! 4937 2381 Star ! 4937 2359 Star ! 4937 2336 Star ! 4937 2313 Star ! 4937 2290 Star ! 4937 2267 Star ! 4937 2244 Star ! 4937 2221 Star ! 4937 2199 Star ! 4937 2176 Star ! 4937 2153 Star ! 4937 2130 Star ! 4937 2107 Star ! 4937 2084 Star ! 4937 2062 Star ! 4937 2039 Star ! 4937 2016 Star ! 4937 1993 Star ! 4937 1970 Star ! 4937 1947 Star ! 4937 1925 Star ! 4937 1902 Star ! 4937 1879 Star ! 4937 1856 Star ! 4937 1833 Star ! 4937 1810 Star ! 4937 1787 Star ! 4937 1765 Star ! 4937 1742 Star ! 4970 3295 Star ! 4970 3272 Star ! 4970 3249 Star ! 4970 3226 Star ! 4970 3204 Star ! 4970 3181 Star ! 4970 3158 Star ! 4970 3135 Star ! 4970 3112 Star ! 4970 3089 Star ! 4970 3067 Star ! 4970 3044 Star ! 4970 3021 Star ! 4970 2998 Star ! 4970 2975 Star ! 4970 2952 Star ! 4970 2930 Star ! 4970 2907 Star ! 4970 2884 Star ! 4970 2861 Star ! 4970 2838 Star ! 4970 2815 Star ! 4970 2792 Star ! 4970 2770 Star ! 4970 2747 Star ! 4970 2724 Star ! 4970 2701 Star ! 4970 2678 Star ! 4970 2655 Star ! 4970 2633 Star ! 4970 2610 Star ! 4970 2587 Star ! 4970 2564 Star ! 4970 2541 Star ! 4970 2518 Star ! 4970 2496 Star ! 4970 2473 Star ! 4970 2450 Star ! 4970 2427 Star ! 4970 2404 Star ! 4970 2381 Star ! 4970 2359 Star ! 4970 2336 Star ! 4970 2313 Star ! 4970 2290 Star ! 4970 2267 Star ! 4970 2244 Star ! 4970 2221 Star ! 4970 2199 Star ! 4970 2176 Star ! 4970 2153 Star ! 4970 2130 Star ! 4970 2107 Star ! 4970 2084 Star ! 4970 2062 Star ! 4970 2039 Star ! 4970 2016 Star ! 4970 1993 Star ! 4970 1970 Star ! 4970 1947 Star ! 4970 1925 Star ! 4970 1902 Star ! 4970 1879 Star ! 4970 1856 Star ! 4970 1833 Star ! 4970 1810 Star ! 4970 1787 Star ! 4970 1765 Star ! 4970 1742 Star ! 4970 1719 Star ! 5002 3272 Star ! 5002 3249 Star ! 5002 3226 Star ! 5002 3204 Star ! 5002 3181 Star ! 5002 3158 Star ! 5002 3135 Star ! 5002 3112 Star ! 5002 3089 Star ! 5002 3067 Star ! 5002 3044 Star ! 5002 3021 Star ! 5002 2998 Star ! 5002 2975 Star ! 5002 2952 Star ! 5002 2930 Star ! 5002 2907 Star ! 5002 2884 Star ! 5002 2861 Star ! 5002 2838 Star ! 5002 2815 Star ! 5002 2792 Star ! 5002 2770 Star ! 5002 2747 Star ! 5002 2724 Star ! 5002 2701 Star ! 5002 2678 Star ! 5002 2655 Star ! 5002 2633 Star ! 5002 2610 Star ! 5002 2587 Star ! 5002 2564 Star ! 5002 2541 Star ! 5002 2518 Star ! 5002 2496 Star ! 5002 2473 Star ! 5002 2450 Star ! 5002 2427 Star ! 5002 2404 Star ! 5002 2381 Star ! 5002 2359 Star ! 5002 2336 Star ! 5002 2313 Star ! 5002 2290 Star ! 5002 2267 Star ! 5002 2244 Star ! 5002 2221 Star ! 5002 2199 Star ! 5002 2176 Star ! 5002 2153 Star ! 5002 2130 Star ! 5002 2107 Star ! 5002 2084 Star ! 5002 2062 Star ! 5002 2039 Star ! 5002 2016 Star ! 5002 1993 Star ! 5002 1970 Star ! 5002 1947 Star ! 5002 1925 Star ! 5002 1902 Star ! 5002 1879 Star ! 5002 1856 Star ! 5002 1833 Star ! 5002 1810 Star ! 5002 1787 Star ! 5002 1765 Star ! 5002 1742 Star ! 5002 1719 Star ! 5002 1696 Star ! 5034 3272 Star ! 5034 3249 Star ! 5034 3226 Star ! 5034 3204 Star ! 5034 3181 Star ! 5034 3158 Star ! 5034 3135 Star ! 5034 3112 Star ! 5034 3089 Star ! 5034 3067 Star ! 5034 3044 Star ! 5034 3021 Star ! 5034 2998 Star ! 5034 2975 Star ! 5034 2952 Star ! 5034 2930 Star ! 5034 2907 Star ! 5034 2884 Star ! 5034 2861 Star ! 5034 2838 Star ! 5034 2815 Star ! 5034 2792 Star ! 5034 2770 Star ! 5034 2747 Star ! 5034 2724 Star ! 5034 2701 Star ! 5034 2678 Star ! 5034 2655 Star ! 5034 2633 Star ! 5034 2610 Star ! 5034 2587 Star ! 5034 2564 Star ! 5034 2541 Star ! 5034 2518 Star ! 5034 2496 Star ! 5034 2473 Star ! 5034 2450 Star ! 5034 2427 Star ! 5034 2404 Star ! 5034 2381 Star ! 5034 2359 Star ! 5034 2336 Star ! 5034 2313 Star ! 5034 2290 Star ! 5034 2267 Star ! 5034 2244 Star ! 5034 2221 Star ! 5034 2199 Star ! 5034 2176 Star ! 5034 2153 Star ! 5034 2130 Star ! 5034 2107 Star ! 5034 2084 Star ! 5034 2062 Star ! 5034 2039 Star ! 5034 2016 Star ! 5034 1993 Star ! 5034 1970 Star ! 5034 1947 Star ! 5034 1925 Star ! 5034 1902 Star ! 5034 1879 Star ! 5034 1856 Star ! 5034 1833 Star ! 5034 1810 Star ! 5034 1787 Star ! 5034 1765 Star ! 5034 1742 Star ! 5034 1719 Star ! 5034 1696 Star ! 5034 1673 Star ! 5066 3249 Star ! 5066 3226 Star ! 5066 3204 Star ! 5066 3181 Star ! 5066 3158 Star ! 5066 3135 Star ! 5066 3112 Star ! 5066 3089 Star ! 5066 3067 Star ! 5066 3044 Star ! 5066 3021 Star ! 5066 2998 Star ! 5066 2975 Star ! 5066 2952 Star ! 5066 2930 Star ! 5066 2907 Star ! 5066 2884 Star ! 5066 2861 Star ! 5066 2838 Star ! 5066 2815 Star ! 5066 2792 Star ! 5066 2770 Star ! 5066 2747 Star ! 5066 2724 Star ! 5066 2701 Star ! 5066 2678 Star ! 5066 2655 Star ! 5066 2633 Star ! 5066 2610 Star ! 5066 2587 Star ! 5066 2564 Star ! 5066 2541 Star ! 5066 2518 Star ! 5066 2496 Star ! 5066 2473 Star ! 5066 2450 Star ! 5066 2427 Star ! 5066 2404 Star ! 5066 2381 Star ! 5066 2359 Star ! 5066 2336 Star ! 5066 2313 Star ! 5066 2290 Star ! 5066 2267 Star ! 5066 2244 Star ! 5066 2221 Star ! 5066 2199 Star ! 5066 2176 Star ! 5066 2153 Star ! 5066 2130 Star ! 5066 2107 Star ! 5066 2084 Star ! 5066 2062 Star ! 5066 2039 Star ! 5066 2016 Star ! 5066 1993 Star ! 5066 1970 Star ! 5066 1947 Star ! 5066 1925 Star ! 5066 1902 Star ! 5066 1879 Star ! 5066 1856 Star ! 5066 1833 Star ! 5066 1810 Star ! 5066 1787 Star ! 5066 1765 Star ! 5066 1742 Star ! 5066 1719 Star ! 5066 1696 Star ! 5066 1673 Star ! 5066 1650 Star ! 5098 3249 Star ! 5098 3226 Star ! 5098 3204 Star ! 5098 3181 Star ! 5098 3158 Star ! 5098 3135 Star ! 5098 3112 Star ! 5098 3089 Star ! 5098 3067 Star ! 5098 3044 Star ! 5098 3021 Star ! 5098 2998 Star ! 5098 2975 Star ! 5098 2952 Star ! 5098 2930 Star ! 5098 2907 Star ! 5098 2884 Star ! 5098 2861 Star ! 5098 2838 Star ! 5098 2815 Star ! 5098 2792 Star ! 5098 2770 Star ! 5098 2747 Star ! 5098 2724 Star ! 5098 2701 Star ! 5098 2678 Star ! 5098 2655 Star ! 5098 2633 Star ! 5098 2610 Star ! 5098 2587 Star ! 5098 2564 Star ! 5098 2541 Star ! 5098 2518 Star ! 5098 2496 Star ! 5098 2473 Star ! 5098 2450 Star ! 5098 2427 Star ! 5098 2404 Star ! 5098 2381 Star ! 5098 2359 Star ! 5098 2336 Star ! 5098 2313 Star ! 5098 2290 Star ! 5098 2267 Star ! 5098 2244 Star ! 5098 2221 Star ! 5098 2199 Star ! 5098 2176 Star ! 5098 2153 Star ! 5098 2130 Star ! 5098 2107 Star ! 5098 2084 Star ! 5098 2062 Star ! 5098 2039 Star ! 5098 2016 Star ! 5098 1993 Star ! 5098 1970 Star ! 5098 1947 Star ! 5098 1925 Star ! 5098 1902 Star ! 5098 1879 Star ! 5098 1856 Star ! 5098 1833 Star ! 5098 1810 Star ! 5098 1787 Star ! 5098 1765 Star ! 5098 1742 Star ! 5098 1719 Star ! 5098 1696 Star ! 5098 1673 Star ! 5098 1650 Star ! 5098 1628 Star ! 5130 3226 Star ! 5130 3204 Star ! 5130 3181 Star ! 5130 3158 Star ! 5130 3135 Star ! 5130 3112 Star ! 5130 3089 Star ! 5130 3067 Star ! 5130 3044 Star ! 5130 3021 Star ! 5130 2998 Star ! 5130 2975 Star ! 5130 2952 Star ! 5130 2930 Star ! 5130 2907 Star ! 5130 2884 Star ! 5130 2861 Star ! 5130 2838 Star ! 5130 2815 Star ! 5130 2792 Star ! 5130 2770 Star ! 5130 2747 Star ! 5130 2724 Star ! 5130 2701 Star ! 5130 2678 Star ! 5130 2655 Star ! 5130 2633 Star ! 5130 2610 Star ! 5130 2587 Star ! 5130 2564 Star ! 5130 2541 Star ! 5130 2518 Star ! 5130 2496 Star ! 5130 2473 Star ! 5130 2450 Star ! 5130 2427 Star ! 5130 2404 Star ! 5130 2381 Star ! 5130 2359 Star ! 5130 2336 Star ! 5130 2313 Star ! 5130 2290 Star ! 5130 2267 Star ! 5130 2244 Star ! 5130 2221 Star ! 5130 2199 Star ! 5130 2176 Star ! 5130 2153 Star ! 5130 2130 Star ! 5130 2107 Star ! 5130 2084 Star ! 5130 2062 Star ! 5130 2039 Star ! 5130 2016 Star ! 5130 1993 Star ! 5130 1970 Star ! 5130 1947 Star ! 5130 1925 Star ! 5130 1902 Star ! 5130 1879 Star ! 5130 1856 Star ! 5130 1833 Star ! 5130 1810 Star ! 5130 1787 Star ! 5130 1765 Star ! 5130 1742 Star ! 5130 1719 Star ! 5130 1696 Star ! 5130 1673 Star ! 5130 1650 Star ! 5130 1628 Star ! 5130 1605 Star ! 5162 3226 Star ! 5162 3204 Star ! 5162 3181 Star ! 5162 3158 Star ! 5162 3135 Star ! 5162 3112 Star ! 5162 3089 Star ! 5162 3067 Star ! 5162 3044 Star ! 5162 3021 Star ! 5162 2998 Star ! 5162 2975 Star ! 5162 2952 Star ! 5162 2930 Star ! 5162 2907 Star ! 5162 2884 Star ! 5162 2861 Star ! 5162 2838 Star ! 5162 2815 Star ! 5162 2792 Star ! 5162 2770 Star ! 5162 2747 Star ! 5162 2724 Star ! 5162 2701 Star ! 5162 2678 Star ! 5162 2655 Star ! 5162 2633 Star ! 5162 2610 Star ! 5162 2587 Star ! 5162 2564 Star ! 5162 2541 Star ! 5162 2518 Star ! 5162 2496 Star ! 5162 2473 Star ! 5162 2450 Star ! 5162 2427 Star ! 5162 2404 Star ! 5162 2381 Star ! 5162 2359 Star ! 5162 2336 Star ! 5162 2313 Star ! 5162 2290 Star ! 5162 2267 Star ! 5162 2244 Star ! 5162 2221 Star ! 5162 2199 Star ! 5162 2176 Star ! 5162 2153 Star ! 5162 2130 Star ! 5162 2107 Star ! 5162 2084 Star ! 5162 2062 Star ! 5162 2039 Star ! 5162 2016 Star ! 5162 1993 Star ! 5162 1970 Star ! 5162 1947 Star ! 5162 1925 Star ! 5162 1902 Star ! 5162 1879 Star ! 5162 1856 Star ! 5162 1833 Star ! 5162 1810 Star ! 5162 1787 Star ! 5162 1765 Star ! 5162 1742 Star ! 5162 1719 Star ! 5162 1696 Star ! 5162 1673 Star ! 5162 1650 Star ! 5162 1628 Star ! 5162 1605 Star ! 5162 1582 Star ! 5194 3204 Star ! 5194 3181 Star ! 5194 3158 Star ! 5194 3135 Star ! 5194 3112 Star ! 5194 3089 Star ! 5194 3067 Star ! 5194 3044 Star ! 5194 3021 Star ! 5194 2998 Star ! 5194 2975 Star ! 5194 2952 Star ! 5194 2930 Star ! 5194 2907 Star ! 5194 2884 Star ! 5194 2861 Star ! 5194 2838 Star ! 5194 2815 Star ! 5194 2792 Star ! 5194 2770 Star ! 5194 2747 Star ! 5194 2724 Star ! 5194 2701 Star ! 5194 2678 Star ! 5194 2655 Star ! 5194 2633 Star ! 5194 2610 Star ! 5194 2587 Star ! 5194 2564 Star ! 5194 2541 Star ! 5194 2518 Star ! 5194 2496 Star ! 5194 2473 Star ! 5194 2450 Star ! 5194 2427 Star ! 5194 2404 Star ! 5194 2381 Star ! 5194 2359 Star ! 5194 2336 Star ! 5194 2313 Star ! 5194 2290 Star ! 5194 2267 Star ! 5194 2244 Star ! 5194 2221 Star ! 5194 2199 Star ! 5194 2176 Star ! 5194 2153 Star ! 5194 2130 Star ! 5194 2107 Star ! 5194 2084 Star ! 5194 2062 Star ! 5194 2039 Star ! 5194 2016 Star ! 5194 1993 Star ! 5194 1970 Star ! 5194 1947 Star ! 5194 1925 Star ! 5194 1902 Star ! 5194 1879 Star ! 5194 1856 Star ! 5194 1833 Star ! 5194 1810 Star ! 5194 1787 Star ! 5194 1765 Star ! 5194 1742 Star ! 5194 1719 Star ! 5194 1696 Star ! 5194 1673 Star ! 5194 1650 Star ! 5194 1628 Star ! 5194 1605 Star ! 5194 1582 Star ! 5194 1559 Star ! 5226 3204 Star ! 5226 3181 Star ! 5226 3158 Star ! 5226 3135 Star ! 5226 3112 Star ! 5226 3089 Star ! 5226 3067 Star ! 5226 3044 Star ! 5226 3021 Star ! 5226 2998 Star ! 5226 2975 Star ! 5226 2952 Star ! 5226 2930 Star ! 5226 2907 Star ! 5226 2884 Star ! 5226 2861 Star ! 5226 2838 Star ! 5226 2815 Star ! 5226 2792 Star ! 5226 2770 Star ! 5226 2747 Star ! 5226 2724 Star ! 5226 2701 Star ! 5226 2678 Star ! 5226 2655 Star ! 5226 2633 Star ! 5226 2610 Star ! 5226 2587 Star ! 5226 2564 Star ! 5226 2541 Star ! 5226 2518 Star ! 5226 2496 Star ! 5226 2473 Star ! 5226 2450 Star ! 5226 2427 Star ! 5226 2404 Star ! 5226 2381 Star ! 5226 2359 Star ! 5226 2336 Star ! 5226 2313 Star ! 5226 2290 Star ! 5226 2267 Star ! 5226 2244 Star ! 5226 2221 Star ! 5226 2199 Star ! 5226 2176 Star ! 5226 2153 Star ! 5226 2130 Star ! 5226 2107 Star ! 5226 2084 Star ! 5226 2062 Star ! 5226 2039 Star ! 5226 2016 Star ! 5226 1993 Star ! 5226 1970 Star ! 5226 1947 Star ! 5226 1925 Star ! 5226 1902 Star ! 5226 1879 Star ! 5226 1856 Star ! 5226 1833 Star ! 5226 1810 Star ! 5226 1787 Star ! 5226 1765 Star ! 5226 1742 Star ! 5226 1719 Star ! 5226 1696 Star ! 5226 1673 Star ! 5226 1650 Star ! 5226 1628 Star ! 5226 1605 Star ! 5226 1582 Star ! 5226 1559 Star ! 5226 1536 Star ! 5258 3181 Star ! 5258 3158 Star ! 5258 3135 Star ! 5258 3112 Star ! 5258 3089 Star ! 5258 3067 Star ! 5258 3044 Star ! 5258 3021 Star ! 5258 2998 Star ! 5258 2975 Star ! 5258 2952 Star ! 5258 2930 Star ! 5258 2907 Star ! 5258 2884 Star ! 5258 2861 Star ! 5258 2838 Star ! 5258 2815 Star ! 5258 2792 Star ! 5258 2770 Star ! 5258 2747 Star ! 5258 2724 Star ! 5258 2701 Star ! 5258 2678 Star ! 5258 2655 Star ! 5258 2633 Star ! 5258 2610 Star ! 5258 2587 Star ! 5258 2564 Star ! 5258 2541 Star ! 5258 2518 Star ! 5258 2496 Star ! 5258 2473 Star ! 5258 2450 Star ! 5258 2427 Star ! 5258 2404 Star ! 5258 2381 Star ! 5258 2359 Star ! 5258 2336 Star ! 5258 2313 Star ! 5258 2290 Star ! 5258 2267 Star ! 5258 2244 Star ! 5258 2221 Star ! 5258 2199 Star ! 5258 2176 Star ! 5258 2153 Star ! 5258 2130 Star ! 5258 2107 Star ! 5258 2084 Star ! 5258 2062 Star ! 5258 2039 Star ! 5258 2016 Star ! 5258 1993 Star ! 5258 1970 Star ! 5258 1947 Star ! 5258 1925 Star ! 5258 1902 Star ! 5258 1879 Star ! 5258 1856 Star ! 5258 1833 Star ! 5258 1810 Star ! 5258 1787 Star ! 5258 1765 Star ! 5258 1742 Star ! 5258 1719 Star ! 5258 1696 Star ! 5258 1673 Star ! 5258 1650 Star ! 5258 1628 Star ! 5258 1605 Star ! 5258 1582 Star ! 5258 1559 Star ! 5258 1536 Star ! 5258 1513 Star ! 5290 3181 Star ! 5290 3158 Star ! 5290 3135 Star ! 5290 3112 Star ! 5290 3089 Star ! 5290 3067 Star ! 5290 3044 Star ! 5290 3021 Star ! 5290 2998 Star ! 5290 2975 Star ! 5290 2952 Star ! 5290 2930 Star ! 5290 2907 Star ! 5290 2884 Star ! 5290 2861 Star ! 5290 2838 Star ! 5290 2815 Star ! 5290 2792 Star ! 5290 2770 Star ! 5290 2747 Star ! 5290 2724 Star ! 5290 2701 Star ! 5290 2678 Star ! 5290 2655 Star ! 5290 2633 Star ! 5290 2610 Star ! 5290 2587 Star ! 5290 2564 Star ! 5290 2541 Star ! 5290 2518 Star ! 5290 2496 Star ! 5290 2473 Star ! 5290 2450 Star ! 5290 2427 Star ! 5290 2404 Star ! 5290 2381 Star ! 5290 2359 Star ! 5290 2336 Star ! 5290 2313 Star ! 5290 2290 Star ! 5290 2267 Star ! 5290 2244 Star ! 5290 2221 Star ! 5290 2199 Star ! 5290 2176 Star ! 5290 2153 Star ! 5290 2130 Star ! 5290 2107 Star ! 5290 2084 Star ! 5290 2062 Star ! 5290 2039 Star ! 5290 2016 Star ! 5290 1993 Star ! 5290 1970 Star ! 5290 1947 Star ! 5290 1925 Star ! 5290 1902 Star ! 5290 1879 Star ! 5290 1856 Star ! 5290 1833 Star ! 5290 1810 Star ! 5290 1787 Star ! 5290 1765 Star ! 5290 1742 Star ! 5290 1719 Star ! 5290 1696 Star ! 5290 1673 Star ! 5290 1650 Star ! 5290 1628 Star ! 5290 1605 Star ! 5290 1582 Star ! 5290 1559 Star ! 5290 1536 Star ! 5290 1513 Star ! 5290 1491 Star ! 5322 3158 Star ! 5322 3135 Star ! 5322 3112 Star ! 5322 3089 Star ! 5322 3067 Star ! 5322 3044 Star ! 5322 3021 Star ! 5322 2998 Star ! 5322 2975 Star ! 5322 2952 Star ! 5322 2930 Star ! 5322 2907 Star ! 5322 2884 Star ! 5322 2861 Star ! 5322 2838 Star ! 5322 2815 Star ! 5322 2792 Star ! 5322 2770 Star ! 5322 2747 Star ! 5322 2724 Star ! 5322 2701 Star ! 5322 2678 Star ! 5322 2655 Star ! 5322 2633 Star ! 5322 2610 Star ! 5322 2587 Star ! 5322 2564 Star ! 5322 2541 Star ! 5322 2518 Star ! 5322 2496 Star ! 5322 2473 Star ! 5322 2450 Star ! 5322 2427 Star ! 5322 2404 Star ! 5322 2381 Star ! 5322 2359 Star ! 5322 2336 Star ! 5322 2313 Star ! 5322 2290 Star ! 5322 2267 Star ! 5322 2244 Star ! 5322 2221 Star ! 5322 2199 Star ! 5322 2176 Star ! 5322 2153 Star ! 5322 2130 Star ! 5322 2107 Star ! 5322 2084 Star ! 5322 2062 Star ! 5322 2039 Star ! 5322 2016 Star ! 5322 1993 Star ! 5322 1970 Star ! 5322 1947 Star ! 5322 1925 Star ! 5322 1902 Star ! 5322 1879 Star ! 5322 1856 Star ! 5322 1833 Star ! 5322 1810 Star ! 5322 1787 Star ! 5322 1765 Star ! 5322 1742 Star ! 5322 1719 Star ! 5322 1696 Star ! 5322 1673 Star ! 5322 1650 Star ! 5322 1628 Star ! 5322 1605 Star ! 5322 1582 Star ! 5322 1559 Star ! 5322 1536 Star ! 5322 1513 Star ! 5322 1491 Star ! 5322 1468 Star ! 5354 3158 Star ! 5354 3135 Star ! 5354 3112 Star ! 5354 3089 Star ! 5354 3067 Star ! 5354 3044 Star ! 5354 3021 Star ! 5354 2998 Star ! 5354 2975 Star ! 5354 2952 Star ! 5354 2930 Star ! 5354 2907 Star ! 5354 2884 Star ! 5354 2861 Star ! 5354 2838 Star ! 5354 2815 Star ! 5354 2792 Star ! 5354 2770 Star ! 5354 2747 Star ! 5354 2724 Star ! 5354 2701 Star ! 5354 2678 Star ! 5354 2655 Star ! 5354 2633 Star ! 5354 2610 Star ! 5354 2587 Star ! 5354 2564 Star ! 5354 2541 Star ! 5354 2518 Star ! 5354 2496 Star ! 5354 2473 Star ! 5354 2450 Star ! 5354 2427 Star ! 5354 2404 Star ! 5354 2381 Star ! 5354 2359 Star ! 5354 2336 Star ! 5354 2313 Star ! 5354 2290 Star ! 5354 2267 Star ! 5354 2244 Star ! 5354 2221 Star ! 5354 2199 Star ! 5354 2176 Star ! 5354 2153 Star ! 5354 2130 Star ! 5354 2107 Star ! 5354 2084 Star ! 5354 2062 Star ! 5354 2039 Star ! 5354 2016 Star ! 5354 1993 Star ! 5354 1970 Star ! 5354 1947 Star ! 5354 1925 Star ! 5354 1902 Star ! 5354 1879 Star ! 5354 1856 Star ! 5354 1833 Star ! 5354 1810 Star ! 5354 1787 Star ! 5354 1765 Star ! 5354 1742 Star ! 5354 1719 Star ! 5354 1696 Star ! 5354 1673 Star ! 5354 1650 Star ! 5354 1628 Star ! 5354 1605 Star ! 5354 1582 Star ! 5354 1559 Star ! 5354 1536 Star ! 5354 1513 Star ! 5354 1491 Star ! 5354 1468 Star ! 5354 1445 Star ! 5386 3135 Star ! 5386 3112 Star ! 5386 3089 Star ! 5386 3067 Star ! 5386 3044 Star ! 5386 3021 Star ! 5386 2998 Star ! 5386 2975 Star ! 5386 2952 Star ! 5386 2930 Star ! 5386 2907 Star ! 5386 2884 Star ! 5386 2861 Star ! 5386 2838 Star ! 5386 2815 Star ! 5386 2792 Star ! 5386 2770 Star ! 5386 2747 Star ! 5386 2724 Star ! 5386 2701 Star ! 5386 2678 Star ! 5386 2655 Star ! 5386 2633 Star ! 5386 2610 Star ! 5386 2587 Star ! 5386 2564 Star ! 5386 2541 Star ! 5386 2518 Star ! 5386 2496 Star ! 5386 2473 Star ! 5386 2450 Star ! 5386 2427 Star ! 5386 2404 Star ! 5386 2381 Star ! 5386 2359 Star ! 5386 2336 Star ! 5386 2313 Star ! 5386 2290 Star ! 5386 2267 Star ! 5386 2244 Star ! 5386 2221 Star ! 5386 2199 Star ! 5386 2176 Star ! 5386 2153 Star ! 5386 2130 Star ! 5386 2107 Star ! 5386 2084 Star ! 5386 2062 Star ! 5386 2039 Star ! 5386 2016 Star ! 5386 1993 Star ! 5386 1970 Star ! 5386 1947 Star ! 5386 1925 Star ! 5386 1902 Star ! 5386 1879 Star ! 5386 1856 Star ! 5386 1833 Star ! 5386 1810 Star ! 5386 1787 Star ! 5386 1765 Star ! 5386 1742 Star ! 5386 1719 Star ! 5386 1696 Star ! 5386 1673 Star ! 5386 1650 Star ! 5386 1628 Star ! 5386 1605 Star ! 5386 1582 Star ! 5386 1559 Star ! 5386 1536 Star ! 5386 1513 Star ! 5386 1491 Star ! 5386 1468 Star ! 5386 1445 Star ! 5386 1422 Star ! 5418 3135 Star ! 5418 3112 Star ! 5418 3089 Star ! 5418 3067 Star ! 5418 3044 Star ! 5418 3021 Star ! 5418 2998 Star ! 5418 2975 Star ! 5418 2952 Star ! 5418 2930 Star ! 5418 2907 Star ! 5418 2884 Star ! 5418 2861 Star ! 5418 2838 Star ! 5418 2815 Star ! 5418 2792 Star ! 5418 2770 Star ! 5418 2747 Star ! 5418 2724 Star ! 5418 2701 Star ! 5418 2678 Star ! 5418 2655 Star ! 5418 2633 Star ! 5418 2610 Star ! 5418 2587 Star ! 5418 2564 Star ! 5418 2541 Star ! 5418 2518 Star ! 5418 2496 Star ! 5418 2473 Star ! 5418 2450 Star ! 5418 2427 Star ! 5418 2404 Star ! 5418 2381 Star ! 5418 2359 Star ! 5418 2336 Star ! 5418 2313 Star ! 5418 2290 Star ! 5418 2267 Star ! 5418 2244 Star ! 5418 2221 Star ! 5418 2199 Star ! 5418 2176 Star ! 5418 2153 Star ! 5418 2130 Star ! 5418 2107 Star ! 5418 2084 Star ! 5418 2062 Star ! 5418 2039 Star ! 5418 2016 Star ! 5418 1993 Star ! 5418 1970 Star ! 5418 1947 Star ! 5418 1925 Star ! 5418 1902 Star ! 5418 1879 Star ! 5418 1856 Star ! 5418 1833 Star ! 5418 1810 Star ! 5418 1787 Star ! 5418 1765 Star ! 5418 1742 Star ! 5418 1719 Star ! 5418 1696 Star ! 5418 1673 Star ! 5418 1650 Star ! 5418 1628 Star ! 5418 1605 Star ! 5418 1582 Star ! 5418 1559 Star ! 5418 1536 Star ! 5418 1513 Star ! 5418 1491 Star ! 5418 1468 Star ! 5418 1445 Star ! 5418 1422 Star ! 5418 1399 Star ! 5450 3112 Star ! 5450 3089 Star ! 5450 3067 Star ! 5450 3044 Star ! 5450 3021 Star ! 5450 2998 Star ! 5450 2975 Star ! 5450 2952 Star ! 5450 2930 Star ! 5450 2907 Star ! 5450 2884 Star ! 5450 2861 Star ! 5450 2838 Star ! 5450 2815 Star ! 5450 2792 Star ! 5450 2770 Star ! 5450 2747 Star ! 5450 2724 Star ! 5450 2701 Star ! 5450 2678 Star ! 5450 2655 Star ! 5450 2633 Star ! 5450 2610 Star ! 5450 2587 Star ! 5450 2564 Star ! 5450 2541 Star ! 5450 2518 Star ! 5450 2496 Star ! 5450 2473 Star ! 5450 2450 Star ! 5450 2427 Star ! 5450 2404 Star ! 5450 2381 Star ! 5450 2359 Star ! 5450 2336 Star ! 5450 2313 Star ! 5450 2290 Star ! 5450 2267 Star ! 5450 2244 Star ! 5450 2221 Star ! 5450 2199 Star ! 5450 2176 Star ! 5450 2153 Star ! 5450 2130 Star ! 5450 2107 Star ! 5450 2084 Star ! 5450 2062 Star ! 5450 2039 Star ! 5450 2016 Star ! 5450 1993 Star ! 5450 1970 Star ! 5450 1947 Star ! 5450 1925 Star ! 5450 1902 Star ! 5450 1879 Star ! 5450 1856 Star ! 5450 1833 Star ! 5450 1810 Star ! 5450 1787 Star ! 5450 1765 Star ! 5450 1742 Star ! 5450 1719 Star ! 5450 1696 Star ! 5450 1673 Star ! 5450 1650 Star ! 5450 1628 Star ! 5450 1605 Star ! 5450 1582 Star ! 5450 1559 Star ! 5450 1536 Star ! 5450 1513 Star ! 5450 1491 Star ! 5450 1468 Star ! 5450 1445 Star ! 5450 1422 Star ! 5450 1399 Star ! 5450 1376 Star ! 5482 3112 Star ! 5482 3089 Star ! 5482 3067 Star ! 5482 3044 Star ! 5482 3021 Star ! 5482 2998 Star ! 5482 2975 Star ! 5482 2952 Star ! 5482 2930 Star ! 5482 2907 Star ! 5482 2884 Star ! 5482 2861 Star ! 5482 2838 Star ! 5482 2815 Star ! 5482 2792 Star ! 5482 2770 Star ! 5482 2747 Star ! 5482 2724 Star ! 5482 2701 Star ! 5482 2678 Star ! 5482 2655 Star ! 5482 2633 Star ! 5482 2610 Star ! 5482 2587 Star ! 5482 2564 Star ! 5482 2541 Star ! 5482 2518 Star ! 5482 2496 Star ! 5482 2473 Star ! 5482 2450 Star ! 5482 2427 Star ! 5482 2404 Star ! 5482 2381 Star ! 5482 2359 Star ! 5482 2336 Star ! 5482 2313 Star ! 5482 2290 Star ! 5482 2267 Star ! 5482 2244 Star ! 5482 2221 Star ! 5482 2199 Star ! 5482 2176 Star ! 5482 2153 Star ! 5482 2130 Star ! 5482 2107 Star ! 5482 2084 Star ! 5482 2062 Star ! 5482 2039 Star ! 5482 2016 Star ! 5482 1993 Star ! 5482 1970 Star ! 5482 1947 Star ! 5482 1925 Star ! 5482 1902 Star ! 5482 1879 Star ! 5482 1856 Star ! 5482 1833 Star ! 5482 1810 Star ! 5482 1787 Star ! 5482 1765 Star ! 5482 1742 Star ! 5482 1719 Star ! 5482 1696 Star ! 5482 1673 Star ! 5482 1650 Star ! 5482 1628 Star ! 5482 1605 Star ! 5482 1582 Star ! 5482 1559 Star ! 5482 1536 Star ! 5482 1513 Star ! 5482 1491 Star ! 5482 1468 Star ! 5482 1445 Star ! 5482 1422 Star ! 5482 1399 Star ! 5482 1376 Star ! 5482 1354 Star ! 5514 3089 Star ! 5514 3067 Star ! 5514 3044 Star ! 5514 3021 Star ! 5514 2998 Star ! 5514 2975 Star ! 5514 2952 Star ! 5514 2930 Star ! 5514 2907 Star ! 5514 2884 Star ! 5514 2861 Star ! 5514 2838 Star ! 5514 2815 Star ! 5514 2792 Star ! 5514 2770 Star ! 5514 2747 Star ! 5514 2724 Star ! 5514 2701 Star ! 5514 2678 Star ! 5514 2655 Star ! 5514 2633 Star ! 5514 2610 Star ! 5514 2587 Star ! 5514 2564 Star ! 5514 2541 Star ! 5514 2518 Star ! 5514 2496 Star ! 5514 2473 Star ! 5514 2450 Star ! 5514 2427 Star ! 5514 2404 Star ! 5514 2381 Star ! 5514 2359 Star ! 5514 2336 Star ! 5514 2313 Star ! 5514 2290 Star ! 5514 2267 Star ! 5514 2244 Star ! 5514 2221 Star ! 5514 2199 Star ! 5514 2176 Star ! 5514 2153 Star ! 5514 2130 Star ! 5514 2107 Star ! 5514 2084 Star ! 5514 2062 Star ! 5514 2039 Star ! 5514 2016 Star ! 5514 1993 Star ! 5514 1970 Star ! 5514 1947 Star ! 5514 1925 Star ! 5514 1902 Star ! 5514 1879 Star ! 5514 1856 Star ! 5514 1833 Star ! 5514 1810 Star ! 5514 1787 Star ! 5514 1765 Star ! 5514 1742 Star ! 5514 1719 Star ! 5514 1696 Star ! 5514 1673 Star ! 5514 1650 Star ! 5514 1628 Star ! 5514 1605 Star ! 5514 1582 Star ! 5514 1559 Star ! 5514 1536 Star ! 5514 1513 Star ! 5514 1491 Star ! 5514 1468 Star ! 5514 1445 Star ! 5514 1422 Star ! 5514 1399 Star ! 5514 1376 Star ! 5514 1354 Star ! 5514 1331 Star ! 5547 3089 Star ! 5547 3067 Star ! 5547 3044 Star ! 5547 3021 Star ! 5547 2998 Star ! 5547 2975 Star ! 5547 2952 Star ! 5547 2930 Star ! 5547 2907 Star ! 5547 2884 Star ! 5547 2861 Star ! 5547 2838 Star ! 5547 2815 Star ! 5547 2792 Star ! 5547 2770 Star ! 5547 2747 Star ! 5547 2724 Star ! 5547 2701 Star ! 5547 2678 Star ! 5547 2655 Star ! 5547 2633 Star ! 5547 2610 Star ! 5547 2587 Star ! 5547 2564 Star ! 5547 2541 Star ! 5547 2518 Star ! 5547 2496 Star ! 5547 2473 Star ! 5547 2450 Star ! 5547 2427 Star ! 5547 2404 Star ! 5547 2381 Star ! 5547 2359 Star ! 5547 2336 Star ! 5547 2313 Star ! 5547 2290 Star ! 5547 2267 Star ! 5547 2244 Star ! 5547 2221 Star ! 5547 2199 Star ! 5547 2176 Star ! 5547 2153 Star ! 5547 2130 Star ! 5547 2107 Star ! 5547 2084 Star ! 5547 2062 Star ! 5547 2039 Star ! 5547 2016 Star ! 5547 1993 Star ! 5547 1970 Star ! 5547 1947 Star ! 5547 1925 Star ! 5547 1902 Star ! 5547 1879 Star ! 5547 1856 Star ! 5547 1833 Star ! 5547 1810 Star ! 5547 1787 Star ! 5547 1765 Star ! 5547 1742 Star ! 5547 1719 Star ! 5547 1696 Star ! 5547 1673 Star ! 5547 1650 Star ! 5547 1628 Star ! 5547 1605 Star ! 5547 1582 Star ! 5547 1559 Star ! 5547 1536 Star ! 5547 1513 Star ! 5547 1491 Star ! 5547 1468 Star ! 5547 1445 Star ! 5547 1422 Star ! 5547 1399 Star ! 5547 1376 Star ! 5547 1354 Star ! 5547 1331 Star ! 5547 1308 Star ! 5579 3067 Star ! 5579 3044 Star ! 5579 3021 Star ! 5579 2998 Star ! 5579 2975 Star ! 5579 2952 Star ! 5579 2930 Star ! 5579 2907 Star ! 5579 2884 Star ! 5579 2861 Star ! 5579 2838 Star ! 5579 2815 Star ! 5579 2792 Star ! 5579 2770 Star ! 5579 2747 Star ! 5579 2724 Star ! 5579 2701 Star ! 5579 2678 Star ! 5579 2655 Star ! 5579 2633 Star ! 5579 2610 Star ! 5579 2587 Star ! 5579 2564 Star ! 5579 2541 Star ! 5579 2518 Star ! 5579 2496 Star ! 5579 2473 Star ! 5579 2450 Star ! 5579 2427 Star ! 5579 2404 Star ! 5579 2381 Star ! 5579 2359 Star ! 5579 2336 Star ! 5579 2313 Star ! 5579 2290 Star ! 5579 2267 Star ! 5579 2244 Star ! 5579 2221 Star ! 5579 2199 Star ! 5579 2176 Star ! 5579 2153 Star ! 5579 2130 Star ! 5579 2107 Star ! 5579 2084 Star ! 5579 2062 Star ! 5579 2039 Star ! 5579 2016 Star ! 5579 1993 Star ! 5579 1970 Star ! 5579 1947 Star ! 5579 1925 Star ! 5579 1902 Star ! 5579 1879 Star ! 5579 1856 Star ! 5579 1833 Star ! 5579 1810 Star ! 5579 1787 Star ! 5579 1765 Star ! 5579 1742 Star ! 5579 1719 Star ! 5579 1696 Star ! 5579 1673 Star ! 5579 1650 Star ! 5579 1628 Star ! 5579 1605 Star ! 5579 1582 Star ! 5579 1559 Star ! 5579 1536 Star ! 5579 1513 Star ! 5579 1491 Star ! 5579 1468 Star ! 5579 1445 Star ! 5579 1422 Star ! 5579 1399 Star ! 5579 1376 Star ! 5579 1354 Star ! 5579 1331 Star ! 5579 1308 Star ! 5579 1285 Star ! 5611 3067 Star ! 5611 3044 Star ! 5611 3021 Star ! 5611 2998 Star ! 5611 2975 Star ! 5611 2952 Star ! 5611 2930 Star ! 5611 2907 Star ! 5611 2884 Star ! 5611 2861 Star ! 5611 2838 Star ! 5611 2815 Star ! 5611 2792 Star ! 5611 2770 Star ! 5611 2747 Star ! 5611 2724 Star ! 5611 2701 Star ! 5611 2678 Star ! 5611 2655 Star ! 5611 2633 Star ! 5611 2610 Star ! 5611 2587 Star ! 5611 2564 Star ! 5611 2541 Star ! 5611 2518 Star ! 5611 2496 Star ! 5611 2473 Star ! 5611 2450 Star ! 5611 2427 Star ! 5611 2404 Star ! 5611 2381 Star ! 5611 2359 Star ! 5611 2336 Star ! 5611 2313 Star ! 5611 2290 Star ! 5611 2267 Star ! 5611 2244 Star ! 5611 2221 Star ! 5611 2199 Star ! 5611 2176 Star ! 5611 2153 Star ! 5611 2130 Star ! 5611 2107 Star ! 5611 2084 Star ! 5611 2062 Star ! 5611 2039 Star ! 5611 2016 Star ! 5611 1993 Star ! 5611 1970 Star ! 5611 1947 Star ! 5611 1925 Star ! 5611 1902 Star ! 5611 1879 Star ! 5611 1856 Star ! 5611 1833 Star ! 5611 1810 Star ! 5611 1787 Star ! 5611 1765 Star ! 5611 1742 Star ! 5611 1719 Star ! 5611 1696 Star ! 5611 1673 Star ! 5611 1650 Star ! 5611 1628 Star ! 5611 1605 Star ! 5611 1582 Star ! 5611 1559 Star ! 5611 1536 Star ! 5611 1513 Star ! 5611 1491 Star ! 5611 1468 Star ! 5611 1445 Star ! 5611 1422 Star ! 5611 1399 Star ! 5611 1376 Star ! 5611 1354 Star ! 5611 1331 Star ! 5611 1308 Star ! 5611 1285 Star ! 5611 1262 Star ! 5643 3044 Star ! 5643 3021 Star ! 5643 2998 Star ! 5643 2975 Star ! 5643 2952 Star ! 5643 2930 Star ! 5643 2907 Star ! 5643 2884 Star ! 5643 2861 Star ! 5643 2838 Star ! 5643 2815 Star ! 5643 2792 Star ! 5643 2770 Star ! 5643 2747 Star ! 5643 2724 Star ! 5643 2701 Star ! 5643 2678 Star ! 5643 2655 Star ! 5643 2633 Star ! 5643 2610 Star ! 5643 2587 Star ! 5643 2564 Star ! 5643 2541 Star ! 5643 2518 Star ! 5643 2496 Star ! 5643 2473 Star ! 5643 2450 Star ! 5643 2427 Star ! 5643 2404 Star ! 5643 2381 Star ! 5643 2359 Star ! 5643 2336 Star ! 5643 2313 Star ! 5643 2290 Star ! 5643 2267 Star ! 5643 2244 Star ! 5643 2221 Star ! 5643 2199 Star ! 5643 2176 Star ! 5643 2153 Star ! 5643 2130 Star ! 5643 2107 Star ! 5643 2084 Star ! 5643 2062 Star ! 5643 2039 Star ! 5643 2016 Star ! 5643 1993 Star ! 5643 1970 Star ! 5643 1947 Star ! 5643 1925 Star ! 5643 1902 Star ! 5643 1879 Star ! 5643 1856 Star ! 5643 1833 Star ! 5643 1810 Star ! 5643 1787 Star ! 5643 1765 Star ! 5643 1742 Star ! 5643 1719 Star ! 5643 1696 Star ! 5643 1673 Star ! 5643 1650 Star ! 5643 1628 Star ! 5643 1605 Star ! 5643 1582 Star ! 5643 1559 Star ! 5643 1536 Star ! 5643 1513 Star ! 5643 1491 Star ! 5643 1468 Star ! 5643 1445 Star ! 5643 1422 Star ! 5643 1399 Star ! 5643 1376 Star ! 5643 1354 Star ! 5643 1331 Star ! 5643 1308 Star ! 5643 1285 Star ! 5643 1262 Star ! 5643 1239 Star ! 5675 3044 Star ! 5675 3021 Star ! 5675 2998 Star ! 5675 2975 Star ! 5675 2952 Star ! 5675 2930 Star ! 5675 2907 Star ! 5675 2884 Star ! 5675 2861 Star ! 5675 2838 Star ! 5675 2815 Star ! 5675 2792 Star ! 5675 2770 Star ! 5675 2747 Star ! 5675 2724 Star ! 5675 2701 Star ! 5675 2678 Star ! 5675 2655 Star ! 5675 2633 Star ! 5675 2610 Star ! 5675 2587 Star ! 5675 2564 Star ! 5675 2541 Star ! 5675 2518 Star ! 5675 2496 Star ! 5675 2473 Star ! 5675 2450 Star ! 5675 2427 Star ! 5675 2404 Star ! 5675 2381 Star ! 5675 2359 Star ! 5675 2336 Star ! 5675 2313 Star ! 5675 2290 Star ! 5675 2267 Star ! 5675 2244 Star ! 5675 2221 Star ! 5675 2199 Star ! 5675 2176 Star ! 5675 2153 Star ! 5675 2130 Star ! 5675 2107 Star ! 5675 2084 Star ! 5675 2062 Star ! 5675 2039 Star ! 5675 2016 Star ! 5675 1993 Star ! 5675 1970 Star ! 5675 1947 Star ! 5675 1925 Star ! 5675 1902 Star ! 5675 1879 Star ! 5675 1856 Star ! 5675 1833 Star ! 5675 1810 Star ! 5675 1787 Star ! 5675 1765 Star ! 5675 1742 Star ! 5675 1719 Star ! 5675 1696 Star ! 5675 1673 Star ! 5675 1650 Star ! 5675 1628 Star ! 5675 1605 Star ! 5675 1582 Star ! 5675 1559 Star ! 5675 1536 Star ! 5675 1513 Star ! 5675 1491 Star ! 5675 1468 Star ! 5675 1445 Star ! 5675 1422 Star ! 5675 1399 Star ! 5675 1376 Star ! 5675 1354 Star ! 5675 1331 Star ! 5675 1308 Star ! 5675 1285 Star ! 5675 1262 Star ! 5675 1239 Star ! 5675 1216 Star ! 5707 3021 Star ! 5707 2998 Star ! 5707 2975 Star ! 5707 2952 Star ! 5707 2930 Star ! 5707 2907 Star ! 5707 2884 Star ! 5707 2861 Star ! 5707 2838 Star ! 5707 2815 Star ! 5707 2792 Star ! 5707 2770 Star ! 5707 2747 Star ! 5707 2724 Star ! 5707 2701 Star ! 5707 2678 Star ! 5707 2655 Star ! 5707 2633 Star ! 5707 2610 Star ! 5707 2587 Star ! 5707 2564 Star ! 5707 2541 Star ! 5707 2518 Star ! 5707 2496 Star ! 5707 2473 Star ! 5707 2450 Star ! 5707 2427 Star ! 5707 2404 Star ! 5707 2381 Star ! 5707 2359 Star ! 5707 2336 Star ! 5707 2313 Star ! 5707 2290 Star ! 5707 2267 Star ! 5707 2244 Star ! 5707 2221 Star ! 5707 2199 Star ! 5707 2176 Star ! 5707 2153 Star ! 5707 2130 Star ! 5707 2107 Star ! 5707 2084 Star ! 5707 2062 Star ! 5707 2039 Star ! 5707 2016 Star ! 5707 1993 Star ! 5707 1970 Star ! 5707 1947 Star ! 5707 1925 Star ! 5707 1902 Star ! 5707 1879 Star ! 5707 1856 Star ! 5707 1833 Star ! 5707 1810 Star ! 5707 1787 Star ! 5707 1765 Star ! 5707 1742 Star ! 5707 1719 Star ! 5707 1696 Star ! 5707 1673 Star ! 5707 1650 Star ! 5707 1628 Star ! 5707 1605 Star ! 5707 1582 Star ! 5707 1559 Star ! 5707 1536 Star ! 5707 1513 Star ! 5707 1491 Star ! 5707 1468 Star ! 5707 1445 Star ! 5707 1422 Star ! 5707 1399 Star ! 5707 1376 Star ! 5707 1354 Star ! 5707 1331 Star ! 5707 1308 Star ! 5707 1285 Star ! 5707 1262 Star ! 5707 1239 Star ! 5707 1216 Star ! 5707 1194 Star ! 5739 3021 Star ! 5739 2998 Star ! 5739 2975 Star ! 5739 2952 Star ! 5739 2930 Star ! 5739 2907 Star ! 5739 2884 Star ! 5739 2861 Star ! 5739 2838 Star ! 5739 2815 Star ! 5739 2792 Star ! 5739 2770 Star ! 5739 2747 Star ! 5739 2724 Star ! 5739 2701 Star ! 5739 2678 Star ! 5739 2655 Star ! 5739 2633 Star ! 5739 2610 Star ! 5739 2587 Star ! 5739 2564 Star ! 5739 2541 Star ! 5739 2518 Star ! 5739 2496 Star ! 5739 2473 Star ! 5739 2450 Star ! 5739 2427 Star ! 5739 2404 Star ! 5739 2381 Star ! 5739 2359 Star ! 5739 2336 Star ! 5739 2313 Star ! 5739 2290 Star ! 5739 2267 Star ! 5739 2244 Star ! 5739 2221 Star ! 5739 2199 Star ! 5739 2176 Star ! 5739 2153 Star ! 5739 2130 Star ! 5739 2107 Star ! 5739 2084 Star ! 5739 2062 Star ! 5739 2039 Star ! 5739 2016 Star ! 5739 1993 Star ! 5739 1970 Star ! 5739 1947 Star ! 5739 1925 Star ! 5739 1902 Star ! 5739 1879 Star ! 5739 1856 Star ! 5739 1833 Star ! 5739 1810 Star ! 5739 1787 Star ! 5739 1765 Star ! 5739 1742 Star ! 5739 1719 Star ! 5739 1696 Star ! 5739 1673 Star ! 5739 1650 Star ! 5739 1628 Star ! 5739 1605 Star ! 5739 1582 Star ! 5739 1559 Star ! 5739 1536 Star ! 5739 1513 Star ! 5739 1491 Star ! 5739 1468 Star ! 5739 1445 Star ! 5739 1422 Star ! 5739 1399 Star ! 5739 1376 Star ! 5739 1354 Star ! 5739 1331 Star ! 5739 1308 Star ! 5739 1285 Star ! 5739 1262 Star ! 5739 1239 Star ! 5739 1216 Star ! 5739 1194 Star ! 5739 1171 Star ! 5771 2998 Star ! 5771 2975 Star ! 5771 2952 Star 5771 2930 Star 5771 2907 Star 5771 2884 Star ! 5771 2861 Star ! 5771 2838 Star ! 5771 2815 Star ! 5771 2792 Star 5771 2770 Star 5771 2747 Star 5771 2724 Star ! 5771 2701 Star ! 5771 2678 Star ! 5771 2655 Star 5771 2633 Star 5771 2610 Star 5771 2587 Star ! 5771 2564 Star ! 5771 2541 Star ! 5771 2518 Star 5771 2496 Star 5771 2473 Star 5771 2450 Star ! 5771 2427 Star ! 5771 2404 Star ! 5771 2381 Star 5771 2359 Star 5771 2336 Star 5771 2313 Star 5771 2290 Star ! 5771 2267 Star ! 5771 2244 Star ! 5771 2221 Star 5771 2199 Star 5771 2176 Star 5771 2153 Star ! 5771 2130 Star ! 5771 2107 Star ! 5771 2084 Star 5771 2062 Star 5771 2039 Star 5771 2016 Star 5771 1993 Star ! 5771 1970 Star ! 5771 1947 Star 5771 1925 Star 5771 1902 Star 5771 1879 Star 5771 1856 Star ! 5771 1833 Star ! 5771 1810 Star ! 5771 1787 Star 5771 1765 Star 5771 1742 Star 5771 1719 Star 5771 1696 Star ! 5771 1673 Star ! 5771 1650 Star 5771 1628 Star 5771 1605 Star 5771 1582 Star 5771 1559 Star ! 5771 1536 Star ! 5771 1513 Star 5771 1491 Star 5771 1468 Star 5771 1445 Star 5771 1422 Star 5771 1399 Star ! 5771 1376 Star 5771 1354 Star 5771 1331 Star 5771 1308 Star 5771 1285 Star 5771 1262 Star ! 5771 1239 Star ! 5771 1216 Star 5771 1194 Star 5771 1171 Star 5771 1148 Star ! 5803 2998 Star ! 5803 2975 Star ! 5803 2952 Star 5803 2930 Star 5803 2907 Star 5803 2884 Star ! 5803 2861 Star ! 5803 2838 Star ! 5803 2815 Star ! 5803 2792 Star 5803 2770 Star 5803 2747 Star 5803 2724 Star ! 5803 2701 Star ! 5803 2678 Star ! 5803 2655 Star 5803 2633 Star 5803 2610 Star 5803 2587 Star ! 5803 2564 Star ! 5803 2541 Star ! 5803 2518 Star 5803 2496 Star 5803 2473 Star 5803 2450 Star ! 5803 2427 Star ! 5803 2404 Star ! 5803 2381 Star 5803 2359 Star 5803 2336 Star 5803 2313 Star 5803 2290 Star ! 5803 2267 Star ! 5803 2244 Star ! 5803 2221 Star 5803 2199 Star 5803 2176 Star 5803 2153 Star ! 5803 2130 Star ! 5803 2107 Star ! 5803 2084 Star 5803 2062 Star 5803 2039 Star 5803 2016 Star 5803 1993 Star ! 5803 1970 Star ! 5803 1947 Star 5803 1925 Star 5803 1902 Star 5803 1879 Star 5803 1856 Star ! 5803 1833 Star ! 5803 1810 Star ! 5803 1787 Star 5803 1765 Star 5803 1742 Star 5803 1719 Star 5803 1696 Star ! 5803 1673 Star ! 5803 1650 Star 5803 1628 Star 5803 1605 Star 5803 1582 Star 5803 1559 Star ! 5803 1536 Star ! 5803 1513 Star 5803 1491 Star 5803 1468 Star 5803 1445 Star 5803 1422 Star 5803 1399 Star ! 5803 1376 Star 5803 1354 Star 5803 1331 Star 5803 1308 Star 5803 1285 Star 5803 1262 Star ! 5803 1239 Star ! 5803 1216 Star 5803 1194 Star 5803 1171 Star 5803 1148 Star 5803 1125 Star ! 5835 2975 Star ! 5835 2952 Star 5835 2930 Star 5835 2907 Star 5835 2884 Star ! 5835 2861 Star ! 5835 2838 Star ! 5835 2815 Star ! 5835 2792 Star 5835 2770 Star 5835 2747 Star 5835 2724 Star ! 5835 2701 Star ! 5835 2678 Star ! 5835 2655 Star 5835 2633 Star 5835 2610 Star 5835 2587 Star ! 5835 2564 Star ! 5835 2541 Star ! 5835 2518 Star 5835 2496 Star 5835 2473 Star 5835 2450 Star ! 5835 2427 Star ! 5835 2404 Star ! 5835 2381 Star 5835 2359 Star 5835 2336 Star 5835 2313 Star 5835 2290 Star ! 5835 2267 Star ! 5835 2244 Star ! 5835 2221 Star 5835 2199 Star 5835 2176 Star 5835 2153 Star ! 5835 2130 Star ! 5835 2107 Star ! 5835 2084 Star 5835 2062 Star 5835 2039 Star 5835 2016 Star 5835 1993 Star ! 5835 1970 Star ! 5835 1947 Star 5835 1925 Star 5835 1902 Star 5835 1879 Star 5835 1856 Star ! 5835 1833 Star ! 5835 1810 Star ! 5835 1787 Star 5835 1765 Star 5835 1742 Star 5835 1719 Star 5835 1696 Star ! 5835 1673 Star ! 5835 1650 Star 5835 1628 Star 5835 1605 Star 5835 1582 Star 5835 1559 Star ! 5835 1536 Star ! 5835 1513 Star 5835 1491 Star 5835 1468 Star 5835 1445 Star 5835 1422 Star 5835 1399 Star ! 5835 1376 Star 5835 1354 Star 5835 1331 Star 5835 1308 Star 5835 1285 Star 5835 1262 Star ! 5835 1239 Star ! 5835 1216 Star 5835 1194 Star 5835 1171 Star 5835 1148 Star 5835 1125 Star 5835 1102 Star ! 5867 2975 Star ! 5867 2952 Star 5867 2930 Star 5867 2907 Star 5867 2884 Star ! 5867 2861 Star ! 5867 2838 Star ! 5867 2815 Star ! 5867 2792 Star 5867 2770 Star 5867 2747 Star 5867 2724 Star ! 5867 2701 Star ! 5867 2678 Star ! 5867 2655 Star 5867 2633 Star 5867 2610 Star 5867 2587 Star ! 5867 2564 Star ! 5867 2541 Star ! 5867 2518 Star 5867 2496 Star 5867 2473 Star 5867 2450 Star ! 5867 2427 Star ! 5867 2404 Star ! 5867 2381 Star 5867 2359 Star 5867 2336 Star 5867 2313 Star 5867 2290 Star ! 5867 2267 Star ! 5867 2244 Star ! 5867 2221 Star 5867 2199 Star 5867 2176 Star 5867 2153 Star ! 5867 2130 Star ! 5867 2107 Star ! 5867 2084 Star 5867 2062 Star 5867 2039 Star 5867 2016 Star 5867 1993 Star ! 5867 1970 Star ! 5867 1947 Star 5867 1925 Star 5867 1902 Star 5867 1879 Star 5867 1856 Star ! 5867 1833 Star ! 5867 1810 Star ! 5867 1787 Star 5867 1765 Star 5867 1742 Star 5867 1719 Star 5867 1696 Star ! 5867 1673 Star ! 5867 1650 Star 5867 1628 Star 5867 1605 Star 5867 1582 Star 5867 1559 Star ! 5867 1536 Star ! 5867 1513 Star 5867 1491 Star 5867 1468 Star 5867 1445 Star 5867 1422 Star 5867 1399 Star ! 5867 1376 Star 5867 1354 Star 5867 1331 Star 5867 1308 Star 5867 1285 Star 5867 1262 Star ! 5867 1239 Star ! 5867 1216 Star 5867 1194 Star 5867 1171 Star 5867 1148 Star 5867 1125 Star 5867 1102 Star ! 5867 1079 Star ! 5899 2952 Star 5899 2930 Star 5899 2907 Star 5899 2884 Star ! 5899 2861 Star ! 5899 2838 Star ! 5899 2815 Star ! 5899 2792 Star 5899 2770 Star 5899 2747 Star 5899 2724 Star ! 5899 2701 Star ! 5899 2678 Star ! 5899 2655 Star 5899 2633 Star 5899 2610 Star 5899 2587 Star ! 5899 2564 Star ! 5899 2541 Star ! 5899 2518 Star 5899 2496 Star 5899 2473 Star 5899 2450 Star ! 5899 2427 Star ! 5899 2404 Star ! 5899 2381 Star 5899 2359 Star 5899 2336 Star 5899 2313 Star 5899 2290 Star ! 5899 2267 Star ! 5899 2244 Star ! 5899 2221 Star 5899 2199 Star 5899 2176 Star 5899 2153 Star ! 5899 2130 Star ! 5899 2107 Star ! 5899 2084 Star 5899 2062 Star 5899 2039 Star 5899 2016 Star 5899 1993 Star ! 5899 1970 Star ! 5899 1947 Star 5899 1925 Star 5899 1902 Star 5899 1879 Star 5899 1856 Star ! 5899 1833 Star ! 5899 1810 Star ! 5899 1787 Star 5899 1765 Star 5899 1742 Star 5899 1719 Star 5899 1696 Star ! 5899 1673 Star ! 5899 1650 Star 5899 1628 Star 5899 1605 Star 5899 1582 Star 5899 1559 Star ! 5899 1536 Star ! 5899 1513 Star 5899 1491 Star 5899 1468 Star 5899 1445 Star 5899 1422 Star 5899 1399 Star ! 5899 1376 Star 5899 1354 Star 5899 1331 Star 5899 1308 Star 5899 1285 Star 5899 1262 Star ! 5899 1239 Star ! 5899 1216 Star 5899 1194 Star 5899 1171 Star 5899 1148 Star 5899 1125 Star 5899 1102 Star ! 5899 1079 Star 5899 1057 Star ! 5931 2952 Star ! 5931 2930 Star ! 5931 2907 Star ! 5931 2884 Star ! 5931 2861 Star ! 5931 2838 Star ! 5931 2815 Star ! 5931 2792 Star ! 5931 2770 Star ! 5931 2747 Star ! 5931 2724 Star ! 5931 2701 Star ! 5931 2678 Star ! 5931 2655 Star ! 5931 2633 Star ! 5931 2610 Star ! 5931 2587 Star ! 5931 2564 Star ! 5931 2541 Star ! 5931 2518 Star ! 5931 2496 Star ! 5931 2473 Star ! 5931 2450 Star ! 5931 2427 Star ! 5931 2404 Star ! 5931 2381 Star ! 5931 2359 Star ! 5931 2336 Star ! 5931 2313 Star ! 5931 2290 Star ! 5931 2267 Star ! 5931 2244 Star ! 5931 2221 Star ! 5931 2199 Star ! 5931 2176 Star ! 5931 2153 Star ! 5931 2130 Star ! 5931 2107 Star ! 5931 2084 Star ! 5931 2062 Star ! 5931 2039 Star ! 5931 2016 Star ! 5931 1993 Star ! 5931 1970 Star ! 5931 1947 Star ! 5931 1925 Star ! 5931 1902 Star ! 5931 1879 Star ! 5931 1856 Star ! 5931 1833 Star ! 5931 1810 Star ! 5931 1787 Star ! 5931 1765 Star ! 5931 1742 Star ! 5931 1719 Star ! 5931 1696 Star ! 5931 1673 Star ! 5931 1650 Star ! 5931 1628 Star ! 5931 1605 Star ! 5931 1582 Star ! 5931 1559 Star ! 5931 1536 Star ! 5931 1513 Star ! 5931 1491 Star ! 5931 1468 Star ! 5931 1445 Star ! 5931 1422 Star ! 5931 1399 Star ! 5931 1376 Star ! 5931 1354 Star ! 5931 1331 Star ! 5931 1308 Star ! 5931 1285 Star ! 5931 1262 Star ! 5931 1239 Star ! 5931 1216 Star ! 5931 1194 Star ! 5931 1171 Star ! 5931 1148 Star ! 5931 1125 Star ! 5931 1102 Star ! 5931 1079 Star ! 5931 1057 Star ! 5931 1034 Star ! 5963 2930 Star ! 5963 2907 Star ! 5963 2884 Star ! 5963 2861 Star ! 5963 2838 Star ! 5963 2815 Star ! 5963 2792 Star ! 5963 2770 Star ! 5963 2747 Star ! 5963 2724 Star ! 5963 2701 Star ! 5963 2678 Star ! 5963 2655 Star ! 5963 2633 Star ! 5963 2610 Star ! 5963 2587 Star ! 5963 2564 Star ! 5963 2541 Star ! 5963 2518 Star ! 5963 2496 Star ! 5963 2473 Star ! 5963 2450 Star ! 5963 2427 Star ! 5963 2404 Star ! 5963 2381 Star ! 5963 2359 Star ! 5963 2336 Star ! 5963 2313 Star ! 5963 2290 Star ! 5963 2267 Star ! 5963 2244 Star ! 5963 2221 Star ! 5963 2199 Star ! 5963 2176 Star ! 5963 2153 Star ! 5963 2130 Star ! 5963 2107 Star ! 5963 2084 Star ! 5963 2062 Star ! 5963 2039 Star ! 5963 2016 Star ! 5963 1993 Star ! 5963 1970 Star ! 5963 1947 Star ! 5963 1925 Star ! 5963 1902 Star ! 5963 1879 Star ! 5963 1856 Star ! 5963 1833 Star ! 5963 1810 Star ! 5963 1787 Star ! 5963 1765 Star ! 5963 1742 Star ! 5963 1719 Star ! 5963 1696 Star ! 5963 1673 Star ! 5963 1650 Star ! 5963 1628 Star ! 5963 1605 Star ! 5963 1582 Star ! 5963 1559 Star ! 5963 1536 Star ! 5963 1513 Star ! 5963 1491 Star ! 5963 1468 Star ! 5963 1445 Star ! 5963 1422 Star ! 5963 1399 Star ! 5963 1376 Star ! 5963 1354 Star ! 5963 1331 Star ! 5963 1308 Star ! 5963 1285 Star ! 5963 1262 Star ! 5963 1239 Star ! 5963 1216 Star ! 5963 1194 Star ! 5963 1171 Star ! 5963 1148 Star ! 5963 1125 Star ! 5963 1102 Star ! 5963 1079 Star ! 5963 1057 Star ! 5963 1034 Star ! 5963 1011 Star ! 5995 2930 Star ! 5995 2907 Star ! 5995 2884 Star ! 5995 2861 Star ! 5995 2838 Star ! 5995 2815 Star ! 5995 2792 Star ! 5995 2770 Star ! 5995 2747 Star ! 5995 2724 Star ! 5995 2701 Star ! 5995 2678 Star ! 5995 2655 Star ! 5995 2633 Star ! 5995 2610 Star ! 5995 2587 Star ! 5995 2564 Star ! 5995 2541 Star ! 5995 2518 Star ! 5995 2496 Star ! 5995 2473 Star ! 5995 2450 Star ! 5995 2427 Star ! 5995 2404 Star ! 5995 2381 Star ! 5995 2359 Star ! 5995 2336 Star ! 5995 2313 Star ! 5995 2290 Star ! 5995 2267 Star ! 5995 2244 Star ! 5995 2221 Star ! 5995 2199 Star ! 5995 2176 Star ! 5995 2153 Star ! 5995 2130 Star ! 5995 2107 Star ! 5995 2084 Star ! 5995 2062 Star ! 5995 2039 Star ! 5995 2016 Star ! 5995 1993 Star ! 5995 1970 Star ! 5995 1947 Star ! 5995 1925 Star ! 5995 1902 Star ! 5995 1879 Star ! 5995 1856 Star ! 5995 1833 Star ! 5995 1810 Star ! 5995 1787 Star ! 5995 1765 Star ! 5995 1742 Star ! 5995 1719 Star ! 5995 1696 Star ! 5995 1673 Star ! 5995 1650 Star ! 5995 1628 Star ! 5995 1605 Star ! 5995 1582 Star ! 5995 1559 Star ! 5995 1536 Star ! 5995 1513 Star ! 5995 1491 Star ! 5995 1468 Star ! 5995 1445 Star ! 5995 1422 Star ! 5995 1399 Star ! 5995 1376 Star ! 5995 1354 Star ! 5995 1331 Star ! 5995 1308 Star ! 5995 1285 Star ! 5995 1262 Star ! 5995 1239 Star ! 5995 1216 Star ! 5995 1194 Star ! 5995 1171 Star ! 5995 1148 Star ! 5995 1125 Star ! 5995 1102 Star ! 5995 1079 Star ! 5995 1057 Star ! 5995 1034 Star ! 5995 1011 Star ! 5995 988 Star ! 6027 2907 Star ! 6027 2884 Star ! 6027 2861 Star ! 6027 2838 Star ! 6027 2815 Star ! 6027 2792 Star ! 6027 2770 Star ! 6027 2747 Star ! 6027 2724 Star ! 6027 2701 Star ! 6027 2678 Star ! 6027 2655 Star ! 6027 2633 Star ! 6027 2610 Star ! 6027 2587 Star ! 6027 2564 Star ! 6027 2541 Star ! 6027 2518 Star ! 6027 2496 Star ! 6027 2473 Star ! 6027 2450 Star ! 6027 2427 Star ! 6027 2404 Star ! 6027 2381 Star ! 6027 2359 Star ! 6027 2336 Star ! 6027 2313 Star ! 6027 2290 Star ! 6027 2267 Star ! 6027 2244 Star ! 6027 2221 Star ! 6027 2199 Star ! 6027 2176 Star ! 6027 2153 Star ! 6027 2130 Star ! 6027 2107 Star ! 6027 2084 Star ! 6027 2062 Star ! 6027 2039 Star ! 6027 2016 Star ! 6027 1993 Star ! 6027 1970 Star ! 6027 1947 Star ! 6027 1925 Star ! 6027 1902 Star ! 6027 1879 Star ! 6027 1856 Star ! 6027 1833 Star ! 6027 1810 Star ! 6027 1787 Star ! 6027 1765 Star ! 6027 1742 Star ! 6027 1719 Star ! 6027 1696 Star ! 6027 1673 Star ! 6027 1650 Star ! 6027 1628 Star ! 6027 1605 Star ! 6027 1582 Star ! 6027 1559 Star ! 6027 1536 Star ! 6027 1513 Star ! 6027 1491 Star ! 6027 1468 Star ! 6027 1445 Star ! 6027 1422 Star ! 6027 1399 Star ! 6027 1376 Star ! 6027 1354 Star ! 6027 1331 Star ! 6027 1308 Star ! 6027 1285 Star ! 6027 1262 Star ! 6027 1239 Star ! 6027 1216 Star ! 6027 1194 Star ! 6027 1171 Star ! 6027 1148 Star ! 6027 1125 Star ! 6027 1102 Star ! 6027 1079 Star ! 6027 1057 Star ! 6027 1034 Star ! 6027 1011 Star ! 6027 988 Star ! 6027 965 Star ! 6059 2907 Star ! 6059 2884 Star ! 6059 2861 Star ! 6059 2838 Star ! 6059 2815 Star ! 6059 2792 Star ! 6059 2770 Star ! 6059 2747 Star ! 6059 2724 Star ! 6059 2701 Star ! 6059 2678 Star ! 6059 2655 Star ! 6059 2633 Star ! 6059 2610 Star ! 6059 2587 Star ! 6059 2564 Star ! 6059 2541 Star ! 6059 2518 Star ! 6059 2496 Star ! 6059 2473 Star ! 6059 2450 Star ! 6059 2427 Star ! 6059 2404 Star ! 6059 2381 Star ! 6059 2359 Star ! 6059 2336 Star ! 6059 2313 Star ! 6059 2290 Star ! 6059 2267 Star ! 6059 2244 Star ! 6059 2221 Star ! 6059 2199 Star ! 6059 2176 Star ! 6059 2153 Star ! 6059 2130 Star ! 6059 2107 Star ! 6059 2084 Star ! 6059 2062 Star ! 6059 2039 Star ! 6059 2016 Star ! 6059 1993 Star ! 6059 1970 Star ! 6059 1947 Star ! 6059 1925 Star ! 6059 1902 Star ! 6059 1879 Star ! 6059 1856 Star ! 6059 1833 Star ! 6059 1810 Star ! 6059 1787 Star ! 6059 1765 Star ! 6059 1742 Star ! 6059 1719 Star ! 6059 1696 Star ! 6059 1673 Star ! 6059 1650 Star ! 6059 1628 Star ! 6059 1605 Star ! 6059 1582 Star ! 6059 1559 Star ! 6059 1536 Star ! 6059 1513 Star ! 6059 1491 Star ! 6059 1468 Star ! 6059 1445 Star ! 6059 1422 Star ! 6059 1399 Star ! 6059 1376 Star ! 6059 1354 Star ! 6059 1331 Star ! 6059 1308 Star ! 6059 1285 Star ! 6059 1262 Star ! 6059 1239 Star ! 6059 1216 Star ! 6059 1194 Star ! 6059 1171 Star ! 6059 1148 Star ! 6059 1125 Star ! 6059 1102 Star ! 6059 1079 Star ! 6059 1057 Star ! 6059 1034 Star ! 6059 1011 Star ! 6059 988 Star ! 6059 965 Star ! 6059 942 Star ! 6091 2884 Star ! 6091 2861 Star ! 6091 2838 Star ! 6091 2815 Star ! 6091 2792 Star ! 6091 2770 Star ! 6091 2747 Star ! 6091 2724 Star ! 6091 2701 Star ! 6091 2678 Star ! 6091 2655 Star ! 6091 2633 Star ! 6091 2610 Star ! 6091 2587 Star ! 6091 2564 Star ! 6091 2541 Star ! 6091 2518 Star ! 6091 2496 Star ! 6091 2473 Star ! 6091 2450 Star ! 6091 2427 Star ! 6091 2404 Star ! 6091 2381 Star ! 6091 2359 Star ! 6091 2336 Star ! 6091 2313 Star ! 6091 2290 Star ! 6091 2267 Star ! 6091 2244 Star ! 6091 2221 Star ! 6091 2199 Star ! 6091 2176 Star ! 6091 2153 Star ! 6091 2130 Star ! 6091 2107 Star ! 6091 2084 Star ! 6091 2062 Star ! 6091 2039 Star ! 6091 2016 Star ! 6091 1993 Star ! 6091 1970 Star ! 6091 1947 Star ! 6091 1925 Star ! 6091 1902 Star ! 6091 1879 Star ! 6091 1856 Star ! 6091 1833 Star ! 6091 1810 Star ! 6091 1787 Star ! 6091 1765 Star ! 6091 1742 Star ! 6091 1719 Star ! 6091 1696 Star ! 6091 1673 Star ! 6091 1650 Star ! 6091 1628 Star ! 6091 1605 Star ! 6091 1582 Star ! 6091 1559 Star ! 6091 1536 Star ! 6091 1513 Star ! 6091 1491 Star ! 6091 1468 Star ! 6091 1445 Star ! 6091 1422 Star ! 6091 1399 Star ! 6091 1376 Star ! 6091 1354 Star ! 6091 1331 Star ! 6091 1308 Star ! 6091 1285 Star ! 6091 1262 Star ! 6091 1239 Star ! 6091 1216 Star ! 6091 1194 Star ! 6091 1171 Star ! 6091 1148 Star ! 6091 1125 Star ! 6091 1102 Star ! 6091 1079 Star ! 6091 1057 Star ! 6091 1034 Star ! 6091 1011 Star ! 6091 988 Star ! 6091 965 Star ! 6091 942 Star ! 6091 920 Star ! 6124 2884 Star ! 6124 2861 Star ! 6124 2838 Star ! 6124 2815 Star ! 6124 2792 Star ! 6124 2770 Star ! 6124 2747 Star ! 6124 2724 Star ! 6124 2701 Star ! 6124 2678 Star ! 6124 2655 Star ! 6124 2633 Star ! 6124 2610 Star ! 6124 2587 Star ! 6124 2564 Star ! 6124 2541 Star ! 6124 2518 Star ! 6124 2496 Star ! 6124 2473 Star ! 6124 2450 Star ! 6124 2427 Star ! 6124 2404 Star ! 6124 2381 Star ! 6124 2359 Star ! 6124 2336 Star ! 6124 2313 Star ! 6124 2290 Star ! 6124 2267 Star ! 6124 2244 Star ! 6124 2221 Star ! 6124 2199 Star ! 6124 2176 Star ! 6124 2153 Star ! 6124 2130 Star ! 6124 2107 Star ! 6124 2084 Star ! 6124 2062 Star ! 6124 2039 Star ! 6124 2016 Star ! 6124 1993 Star ! 6124 1970 Star ! 6124 1947 Star ! 6124 1925 Star ! 6124 1902 Star ! 6124 1879 Star ! 6124 1856 Star ! 6124 1833 Star ! 6124 1810 Star ! 6124 1787 Star ! 6124 1765 Star ! 6124 1742 Star ! 6124 1719 Star ! 6124 1696 Star ! 6124 1673 Star ! 6124 1650 Star ! 6124 1628 Star ! 6124 1605 Star ! 6124 1582 Star ! 6124 1559 Star ! 6124 1536 Star ! 6124 1513 Star ! 6124 1491 Star ! 6124 1468 Star ! 6124 1445 Star ! 6124 1422 Star ! 6124 1399 Star ! 6124 1376 Star ! 6124 1354 Star ! 6124 1331 Star ! 6124 1308 Star ! 6124 1285 Star ! 6124 1262 Star ! 6124 1239 Star ! 6124 1216 Star ! 6124 1194 Star ! 6124 1171 Star ! 6124 1148 Star ! 6124 1125 Star ! 6124 1102 Star ! 6124 1079 Star ! 6124 1057 Star ! 6124 1034 Star ! 6124 1011 Star ! 6124 988 Star ! 6124 965 Star ! 6124 942 Star ! 6124 920 Star ! 6124 897 Star ! 6156 2861 Star ! 6156 2838 Star ! 6156 2815 Star ! 6156 2792 Star ! 6156 2770 Star ! 6156 2747 Star ! 6156 2724 Star ! 6156 2701 Star ! 6156 2678 Star ! 6156 2655 Star ! 6156 2633 Star ! 6156 2610 Star ! 6156 2587 Star ! 6156 2564 Star ! 6156 2541 Star ! 6156 2518 Star ! 6156 2496 Star ! 6156 2473 Star ! 6156 2450 Star ! 6156 2427 Star ! 6156 2404 Star ! 6156 2381 Star ! 6156 2359 Star ! 6156 2336 Star ! 6156 2313 Star ! 6156 2290 Star ! 6156 2267 Star ! 6156 2244 Star ! 6156 2221 Star ! 6156 2199 Star ! 6156 2176 Star ! 6156 2153 Star ! 6156 2130 Star ! 6156 2107 Star ! 6156 2084 Star ! 6156 2062 Star ! 6156 2039 Star ! 6156 2016 Star ! 6156 1993 Star ! 6156 1970 Star ! 6156 1947 Star ! 6156 1925 Star ! 6156 1902 Star ! 6156 1879 Star ! 6156 1856 Star ! 6156 1833 Star ! 6156 1810 Star ! 6156 1787 Star ! 6156 1765 Star ! 6156 1742 Star ! 6156 1719 Star ! 6156 1696 Star ! 6156 1673 Star ! 6156 1650 Star ! 6156 1628 Star ! 6156 1605 Star ! 6156 1582 Star ! 6156 1559 Star ! 6156 1536 Star ! 6156 1513 Star ! 6156 1491 Star ! 6156 1468 Star ! 6156 1445 Star ! 6156 1422 Star ! 6156 1399 Star ! 6156 1376 Star ! 6156 1354 Star ! 6156 1331 Star ! 6156 1308 Star ! 6156 1285 Star ! 6156 1262 Star ! 6156 1239 Star ! 6156 1216 Star ! 6156 1194 Star ! 6156 1171 Star ! 6156 1148 Star ! 6156 1125 Star ! 6156 1102 Star ! 6156 1079 Star ! 6156 1057 Star ! 6156 1034 Star ! 6156 1011 Star ! 6156 988 Star ! 6156 965 Star ! 6156 942 Star ! 6156 920 Star ! 6156 897 Star ! 6156 874 Star ! 6188 2861 Star ! 6188 2838 Star ! 6188 2815 Star ! 6188 2792 Star ! 6188 2770 Star ! 6188 2747 Star ! 6188 2724 Star ! 6188 2701 Star ! 6188 2678 Star ! 6188 2655 Star ! 6188 2633 Star ! 6188 2610 Star ! 6188 2587 Star ! 6188 2564 Star ! 6188 2541 Star ! 6188 2518 Star ! 6188 2496 Star ! 6188 2473 Star ! 6188 2450 Star ! 6188 2427 Star ! 6188 2404 Star ! 6188 2381 Star ! 6188 2359 Star ! 6188 2336 Star ! 6188 2313 Star ! 6188 2290 Star ! 6188 2267 Star ! 6188 2244 Star ! 6188 2221 Star ! 6188 2199 Star ! 6188 2176 Star ! 6188 2153 Star ! 6188 2130 Star ! 6188 2107 Star ! 6188 2084 Star ! 6188 2062 Star ! 6188 2039 Star ! 6188 2016 Star ! 6188 1993 Star ! 6188 1970 Star ! 6188 1947 Star ! 6188 1925 Star ! 6188 1902 Star ! 6188 1879 Star ! 6188 1856 Star ! 6188 1833 Star ! 6188 1810 Star ! 6188 1787 Star ! 6188 1765 Star ! 6188 1742 Star ! 6188 1719 Star ! 6188 1696 Star ! 6188 1673 Star ! 6188 1650 Star ! 6188 1628 Star ! 6188 1605 Star ! 6188 1582 Star ! 6188 1559 Star ! 6188 1536 Star ! 6188 1513 Star ! 6188 1491 Star ! 6188 1468 Star ! 6188 1445 Star ! 6188 1422 Star ! 6188 1399 Star ! 6188 1376 Star ! 6188 1354 Star ! 6188 1331 Star ! 6188 1308 Star ! 6188 1285 Star ! 6188 1262 Star ! 6188 1239 Star ! 6188 1216 Star ! 6188 1194 Star ! 6188 1171 Star ! 6188 1148 Star ! 6188 1125 Star ! 6188 1102 Star ! 6188 1079 Star ! 6188 1057 Star ! 6188 1034 Star ! 6188 1011 Star ! 6188 988 Star ! 6188 965 Star ! 6188 942 Star ! 6188 920 Star ! 6188 897 Star ! 6188 874 Star ! 6188 851 Star ! 6220 2838 Star ! 6220 2815 Star ! 6220 2792 Star ! 6220 2770 Star ! 6220 2747 Star ! 6220 2724 Star ! 6220 2701 Star ! 6220 2678 Star ! 6220 2655 Star ! 6220 2633 Star ! 6220 2610 Star ! 6220 2587 Star ! 6220 2564 Star ! 6220 2541 Star ! 6220 2518 Star ! 6220 2496 Star ! 6220 2473 Star ! 6220 2450 Star ! 6220 2427 Star ! 6220 2404 Star ! 6220 2381 Star ! 6220 2359 Star ! 6220 2336 Star ! 6220 2313 Star ! 6220 2290 Star ! 6220 2267 Star ! 6220 2244 Star ! 6220 2221 Star ! 6220 2199 Star ! 6220 2176 Star ! 6220 2153 Star ! 6220 2130 Star ! 6220 2107 Star ! 6220 2084 Star ! 6220 2062 Star ! 6220 2039 Star ! 6220 2016 Star ! 6220 1993 Star ! 6220 1970 Star ! 6220 1947 Star ! 6220 1925 Star ! 6220 1902 Star ! 6220 1879 Star ! 6220 1856 Star ! 6220 1833 Star ! 6220 1810 Star ! 6220 1787 Star ! 6220 1765 Star ! 6220 1742 Star ! 6220 1719 Star ! 6220 1696 Star ! 6220 1673 Star ! 6220 1650 Star ! 6220 1628 Star ! 6220 1605 Star ! 6220 1582 Star ! 6220 1559 Star ! 6220 1536 Star ! 6220 1513 Star ! 6220 1491 Star ! 6220 1468 Star ! 6220 1445 Star ! 6220 1422 Star ! 6220 1399 Star ! 6220 1376 Star ! 6220 1354 Star ! 6220 1331 Star ! 6220 1308 Star ! 6220 1285 Star ! 6220 1262 Star ! 6220 1239 Star ! 6220 1216 Star ! 6220 1194 Star ! 6220 1171 Star ! 6220 1148 Star ! 6220 1125 Star ! 6220 1102 Star ! 6220 1079 Star ! 6220 1057 Star ! 6220 1034 Star ! 6220 1011 Star ! 6220 988 Star ! 6220 965 Star ! 6220 942 Star ! 6220 920 Star ! 6220 897 Star ! 6220 874 Star ! 6220 851 Star ! 6220 828 Star ! 6252 2838 Star ! 6252 2815 Star ! 6252 2792 Star ! 6252 2770 Star ! 6252 2747 Star ! 6252 2724 Star ! 6252 2701 Star ! 6252 2678 Star ! 6252 2655 Star ! 6252 2633 Star ! 6252 2610 Star ! 6252 2587 Star ! 6252 2564 Star ! 6252 2541 Star ! 6252 2518 Star ! 6252 2496 Star ! 6252 2473 Star ! 6252 2450 Star ! 6252 2427 Star ! 6252 2404 Star ! 6252 2381 Star ! 6252 2359 Star ! 6252 2336 Star ! 6252 2313 Star ! 6252 2290 Star ! 6252 2267 Star ! 6252 2244 Star ! 6252 2221 Star ! 6252 2199 Star ! 6252 2176 Star ! 6252 2153 Star ! 6252 2130 Star ! 6252 2107 Star ! 6252 2084 Star ! 6252 2062 Star ! 6252 2039 Star ! 6252 2016 Star ! 6252 1993 Star ! 6252 1970 Star ! 6252 1947 Star ! 6252 1925 Star ! 6252 1902 Star ! 6252 1879 Star ! 6252 1856 Star ! 6252 1833 Star ! 6252 1810 Star ! 6252 1787 Star ! 6252 1765 Star ! 6252 1742 Star ! 6252 1719 Star ! 6252 1696 Star ! 6252 1673 Star ! 6252 1650 Star ! 6252 1628 Star ! 6252 1605 Star ! 6252 1582 Star ! 6252 1559 Star ! 6252 1536 Star ! 6252 1513 Star ! 6252 1491 Star ! 6252 1468 Star ! 6252 1445 Star ! 6252 1422 Star ! 6252 1399 Star ! 6252 1376 Star ! 6252 1354 Star ! 6252 1331 Star ! 6252 1308 Star ! 6252 1285 Star ! 6252 1262 Star ! 6252 1239 Star ! 6252 1216 Star ! 6252 1194 Star ! 6252 1171 Star ! 6252 1148 Star ! 6252 1125 Star ! 6252 1102 Star ! 6252 1079 Star ! 6252 1057 Star ! 6252 1034 Star ! 6252 1011 Star ! 6252 988 Star ! 6252 965 Star ! 6252 942 Star ! 6252 920 Star ! 6252 897 Star ! 6252 874 Star ! 6252 851 Star ! 6252 828 Star ! 6252 805 Star ! 6284 2815 Star ! 6284 2792 Star ! 6284 2770 Star ! 6284 2747 Star ! 6284 2724 Star ! 6284 2701 Star ! 6284 2678 Star ! 6284 2655 Star ! 6284 2633 Star ! 6284 2610 Star ! 6284 2587 Star ! 6284 2564 Star ! 6284 2541 Star ! 6284 2518 Star ! 6284 2496 Star ! 6284 2473 Star ! 6284 2450 Star ! 6284 2427 Star ! 6284 2404 Star ! 6284 2381 Star ! 6284 2359 Star ! 6284 2336 Star ! 6284 2313 Star ! 6284 2290 Star ! 6284 2267 Star ! 6284 2244 Star ! 6284 2221 Star ! 6284 2199 Star ! 6284 2176 Star ! 6284 2153 Star ! 6284 2130 Star ! 6284 2107 Star ! 6284 2084 Star ! 6284 2062 Star ! 6284 2039 Star ! 6284 2016 Star ! 6284 1993 Star ! 6284 1970 Star ! 6284 1947 Star ! 6284 1925 Star ! 6284 1902 Star ! 6284 1879 Star ! 6284 1856 Star ! 6284 1833 Star ! 6284 1810 Star ! 6284 1787 Star ! 6284 1765 Star ! 6284 1742 Star ! 6284 1719 Star ! 6284 1696 Star ! 6284 1673 Star ! 6284 1650 Star ! 6284 1628 Star ! 6284 1605 Star ! 6284 1582 Star ! 6284 1559 Star ! 6284 1536 Star ! 6284 1513 Star ! 6284 1491 Star ! 6284 1468 Star ! 6284 1445 Star ! 6284 1422 Star ! 6284 1399 Star ! 6284 1376 Star ! 6284 1354 Star ! 6284 1331 Star ! 6284 1308 Star ! 6284 1285 Star ! 6284 1262 Star ! 6284 1239 Star ! 6284 1216 Star ! 6284 1194 Star ! 6284 1171 Star ! 6284 1148 Star ! 6284 1125 Star ! 6284 1102 Star ! 6284 1079 Star ! 6284 1057 Star ! 6284 1034 Star ! 6284 1011 Star ! 6284 988 Star ! 6284 965 Star ! 6284 942 Star ! 6284 920 Star ! 6284 897 Star ! 6284 874 Star ! 6284 851 Star ! 6284 828 Star ! 6284 805 Star ! 6284 782 Star ! 6316 2815 Star ! 6316 2792 Star ! 6316 2770 Star ! 6316 2747 Star ! 6316 2724 Star ! 6316 2701 Star ! 6316 2678 Star ! 6316 2655 Star ! 6316 2633 Star ! 6316 2610 Star ! 6316 2587 Star ! 6316 2564 Star ! 6316 2541 Star ! 6316 2518 Star ! 6316 2496 Star ! 6316 2473 Star ! 6316 2450 Star ! 6316 2427 Star ! 6316 2404 Star ! 6316 2381 Star ! 6316 2359 Star ! 6316 2336 Star ! 6316 2313 Star ! 6316 2290 Star ! 6316 2267 Star ! 6316 2244 Star ! 6316 2221 Star ! 6316 2199 Star ! 6316 2176 Star ! 6316 2153 Star ! 6316 2130 Star ! 6316 2107 Star ! 6316 2084 Star ! 6316 2062 Star ! 6316 2039 Star ! 6316 2016 Star ! 6316 1993 Star ! 6316 1970 Star ! 6316 1947 Star ! 6316 1925 Star ! 6316 1902 Star ! 6316 1879 Star ! 6316 1856 Star ! 6316 1833 Star ! 6316 1810 Star ! 6316 1787 Star ! 6316 1765 Star ! 6316 1742 Star ! 6316 1719 Star ! 6316 1696 Star ! 6316 1673 Star ! 6316 1650 Star ! 6316 1628 Star ! 6316 1605 Star ! 6316 1582 Star ! 6316 1559 Star ! 6316 1536 Star ! 6316 1513 Star ! 6316 1491 Star ! 6316 1468 Star ! 6316 1445 Star ! 6316 1422 Star ! 6316 1399 Star ! 6316 1376 Star ! 6316 1354 Star ! 6316 1331 Star ! 6316 1308 Star ! 6316 1285 Star ! 6316 1262 Star ! 6316 1239 Star ! 6316 1216 Star ! 6316 1194 Star ! 6316 1171 Star ! 6316 1148 Star ! 6316 1125 Star ! 6316 1102 Star ! 6316 1079 Star ! 6316 1057 Star ! 6316 1034 Star ! 6316 1011 Star ! 6316 988 Star ! 6316 965 Star ! 6316 942 Star ! 6316 920 Star ! 6316 897 Star ! 6316 874 Star ! 6316 851 Star ! 6316 828 Star ! 6316 805 Star ! 6316 782 Star ! 6316 760 Star ! 6348 2792 Star ! 6348 2770 Star ! 6348 2747 Star ! 6348 2724 Star ! 6348 2701 Star ! 6348 2678 Star ! 6348 2655 Star ! 6348 2633 Star ! 6348 2610 Star ! 6348 2587 Star ! 6348 2564 Star ! 6348 2541 Star ! 6348 2518 Star ! 6348 2496 Star ! 6348 2473 Star ! 6348 2450 Star ! 6348 2427 Star ! 6348 2404 Star ! 6348 2381 Star ! 6348 2359 Star ! 6348 2336 Star ! 6348 2313 Star ! 6348 2290 Star ! 6348 2267 Star ! 6348 2244 Star ! 6348 2221 Star ! 6348 2199 Star ! 6348 2176 Star ! 6348 2153 Star ! 6348 2130 Star ! 6348 2107 Star ! 6348 2084 Star ! 6348 2062 Star ! 6348 2039 Star ! 6348 2016 Star ! 6348 1993 Star ! 6348 1970 Star ! 6348 1947 Star ! 6348 1925 Star ! 6348 1902 Star ! 6348 1879 Star ! 6348 1856 Star ! 6348 1833 Star ! 6348 1810 Star ! 6348 1787 Star ! 6348 1765 Star ! 6348 1742 Star ! 6348 1719 Star ! 6348 1696 Star ! 6348 1673 Star ! 6348 1650 Star ! 6348 1628 Star ! 6348 1605 Star ! 6348 1582 Star ! 6348 1559 Star ! 6348 1536 Star ! 6348 1513 Star ! 6348 1491 Star ! 6348 1468 Star ! 6348 1445 Star ! 6348 1422 Star ! 6348 1399 Star ! 6348 1376 Star ! 6348 1354 Star ! 6348 1331 Star ! 6348 1308 Star ! 6348 1285 Star ! 6348 1262 Star ! 6348 1239 Star ! 6348 1216 Star ! 6348 1194 Star ! 6348 1171 Star ! 6348 1148 Star ! 6348 1125 Star ! 6348 1102 Star ! 6348 1079 Star ! 6348 1057 Star ! 6348 1034 Star ! 6348 1011 Star ! 6348 988 Star ! 6348 965 Star ! 6348 942 Star ! 6348 920 Star ! 6348 897 Star ! 6348 874 Star ! 6348 851 Star ! 6348 828 Star ! 6348 805 Star ! 6348 782 Star ! 6348 760 Star ! 6348 737 Star ! 6380 2792 Star ! 6380 2770 Star ! 6380 2747 Star ! 6380 2724 Star ! 6380 2701 Star ! 6380 2678 Star ! 6380 2655 Star ! 6380 2633 Star ! 6380 2610 Star ! 6380 2587 Star ! 6380 2564 Star ! 6380 2541 Star ! 6380 2518 Star ! 6380 2496 Star ! 6380 2473 Star ! 6380 2450 Star ! 6380 2427 Star ! 6380 2404 Star ! 6380 2381 Star ! 6380 2359 Star ! 6380 2336 Star ! 6380 2313 Star ! 6380 2290 Star ! 6380 2267 Star ! 6380 2244 Star ! 6380 2221 Star ! 6380 2199 Star ! 6380 2176 Star ! 6380 2153 Star ! 6380 2130 Star ! 6380 2107 Star ! 6380 2084 Star ! 6380 2062 Star ! 6380 2039 Star ! 6380 2016 Star ! 6380 1993 Star ! 6380 1970 Star ! 6380 1947 Star ! 6380 1925 Star ! 6380 1902 Star ! 6380 1879 Star ! 6380 1856 Star ! 6380 1833 Star ! 6380 1810 Star ! 6380 1787 Star ! 6380 1765 Star ! 6380 1742 Star ! 6380 1719 Star ! 6380 1696 Star ! 6380 1673 Star ! 6380 1650 Star ! 6380 1628 Star ! 6380 1605 Star ! 6380 1582 Star ! 6380 1559 Star ! 6380 1536 Star ! 6380 1513 Star ! 6380 1491 Star ! 6380 1468 Star ! 6380 1445 Star ! 6380 1422 Star ! 6380 1399 Star ! 6380 1376 Star ! 6380 1354 Star ! 6380 1331 Star ! 6380 1308 Star ! 6380 1285 Star ! 6380 1262 Star ! 6380 1239 Star ! 6380 1216 Star ! 6380 1194 Star ! 6380 1171 Star ! 6380 1148 Star ! 6380 1125 Star ! 6380 1102 Star ! 6380 1079 Star ! 6380 1057 Star ! 6380 1034 Star ! 6380 1011 Star ! 6380 988 Star ! 6380 965 Star ! 6380 942 Star ! 6380 920 Star ! 6380 897 Star ! 6380 874 Star ! 6380 851 Star ! 6380 828 Star ! 6380 805 Star ! 6380 782 Star ! 6380 760 Star ! 6380 737 Star ! 6380 714 Star ! 6412 2770 Star ! 6412 2747 Star ! 6412 2724 Star ! 6412 2701 Star ! 6412 2678 Star ! 6412 2655 Star ! 6412 2633 Star ! 6412 2610 Star ! 6412 2587 Star ! 6412 2564 Star ! 6412 2541 Star ! 6412 2518 Star ! 6412 2496 Star ! 6412 2473 Star ! 6412 2450 Star ! 6412 2427 Star ! 6412 2404 Star ! 6412 2381 Star ! 6412 2359 Star ! 6412 2336 Star ! 6412 2313 Star ! 6412 2290 Star ! 6412 2267 Star ! 6412 2244 Star ! 6412 2221 Star ! 6412 2199 Star ! 6412 2176 Star ! 6412 2153 Star ! 6412 2130 Star ! 6412 2107 Star ! 6412 2084 Star ! 6412 2062 Star ! 6412 2039 Star ! 6412 2016 Star ! 6412 1993 Star ! 6412 1970 Star ! 6412 1947 Star ! 6412 1925 Star ! 6412 1902 Star ! 6412 1879 Star ! 6412 1856 Star ! 6412 1833 Star ! 6412 1810 Star ! 6412 1787 Star ! 6412 1765 Star ! 6412 1742 Star ! 6412 1719 Star ! 6412 1696 Star ! 6412 1673 Star ! 6412 1650 Star ! 6412 1628 Star ! 6412 1605 Star ! 6412 1582 Star ! 6412 1559 Star ! 6412 1536 Star ! 6412 1513 Star ! 6412 1491 Star ! 6412 1468 Star ! 6412 1445 Star ! 6412 1422 Star ! 6412 1399 Star ! 6412 1376 Star ! 6412 1354 Star ! 6412 1331 Star ! 6412 1308 Star ! 6412 1285 Star ! 6412 1262 Star ! 6412 1239 Star ! 6412 1216 Star ! 6412 1194 Star ! 6412 1171 Star ! 6412 1148 Star ! 6412 1125 Star ! 6412 1102 Star ! 6412 1079 Star ! 6412 1057 Star ! 6412 1034 Star ! 6412 1011 Star ! 6412 988 Star ! 6412 965 Star ! 6412 942 Star ! 6412 920 Star ! 6412 897 Star ! 6412 874 Star ! 6412 851 Star ! 6412 828 Star ! 6412 805 Star ! 6412 782 Star ! 6412 760 Star ! 6412 737 Star ! 6412 714 Star ! 6412 691 Star ! 6444 2770 Star ! 6444 2747 Star ! 6444 2724 Star ! 6444 2701 Star ! 6444 2678 Star ! 6444 2655 Star ! 6444 2633 Star ! 6444 2610 Star ! 6444 2587 Star ! 6444 2564 Star ! 6444 2541 Star ! 6444 2518 Star ! 6444 2496 Star ! 6444 2473 Star ! 6444 2450 Star ! 6444 2427 Star ! 6444 2404 Star ! 6444 2381 Star ! 6444 2359 Star ! 6444 2336 Star ! 6444 2313 Star ! 6444 2290 Star ! 6444 2267 Star ! 6444 2244 Star ! 6444 2221 Star ! 6444 2199 Star ! 6444 2176 Star ! 6444 2153 Star ! 6444 2130 Star ! 6444 2107 Star ! 6444 2084 Star ! 6444 2062 Star ! 6444 2039 Star ! 6444 2016 Star ! 6444 1993 Star ! 6444 1970 Star ! 6444 1947 Star ! 6444 1925 Star ! 6444 1902 Star ! 6444 1879 Star ! 6444 1856 Star ! 6444 1833 Star ! 6444 1810 Star ! 6444 1787 Star ! 6444 1765 Star ! 6444 1742 Star ! 6444 1719 Star ! 6444 1696 Star ! 6444 1673 Star ! 6444 1650 Star ! 6444 1628 Star ! 6444 1605 Star ! 6444 1582 Star ! 6444 1559 Star ! 6444 1536 Star ! 6444 1513 Star ! 6444 1491 Star ! 6444 1468 Star ! 6444 1445 Star ! 6444 1422 Star ! 6444 1399 Star ! 6444 1376 Star ! 6444 1354 Star ! 6444 1331 Star ! 6444 1308 Star ! 6444 1285 Star ! 6444 1262 Star ! 6444 1239 Star ! 6444 1216 Star ! 6444 1194 Star ! 6444 1171 Star ! 6444 1148 Star ! 6444 1125 Star ! 6444 1102 Star ! 6444 1079 Star ! 6444 1057 Star ! 6444 1034 Star ! 6444 1011 Star ! 6444 988 Star ! 6444 965 Star ! 6444 942 Star ! 6444 920 Star ! 6444 897 Star ! 6444 874 Star ! 6444 851 Star ! 6444 828 Star ! 6444 805 Star ! 6444 782 Star ! 6444 760 Star ! 6444 737 Star ! 6444 714 Star ! 6444 691 Star ! 6444 668 Star ! 6476 2747 Star ! 6476 2724 Star ! 6476 2701 Star ! 6476 2678 Star ! 6476 2655 Star ! 6476 2633 Star ! 6476 2610 Star ! 6476 2587 Star ! 6476 2564 Star ! 6476 2541 Star ! 6476 2518 Star ! 6476 2496 Star ! 6476 2473 Star ! 6476 2450 Star ! 6476 2427 Star ! 6476 2404 Star ! 6476 2381 Star ! 6476 2359 Star ! 6476 2336 Star ! 6476 2313 Star ! 6476 2290 Star ! 6476 2267 Star ! 6476 2244 Star ! 6476 2221 Star ! 6476 2199 Star ! 6476 2176 Star ! 6476 2153 Star ! 6476 2130 Star ! 6476 2107 Star ! 6476 2084 Star ! 6476 2062 Star ! 6476 2039 Star ! 6476 2016 Star ! 6476 1993 Star ! 6476 1970 Star ! 6476 1947 Star ! 6476 1925 Star ! 6476 1902 Star ! 6476 1879 Star ! 6476 1856 Star ! 6476 1833 Star ! 6476 1810 Star ! 6476 1787 Star ! 6476 1765 Star ! 6476 1742 Star ! 6476 1719 Star ! 6476 1696 Star ! 6476 1673 Star ! 6476 1650 Star ! 6476 1628 Star ! 6476 1605 Star ! 6476 1582 Star ! 6476 1559 Star ! 6476 1536 Star ! 6476 1513 Star ! 6476 1491 Star ! 6476 1468 Star ! 6476 1445 Star ! 6476 1422 Star ! 6476 1399 Star ! 6476 1376 Star ! 6476 1354 Star ! 6476 1331 Star ! 6476 1308 Star ! 6476 1285 Star ! 6476 1262 Star ! 6476 1239 Star ! 6476 1216 Star ! 6476 1194 Star ! 6476 1171 Star ! 6476 1148 Star ! 6476 1125 Star ! 6476 1102 Star ! 6476 1079 Star ! 6476 1057 Star ! 6476 1034 Star ! 6476 1011 Star ! 6476 988 Star ! 6476 965 Star ! 6476 942 Star ! 6476 920 Star ! 6476 897 Star ! 6476 874 Star ! 6476 851 Star ! 6476 828 Star ! 6476 805 Star ! 6476 782 Star ! 6476 760 Star ! 6476 737 Star ! 6476 714 Star ! 6476 691 Star ! 6476 668 Star ! 6476 645 Star ! 6508 2747 Star ! 6508 2724 Star ! 6508 2701 Star ! 6508 2678 Star ! 6508 2655 Star ! 6508 2633 Star ! 6508 2610 Star ! 6508 2587 Star ! 6508 2564 Star ! 6508 2541 Star ! 6508 2518 Star ! 6508 2496 Star ! 6508 2473 Star ! 6508 2450 Star ! 6508 2427 Star ! 6508 2404 Star ! 6508 2381 Star ! 6508 2359 Star ! 6508 2336 Star ! 6508 2313 Star ! 6508 2290 Star ! 6508 2267 Star ! 6508 2244 Star ! 6508 2221 Star ! 6508 2199 Star ! 6508 2176 Star ! 6508 2153 Star ! 6508 2130 Star ! 6508 2107 Star ! 6508 2084 Star ! 6508 2062 Star ! 6508 2039 Star ! 6508 2016 Star ! 6508 1993 Star ! 6508 1970 Star ! 6508 1947 Star ! 6508 1925 Star ! 6508 1902 Star ! 6508 1879 Star ! 6508 1856 Star ! 6508 1833 Star ! 6508 1810 Star ! 6508 1787 Star ! 6508 1765 Star ! 6508 1742 Star ! 6508 1719 Star ! 6508 1696 Star ! 6508 1673 Star ! 6508 1650 Star ! 6508 1628 Star ! 6508 1605 Star ! 6508 1582 Star ! 6508 1559 Star ! 6508 1536 Star ! 6508 1513 Star ! 6508 1491 Star ! 6508 1468 Star ! 6508 1445 Star ! 6508 1422 Star ! 6508 1399 Star ! 6508 1376 Star ! 6508 1354 Star ! 6508 1331 Star ! 6508 1308 Star ! 6508 1285 Star ! 6508 1262 Star ! 6508 1239 Star ! 6508 1216 Star ! 6508 1194 Star ! 6508 1171 Star ! 6508 1148 Star ! 6508 1125 Star ! 6508 1102 Star ! 6508 1079 Star ! 6508 1057 Star ! 6508 1034 Star ! 6508 1011 Star ! 6508 988 Star ! 6508 965 Star ! 6508 942 Star ! 6508 920 Star ! 6508 897 Star ! 6508 874 Star ! 6508 851 Star ! 6508 828 Star ! 6508 805 Star ! 6508 782 Star ! 6508 760 Star ! 6508 737 Star ! 6508 714 Star ! 6508 691 Star ! 6508 668 Star ! 6508 645 Star ! 6508 623 Star ! 6540 2724 Star ! 6540 2701 Star ! 6540 2678 Star ! 6540 2655 Star ! 6540 2633 Star ! 6540 2610 Star ! 6540 2587 Star ! 6540 2564 Star ! 6540 2541 Star ! 6540 2518 Star ! 6540 2496 Star ! 6540 2473 Star ! 6540 2450 Star ! 6540 2427 Star ! 6540 2404 Star ! 6540 2381 Star ! 6540 2359 Star ! 6540 2336 Star ! 6540 2313 Star ! 6540 2290 Star ! 6540 2267 Star ! 6540 2244 Star ! 6540 2221 Star ! 6540 2199 Star ! 6540 2176 Star ! 6540 2153 Star ! 6540 2130 Star ! 6540 2107 Star ! 6540 2084 Star ! 6540 2062 Star ! 6540 2039 Star ! 6540 2016 Star ! 6540 1993 Star ! 6540 1970 Star ! 6540 1947 Star ! 6540 1925 Star ! 6540 1902 Star ! 6540 1879 Star ! 6540 1856 Star ! 6540 1833 Star ! 6540 1810 Star ! 6540 1787 Star ! 6540 1765 Star ! 6540 1742 Star ! 6540 1719 Star ! 6540 1696 Star ! 6540 1673 Star ! 6540 1650 Star ! 6540 1628 Star ! 6540 1605 Star ! 6540 1582 Star ! 6540 1559 Star ! 6540 1536 Star ! 6540 1513 Star ! 6540 1491 Star ! 6540 1468 Star ! 6540 1445 Star ! 6540 1422 Star ! 6540 1399 Star ! 6540 1376 Star ! 6540 1354 Star ! 6540 1331 Star ! 6540 1308 Star ! 6540 1285 Star ! 6540 1262 Star ! 6540 1239 Star ! 6540 1216 Star ! 6540 1194 Star ! 6540 1171 Star ! 6540 1148 Star ! 6540 1125 Star ! 6540 1102 Star ! 6540 1079 Star ! 6540 1057 Star ! 6540 1034 Star ! 6540 1011 Star ! 6540 988 Star ! 6540 965 Star ! 6540 942 Star ! 6540 920 Star ! 6540 897 Star ! 6540 874 Star ! 6540 851 Star ! 6540 828 Star ! 6540 805 Star ! 6540 782 Star ! 6540 760 Star ! 6540 737 Star ! 6540 714 Star ! 6540 691 Star ! 6540 668 Star ! 6540 645 Star ! 6540 623 Star ! 6540 600 Star ! 6572 2724 Star ! 6572 2701 Star ! 6572 2678 Star ! 6572 2655 Star ! 6572 2633 Star ! 6572 2610 Star ! 6572 2587 Star ! 6572 2564 Star ! 6572 2541 Star ! 6572 2518 Star ! 6572 2496 Star ! 6572 2473 Star ! 6572 2450 Star ! 6572 2427 Star ! 6572 2404 Star ! 6572 2381 Star ! 6572 2359 Star ! 6572 2336 Star ! 6572 2313 Star ! 6572 2290 Star ! 6572 2267 Star ! 6572 2244 Star ! 6572 2221 Star ! 6572 2199 Star ! 6572 2176 Star ! 6572 2153 Star ! 6572 2130 Star ! 6572 2107 Star ! 6572 2084 Star ! 6572 2062 Star ! 6572 2039 Star ! 6572 2016 Star ! 6572 1993 Star ! 6572 1970 Star ! 6572 1947 Star ! 6572 1925 Star ! 6572 1902 Star ! 6572 1879 Star ! 6572 1856 Star ! 6572 1833 Star ! 6572 1810 Star ! 6572 1787 Star ! 6572 1765 Star ! 6572 1742 Star ! 6572 1719 Star ! 6572 1696 Star ! 6572 1673 Star ! 6572 1650 Star ! 6572 1628 Star ! 6572 1605 Star ! 6572 1582 Star ! 6572 1559 Star ! 6572 1536 Star ! 6572 1513 Star ! 6572 1491 Star ! 6572 1468 Star ! 6572 1445 Star ! 6572 1422 Star ! 6572 1399 Star ! 6572 1376 Star ! 6572 1354 Star ! 6572 1331 Star ! 6572 1308 Star ! 6572 1285 Star ! 6572 1262 Star ! 6572 1239 Star ! 6572 1216 Star ! 6572 1194 Star ! 6572 1171 Star ! 6572 1148 Star ! 6572 1125 Star ! 6572 1102 Star ! 6572 1079 Star ! 6572 1057 Star ! 6572 1034 Star ! 6572 1011 Star ! 6572 988 Star ! 6572 965 Star ! 6572 942 Star ! 6572 920 Star ! 6572 897 Star ! 6572 874 Star ! 6572 851 Star ! 6572 828 Star ! 6572 805 Star ! 6572 782 Star ! 6572 760 Star ! 6572 737 Star ! 6572 714 Star ! 6572 691 Star ! 6572 668 Star ! 6572 645 Star ! 6572 623 Star ! 6572 600 Star ! 6572 577 Star ! 6604 2701 Star ! 6604 2678 Star ! 6604 2655 Star ! 6604 2633 Star ! 6604 2610 Star ! 6604 2587 Star ! 6604 2564 Star ! 6604 2541 Star ! 6604 2518 Star ! 6604 2496 Star ! 6604 2473 Star ! 6604 2450 Star ! 6604 2427 Star ! 6604 2404 Star ! 6604 2381 Star ! 6604 2359 Star ! 6604 2336 Star ! 6604 2313 Star ! 6604 2290 Star ! 6604 2267 Star ! 6604 2244 Star ! 6604 2221 Star ! 6604 2199 Star ! 6604 2176 Star ! 6604 2153 Star ! 6604 2130 Star ! 6604 2107 Star ! 6604 2084 Star ! 6604 2062 Star ! 6604 2039 Star ! 6604 2016 Star ! 6604 1993 Star ! 6604 1970 Star ! 6604 1947 Star ! 6604 1925 Star ! 6604 1902 Star ! 6604 1879 Star ! 6604 1856 Star ! 6604 1833 Star ! 6604 1810 Star ! 6604 1787 Star ! 6604 1765 Star ! 6604 1742 Star ! 6604 1719 Star ! 6604 1696 Star ! 6604 1673 Star ! 6604 1650 Star ! 6604 1628 Star ! 6604 1605 Star ! 6604 1582 Star ! 6604 1559 Star ! 6604 1536 Star ! 6604 1513 Star ! 6604 1491 Star ! 6604 1468 Star ! 6604 1445 Star ! 6604 1422 Star ! 6604 1399 Star ! 6604 1376 Star ! 6604 1354 Star ! 6604 1331 Star ! 6604 1308 Star ! 6604 1285 Star ! 6604 1262 Star ! 6604 1239 Star ! 6604 1216 Star ! 6604 1194 Star ! 6604 1171 Star ! 6604 1148 Star ! 6604 1125 Star ! 6604 1102 Star ! 6604 1079 Star ! 6604 1057 Star ! 6604 1034 Star ! 6604 1011 Star ! 6604 988 Star ! 6604 965 Star ! 6604 942 Star ! 6604 920 Star ! 6604 897 Star ! 6604 874 Star ! 6604 851 Star ! 6604 828 Star ! 6604 805 Star ! 6604 782 Star ! 6604 760 Star ! 6604 737 Star ! 6604 714 Star ! 6604 691 Star ! 6604 668 Star ! 6604 645 Star ! 6604 623 Star ! 6604 600 Star ! 6604 577 Star ! 6604 554 Star ! 6636 2701 Star ! 6636 2678 Star ! 6636 2655 Star ! 6636 2633 Star ! 6636 2610 Star ! 6636 2587 Star ! 6636 2564 Star ! 6636 2541 Star ! 6636 2518 Star ! 6636 2496 Star ! 6636 2473 Star ! 6636 2450 Star ! 6636 2427 Star ! 6636 2404 Star ! 6636 2381 Star ! 6636 2359 Star ! 6636 2336 Star ! 6636 2313 Star ! 6636 2290 Star ! 6636 2267 Star ! 6636 2244 Star ! 6636 2221 Star ! 6636 2199 Star ! 6636 2176 Star ! 6636 2153 Star ! 6636 2130 Star ! 6636 2107 Star ! 6636 2084 Star ! 6636 2062 Star ! 6636 2039 Star ! 6636 2016 Star ! 6636 1993 Star ! 6636 1970 Star ! 6636 1947 Star ! 6636 1925 Star ! 6636 1902 Star ! 6636 1879 Star ! 6636 1856 Star ! 6636 1833 Star ! 6636 1810 Star ! 6636 1787 Star ! 6636 1765 Star ! 6636 1742 Star ! 6636 1719 Star ! 6636 1696 Star ! 6636 1673 Star ! 6636 1650 Star ! 6636 1628 Star ! 6636 1605 Star ! 6636 1582 Star ! 6636 1559 Star ! 6636 1536 Star ! 6636 1513 Star ! 6636 1491 Star ! 6636 1468 Star ! 6636 1445 Star ! 6636 1422 Star ! 6636 1399 Star ! 6636 1376 Star ! 6636 1354 Star ! 6636 1331 Star ! 6636 1308 Star ! 6636 1285 Star ! 6636 1262 Star ! 6636 1239 Star ! 6636 1216 Star ! 6636 1194 Star ! 6636 1171 Star ! 6636 1148 Star ! 6636 1125 Star ! 6636 1102 Star ! 6636 1079 Star ! 6636 1057 Star ! 6636 1034 Star ! 6636 1011 Star ! 6636 988 Star ! 6636 965 Star ! 6636 942 Star ! 6636 920 Star ! 6636 897 Star ! 6636 874 Star ! 6636 851 Star ! 6636 828 Star ! 6636 805 Star ! 6636 782 Star ! 6636 760 Star ! 6636 737 Star ! 6636 714 Star ! 6636 691 Star ! 6636 668 Star ! 6636 645 Star ! 6636 623 Star ! 6636 600 Star ! 6636 577 Star ! 6636 554 Star ! 6636 531 Star ! 6668 2678 Star ! 6668 2655 Star ! 6668 2633 Star ! 6668 2610 Star ! 6668 2587 Star ! 6668 2564 Star ! 6668 2541 Star ! 6668 2518 Star ! 6668 2496 Star ! 6668 2473 Star ! 6668 2450 Star ! 6668 2427 Star ! 6668 2404 Star ! 6668 2381 Star ! 6668 2359 Star ! 6668 2336 Star ! 6668 2313 Star ! 6668 2290 Star ! 6668 2267 Star ! 6668 2244 Star ! 6668 2221 Star ! 6668 2199 Star ! 6668 2176 Star ! 6668 2153 Star ! 6668 2130 Star ! 6668 2107 Star ! 6668 2084 Star ! 6668 2062 Star ! 6668 2039 Star ! 6668 2016 Star ! 6668 1993 Star ! 6668 1970 Star ! 6668 1947 Star ! 6668 1925 Star ! 6668 1902 Star ! 6668 1879 Star ! 6668 1856 Star ! 6668 1833 Star ! 6668 1810 Star ! 6668 1787 Star ! 6668 1765 Star ! 6668 1742 Star ! 6668 1719 Star ! 6668 1696 Star ! 6668 1673 Star ! 6668 1650 Star ! 6668 1628 Star ! 6668 1605 Star ! 6668 1582 Star ! 6668 1559 Star ! 6668 1536 Star ! 6668 1513 Star ! 6668 1491 Star ! 6668 1468 Star ! 6668 1445 Star ! 6668 1422 Star ! 6668 1399 Star ! 6668 1376 Star ! 6668 1354 Star ! 6668 1331 Star ! 6668 1308 Star ! 6668 1285 Star ! 6668 1262 Star ! 6668 1239 Star ! 6668 1216 Star ! 6668 1194 Star ! 6668 1171 Star ! 6668 1148 Star ! 6668 1125 Star ! 6668 1102 Star ! 6668 1079 Star ! 6668 1057 Star ! 6668 1034 Star ! 6668 1011 Star ! 6668 988 Star ! 6668 965 Star ! 6668 942 Star ! 6668 920 Star ! 6668 897 Star ! 6668 874 Star ! 6668 851 Star ! 6668 828 Star ! 6668 805 Star ! 6668 782 Star ! 6668 760 Star ! 6668 737 Star ! 6668 714 Star ! 6668 691 Star ! 6668 668 Star ! 6668 645 Star ! 6668 623 Star ! 6668 600 Star ! 6668 577 Star ! 6668 554 Star ! 6668 531 Star ! 6668 508 Star ! 6701 2678 Star ! 6701 2655 Star ! 6701 2633 Star ! 6701 2610 Star ! 6701 2587 Star ! 6701 2564 Star ! 6701 2541 Star ! 6701 2518 Star ! 6701 2496 Star ! 6701 2473 Star ! 6701 2450 Star ! 6701 2427 Star ! 6701 2404 Star ! 6701 2381 Star ! 6701 2359 Star ! 6701 2336 Star ! 6701 2313 Star ! 6701 2290 Star ! 6701 2267 Star ! 6701 2244 Star ! 6701 2221 Star ! 6701 2199 Star ! 6701 2176 Star ! 6701 2153 Star ! 6701 2130 Star ! 6701 2107 Star ! 6701 2084 Star ! 6701 2062 Star ! 6701 2039 Star ! 6701 2016 Star ! 6701 1993 Star ! 6701 1970 Star ! 6701 1947 Star ! 6701 1925 Star ! 6701 1902 Star ! 6701 1879 Star ! 6701 1856 Star ! 6701 1833 Star ! 6701 1810 Star ! 6701 1787 Star ! 6701 1765 Star ! 6701 1742 Star ! 6701 1719 Star ! 6701 1696 Star ! 6701 1673 Star ! 6701 1650 Star ! 6701 1628 Star ! 6701 1605 Star ! 6701 1582 Star ! 6701 1559 Star ! 6701 1536 Star ! 6701 1513 Star ! 6701 1491 Star ! 6701 1468 Star ! 6701 1445 Star ! 6701 1422 Star ! 6701 1399 Star ! 6701 1376 Star ! 6701 1354 Star ! 6701 1331 Star ! 6701 1308 Star ! 6701 1285 Star ! 6701 1262 Star ! 6701 1239 Star ! 6701 1216 Star ! 6701 1194 Star ! 6701 1171 Star ! 6701 1148 Star ! 6701 1125 Star ! 6701 1102 Star ! 6701 1079 Star ! 6701 1057 Star ! 6701 1034 Star ! 6701 1011 Star ! 6701 988 Star ! 6701 965 Star ! 6701 942 Star ! 6701 920 Star ! 6701 897 Star ! 6701 874 Star ! 6701 851 Star ! 6701 828 Star ! 6701 805 Star ! 6701 782 Star ! 6701 760 Star ! 6701 737 Star ! 6701 714 Star ! 6701 691 Star ! 6701 668 Star ! 6701 645 Star ! 6701 623 Star ! 6701 600 Star ! 6701 577 Star ! 6701 554 Star ! 6701 531 Star ! 6701 508 Star ! 6701 486 Star ! 6733 2655 Star ! 6733 2633 Star ! 6733 2610 Star ! 6733 2587 Star ! 6733 2564 Star ! 6733 2541 Star ! 6733 2518 Star ! 6733 2496 Star ! 6733 2473 Star ! 6733 2450 Star ! 6733 2427 Star ! 6733 2404 Star ! 6733 2381 Star ! 6733 2359 Star ! 6733 2336 Star ! 6733 2313 Star ! 6733 2290 Star ! 6733 2267 Star ! 6733 2244 Star ! 6733 2221 Star ! 6733 2199 Star ! 6733 2176 Star ! 6733 2153 Star ! 6733 2130 Star ! 6733 2107 Star ! 6733 2084 Star ! 6733 2062 Star ! 6733 2039 Star ! 6733 2016 Star ! 6733 1993 Star ! 6733 1970 Star ! 6733 1947 Star ! 6733 1925 Star ! 6733 1902 Star ! 6733 1879 Star ! 6733 1856 Star ! 6733 1833 Star ! 6733 1810 Star ! 6733 1787 Star ! 6733 1765 Star ! 6733 1742 Star ! 6733 1719 Star ! 6733 1696 Star ! 6733 1673 Star ! 6733 1650 Star ! 6733 1628 Star ! 6733 1605 Star ! 6733 1582 Star ! 6733 1559 Star ! 6733 1536 Star ! 6733 1513 Star ! 6733 1491 Star ! 6733 1468 Star ! 6733 1445 Star ! 6733 1422 Star ! 6733 1399 Star ! 6733 1376 Star ! 6733 1354 Star ! 6733 1331 Star ! 6733 1308 Star ! 6733 1285 Star ! 6733 1262 Star ! 6733 1239 Star ! 6733 1216 Star ! 6733 1194 Star ! 6733 1171 Star ! 6733 1148 Star ! 6733 1125 Star ! 6733 1102 Star ! 6733 1079 Star ! 6733 1057 Star ! 6733 1034 Star ! 6733 1011 Star ! 6733 988 Star ! 6733 965 Star ! 6733 942 Star ! 6733 920 Star ! 6733 897 Star ! 6733 874 Star ! 6733 851 Star ! 6733 828 Star ! 6733 805 Star ! 6733 782 Star ! 6733 760 Star ! 6733 737 Star ! 6733 714 Star ! 6733 691 Star ! 6733 668 Star ! 6733 645 Star ! 6733 623 Star ! 6733 600 Star ! 6733 577 Star ! 6733 554 Star ! 6733 531 Star ! 6733 508 Star ! 6733 486 Star ! 6733 463 Star ! 6765 2655 Star ! 6765 2633 Star ! 6765 2610 Star ! 6765 2587 Star ! 6765 2564 Star ! 6765 2541 Star ! 6765 2518 Star ! 6765 2496 Star ! 6765 2473 Star ! 6765 2450 Star ! 6765 2427 Star ! 6765 2404 Star ! 6765 2381 Star ! 6765 2359 Star ! 6765 2336 Star ! 6765 2313 Star ! 6765 2290 Star ! 6765 2267 Star ! 6765 2244 Star ! 6765 2221 Star ! 6765 2199 Star ! 6765 2176 Star ! 6765 2153 Star ! 6765 2130 Star ! 6765 2107 Star ! 6765 2084 Star ! 6765 2062 Star ! 6765 2039 Star ! 6765 2016 Star ! 6765 1993 Star ! 6765 1970 Star ! 6765 1947 Star ! 6765 1925 Star ! 6765 1902 Star ! 6765 1879 Star ! 6765 1856 Star ! 6765 1833 Star ! 6765 1810 Star ! 6765 1787 Star ! 6765 1765 Star ! 6765 1742 Star ! 6765 1719 Star ! 6765 1696 Star ! 6765 1673 Star ! 6765 1650 Star ! 6765 1628 Star ! 6765 1605 Star ! 6765 1582 Star ! 6765 1559 Star ! 6765 1536 Star ! 6765 1513 Star ! 6765 1491 Star ! 6765 1468 Star ! 6765 1445 Star ! 6765 1422 Star ! 6765 1399 Star ! 6765 1376 Star ! 6765 1354 Star ! 6765 1331 Star ! 6765 1308 Star ! 6765 1285 Star ! 6765 1262 Star ! 6765 1239 Star ! 6765 1216 Star ! 6765 1194 Star ! 6765 1171 Star ! 6765 1148 Star ! 6765 1125 Star ! 6765 1102 Star ! 6765 1079 Star ! 6765 1057 Star ! 6765 1034 Star ! 6765 1011 Star ! 6765 988 Star ! 6765 965 Star ! 6765 942 Star ! 6765 920 Star ! 6765 897 Star ! 6765 874 Star ! 6765 851 Star ! 6765 828 Star ! 6765 805 Star ! 6765 782 Star ! 6765 760 Star ! 6765 737 Star ! 6765 714 Star ! 6765 691 Star ! 6765 668 Star ! 6765 645 Star ! 6765 623 Star ! 6765 600 Star ! 6765 577 Star ! 6765 554 Star ! 6765 531 Star ! 6765 508 Star ! 6765 486 Star ! 6765 463 Star ! 6765 440 Star ! 6797 2633 Star ! 6797 2610 Star ! 6797 2587 Star ! 6797 2564 Star ! 6797 2541 Star ! 6797 2518 Star ! 6797 2496 Star ! 6797 2473 Star ! 6797 2450 Star ! 6797 2427 Star ! 6797 2404 Star ! 6797 2381 Star ! 6797 2359 Star ! 6797 2336 Star ! 6797 2313 Star ! 6797 2290 Star ! 6797 2267 Star ! 6797 2244 Star ! 6797 2221 Star ! 6797 2199 Star ! 6797 2176 Star ! 6797 2153 Star ! 6797 2130 Star ! 6797 2107 Star ! 6797 2084 Star ! 6797 2062 Star ! 6797 2039 Star ! 6797 2016 Star ! 6797 1993 Star ! 6797 1970 Star ! 6797 1947 Star ! 6797 1925 Star ! 6797 1902 Star ! 6797 1879 Star ! 6797 1856 Star ! 6797 1833 Star ! 6797 1810 Star ! 6797 1787 Star ! 6797 1765 Star ! 6797 1742 Star ! 6797 1719 Star ! 6797 1696 Star ! 6797 1673 Star ! 6797 1650 Star ! 6797 1628 Star ! 6797 1605 Star ! 6797 1582 Star ! 6797 1559 Star ! 6797 1536 Star ! 6797 1513 Star ! 6797 1491 Star ! 6797 1468 Star ! 6797 1445 Star ! 6797 1422 Star ! 6797 1399 Star ! 6797 1376 Star ! 6797 1354 Star ! 6797 1331 Star ! 6797 1308 Star ! 6797 1285 Star ! 6797 1262 Star ! 6797 1239 Star ! 6797 1216 Star ! 6797 1194 Star ! 6797 1171 Star ! 6797 1148 Star ! 6797 1125 Star ! 6797 1102 Star ! 6797 1079 Star ! 6797 1057 Star ! 6797 1034 Star ! 6797 1011 Star ! 6797 988 Star ! 6797 965 Star ! 6797 942 Star ! 6797 920 Star ! 6797 897 Star ! 6797 874 Star ! 6797 851 Star ! 6797 828 Star ! 6797 805 Star ! 6797 782 Star ! 6797 760 Star ! 6797 737 Star ! 6797 714 Star ! 6797 691 Star ! 6797 668 Star ! 6797 645 Star ! 6797 623 Star ! 6797 600 Star ! 6797 577 Star ! 6797 554 Star ! 6797 531 Star ! 6797 508 Star ! 6797 486 Star ! 6797 463 Star ! 6797 440 Star ! 6797 417 Star ! 6829 2633 Star ! 6829 2610 Star ! 6829 2587 Star ! 6829 2564 Star ! 6829 2541 Star ! 6829 2518 Star ! 6829 2496 Star ! 6829 2473 Star ! 6829 2450 Star ! 6829 2427 Star ! 6829 2404 Star ! 6829 2381 Star ! 6829 2359 Star ! 6829 2336 Star ! 6829 2313 Star ! 6829 2290 Star ! 6829 2267 Star ! 6829 2244 Star ! 6829 2221 Star ! 6829 2199 Star ! 6829 2176 Star ! 6829 2153 Star ! 6829 2130 Star ! 6829 2107 Star ! 6829 2084 Star ! 6829 2062 Star ! 6829 2039 Star ! 6829 2016 Star ! 6829 1993 Star ! 6829 1970 Star ! 6829 1947 Star ! 6829 1925 Star ! 6829 1902 Star ! 6829 1879 Star ! 6829 1856 Star ! 6829 1833 Star ! 6829 1810 Star ! 6829 1787 Star ! 6829 1765 Star ! 6829 1742 Star ! 6829 1719 Star ! 6829 1696 Star ! 6829 1673 Star ! 6829 1650 Star ! 6829 1628 Star ! 6829 1605 Star ! 6829 1582 Star ! 6829 1559 Star ! 6829 1536 Star ! 6829 1513 Star ! 6829 1491 Star ! 6829 1468 Star ! 6829 1445 Star ! 6829 1422 Star ! 6829 1399 Star ! 6829 1376 Star ! 6829 1354 Star ! 6829 1331 Star ! 6829 1308 Star ! 6829 1285 Star ! 6829 1262 Star ! 6829 1239 Star ! 6829 1216 Star ! 6829 1194 Star ! 6829 1171 Star ! 6829 1148 Star ! 6829 1125 Star ! 6829 1102 Star ! 6829 1079 Star ! 6829 1057 Star ! 6829 1034 Star ! 6829 1011 Star ! 6829 988 Star ! 6829 965 Star ! 6829 942 Star ! 6829 920 Star ! 6829 897 Star ! 6829 874 Star ! 6829 851 Star ! 6829 828 Star ! 6829 805 Star ! 6829 782 Star ! 6829 760 Star ! 6829 737 Star ! 6829 714 Star ! 6829 691 Star ! 6829 668 Star ! 6829 645 Star ! 6829 623 Star ! 6829 600 Star ! 6829 577 Star ! 6829 554 Star ! 6829 531 Star ! 6829 508 Star ! 6829 486 Star ! 6829 463 Star ! 6829 440 Star ! 6829 417 Star ! 6829 394 Star ! 6861 2610 Star ! 6861 2587 Star ! 6861 2564 Star ! 6861 2541 Star ! 6861 2518 Star ! 6861 2496 Star ! 6861 2473 Star ! 6861 2450 Star ! 6861 2427 Star ! 6861 2404 Star ! 6861 2381 Star ! 6861 2359 Star ! 6861 2336 Star ! 6861 2313 Star ! 6861 2290 Star ! 6861 2267 Star ! 6861 2244 Star ! 6861 2221 Star ! 6861 2199 Star ! 6861 2176 Star ! 6861 2153 Star ! 6861 2130 Star ! 6861 2107 Star ! 6861 2084 Star ! 6861 2062 Star ! 6861 2039 Star ! 6861 2016 Star ! 6861 1993 Star ! 6861 1970 Star ! 6861 1947 Star ! 6861 1925 Star ! 6861 1902 Star ! 6861 1879 Star ! 6861 1856 Star ! 6861 1833 Star ! 6861 1810 Star ! 6861 1787 Star ! 6861 1765 Star ! 6861 1742 Star ! 6861 1719 Star ! 6861 1696 Star ! 6861 1673 Star ! 6861 1650 Star ! 6861 1628 Star ! 6861 1605 Star ! 6861 1582 Star ! 6861 1559 Star ! 6861 1536 Star ! 6861 1513 Star ! 6861 1491 Star ! 6861 1468 Star ! 6861 1445 Star ! 6861 1422 Star ! 6861 1399 Star ! 6861 1376 Star ! 6861 1354 Star ! 6861 1331 Star ! 6861 1308 Star ! 6861 1285 Star ! 6861 1262 Star ! 6861 1239 Star ! 6861 1216 Star ! 6861 1194 Star ! 6861 1171 Star ! 6861 1148 Star ! 6861 1125 Star ! 6861 1102 Star ! 6861 1079 Star ! 6861 1057 Star ! 6861 1034 Star ! 6861 1011 Star ! 6861 988 Star ! 6861 965 Star ! 6861 942 Star ! 6861 920 Star ! 6861 897 Star ! 6861 874 Star ! 6861 851 Star ! 6861 828 Star ! 6861 805 Star ! 6861 782 Star ! 6861 760 Star ! 6861 737 Star ! 6861 714 Star ! 6861 691 Star ! 6861 668 Star ! 6861 645 Star ! 6861 623 Star ! 6861 600 Star ! 6861 577 Star ! 6861 554 Star ! 6861 531 Star ! 6861 508 Star ! 6861 486 Star ! 6861 463 Star ! 6861 440 Star ! 6861 417 Star ! 6861 394 Star ! 6861 371 Star ! 6893 2610 Star ! 6893 2587 Star ! 6893 2564 Star ! 6893 2541 Star ! 6893 2518 Star ! 6893 2496 Star ! 6893 2473 Star ! 6893 2450 Star ! 6893 2427 Star ! 6893 2404 Star ! 6893 2381 Star ! 6893 2359 Star ! 6893 2336 Star ! 6893 2313 Star ! 6893 2290 Star ! 6893 2267 Star ! 6893 2244 Star ! 6893 2221 Star ! 6893 2199 Star ! 6893 2176 Star ! 6893 2153 Star ! 6893 2130 Star ! 6893 2107 Star ! 6893 2084 Star ! 6893 2062 Star ! 6893 2039 Star ! 6893 2016 Star ! 6893 1993 Star ! 6893 1970 Star ! 6893 1947 Star ! 6893 1925 Star ! 6893 1902 Star ! 6893 1879 Star ! 6893 1856 Star ! 6893 1833 Star ! 6893 1810 Star ! 6893 1787 Star ! 6893 1765 Star ! 6893 1742 Star ! 6893 1719 Star ! 6893 1696 Star ! 6893 1673 Star ! 6893 1650 Star ! 6893 1628 Star ! 6893 1605 Star ! 6893 1582 Star ! 6893 1559 Star ! 6893 1536 Star ! 6893 1513 Star ! 6893 1491 Star ! 6893 1468 Star ! 6893 1445 Star ! 6893 1422 Star ! 6893 1399 Star ! 6893 1376 Star ! 6893 1354 Star ! 6893 1331 Star ! 6893 1308 Star ! 6893 1285 Star ! 6893 1262 Star ! 6893 1239 Star ! 6893 1216 Star ! 6893 1194 Star ! 6893 1171 Star ! 6893 1148 Star ! 6893 1125 Star ! 6893 1102 Star ! 6893 1079 Star ! 6893 1057 Star ! 6893 1034 Star ! 6893 1011 Star ! 6893 988 Star ! 6893 965 Star ! 6893 942 Star ! 6893 920 Star ! 6893 897 Star ! 6893 874 Star ! 6893 851 Star ! 6893 828 Star ! 6893 805 Star ! 6893 782 Star ! 6893 760 Star ! 6893 737 Star ! 6893 714 Star ! 6893 691 Star ! 6893 668 Star ! 6893 645 Star ! 6893 623 Star ! 6893 600 Star ! 6893 577 Star ! 6893 554 Star ! 6893 531 Star ! 6893 508 Star ! 6893 486 Star ! 6893 463 Star ! 6893 440 Star ! 6893 417 Star ! 6893 394 Star ! 6893 371 Star ! 6893 349 Star ! 6925 2587 Star ! 6925 2564 Star ! 6925 2541 Star ! 6925 2518 Star ! 6925 2496 Star ! 6925 2473 Star ! 6925 2450 Star ! 6925 2427 Star ! 6925 2404 Star ! 6925 2381 Star ! 6925 2359 Star ! 6925 2336 Star ! 6925 2313 Star ! 6925 2290 Star ! 6925 2267 Star ! 6925 2244 Star ! 6925 2221 Star ! 6925 2199 Star ! 6925 2176 Star ! 6925 2153 Star ! 6925 2130 Star ! 6925 2107 Star ! 6925 2084 Star ! 6925 2062 Star ! 6925 2039 Star ! 6925 2016 Star ! 6925 1993 Star ! 6925 1970 Star ! 6925 1947 Star ! 6925 1925 Star ! 6925 1902 Star ! 6925 1879 Star ! 6925 1856 Star ! 6925 1833 Star ! 6925 1810 Star ! 6925 1787 Star ! 6925 1765 Star ! 6925 1742 Star ! 6925 1719 Star ! 6925 1696 Star ! 6925 1673 Star ! 6925 1650 Star ! 6925 1628 Star ! 6925 1605 Star ! 6925 1582 Star ! 6925 1559 Star ! 6925 1536 Star ! 6925 1513 Star ! 6925 1491 Star ! 6925 1468 Star ! 6925 1445 Star ! 6925 1422 Star ! 6925 1399 Star ! 6925 1376 Star ! 6925 1354 Star ! 6925 1331 Star ! 6925 1308 Star ! 6925 1285 Star ! 6925 1262 Star ! 6925 1239 Star ! 6925 1216 Star ! 6925 1194 Star ! 6925 1171 Star ! 6925 1148 Star ! 6925 1125 Star ! 6925 1102 Star ! 6925 1079 Star ! 6925 1057 Star ! 6925 1034 Star ! 6925 1011 Star ! 6925 988 Star ! 6925 965 Star ! 6925 942 Star ! 6925 920 Star ! 6925 897 Star ! 6925 874 Star ! 6925 851 Star ! 6925 828 Star ! 6925 805 Star ! 6925 782 Star ! 6925 760 Star ! 6925 737 Star ! 6925 714 Star ! 6925 691 Star ! 6925 668 Star ! 6925 645 Star ! 6925 623 Star ! 6925 600 Star ! 6925 577 Star ! 6925 554 Star ! 6925 531 Star ! 6925 508 Star ! 6925 486 Star ! 6925 463 Star ! 6925 440 Star ! 6925 417 Star ! 6925 394 Star ! 6925 371 Star ! 6925 349 Star ! 6925 326 Star ! 6957 2587 Star ! 6957 2564 Star ! 6957 2541 Star ! 6957 2518 Star ! 6957 2496 Star ! 6957 2473 Star ! 6957 2450 Star ! 6957 2427 Star ! 6957 2404 Star ! 6957 2381 Star ! 6957 2359 Star ! 6957 2336 Star ! 6957 2313 Star ! 6957 2290 Star ! 6957 2267 Star ! 6957 2244 Star ! 6957 2221 Star ! 6957 2199 Star ! 6957 2176 Star ! 6957 2153 Star ! 6957 2130 Star ! 6957 2107 Star ! 6957 2084 Star ! 6957 2062 Star ! 6957 2039 Star ! 6957 2016 Star ! 6957 1993 Star ! 6957 1970 Star ! 6957 1947 Star ! 6957 1925 Star ! 6957 1902 Star ! 6957 1879 Star ! 6957 1856 Star ! 6957 1833 Star ! 6957 1810 Star ! 6957 1787 Star ! 6957 1765 Star ! 6957 1742 Star ! 6957 1719 Star ! 6957 1696 Star ! 6957 1673 Star ! 6957 1650 Star ! 6957 1628 Star ! 6957 1605 Star ! 6957 1582 Star ! 6957 1559 Star ! 6957 1536 Star ! 6957 1513 Star ! 6957 1491 Star ! 6957 1468 Star ! 6957 1445 Star ! 6957 1422 Star ! 6957 1399 Star ! 6957 1376 Star ! 6957 1354 Star ! 6957 1331 Star ! 6957 1308 Star ! 6957 1285 Star ! 6957 1262 Star ! 6957 1239 Star ! 6957 1216 Star ! 6957 1194 Star ! 6957 1171 Star ! 6957 1148 Star ! 6957 1125 Star ! 6957 1102 Star ! 6957 1079 Star ! 6957 1057 Star ! 6957 1034 Star ! 6957 1011 Star ! 6957 988 Star ! 6957 965 Star ! 6957 942 Star ! 6957 920 Star ! 6957 897 Star ! 6957 874 Star ! 6957 851 Star ! 6957 828 Star ! 6957 805 Star ! 6957 782 Star ! 6957 760 Star ! 6957 737 Star ! 6957 714 Star ! 6957 691 Star ! 6957 668 Star ! 6957 645 Star ! 6957 623 Star ! 6957 600 Star ! 6957 577 Star ! 6957 554 Star ! 6957 531 Star ! 6957 508 Star ! 6957 486 Star ! 6957 463 Star ! 6957 440 Star ! 6957 417 Star ! 6957 394 Star ! 6957 371 Star ! 6957 349 Star ! 6957 326 Star ! 6957 303 Star ! % End plot #1 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/spchol.pdf and octave-3.0.4/doc/interpreter/spchol.pdf differ diff -cNr octave-3.0.3/doc/interpreter/spcholperm.eps octave-3.0.4/doc/interpreter/spcholperm.eps *** octave-3.0.3/doc/interpreter/spcholperm.eps 2008-09-24 10:31:56.000000000 +0200 --- octave-3.0.4/doc/interpreter/spcholperm.eps 2009-01-29 09:11:08.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: spcholperm.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:31:56 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: spcholperm.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:08 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (spcholperm.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:31:56 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (spcholperm.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:08 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,1059 **** } ifelse 0.500 UL LTb ! 490 4872 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 4872 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 490 3730 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3730 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MRshow 0.500 UL LTb ! 490 2587 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2587 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MRshow 0.500 UL LTb ! 490 1445 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 1445 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MRshow 0.500 UL LTb ! 490 303 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 303 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MRshow 0.500 UL LTb ! 490 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 490 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 2100 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2100 140 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MCshow 0.500 UL LTb ! 3710 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3710 140 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MCshow 0.500 UL LTb ! 5320 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5320 140 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MCshow 0.500 UL LTb ! 6930 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6930 140 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL LTb 1.000 UP 0.500 UL LT0 ! 0.00 0.00 1.00 C 522 4849 Star ! 554 4826 Star ! 587 4849 Star ! 587 4826 Star ! 587 4803 Star ! 619 4781 Star ! 651 4758 Star ! 683 4781 Star ! 683 4758 Star ! 683 4735 Star ! 715 4803 Star ! 715 4735 Star ! 715 4712 Star ! 748 4689 Star ! 780 4666 Star ! 812 4689 Star ! 812 4666 Star ! 812 4644 Star ! 844 4621 Star ! 876 4598 Star ! 909 4621 Star ! 909 4598 Star ! 909 4575 Star ! 941 4644 Star ! 941 4575 Star ! 941 4552 Star ! 973 4712 Star ! 973 4552 Star ! 973 4529 Star ! 1005 4506 Star ! 1037 4484 Star ! 1070 4506 Star ! 1070 4484 Star ! 1070 4461 Star ! 1102 4438 Star ! 1134 4415 Star ! 1166 4438 Star ! 1166 4415 Star ! 1166 4392 Star ! 1198 4461 Star ! 1198 4392 Star ! 1198 4369 Star ! 1231 4347 Star ! 1263 4324 Star ! 1295 4347 Star ! 1295 4324 Star ! 1295 4301 Star ! 1327 4278 Star ! 1359 4255 Star ! 1392 4278 Star ! 1392 4255 Star ! 1392 4232 Star ! 1424 4301 Star ! 1424 4232 Star ! 1424 4209 Star ! 1456 4369 Star ! 1456 4209 Star ! 1456 4187 Star ! 1488 4529 Star ! 1488 4187 Star ! 1488 4164 Star ! 1520 4141 Star ! 1553 4118 Star ! 1585 4141 Star ! 1585 4118 Star ! 1585 4095 Star ! 1617 4072 Star ! 1649 4050 Star ! 1681 4072 Star ! 1681 4050 Star ! 1681 4027 Star ! 1714 4095 Star ! 1714 4027 Star ! 1714 4004 Star ! 1746 3981 Star ! 1778 3958 Star ! 1810 3981 Star ! 1810 3958 Star ! 1810 3935 Star ! 1842 3912 Star ! 1875 3890 Star ! 1907 3912 Star ! 1907 3890 Star ! 1907 3867 Star ! 1939 3935 Star ! 1939 3867 Star ! 1939 3844 Star ! 1971 4004 Star ! 1971 3844 Star ! 1971 3821 Star ! 2003 3798 Star ! 2036 3775 Star ! 2068 3798 Star ! 2068 3775 Star ! 2068 3753 Star ! 2100 3730 Star ! 2132 3707 Star ! 2164 3730 Star ! 2164 3707 Star ! 2164 3684 Star ! 2197 3753 Star ! 2197 3684 Star ! 2197 3661 Star ! 2229 3638 Star ! 2261 3615 Star ! 2293 3638 Star ! 2293 3615 Star ! 2293 3593 Star ! 2325 3570 Star ! 2358 3547 Star ! 2390 3570 Star ! 2390 3547 Star ! 2390 3524 Star ! 2422 3593 Star ! 2422 3524 Star ! 2422 3501 Star ! 2454 3661 Star ! 2454 3501 Star ! 2454 3478 Star ! 2486 3821 Star ! 2486 3478 Star ! 2486 3456 Star ! 2519 4164 Star ! 2519 3456 Star ! 2519 3433 Star ! 2551 3410 Star ! 2583 3387 Star ! 2615 3410 Star ! 2615 3387 Star ! 2615 3364 Star ! 2647 3341 Star ! 2680 3318 Star ! 2712 3341 Star ! 2712 3318 Star ! 2712 3296 Star ! 2744 3364 Star ! 2744 3296 Star ! 2744 3273 Star ! 2776 3250 Star ! 2808 3227 Star ! 2841 3250 Star ! 2841 3227 Star ! 2841 3204 Star ! 2873 3181 Star ! 2905 3159 Star ! 2937 3181 Star ! 2937 3159 Star ! 2937 3136 Star ! 2969 3204 Star ! 2969 3136 Star ! 2969 3113 Star ! 3002 3273 Star ! 3002 3113 Star ! 3002 3090 Star ! 3034 3067 Star ! 3066 3044 Star ! 3098 3067 Star ! 3098 3044 Star ! 3098 3021 Star ! 3130 2999 Star ! 3163 2976 Star ! 3195 2999 Star ! 3195 2976 Star ! 3195 2953 Star ! 3227 3021 Star ! 3227 2953 Star ! 3227 2930 Star ! 3259 2907 Star ! 3291 2884 Star ! 3324 2907 Star ! 3324 2884 Star ! 3324 2862 Star ! 3356 2839 Star ! 3388 2816 Star ! 3420 2839 Star ! 3420 2816 Star ! 3420 2793 Star ! 3452 2862 Star ! 3452 2793 Star ! 3452 2770 Star ! 3485 2930 Star ! 3485 2770 Star ! 3485 2747 Star ! 3517 3090 Star ! 3517 2747 Star ! 3517 2724 Star ! 3549 2702 Star ! 3581 2679 Star ! 3613 2702 Star ! 3613 2679 Star ! 3613 2656 Star ! 3646 2633 Star ! 3678 2610 Star ! 3710 2633 Star ! 3710 2610 Star ! 3710 2587 Star ! 3742 2656 Star ! 3742 2587 Star ! 3742 2565 Star ! 3774 2542 Star ! 3806 2519 Star ! 3839 2542 Star ! 3839 2519 Star ! 3839 2496 Star ! 3871 2473 Star ! 3903 2450 Star ! 3935 2473 Star ! 3935 2450 Star ! 3935 2428 Star ! 3967 2496 Star ! 3967 2428 Star ! 3967 2405 Star ! 4000 2565 Star ! 4000 2405 Star ! 4000 2382 Star ! 4032 2359 Star ! 4064 2336 Star ! 4096 2359 Star ! 4096 2336 Star ! 4096 2313 Star ! 4128 2290 Star ! 4161 2268 Star ! 4193 2290 Star ! 4193 2268 Star ! 4193 2245 Star ! 4225 2313 Star ! 4225 2245 Star ! 4225 2222 Star ! 4257 2199 Star ! 4289 2176 Star ! 4322 2199 Star ! 4322 2176 Star ! 4322 2153 Star ! 4354 2131 Star ! 4386 2108 Star ! 4418 2131 Star ! 4418 2108 Star ! 4418 2085 Star ! 4450 2153 Star ! 4450 2085 Star ! 4450 2062 Star ! 4483 2222 Star ! 4483 2062 Star ! 4483 2039 Star ! 4515 2382 Star ! 4515 2039 Star ! 4515 2016 Star ! 4547 2724 Star ! 4547 2016 Star ! 4547 1993 Star ! 4579 3433 Star ! 4579 1993 Star ! 4579 1971 Star ! 4611 1948 Star ! 4644 1925 Star ! 4676 1948 Star ! 4676 1925 Star ! 4676 1902 Star ! 4708 1879 Star ! 4740 1856 Star ! 4772 1879 Star ! 4772 1856 Star ! 4772 1834 Star ! 4805 1902 Star ! 4805 1834 Star ! 4805 1811 Star ! 4837 1788 Star ! 4869 1765 Star ! 4901 1788 Star ! 4901 1765 Star ! 4901 1742 Star ! 4933 1719 Star ! 4966 1696 Star ! 4998 1719 Star ! 4998 1696 Star ! 4998 1674 Star ! 5030 1742 Star ! 5030 1674 Star ! 5030 1651 Star ! 5062 1811 Star ! 5062 1651 Star ! 5062 1628 Star ! 5094 1605 Star ! 5127 1582 Star ! 5159 1605 Star ! 5159 1582 Star ! 5159 1559 Star ! 5191 1537 Star ! 5223 1514 Star ! 5255 1537 Star ! 5255 1514 Star ! 5255 1491 Star ! 5288 1559 Star ! 5288 1491 Star ! 5288 1468 Star ! 5320 1445 Star ! 5352 1422 Star ! 5384 1445 Star ! 5384 1422 Star ! 5384 1399 Star ! 5416 1377 Star ! 5449 1354 Star ! 5481 1377 Star ! 5481 1354 Star ! 5481 1331 Star ! 5513 1399 Star ! 5513 1331 Star ! 5513 1308 Star ! 5545 1468 Star ! 5545 1308 Star ! 5545 1285 Star ! 5577 1628 Star ! 5577 1285 Star ! 5577 1262 Star ! 5610 1240 Star ! 5642 1217 Star ! 5674 1240 Star ! 5674 1217 Star ! 5674 1194 Star ! 5706 1171 Star ! 5738 1148 Star ! 5771 1171 Star 5771 1148 Star ! 5771 1125 Star ! 5803 1194 Star 5803 1125 Star ! 5803 1102 Star ! 5835 1080 Star ! 5867 1057 Star ! 5899 1080 Star 5899 1057 Star ! 5899 1034 Star ! 5932 1011 Star ! 5964 988 Star ! 5996 1011 Star ! 5996 988 Star ! 5996 965 Star ! 6028 1034 Star ! 6028 965 Star ! 6028 943 Star ! 6060 1102 Star ! 6060 943 Star ! 6060 920 Star ! 6093 897 Star ! 6125 874 Star ! 6157 897 Star ! 6157 874 Star ! 6157 851 Star ! 6189 828 Star ! 6221 805 Star ! 6254 828 Star ! 6254 805 Star ! 6254 783 Star ! 6286 851 Star ! 6286 783 Star ! 6286 760 Star ! 6318 737 Star ! 6350 714 Star ! 6382 737 Star ! 6382 714 Star ! 6382 691 Star ! 6415 668 Star ! 6447 646 Star ! 6479 668 Star ! 6479 646 Star ! 6479 623 Star ! 6511 691 Star ! 6511 623 Star ! 6511 600 Star ! 6543 760 Star ! 6543 600 Star ! 6543 577 Star ! 6576 554 Star ! 6608 531 Star ! 6640 554 Star ! 6640 531 Star ! 6640 508 Star ! 6672 486 Star ! 6704 463 Star ! 6737 486 Star ! 6737 463 Star ! 6737 440 Star ! 6769 508 Star ! 6769 440 Star ! 6769 417 Star ! 6801 577 Star ! 6801 417 Star ! 6801 394 Star ! 6833 920 Star ! 6833 394 Star ! 6833 371 Star ! 6865 1262 Star ! 6865 371 Star ! 6865 349 Star ! 6898 326 Star ! 6930 1971 Star ! 6930 349 Star ! 6930 326 Star ! 6930 303 Star 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL --- 543,1070 ---- } ifelse 0.500 UL LTb ! 546 4871 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 4871 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 546 3729 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3729 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MRshow 0.500 UL LTb ! 546 2587 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2587 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MRshow 0.500 UL LTb ! 546 1445 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 1445 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MRshow 0.500 UL LTb ! 546 303 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 303 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MRshow 0.500 UL LTb ! 546 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 546 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 2149 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2149 140 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MCshow 0.500 UL LTb ! 3751 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3751 140 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MCshow 0.500 UL LTb ! 5354 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5354 140 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MCshow 0.500 UL LTb ! 6957 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6957 140 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 1.000 UP 0.500 UL LT0 ! 0.00 0.00 1.00 C 578 4848 Star ! 610 4825 Star ! 642 4848 Star ! 642 4825 Star ! 642 4802 Star ! 674 4780 Star ! 706 4757 Star ! 738 4780 Star ! 738 4757 Star ! 738 4734 Star ! 770 4802 Star ! 770 4734 Star ! 770 4711 Star ! 802 4688 Star ! 834 4665 Star ! 867 4688 Star ! 867 4665 Star ! 867 4643 Star ! 899 4620 Star ! 931 4597 Star ! 963 4620 Star ! 963 4597 Star ! 963 4574 Star ! 995 4643 Star ! 995 4574 Star ! 995 4551 Star ! 1027 4711 Star ! 1027 4551 Star ! 1027 4528 Star ! 1059 4506 Star ! 1091 4483 Star ! 1123 4506 Star ! 1123 4483 Star ! 1123 4460 Star ! 1155 4437 Star ! 1187 4414 Star ! 1219 4437 Star ! 1219 4414 Star ! 1219 4391 Star ! 1251 4460 Star ! 1251 4391 Star ! 1251 4369 Star ! 1283 4346 Star ! 1315 4323 Star ! 1347 4346 Star ! 1347 4323 Star ! 1347 4300 Star ! 1379 4277 Star ! 1411 4254 Star ! 1444 4277 Star ! 1444 4254 Star ! 1444 4231 Star ! 1476 4300 Star ! 1476 4231 Star ! 1476 4209 Star ! 1508 4369 Star ! 1508 4209 Star ! 1508 4186 Star ! 1540 4528 Star ! 1540 4186 Star ! 1540 4163 Star ! 1572 4140 Star ! 1604 4117 Star ! 1636 4140 Star ! 1636 4117 Star ! 1636 4094 Star ! 1668 4072 Star ! 1700 4049 Star ! 1732 4072 Star ! 1732 4049 Star ! 1732 4026 Star ! 1764 4094 Star ! 1764 4026 Star ! 1764 4003 Star ! 1796 3980 Star ! 1828 3957 Star ! 1860 3980 Star ! 1860 3957 Star ! 1860 3935 Star ! 1892 3912 Star ! 1924 3889 Star ! 1956 3912 Star ! 1956 3889 Star ! 1956 3866 Star ! 1988 3935 Star ! 1988 3866 Star ! 1988 3843 Star ! 2021 4003 Star ! 2021 3843 Star ! 2021 3820 Star ! 2053 3797 Star ! 2085 3775 Star ! 2117 3797 Star ! 2117 3775 Star ! 2117 3752 Star ! 2149 3729 Star ! 2181 3706 Star ! 2213 3729 Star ! 2213 3706 Star ! 2213 3683 Star ! 2245 3752 Star ! 2245 3683 Star ! 2245 3660 Star ! 2277 3638 Star ! 2309 3615 Star ! 2341 3638 Star ! 2341 3615 Star ! 2341 3592 Star ! 2373 3569 Star ! 2405 3546 Star ! 2437 3569 Star ! 2437 3546 Star ! 2437 3523 Star ! 2469 3592 Star ! 2469 3523 Star ! 2469 3501 Star ! 2501 3660 Star ! 2501 3501 Star ! 2501 3478 Star ! 2533 3820 Star ! 2533 3478 Star ! 2533 3455 Star ! 2565 4163 Star ! 2565 3455 Star ! 2565 3432 Star ! 2598 3409 Star ! 2630 3386 Star ! 2662 3409 Star ! 2662 3386 Star ! 2662 3364 Star ! 2694 3341 Star ! 2726 3318 Star ! 2758 3341 Star ! 2758 3318 Star ! 2758 3295 Star ! 2790 3364 Star ! 2790 3295 Star ! 2790 3272 Star ! 2822 3249 Star ! 2854 3226 Star ! 2886 3249 Star ! 2886 3226 Star ! 2886 3204 Star ! 2918 3181 Star ! 2950 3158 Star ! 2982 3181 Star ! 2982 3158 Star ! 2982 3135 Star ! 3014 3204 Star ! 3014 3135 Star ! 3014 3112 Star ! 3046 3272 Star ! 3046 3112 Star ! 3046 3089 Star ! 3078 3067 Star ! 3110 3044 Star ! 3142 3067 Star ! 3142 3044 Star ! 3142 3021 Star ! 3174 2998 Star ! 3207 2975 Star ! 3239 2998 Star ! 3239 2975 Star ! 3239 2952 Star ! 3271 3021 Star ! 3271 2952 Star ! 3271 2930 Star ! 3303 2907 Star ! 3335 2884 Star ! 3367 2907 Star ! 3367 2884 Star ! 3367 2861 Star ! 3399 2838 Star ! 3431 2815 Star ! 3463 2838 Star ! 3463 2815 Star ! 3463 2792 Star ! 3495 2861 Star ! 3495 2792 Star ! 3495 2770 Star ! 3527 2930 Star ! 3527 2770 Star ! 3527 2747 Star ! 3559 3089 Star ! 3559 2747 Star ! 3559 2724 Star ! 3591 2701 Star ! 3623 2678 Star ! 3655 2701 Star ! 3655 2678 Star ! 3655 2655 Star ! 3687 2633 Star ! 3719 2610 Star ! 3751 2633 Star ! 3751 2610 Star ! 3751 2587 Star ! 3784 2655 Star ! 3784 2587 Star ! 3784 2564 Star ! 3816 2541 Star ! 3848 2518 Star ! 3880 2541 Star ! 3880 2518 Star ! 3880 2496 Star ! 3912 2473 Star ! 3944 2450 Star ! 3976 2473 Star ! 3976 2450 Star ! 3976 2427 Star ! 4008 2496 Star ! 4008 2427 Star ! 4008 2404 Star ! 4040 2564 Star ! 4040 2404 Star ! 4040 2381 Star ! 4072 2359 Star ! 4104 2336 Star ! 4136 2359 Star ! 4136 2336 Star ! 4136 2313 Star ! 4168 2290 Star ! 4200 2267 Star ! 4232 2290 Star ! 4232 2267 Star ! 4232 2244 Star ! 4264 2313 Star ! 4264 2244 Star ! 4264 2221 Star ! 4296 2199 Star ! 4328 2176 Star ! 4361 2199 Star ! 4361 2176 Star ! 4361 2153 Star ! 4393 2130 Star ! 4425 2107 Star ! 4457 2130 Star ! 4457 2107 Star ! 4457 2084 Star ! 4489 2153 Star ! 4489 2084 Star ! 4489 2062 Star ! 4521 2221 Star ! 4521 2062 Star ! 4521 2039 Star ! 4553 2381 Star ! 4553 2039 Star ! 4553 2016 Star ! 4585 2724 Star ! 4585 2016 Star ! 4585 1993 Star ! 4617 3432 Star ! 4617 1993 Star ! 4617 1970 Star ! 4649 1947 Star ! 4681 1925 Star ! 4713 1947 Star ! 4713 1925 Star ! 4713 1902 Star ! 4745 1879 Star ! 4777 1856 Star ! 4809 1879 Star ! 4809 1856 Star ! 4809 1833 Star ! 4841 1902 Star ! 4841 1833 Star ! 4841 1810 Star ! 4873 1787 Star ! 4905 1765 Star ! 4937 1787 Star ! 4937 1765 Star ! 4937 1742 Star ! 4970 1719 Star ! 5002 1696 Star ! 5034 1719 Star ! 5034 1696 Star ! 5034 1673 Star ! 5066 1742 Star ! 5066 1673 Star ! 5066 1650 Star ! 5098 1810 Star ! 5098 1650 Star ! 5098 1628 Star ! 5130 1605 Star ! 5162 1582 Star ! 5194 1605 Star ! 5194 1582 Star ! 5194 1559 Star ! 5226 1536 Star ! 5258 1513 Star ! 5290 1536 Star ! 5290 1513 Star ! 5290 1491 Star ! 5322 1559 Star ! 5322 1491 Star ! 5322 1468 Star ! 5354 1445 Star ! 5386 1422 Star ! 5418 1445 Star ! 5418 1422 Star ! 5418 1399 Star ! 5450 1376 Star ! 5482 1354 Star ! 5514 1376 Star ! 5514 1354 Star ! 5514 1331 Star ! 5547 1399 Star ! 5547 1331 Star ! 5547 1308 Star ! 5579 1468 Star ! 5579 1308 Star ! 5579 1285 Star ! 5611 1628 Star ! 5611 1285 Star ! 5611 1262 Star ! 5643 1239 Star ! 5675 1216 Star ! 5707 1239 Star ! 5707 1216 Star ! 5707 1194 Star ! 5739 1171 Star 5771 1148 Star ! 5803 1171 Star ! 5803 1148 Star 5803 1125 Star ! 5835 1194 Star ! 5835 1125 Star ! 5835 1102 Star ! 5867 1079 Star 5899 1057 Star ! 5931 1079 Star ! 5931 1057 Star ! 5931 1034 Star ! 5963 1011 Star ! 5995 988 Star ! 6027 1011 Star ! 6027 988 Star ! 6027 965 Star ! 6059 1034 Star ! 6059 965 Star ! 6059 942 Star ! 6091 1102 Star ! 6091 942 Star ! 6091 920 Star ! 6124 897 Star ! 6156 874 Star ! 6188 897 Star ! 6188 874 Star ! 6188 851 Star ! 6220 828 Star ! 6252 805 Star ! 6284 828 Star ! 6284 805 Star ! 6284 782 Star ! 6316 851 Star ! 6316 782 Star ! 6316 760 Star ! 6348 737 Star ! 6380 714 Star ! 6412 737 Star ! 6412 714 Star ! 6412 691 Star ! 6444 668 Star ! 6476 645 Star ! 6508 668 Star ! 6508 645 Star ! 6508 623 Star ! 6540 691 Star ! 6540 623 Star ! 6540 600 Star ! 6572 760 Star ! 6572 600 Star ! 6572 577 Star ! 6604 554 Star ! 6636 531 Star ! 6668 554 Star ! 6668 531 Star ! 6668 508 Star ! 6701 486 Star ! 6733 463 Star ! 6765 486 Star ! 6765 463 Star ! 6765 440 Star ! 6797 508 Star ! 6797 440 Star ! 6797 417 Star ! 6829 577 Star ! 6829 417 Star ! 6829 394 Star ! 6861 920 Star ! 6861 394 Star ! 6861 371 Star ! 6893 1262 Star ! 6893 371 Star ! 6893 349 Star ! 6925 326 Star ! 6957 1970 Star ! 6957 349 Star ! 6957 326 Star ! 6957 303 Star ! % End plot #1 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/spcholperm.pdf and octave-3.0.4/doc/interpreter/spcholperm.pdf differ Files octave-3.0.3/doc/interpreter/spcholperm.png and octave-3.0.4/doc/interpreter/spcholperm.png differ Files octave-3.0.3/doc/interpreter/spchol.png and octave-3.0.4/doc/interpreter/spchol.png differ diff -cNr octave-3.0.3/doc/interpreter/spmatrix.eps octave-3.0.4/doc/interpreter/spmatrix.eps *** octave-3.0.3/doc/interpreter/spmatrix.eps 2008-09-24 10:31:51.000000000 +0200 --- octave-3.0.4/doc/interpreter/spmatrix.eps 2009-01-29 09:11:06.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: spmatrix.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:31:51 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: spmatrix.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:06 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (spmatrix.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:31:51 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (spmatrix.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:06 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,1258 **** } ifelse 0.500 UL LTb ! 490 4872 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 4872 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 490 3730 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3730 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MRshow 0.500 UL LTb ! 490 2587 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2587 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MRshow 0.500 UL LTb ! 490 1445 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 1445 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MRshow 0.500 UL LTb ! 490 303 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 303 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MRshow 0.500 UL LTb ! 490 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 490 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 2100 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2100 140 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MCshow 0.500 UL LTb ! 3710 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3710 140 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MCshow 0.500 UL LTb ! 5320 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5320 140 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MCshow 0.500 UL LTb ! 6930 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6930 140 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL LTb 1.000 UP 0.500 UL LT0 ! 0.00 0.00 1.00 C 522 4849 Star ! 522 4826 Star ! 554 4849 Star ! 554 4826 Star ! 554 4803 Star ! 554 4781 Star ! 587 4826 Star ! 587 4803 Star ! 587 4758 Star ! 587 4735 Star ! 619 4826 Star ! 619 4781 Star ! 619 4712 Star ! 619 4689 Star ! 651 4803 Star ! 651 4758 Star ! 651 4666 Star ! 651 4644 Star ! 683 4803 Star ! 683 4735 Star ! 683 4621 Star ! 683 4598 Star ! 715 4781 Star ! 715 4712 Star ! 715 4575 Star ! 715 4552 Star ! 748 4781 Star ! 748 4689 Star ! 748 4529 Star ! 748 4506 Star ! 780 4758 Star ! 780 4666 Star ! 780 4484 Star ! 780 4461 Star ! 812 4758 Star ! 812 4644 Star ! 812 4438 Star ! 812 4415 Star ! 844 4735 Star ! 844 4621 Star ! 844 4392 Star ! 844 4369 Star ! 876 4735 Star ! 876 4598 Star ! 876 4347 Star ! 876 4324 Star ! 909 4712 Star ! 909 4575 Star ! 909 4301 Star ! 909 4278 Star ! 941 4712 Star ! 941 4552 Star ! 941 4255 Star ! 941 4232 Star ! 973 4689 Star ! 973 4529 Star ! 973 4209 Star ! 973 4187 Star ! 1005 4689 Star ! 1005 4506 Star ! 1005 4164 Star ! 1005 4141 Star ! 1037 4666 Star ! 1037 4484 Star ! 1037 4118 Star ! 1037 4095 Star ! 1070 4666 Star ! 1070 4461 Star ! 1070 4072 Star ! 1070 4050 Star ! 1102 4644 Star ! 1102 4438 Star ! 1102 4027 Star ! 1102 4004 Star ! 1134 4644 Star ! 1134 4415 Star ! 1134 3981 Star ! 1134 3958 Star ! 1166 4621 Star ! 1166 4392 Star ! 1166 3935 Star ! 1166 3912 Star ! 1198 4621 Star ! 1198 4369 Star ! 1198 3890 Star ! 1198 3867 Star ! 1231 4598 Star ! 1231 4347 Star ! 1231 3844 Star ! 1231 3821 Star ! 1263 4598 Star ! 1263 4324 Star ! 1263 3798 Star ! 1263 3775 Star ! 1295 4575 Star ! 1295 4301 Star ! 1295 3753 Star ! 1295 3730 Star ! 1327 4575 Star ! 1327 4278 Star ! 1327 3707 Star ! 1327 3684 Star ! 1359 4552 Star ! 1359 4255 Star ! 1359 3661 Star ! 1359 3638 Star ! 1392 4552 Star ! 1392 4232 Star ! 1392 3615 Star ! 1392 3593 Star ! 1424 4529 Star ! 1424 4209 Star ! 1424 3570 Star ! 1424 3547 Star ! 1456 4529 Star ! 1456 4187 Star ! 1456 3524 Star ! 1456 3501 Star ! 1488 4506 Star ! 1488 4164 Star ! 1488 3478 Star ! 1488 3456 Star ! 1520 4506 Star ! 1520 4141 Star ! 1520 3433 Star ! 1520 3410 Star ! 1553 4484 Star ! 1553 4118 Star ! 1553 3387 Star ! 1553 3364 Star ! 1585 4484 Star ! 1585 4095 Star ! 1585 3341 Star ! 1585 3318 Star ! 1617 4461 Star ! 1617 4072 Star ! 1617 3296 Star ! 1617 3273 Star ! 1649 4461 Star ! 1649 4050 Star ! 1649 3250 Star ! 1649 3227 Star ! 1681 4438 Star ! 1681 4027 Star ! 1681 3204 Star ! 1681 3181 Star ! 1714 4438 Star ! 1714 4004 Star ! 1714 3159 Star ! 1714 3136 Star ! 1746 4415 Star ! 1746 3981 Star ! 1746 3113 Star ! 1746 3090 Star ! 1778 4415 Star ! 1778 3958 Star ! 1778 3067 Star ! 1778 3044 Star ! 1810 4392 Star ! 1810 3935 Star ! 1810 3021 Star ! 1810 2999 Star ! 1842 4392 Star ! 1842 3912 Star ! 1842 2976 Star ! 1842 2953 Star ! 1875 4369 Star ! 1875 3890 Star ! 1875 2930 Star ! 1875 2907 Star ! 1907 4369 Star ! 1907 3867 Star ! 1907 2884 Star ! 1907 2862 Star ! 1939 4347 Star ! 1939 3844 Star ! 1939 2839 Star ! 1939 2816 Star ! 1971 4347 Star ! 1971 3821 Star ! 1971 2793 Star ! 1971 2770 Star ! 2003 4324 Star ! 2003 3798 Star ! 2003 2747 Star ! 2003 2724 Star ! 2036 4324 Star ! 2036 3775 Star ! 2036 2702 Star ! 2036 2679 Star ! 2068 4301 Star ! 2068 3753 Star ! 2068 2656 Star ! 2068 2633 Star ! 2100 4301 Star ! 2100 3730 Star ! 2100 2610 Star ! 2100 2587 Star ! 2132 4278 Star ! 2132 3707 Star ! 2132 2565 Star ! 2132 2542 Star ! 2164 4278 Star ! 2164 3684 Star ! 2164 2519 Star ! 2164 2496 Star ! 2197 4255 Star ! 2197 3661 Star ! 2197 2473 Star ! 2197 2450 Star ! 2229 4255 Star ! 2229 3638 Star ! 2229 2428 Star ! 2229 2405 Star ! 2261 4232 Star ! 2261 3615 Star ! 2261 2382 Star ! 2261 2359 Star ! 2293 4232 Star ! 2293 3593 Star ! 2293 2336 Star ! 2293 2313 Star ! 2325 4209 Star ! 2325 3570 Star ! 2325 2290 Star ! 2325 2268 Star ! 2358 4209 Star ! 2358 3547 Star ! 2358 2245 Star ! 2358 2222 Star ! 2390 4187 Star ! 2390 3524 Star ! 2390 2199 Star ! 2390 2176 Star ! 2422 4187 Star ! 2422 3501 Star ! 2422 2153 Star ! 2422 2131 Star ! 2454 4164 Star ! 2454 3478 Star ! 2454 2108 Star ! 2454 2085 Star ! 2486 4164 Star ! 2486 3456 Star ! 2486 2062 Star ! 2486 2039 Star ! 2519 4141 Star ! 2519 3433 Star ! 2519 2016 Star ! 2519 1993 Star ! 2551 4141 Star ! 2551 3410 Star ! 2551 1971 Star ! 2551 1948 Star ! 2583 4118 Star ! 2583 3387 Star ! 2583 1925 Star ! 2583 1902 Star ! 2615 4118 Star ! 2615 3364 Star ! 2615 1879 Star ! 2615 1856 Star ! 2647 4095 Star ! 2647 3341 Star ! 2647 1834 Star ! 2647 1811 Star ! 2680 4095 Star ! 2680 3318 Star ! 2680 1788 Star ! 2680 1765 Star ! 2712 4072 Star ! 2712 3296 Star ! 2712 1742 Star ! 2712 1719 Star ! 2744 4072 Star ! 2744 3273 Star ! 2744 1696 Star ! 2744 1674 Star ! 2776 4050 Star ! 2776 3250 Star ! 2776 1651 Star ! 2776 1628 Star ! 2808 4050 Star ! 2808 3227 Star ! 2808 1605 Star ! 2808 1582 Star ! 2841 4027 Star ! 2841 3204 Star ! 2841 1559 Star ! 2841 1537 Star ! 2873 4027 Star ! 2873 3181 Star ! 2873 1514 Star ! 2873 1491 Star ! 2905 4004 Star ! 2905 3159 Star ! 2905 1468 Star ! 2905 1445 Star ! 2937 4004 Star ! 2937 3136 Star ! 2937 1422 Star ! 2937 1399 Star ! 2969 3981 Star ! 2969 3113 Star ! 2969 1377 Star ! 2969 1354 Star ! 3002 3981 Star ! 3002 3090 Star ! 3002 1331 Star ! 3002 1308 Star ! 3034 3958 Star ! 3034 3067 Star ! 3034 1285 Star ! 3034 1262 Star ! 3066 3958 Star ! 3066 3044 Star ! 3066 1240 Star ! 3066 1217 Star ! 3098 3935 Star ! 3098 3021 Star ! 3098 1194 Star ! 3098 1171 Star ! 3130 3935 Star ! 3130 2999 Star ! 3130 1148 Star ! 3130 1125 Star ! 3163 3912 Star ! 3163 2976 Star ! 3163 1102 Star ! 3163 1080 Star ! 3195 3912 Star ! 3195 2953 Star ! 3195 1057 Star ! 3195 1034 Star ! 3227 3890 Star ! 3227 2930 Star ! 3227 1011 Star ! 3227 988 Star ! 3259 3890 Star ! 3259 2907 Star ! 3259 965 Star ! 3259 943 Star ! 3291 3867 Star ! 3291 2884 Star ! 3291 920 Star ! 3291 897 Star ! 3324 3867 Star ! 3324 2862 Star ! 3324 874 Star ! 3324 851 Star ! 3356 3844 Star ! 3356 2839 Star ! 3356 828 Star ! 3356 805 Star ! 3388 3844 Star ! 3388 2816 Star ! 3388 783 Star ! 3388 760 Star ! 3420 3821 Star ! 3420 2793 Star ! 3420 737 Star ! 3420 714 Star ! 3452 3821 Star ! 3452 2770 Star ! 3452 691 Star ! 3452 668 Star ! 3485 3798 Star ! 3485 2747 Star ! 3485 646 Star ! 3485 623 Star ! 3517 3798 Star ! 3517 2724 Star ! 3517 600 Star ! 3517 577 Star ! 3549 3775 Star ! 3549 2702 Star ! 3549 554 Star ! 3549 531 Star ! 3581 3775 Star ! 3581 2679 Star ! 3581 508 Star ! 3581 486 Star ! 3613 3753 Star ! 3613 2656 Star ! 3613 463 Star ! 3613 440 Star ! 3646 3753 Star ! 3646 2633 Star ! 3646 417 Star ! 3646 394 Star ! 3678 3730 Star ! 3678 2610 Star ! 3678 371 Star ! 3678 349 Star ! 3710 3730 Star ! 3710 2587 Star ! 3710 326 Star ! 3710 303 Star ! 3742 3707 Star ! 3742 2565 Star ! 3774 3707 Star ! 3774 2542 Star ! 3806 3684 Star ! 3806 2519 Star ! 3839 3684 Star ! 3839 2496 Star ! 3871 3661 Star ! 3871 2473 Star ! 3903 3661 Star ! 3903 2450 Star ! 3935 3638 Star ! 3935 2428 Star ! 3967 3638 Star ! 3967 2405 Star ! 4000 3615 Star ! 4000 2382 Star ! 4032 3615 Star ! 4032 2359 Star ! 4064 3593 Star ! 4064 2336 Star ! 4096 3593 Star ! 4096 2313 Star ! 4128 3570 Star ! 4128 2290 Star ! 4161 3570 Star ! 4161 2268 Star ! 4193 3547 Star ! 4193 2245 Star ! 4225 3547 Star ! 4225 2222 Star ! 4257 3524 Star ! 4257 2199 Star ! 4289 3524 Star ! 4289 2176 Star ! 4322 3501 Star ! 4322 2153 Star ! 4354 3501 Star ! 4354 2131 Star ! 4386 3478 Star ! 4386 2108 Star ! 4418 3478 Star ! 4418 2085 Star ! 4450 3456 Star ! 4450 2062 Star ! 4483 3456 Star ! 4483 2039 Star ! 4515 3433 Star ! 4515 2016 Star ! 4547 3433 Star ! 4547 1993 Star ! 4579 3410 Star ! 4579 1971 Star ! 4611 3410 Star ! 4611 1948 Star ! 4644 3387 Star ! 4644 1925 Star ! 4676 3387 Star ! 4676 1902 Star ! 4708 3364 Star ! 4708 1879 Star ! 4740 3364 Star ! 4740 1856 Star ! 4772 3341 Star ! 4772 1834 Star ! 4805 3341 Star ! 4805 1811 Star ! 4837 3318 Star ! 4837 1788 Star ! 4869 3318 Star ! 4869 1765 Star ! 4901 3296 Star ! 4901 1742 Star ! 4933 3296 Star ! 4933 1719 Star ! 4966 3273 Star ! 4966 1696 Star ! 4998 3273 Star ! 4998 1674 Star ! 5030 3250 Star ! 5030 1651 Star ! 5062 3250 Star ! 5062 1628 Star ! 5094 3227 Star ! 5094 1605 Star ! 5127 3227 Star ! 5127 1582 Star ! 5159 3204 Star ! 5159 1559 Star ! 5191 3204 Star ! 5191 1537 Star ! 5223 3181 Star ! 5223 1514 Star ! 5255 3181 Star ! 5255 1491 Star ! 5288 3159 Star ! 5288 1468 Star ! 5320 3159 Star ! 5320 1445 Star ! 5352 3136 Star ! 5352 1422 Star ! 5384 3136 Star ! 5384 1399 Star ! 5416 3113 Star ! 5416 1377 Star ! 5449 3113 Star ! 5449 1354 Star ! 5481 3090 Star ! 5481 1331 Star ! 5513 3090 Star ! 5513 1308 Star ! 5545 3067 Star ! 5545 1285 Star ! 5577 3067 Star ! 5577 1262 Star ! 5610 3044 Star ! 5610 1240 Star ! 5642 3044 Star ! 5642 1217 Star ! 5674 3021 Star ! 5674 1194 Star ! 5706 3021 Star ! 5706 1171 Star ! 5738 2999 Star ! 5738 1148 Star ! 5771 2999 Star ! 5771 1125 Star ! 5803 2976 Star ! 5803 1102 Star ! 5835 2976 Star ! 5835 1080 Star ! 5867 2953 Star ! 5867 1057 Star ! 5899 2953 Star ! 5899 1034 Star ! 5932 2930 Star ! 5932 1011 Star ! 5964 2930 Star ! 5964 988 Star ! 5996 2907 Star ! 5996 965 Star ! 6028 2907 Star ! 6028 943 Star ! 6060 2884 Star ! 6060 920 Star ! 6093 2884 Star ! 6093 897 Star ! 6125 2862 Star ! 6125 874 Star ! 6157 2862 Star ! 6157 851 Star ! 6189 2839 Star ! 6189 828 Star ! 6221 2839 Star ! 6221 805 Star ! 6254 2816 Star ! 6254 783 Star ! 6286 2816 Star ! 6286 760 Star ! 6318 2793 Star ! 6318 737 Star ! 6350 2793 Star ! 6350 714 Star ! 6382 2770 Star ! 6382 691 Star ! 6415 2770 Star ! 6415 668 Star ! 6447 2747 Star ! 6447 646 Star ! 6479 2747 Star ! 6479 623 Star ! 6511 2724 Star ! 6511 600 Star ! 6543 2724 Star ! 6543 577 Star ! 6576 2702 Star ! 6576 554 Star ! 6608 2702 Star ! 6608 531 Star ! 6640 2679 Star ! 6640 508 Star ! 6672 2679 Star ! 6672 486 Star ! 6704 2656 Star ! 6704 463 Star ! 6737 2656 Star ! 6737 440 Star ! 6769 2633 Star ! 6769 417 Star ! 6801 2633 Star ! 6801 394 Star ! 6833 2610 Star ! 6833 371 Star ! 6865 2610 Star ! 6865 349 Star ! 6898 2587 Star ! 6898 326 Star ! 6930 2587 Star ! 6930 303 Star 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL --- 543,1269 ---- } ifelse 0.500 UL LTb ! 546 4871 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 4871 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 546 3729 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3729 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MRshow 0.500 UL LTb ! 546 2587 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2587 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MRshow 0.500 UL LTb ! 546 1445 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 1445 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MRshow 0.500 UL LTb ! 546 303 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 303 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MRshow 0.500 UL LTb ! 546 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 546 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 2149 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2149 140 M [ [(Helvetica) 140.0 0.0 true true 0 (50)] ] -46.7 MCshow 0.500 UL LTb ! 3751 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3751 140 M [ [(Helvetica) 140.0 0.0 true true 0 (100)] ] -46.7 MCshow 0.500 UL LTb ! 5354 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5354 140 M [ [(Helvetica) 140.0 0.0 true true 0 (150)] ] -46.7 MCshow 0.500 UL LTb ! 6957 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6957 140 M [ [(Helvetica) 140.0 0.0 true true 0 (200)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 1.000 UP 0.500 UL LT0 ! 0.00 0.00 1.00 C 578 4848 Star ! 578 4825 Star ! 610 4848 Star ! 610 4825 Star ! 610 4802 Star ! 610 4780 Star ! 642 4825 Star ! 642 4802 Star ! 642 4757 Star ! 642 4734 Star ! 674 4825 Star ! 674 4780 Star ! 674 4711 Star ! 674 4688 Star ! 706 4802 Star ! 706 4757 Star ! 706 4665 Star ! 706 4643 Star ! 738 4802 Star ! 738 4734 Star ! 738 4620 Star ! 738 4597 Star ! 770 4780 Star ! 770 4711 Star ! 770 4574 Star ! 770 4551 Star ! 802 4780 Star ! 802 4688 Star ! 802 4528 Star ! 802 4506 Star ! 834 4757 Star ! 834 4665 Star ! 834 4483 Star ! 834 4460 Star ! 867 4757 Star ! 867 4643 Star ! 867 4437 Star ! 867 4414 Star ! 899 4734 Star ! 899 4620 Star ! 899 4391 Star ! 899 4369 Star ! 931 4734 Star ! 931 4597 Star ! 931 4346 Star ! 931 4323 Star ! 963 4711 Star ! 963 4574 Star ! 963 4300 Star ! 963 4277 Star ! 995 4711 Star ! 995 4551 Star ! 995 4254 Star ! 995 4231 Star ! 1027 4688 Star ! 1027 4528 Star ! 1027 4209 Star ! 1027 4186 Star ! 1059 4688 Star ! 1059 4506 Star ! 1059 4163 Star ! 1059 4140 Star ! 1091 4665 Star ! 1091 4483 Star ! 1091 4117 Star ! 1091 4094 Star ! 1123 4665 Star ! 1123 4460 Star ! 1123 4072 Star ! 1123 4049 Star ! 1155 4643 Star ! 1155 4437 Star ! 1155 4026 Star ! 1155 4003 Star ! 1187 4643 Star ! 1187 4414 Star ! 1187 3980 Star ! 1187 3957 Star ! 1219 4620 Star ! 1219 4391 Star ! 1219 3935 Star ! 1219 3912 Star ! 1251 4620 Star ! 1251 4369 Star ! 1251 3889 Star ! 1251 3866 Star ! 1283 4597 Star ! 1283 4346 Star ! 1283 3843 Star ! 1283 3820 Star ! 1315 4597 Star ! 1315 4323 Star ! 1315 3797 Star ! 1315 3775 Star ! 1347 4574 Star ! 1347 4300 Star ! 1347 3752 Star ! 1347 3729 Star ! 1379 4574 Star ! 1379 4277 Star ! 1379 3706 Star ! 1379 3683 Star ! 1411 4551 Star ! 1411 4254 Star ! 1411 3660 Star ! 1411 3638 Star ! 1444 4551 Star ! 1444 4231 Star ! 1444 3615 Star ! 1444 3592 Star ! 1476 4528 Star ! 1476 4209 Star ! 1476 3569 Star ! 1476 3546 Star ! 1508 4528 Star ! 1508 4186 Star ! 1508 3523 Star ! 1508 3501 Star ! 1540 4506 Star ! 1540 4163 Star ! 1540 3478 Star ! 1540 3455 Star ! 1572 4506 Star ! 1572 4140 Star ! 1572 3432 Star ! 1572 3409 Star ! 1604 4483 Star ! 1604 4117 Star ! 1604 3386 Star ! 1604 3364 Star ! 1636 4483 Star ! 1636 4094 Star ! 1636 3341 Star ! 1636 3318 Star ! 1668 4460 Star ! 1668 4072 Star ! 1668 3295 Star ! 1668 3272 Star ! 1700 4460 Star ! 1700 4049 Star ! 1700 3249 Star ! 1700 3226 Star ! 1732 4437 Star ! 1732 4026 Star ! 1732 3204 Star ! 1732 3181 Star ! 1764 4437 Star ! 1764 4003 Star ! 1764 3158 Star ! 1764 3135 Star ! 1796 4414 Star ! 1796 3980 Star ! 1796 3112 Star ! 1796 3089 Star ! 1828 4414 Star ! 1828 3957 Star ! 1828 3067 Star ! 1828 3044 Star ! 1860 4391 Star ! 1860 3935 Star ! 1860 3021 Star ! 1860 2998 Star ! 1892 4391 Star ! 1892 3912 Star ! 1892 2975 Star ! 1892 2952 Star ! 1924 4369 Star ! 1924 3889 Star ! 1924 2930 Star ! 1924 2907 Star ! 1956 4369 Star ! 1956 3866 Star ! 1956 2884 Star ! 1956 2861 Star ! 1988 4346 Star ! 1988 3843 Star ! 1988 2838 Star ! 1988 2815 Star ! 2021 4346 Star ! 2021 3820 Star ! 2021 2792 Star ! 2021 2770 Star ! 2053 4323 Star ! 2053 3797 Star ! 2053 2747 Star ! 2053 2724 Star ! 2085 4323 Star ! 2085 3775 Star ! 2085 2701 Star ! 2085 2678 Star ! 2117 4300 Star ! 2117 3752 Star ! 2117 2655 Star ! 2117 2633 Star ! 2149 4300 Star ! 2149 3729 Star ! 2149 2610 Star ! 2149 2587 Star ! 2181 4277 Star ! 2181 3706 Star ! 2181 2564 Star ! 2181 2541 Star ! 2213 4277 Star ! 2213 3683 Star ! 2213 2518 Star ! 2213 2496 Star ! 2245 4254 Star ! 2245 3660 Star ! 2245 2473 Star ! 2245 2450 Star ! 2277 4254 Star ! 2277 3638 Star ! 2277 2427 Star ! 2277 2404 Star ! 2309 4231 Star ! 2309 3615 Star ! 2309 2381 Star ! 2309 2359 Star ! 2341 4231 Star ! 2341 3592 Star ! 2341 2336 Star ! 2341 2313 Star ! 2373 4209 Star ! 2373 3569 Star ! 2373 2290 Star ! 2373 2267 Star ! 2405 4209 Star ! 2405 3546 Star ! 2405 2244 Star ! 2405 2221 Star ! 2437 4186 Star ! 2437 3523 Star ! 2437 2199 Star ! 2437 2176 Star ! 2469 4186 Star ! 2469 3501 Star ! 2469 2153 Star ! 2469 2130 Star ! 2501 4163 Star ! 2501 3478 Star ! 2501 2107 Star ! 2501 2084 Star ! 2533 4163 Star ! 2533 3455 Star ! 2533 2062 Star ! 2533 2039 Star ! 2565 4140 Star ! 2565 3432 Star ! 2565 2016 Star ! 2565 1993 Star ! 2598 4140 Star ! 2598 3409 Star ! 2598 1970 Star ! 2598 1947 Star ! 2630 4117 Star ! 2630 3386 Star ! 2630 1925 Star ! 2630 1902 Star ! 2662 4117 Star ! 2662 3364 Star ! 2662 1879 Star ! 2662 1856 Star ! 2694 4094 Star ! 2694 3341 Star ! 2694 1833 Star ! 2694 1810 Star ! 2726 4094 Star ! 2726 3318 Star ! 2726 1787 Star ! 2726 1765 Star ! 2758 4072 Star ! 2758 3295 Star ! 2758 1742 Star ! 2758 1719 Star ! 2790 4072 Star ! 2790 3272 Star ! 2790 1696 Star ! 2790 1673 Star ! 2822 4049 Star ! 2822 3249 Star ! 2822 1650 Star ! 2822 1628 Star ! 2854 4049 Star ! 2854 3226 Star ! 2854 1605 Star ! 2854 1582 Star ! 2886 4026 Star ! 2886 3204 Star ! 2886 1559 Star ! 2886 1536 Star ! 2918 4026 Star ! 2918 3181 Star ! 2918 1513 Star ! 2918 1491 Star ! 2950 4003 Star ! 2950 3158 Star ! 2950 1468 Star ! 2950 1445 Star ! 2982 4003 Star ! 2982 3135 Star ! 2982 1422 Star ! 2982 1399 Star ! 3014 3980 Star ! 3014 3112 Star ! 3014 1376 Star ! 3014 1354 Star ! 3046 3980 Star ! 3046 3089 Star ! 3046 1331 Star ! 3046 1308 Star ! 3078 3957 Star ! 3078 3067 Star ! 3078 1285 Star ! 3078 1262 Star ! 3110 3957 Star ! 3110 3044 Star ! 3110 1239 Star ! 3110 1216 Star ! 3142 3935 Star ! 3142 3021 Star ! 3142 1194 Star ! 3142 1171 Star ! 3174 3935 Star ! 3174 2998 Star ! 3174 1148 Star ! 3174 1125 Star ! 3207 3912 Star ! 3207 2975 Star ! 3207 1102 Star ! 3207 1079 Star ! 3239 3912 Star ! 3239 2952 Star ! 3239 1057 Star ! 3239 1034 Star ! 3271 3889 Star ! 3271 2930 Star ! 3271 1011 Star ! 3271 988 Star ! 3303 3889 Star ! 3303 2907 Star ! 3303 965 Star ! 3303 942 Star ! 3335 3866 Star ! 3335 2884 Star ! 3335 920 Star ! 3335 897 Star ! 3367 3866 Star ! 3367 2861 Star ! 3367 874 Star ! 3367 851 Star ! 3399 3843 Star ! 3399 2838 Star ! 3399 828 Star ! 3399 805 Star ! 3431 3843 Star ! 3431 2815 Star ! 3431 782 Star ! 3431 760 Star ! 3463 3820 Star ! 3463 2792 Star ! 3463 737 Star ! 3463 714 Star ! 3495 3820 Star ! 3495 2770 Star ! 3495 691 Star ! 3495 668 Star ! 3527 3797 Star ! 3527 2747 Star ! 3527 645 Star ! 3527 623 Star ! 3559 3797 Star ! 3559 2724 Star ! 3559 600 Star ! 3559 577 Star ! 3591 3775 Star ! 3591 2701 Star ! 3591 554 Star ! 3591 531 Star ! 3623 3775 Star ! 3623 2678 Star ! 3623 508 Star ! 3623 486 Star ! 3655 3752 Star ! 3655 2655 Star ! 3655 463 Star ! 3655 440 Star ! 3687 3752 Star ! 3687 2633 Star ! 3687 417 Star ! 3687 394 Star ! 3719 3729 Star ! 3719 2610 Star ! 3719 371 Star ! 3719 349 Star ! 3751 3729 Star ! 3751 2587 Star ! 3751 326 Star ! 3751 303 Star ! 3784 3706 Star ! 3784 2564 Star ! 3816 3706 Star ! 3816 2541 Star ! 3848 3683 Star ! 3848 2518 Star ! 3880 3683 Star ! 3880 2496 Star ! 3912 3660 Star ! 3912 2473 Star ! 3944 3660 Star ! 3944 2450 Star ! 3976 3638 Star ! 3976 2427 Star ! 4008 3638 Star ! 4008 2404 Star ! 4040 3615 Star ! 4040 2381 Star ! 4072 3615 Star ! 4072 2359 Star ! 4104 3592 Star ! 4104 2336 Star ! 4136 3592 Star ! 4136 2313 Star ! 4168 3569 Star ! 4168 2290 Star ! 4200 3569 Star ! 4200 2267 Star ! 4232 3546 Star ! 4232 2244 Star ! 4264 3546 Star ! 4264 2221 Star ! 4296 3523 Star ! 4296 2199 Star ! 4328 3523 Star ! 4328 2176 Star ! 4361 3501 Star ! 4361 2153 Star ! 4393 3501 Star ! 4393 2130 Star ! 4425 3478 Star ! 4425 2107 Star ! 4457 3478 Star ! 4457 2084 Star ! 4489 3455 Star ! 4489 2062 Star ! 4521 3455 Star ! 4521 2039 Star ! 4553 3432 Star ! 4553 2016 Star ! 4585 3432 Star ! 4585 1993 Star ! 4617 3409 Star ! 4617 1970 Star ! 4649 3409 Star ! 4649 1947 Star ! 4681 3386 Star ! 4681 1925 Star ! 4713 3386 Star ! 4713 1902 Star ! 4745 3364 Star ! 4745 1879 Star ! 4777 3364 Star ! 4777 1856 Star ! 4809 3341 Star ! 4809 1833 Star ! 4841 3341 Star ! 4841 1810 Star ! 4873 3318 Star ! 4873 1787 Star ! 4905 3318 Star ! 4905 1765 Star ! 4937 3295 Star ! 4937 1742 Star ! 4970 3295 Star ! 4970 1719 Star ! 5002 3272 Star ! 5002 1696 Star ! 5034 3272 Star ! 5034 1673 Star ! 5066 3249 Star ! 5066 1650 Star ! 5098 3249 Star ! 5098 1628 Star ! 5130 3226 Star ! 5130 1605 Star ! 5162 3226 Star ! 5162 1582 Star ! 5194 3204 Star ! 5194 1559 Star ! 5226 3204 Star ! 5226 1536 Star ! 5258 3181 Star ! 5258 1513 Star ! 5290 3181 Star ! 5290 1491 Star ! 5322 3158 Star ! 5322 1468 Star ! 5354 3158 Star ! 5354 1445 Star ! 5386 3135 Star ! 5386 1422 Star ! 5418 3135 Star ! 5418 1399 Star ! 5450 3112 Star ! 5450 1376 Star ! 5482 3112 Star ! 5482 1354 Star ! 5514 3089 Star ! 5514 1331 Star ! 5547 3089 Star ! 5547 1308 Star ! 5579 3067 Star ! 5579 1285 Star ! 5611 3067 Star ! 5611 1262 Star ! 5643 3044 Star ! 5643 1239 Star ! 5675 3044 Star ! 5675 1216 Star ! 5707 3021 Star ! 5707 1194 Star ! 5739 3021 Star ! 5739 1171 Star ! 5771 2998 Star ! 5771 1148 Star ! 5803 2998 Star ! 5803 1125 Star ! 5835 2975 Star ! 5835 1102 Star ! 5867 2975 Star ! 5867 1079 Star ! 5899 2952 Star ! 5899 1057 Star ! 5931 2952 Star ! 5931 1034 Star ! 5963 2930 Star ! 5963 1011 Star ! 5995 2930 Star ! 5995 988 Star ! 6027 2907 Star ! 6027 965 Star ! 6059 2907 Star ! 6059 942 Star ! 6091 2884 Star ! 6091 920 Star ! 6124 2884 Star ! 6124 897 Star ! 6156 2861 Star ! 6156 874 Star ! 6188 2861 Star ! 6188 851 Star ! 6220 2838 Star ! 6220 828 Star ! 6252 2838 Star ! 6252 805 Star ! 6284 2815 Star ! 6284 782 Star ! 6316 2815 Star ! 6316 760 Star ! 6348 2792 Star ! 6348 737 Star ! 6380 2792 Star ! 6380 714 Star ! 6412 2770 Star ! 6412 691 Star ! 6444 2770 Star ! 6444 668 Star ! 6476 2747 Star ! 6476 645 Star ! 6508 2747 Star ! 6508 623 Star ! 6540 2724 Star ! 6540 600 Star ! 6572 2724 Star ! 6572 577 Star ! 6604 2701 Star ! 6604 554 Star ! 6636 2701 Star ! 6636 531 Star ! 6668 2678 Star ! 6668 508 Star ! 6701 2678 Star ! 6701 486 Star ! 6733 2655 Star ! 6733 463 Star ! 6765 2655 Star ! 6765 440 Star ! 6797 2633 Star ! 6797 417 Star ! 6829 2633 Star ! 6829 394 Star ! 6861 2610 Star ! 6861 371 Star ! 6893 2610 Star ! 6893 349 Star ! 6925 2587 Star ! 6925 326 Star ! 6957 2587 Star ! 6957 303 Star ! % End plot #1 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/spmatrix.pdf and octave-3.0.4/doc/interpreter/spmatrix.pdf differ Files octave-3.0.3/doc/interpreter/spmatrix.png and octave-3.0.4/doc/interpreter/spmatrix.png differ diff -cNr octave-3.0.3/doc/interpreter/stats.texi octave-3.0.4/doc/interpreter/stats.texi *** octave-3.0.3/doc/interpreter/stats.texi 2008-10-03 12:17:36.000000000 +0200 --- octave-3.0.4/doc/interpreter/stats.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 129,134 **** --- 129,218 ---- @end deftypefn + @anchor{doc-quantile} + @deftypefn {Function File} {@var{q} =} quantile (@var{x}, @var{p}) + @deftypefnx {Function File} {@var{q} =} quantile (@var{x}, @var{p}, @var{dim}) + @deftypefnx {Function File} {@var{q} =} quantile (@var{x}, @var{p}, @var{dim}, @var{method} ) + For a sample, @var{x}, calculate the quantiles, @var{q}, corresponding to + the cumulative probability values in @var{p}. All non-numeric values (NaNs) of + @var{x} are ignored. + + If @var{x} is a matrix, compute the quantiles for each column and + return them in a matrix, such that the i-th row of @var{q} contains + the @var{p}(i)th quantiles of each column of @var{x}. + + The optional argument @var{dim} determines the dimension along which + the percentiles are calculated. If @var{dim} is omitted, and @var{x} is + a vector or matrix, it defaults to 1 (column wise quantiles). In the + instance that @var{x} is a N-d array, @var{dim} defaults to the first + dimension whose size greater than unity. + + The methods available to calculate sample quantiles are the nine methods + used by R (http://www.r-project.org/). The default value is METHOD = 5. + + Discontinuous sample quantile methods 1, 2, and 3 + + @enumerate 1 + @item Method 1: Inverse of empirical distribution function. + @item Method 2: Similar to method 1 but with averaging at discontinuities. + @item Method 3: SAS definition: nearest even order statistic. + @end enumerate + + Continuous sample quantile methods 4 through 9, where p(k) is the linear + interpolation function respecting each methods' representative cdf. + + @enumerate 4 + @item Method 4: p(k) = k / n. That is, linear interpolation of the empirical cdf. + @item Method 5: p(k) = (k - 0.5) / n. That is a piecewise linear function where + the knots are the values midway through the steps of the empirical cdf. + @item Method 6: p(k) = k / (n + 1). + @item Method 7: p(k) = (k - 1) / (n - 1). + @item Method 8: p(k) = (k - 1/3) / (n + 1/3). The resulting quantile estimates + are approximately median-unbiased regardless of the distribution of @var{x}. + @item Method 9: p(k) = (k - 3/8) / (n + 1/4). The resulting quantile estimates + are approximately unbiased for the expected order statistics if @var{x} is + normally distributed. + @end enumerate + + Hyndman and Fan (1996) recommend method 8. Maxima, S, and R + (versions prior to 2.0.0) use 7 as their default. Minitab and SPSS + use method 6. Matlab uses method 5. + + References: + + @itemize @bullet + @item Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New + S Language. Wadsworth & Brooks/Cole. + + @item Hyndman, R. J. and Fan, Y. (1996) Sample quantiles in + statistical packages, American Statistician, 50, 361-365. + + @item R: A Language and Environment for Statistical Computing; + @url{http://cran.r-project.org/doc/manuals/fullrefman.pdf}. + @end itemize + @end deftypefn + + + @anchor{doc-prctile} + @deftypefn {Function File} {@var{y} =} prctile (@var{x}, @var{p}) + @deftypefnx {Function File} {@var{q} =} prctile (@var{x}, @var{p}, @var{dim}) + For a sample @var{x}, compute the the quantiles, @var{y}, corresponding + to the cumulative probability values, P, in percent. All non-numeric + values (NaNs) of X are ignored. + + If @var{x} is a matrix, compute the the percentiles for each column and + return them in a matrix, such that the i-th row of @var{y} contains the + @var{p}(i)th percentiles of each column of @var{x}. + + The optional argument @var{dim} determines the dimension along which + the percentiles are calculated. If @var{dim} is omitted, and @var{x} is + a vector or matrix, it defaults to 1 (column wise quantiles). In the + instance that @var{x} is a N-d array, @var{dim} defaults to the first + dimension whose size greater than unity. + + @end deftypefn + + @anchor{doc-meansq} @deftypefn {Function File} {} meansq (@var{x}) @deftypefnx {Function File} {} meansq (@var{x}, @var{dim}) *************** *** 349,357 **** @deftypefn {Function File} {} statistics (@var{x}) If @var{x} is a matrix, return a matrix with the minimum, first quartile, median, third quartile, maximum, mean, standard deviation, ! skewness and kurtosis of the columns of @var{x} as its rows. ! If @var{x} is a vector, treat it as a column vector. @end deftypefn --- 433,442 ---- @deftypefn {Function File} {} statistics (@var{x}) If @var{x} is a matrix, return a matrix with the minimum, first quartile, median, third quartile, maximum, mean, standard deviation, ! skewness and kurtosis of the columns of @var{x} as its columns. ! If @var{x} is a vector, calculate the statistics along the ! non-singleton dimension. @end deftypefn diff -cNr octave-3.0.3/doc/interpreter/stats.txi octave-3.0.4/doc/interpreter/stats.txi *** octave-3.0.3/doc/interpreter/stats.txi 2008-09-24 09:13:46.000000000 +0200 --- octave-3.0.4/doc/interpreter/stats.txi 2009-02-18 07:57:46.000000000 +0100 *************** *** 61,66 **** --- 61,70 ---- @DOCSTRING(median) + @DOCSTRING(quantile) + + @DOCSTRING(prctile) + @DOCSTRING(meansq) @DOCSTRING(std) diff -cNr octave-3.0.3/doc/interpreter/strings.texi octave-3.0.4/doc/interpreter/strings.texi *** octave-3.0.3/doc/interpreter/strings.texi 2008-10-03 12:17:36.000000000 +0200 --- octave-3.0.4/doc/interpreter/strings.texi 2009-04-01 11:00:28.000000000 +0200 *************** *** 591,597 **** @anchor{doc-strrep} @deftypefn {Function File} {} strrep (@var{s}, @var{x}, @var{y}) Replaces all occurrences of the substring @var{x} of the string @var{s} ! with the string @var{y}. For example, @example strrep ("This is a test string", "is", "&%$") --- 591,597 ---- @anchor{doc-strrep} @deftypefn {Function File} {} strrep (@var{s}, @var{x}, @var{y}) Replaces all occurrences of the substring @var{x} of the string @var{s} ! with the string @var{y} and returns the result. For example, @example strrep ("This is a test string", "is", "&%$") diff -cNr octave-3.0.3/doc/interpreter/testfun.texi octave-3.0.4/doc/interpreter/testfun.texi *** octave-3.0.3/doc/interpreter/testfun.texi 2008-10-03 12:17:37.000000000 +0200 --- octave-3.0.4/doc/interpreter/testfun.texi 2009-04-01 11:00:29.000000000 +0200 *************** *** 365,371 **** @item assert(@var{observed}, @var{expected}, @var{tol}) Accept a tolerance when comparing numbers. ! If @var{tol} is possitive use it as an absolute tolerance, will produce an error if @code{abs(@var{observed} - @var{expected}) > abs(@var{tol})}. If @var{tol} is negative use it as a relative tolerance, will produce an error if @code{abs(@var{observed} - @var{expected}) > abs(@var{tol} * @var{expected})}. --- 365,371 ---- @item assert(@var{observed}, @var{expected}, @var{tol}) Accept a tolerance when comparing numbers. ! If @var{tol} is positive use it as an absolute tolerance, will produce an error if @code{abs(@var{observed} - @var{expected}) > abs(@var{tol})}. If @var{tol} is negative use it as a relative tolerance, will produce an error if @code{abs(@var{observed} - @var{expected}) > abs(@var{tol} * @var{expected})}. diff -cNr octave-3.0.3/doc/interpreter/triplot.eps octave-3.0.4/doc/interpreter/triplot.eps *** octave-3.0.3/doc/interpreter/triplot.eps 2008-09-24 10:32:08.000000000 +0200 --- octave-3.0.4/doc/interpreter/triplot.eps 2009-01-29 09:11:12.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: triplot.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:08 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: triplot.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:12 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (triplot.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:08 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (triplot.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:12 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,853 **** } ifelse 0.500 UL LTb ! 490 655 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 655 M [ [(Helvetica) 140.0 0.0 true true 0 (0.1)] ] -46.7 MRshow 0.500 UL LTb ! 490 1123 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 1123 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 490 1592 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 1592 M [ [(Helvetica) 140.0 0.0 true true 0 (0.3)] ] -46.7 MRshow 0.500 UL LTb ! 490 2061 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2061 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 490 2529 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2529 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 490 2998 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2998 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 490 3466 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3466 M [ [(Helvetica) 140.0 0.0 true true 0 (0.7)] ] -46.7 MRshow 0.500 UL LTb ! 490 3935 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3935 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 490 4403 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 4403 M [ [(Helvetica) 140.0 0.0 true true 0 (0.9)] ] -46.7 MRshow 0.500 UL LTb ! 490 4872 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 4872 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 831 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 831 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.1)] ] -46.7 MCshow 0.500 UL LTb ! 1512 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1512 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MCshow 0.500 UL LTb ! 2193 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2193 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.3)] ] -46.7 MCshow 0.500 UL LTb ! 2874 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2874 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MCshow 0.500 UL LTb ! 3556 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3556 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 4237 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4237 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MCshow 0.500 UL LTb ! 4918 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4918 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.7)] ] -46.7 MCshow 0.500 UL LTb ! 5599 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5599 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MCshow 0.500 UL LTb ! 6281 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6281 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.9)] ] -46.7 MCshow 0.500 UL LTb ! 6962 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6962 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL LTb 0.500 UL LT0 ! 0.00 0.00 1.00 C 5841 1967 M ! 776 2406 V ! 6927 1038 L ! 5841 1967 L ! 6662 355 M ! -55 -40 V ! 320 723 V ! 6662 355 L ! 5163 4365 M ! 2830 4866 L ! 6617 4373 L ! -1454 -8 V ! 5075 3347 M ! 5841 1967 L ! 776 2406 V ! 5075 3347 L ! 5841 1967 L ! 4712 2650 L ! 363 697 V 88 1018 V ! 1454 8 V ! 5075 3347 L ! 728 1679 M ! 2355 898 V ! 1228 827 L ! 728 1679 L ! 3180 3627 M ! 3083 2577 L ! 1629 73 V ! 3180 3627 L ! 1977 4434 L ! 853 432 V ! 3180 3627 L ! 4277 1293 M ! 6 -995 V ! 1228 827 L ! 3049 466 V ! 1564 674 V ! 6927 1038 L ! 4277 1293 L ! 6607 315 L ! 320 723 V ! 4277 1293 L ! 6 -995 V ! 2324 17 V ! 4277 1293 L ! 2249 2813 M ! 728 1679 L ! 535 2365 L ! 1714 448 V ! 728 1679 L ! 2355 898 V ! -834 236 V ! 931 814 V ! 3083 2577 L ! -834 236 V ! 1977 4434 L ! 535 2365 L ! 1714 448 V ! 931 814 V ! 1977 4434 L ! 2249 2813 L ! 3857 3920 M ! 5075 3347 L ! 4712 2650 L ! 3857 3920 L ! 3180 3627 L ! 4712 2650 L ! 3857 3920 L ! 5075 3347 L 88 1018 V ! 3857 3920 L ! 1306 445 V ! 2830 4866 L ! 3857 3920 L ! 3180 3627 L ! 2830 4866 L ! 3857 3920 L ! 4109 1710 M ! 3083 2577 L ! 1228 827 L ! 2881 883 V ! 168 -417 V ! 1228 827 L ! 2881 883 V ! 3083 2577 L ! 1629 73 V ! 4109 1710 L ! 1732 257 V ! 4712 2650 L ! 4109 1710 L ! 168 -417 V ! 1564 674 V ! 4109 1710 L ! stroke ! LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL --- 543,864 ---- } ifelse 0.500 UL LTb ! 546 655 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 655 M [ [(Helvetica) 140.0 0.0 true true 0 (0.1)] ] -46.7 MRshow 0.500 UL LTb ! 546 1123 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 1123 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 546 1592 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 1592 M [ [(Helvetica) 140.0 0.0 true true 0 (0.3)] ] -46.7 MRshow 0.500 UL LTb ! 546 2060 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2060 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 546 2529 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2529 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MRshow 0.500 UL LTb ! 546 2997 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2997 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 546 3466 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3466 M [ [(Helvetica) 140.0 0.0 true true 0 (0.7)] ] -46.7 MRshow 0.500 UL LTb ! 546 3934 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3934 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 546 4403 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 4403 M [ [(Helvetica) 140.0 0.0 true true 0 (0.9)] ] -46.7 MRshow 0.500 UL LTb ! 546 4871 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 4871 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 885 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 885 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.1)] ] -46.7 MCshow 0.500 UL LTb ! 1563 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1563 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MCshow 0.500 UL LTb ! 2242 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2242 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.3)] ] -46.7 MCshow 0.500 UL LTb ! 2920 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 2920 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MCshow 0.500 UL LTb ! 3598 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3598 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.5)] ] -46.7 MCshow 0.500 UL LTb ! 4276 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4276 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MCshow 0.500 UL LTb ! 4954 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4954 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.7)] ] -46.7 MCshow 0.500 UL LTb ! 5633 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5633 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MCshow 0.500 UL LTb ! 6311 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6311 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.9)] ] -46.7 MCshow 0.500 UL LTb ! 6989 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6989 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 0.500 UL LT0 ! 0.00 0.00 1.00 C 5873 1967 M ! 773 2405 V ! 6954 1038 L ! 5873 1967 L ! 6691 355 M ! -56 -40 V ! 319 723 V ! 6691 355 L ! 5198 4364 M ! 2876 4865 L ! 6646 4372 L ! -1448 -8 V ! 5110 3346 M ! 5873 1967 L ! 773 2405 V ! 5110 3346 L ! 5873 1967 L ! 4749 2649 L ! 361 697 V 88 1018 V ! 1448 8 V ! 5110 3346 L ! 783 1678 M ! 2345 899 V ! 1281 827 L ! 783 1678 L ! 3224 3627 M ! 3128 2577 L ! 1621 72 V ! 3224 3627 L ! 2026 4433 L ! 850 432 V ! 3224 3627 L ! 4316 1292 M ! 6 -994 V ! 1281 827 L ! 3035 465 V ! 1557 675 V ! 6954 1038 L ! 4316 1292 L ! 6635 315 L ! 319 723 V ! 4316 1292 L ! 6 -994 V ! 2313 17 V ! 4316 1292 L ! 2297 2812 M ! 783 1678 L ! 590 2364 L ! 1707 448 V ! 783 1678 L ! 2345 899 V ! -831 235 V ! 927 815 V ! 3128 2577 L ! -831 235 V ! 2026 4433 L ! 590 2364 L ! 1707 448 V ! 927 815 V ! 2026 4433 L ! 2297 2812 L ! 3898 3919 M ! 5110 3346 L ! 4749 2649 L ! 3898 3919 L ! 3224 3627 L ! 4749 2649 L ! 3898 3919 L ! 5110 3346 L 88 1018 V ! 3898 3919 L ! 1300 445 V ! 2876 4865 L ! 3898 3919 L ! 3224 3627 L ! 2876 4865 L ! 3898 3919 L ! 4149 1710 M ! 3128 2577 L ! 1281 827 L ! 2868 883 V ! 167 -418 V ! 1281 827 L ! 2868 883 V ! 3128 2577 L ! 1621 72 V ! 4149 1710 L ! 1724 257 V ! 4749 2649 L ! 4149 1710 L ! 167 -418 V ! 1557 675 V ! 4149 1710 L ! % End plot #1 ! stroke ! LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/triplot.pdf and octave-3.0.4/doc/interpreter/triplot.pdf differ Files octave-3.0.3/doc/interpreter/triplot.png and octave-3.0.4/doc/interpreter/triplot.png differ diff -cNr octave-3.0.3/doc/interpreter/var.texi octave-3.0.4/doc/interpreter/var.texi *** octave-3.0.3/doc/interpreter/var.texi 2008-10-03 12:17:37.000000000 +0200 --- octave-3.0.4/doc/interpreter/var.texi 2009-04-01 11:00:29.000000000 +0200 *************** *** 551,557 **** @item -variables, -v Clears the local variable names. @end table ! With the execption of @code{exclusive}, all long options can be used without the dash as well. @end deffn --- 551,557 ---- @item -variables, -v Clears the local variable names. @end table ! With the exception of @code{exclusive}, all long options can be used without the dash as well. @end deffn diff -cNr octave-3.0.3/doc/interpreter/voronoi.eps octave-3.0.4/doc/interpreter/voronoi.eps *** octave-3.0.3/doc/interpreter/voronoi.eps 2008-09-24 10:32:06.000000000 +0200 --- octave-3.0.4/doc/interpreter/voronoi.eps 2009-01-29 09:11:11.000000000 +0100 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: voronoi.eps ! %%Creator: gnuplot 4.2 patchlevel 3 ! %%CreationDate: Wed Sep 24 10:32:06 2008 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: voronoi.eps ! %%Creator: gnuplot 4.3 patchlevel 0 ! %%CreationDate: Thu Jan 29 09:11:11 2009 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 9,16 **** /gnudict 256 dict def gnudict begin % ! % The following 6 true/false flags may be edited by hand if required ! % The unit line width may also be changed % /Color false def /Blacktext false def --- 9,16 ---- /gnudict 256 dict def gnudict begin % ! % The following true/false flags may be edited by hand if desired. ! % The unit line width and grayscale image gamma correction may also be changed. % /Color false def /Blacktext false def *************** *** 19,27 **** --- 19,29 ---- /Landscape false def /Level1 false def /Rounded false def + /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def + /Gamma 1.0 def % /vshift -46 def /dl1 { *************** *** 44,57 **** SDict begin [ /Title (voronoi.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.2 patchlevel 3 ) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Sep 24 10:32:06 2008) /DOCINFO pdfmark end } ifelse % % Gnuplot Prolog Version 4.2 (November 2007) % --- 46,65 ---- SDict begin [ /Title (voronoi.eps) /Subject (gnuplot plot) ! /Creator (gnuplot 4.3 patchlevel 0) /Author (Jaroslav Hajek) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Thu Jan 29 09:11:11 2009) /DOCINFO pdfmark end } ifelse + /doclip { + ClipToBoundingBox { + newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath + clip + } if + } def % % Gnuplot Prolog Version 4.2 (November 2007) % *************** *** 453,458 **** --- 461,467 ---- %%EndProlog gnudict begin gsave + doclip 50 50 translate 0.050 0.050 scale 0 setgray *************** *** 519,525 **** 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula --- 528,534 ---- 0 0 ] def /pm3dround {maxcolors 0 gt {dup 1 ge {pop 1} {maxcolors mul floor maxcolors 1 sub div} ifelse} if} def ! /pm3dGamma 1.0 1.5 Gamma mul div def /ColorSpace (RGB) def Color true and { % COLOUR vs. GRAY map InterpolatedColor { %% Interpolation vs. RGB-Formula *************** *** 534,1020 **** } ifelse 0.500 UL LTb ! 490 280 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 280 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 490 1198 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 1198 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 490 2117 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 2117 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 490 3035 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3035 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 490 3954 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 3954 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 490 4872 M 63 0 V ! 6409 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 406 4872 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 490 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 490 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 1784 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1784 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MCshow 0.500 UL LTb ! 3079 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3079 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MCshow 0.500 UL LTb ! 4373 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4373 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MCshow 0.500 UL LTb ! 5668 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5668 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MCshow 0.500 UL LTb ! 6962 280 M 0 63 V ! 0 4529 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6962 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL LTb 0.500 UL LT0 ! 0.00 0.00 1.00 C LTb ! 6311 4739 M ! [ [(Helvetica) 140.0 0.0 true true 0 (Delaunay Triangulation)] ] -46.7 MRshow LT0 ! 0.00 0.00 1.00 C 6395 4739 M 399 0 V ! 3744 1002 M ! 3487 468 L ! 2817 905 V ! 3744 1002 L ! 333 1603 V ! 6304 1373 L ! 3744 1002 L ! 3487 468 L ! 1013 789 L ! 2731 213 V ! 1387 3510 M ! 4481 4522 L ! 532 3610 L ! 855 -100 V ! 4481 4522 L ! 4077 2605 L ! 1387 3510 L ! 1013 789 L ! 532 3610 L ! 855 -100 V ! 6098 2356 M ! 4077 2605 L ! 6304 1373 L ! -206 983 V ! 4481 4522 L ! 4077 2605 L ! 6098 2356 L ! 2906 2020 M ! 3744 1002 L ! 1013 789 L ! 2906 2020 L ! 3744 1002 L ! 333 1603 V ! 2906 2020 L ! 1387 3510 L ! 1013 789 L ! 2906 2020 L ! 1387 3510 L ! 4077 2605 L ! 2906 2020 L stroke LT1 ! 1.00 0.00 0.00 C LTb ! 6311 4599 M ! [ [(Helvetica) 140.0 0.0 true true 0 (Voronoi Diagram)] ] -46.7 MRshow LT1 ! 1.00 0.00 0.00 C 6395 4599 M 399 0 V stroke LT2 ! 1.00 0.00 0.00 C 6962 1944 M ! 4904 1728 L stroke LT3 ! 1.00 0.00 0.00 C 6962 4067 M ! 5326 3453 L stroke LT4 ! 1.00 0.00 0.00 C 4904 1728 M ! 422 1725 V stroke LT5 ! 1.00 0.00 0.00 C 4904 1728 M ! -28 -26 V stroke LT6 ! 1.00 0.00 0.00 C 5326 3453 M ! 3150 3683 L stroke LT7 ! 1.00 0.00 0.00 C 2160 280 M 196 760 V stroke LT8 ! 1.00 0.00 0.00 C 2356 1040 M ! 5270 333 L stroke LT0 ! 1.00 0.00 0.00 C 2356 1040 M -10 66 V stroke LT1 ! 1.00 0.00 0.00 C 5270 333 M ! 34 -53 V stroke LT2 ! 1.00 0.00 0.00 C 5270 333 M ! 4876 1702 L stroke LT3 ! 1.00 0.00 0.00 C 4876 1702 M ! -870 91 V stroke LT4 ! 1.00 0.00 0.00 C 490 2175 M 153 13 V stroke LT5 ! 1.00 0.00 0.00 C 2378 4872 M ! 3150 3683 L stroke LT6 ! 1.00 0.00 0.00 C 1261 4872 M ! 643 2188 L stroke LT7 ! 1.00 0.00 0.00 C 3150 3683 M ! 2741 3070 L stroke LT8 ! 1.00 0.00 0.00 C 643 2188 M ! 334 -23 V stroke LT0 ! 1.00 0.00 0.00 C 2346 1106 M ! 1660 687 V stroke LT1 ! 1.00 0.00 0.00 C 2346 1106 M ! 977 2165 L stroke LT2 ! 1.00 0.00 0.00 C 4006 1793 M ! 2741 3070 L stroke LT3 ! 1.00 0.00 0.00 C 2741 3070 M ! 977 2165 L stroke 3.000 UL LT4 ! 0.00 1.00 0.00 C 2741 2014 M ! -47 0 V -47 2 V ! -47 3 V ! -46 3 V -46 5 V ! -46 6 V ! -46 6 V ! -46 8 V ! -45 9 V -45 10 V ! -44 10 V ! -44 12 V ! -43 13 V ! -42 13 V -42 15 V ! -42 16 V ! -40 16 V -40 17 V ! -39 19 V ! -39 19 V ! -37 20 V -37 20 V ! -35 22 V ! -35 22 V ! -33 23 V ! -33 24 V ! -31 25 V ! -31 25 V ! -29 26 V ! -28 26 V ! -27 28 V ! -26 27 V ! -24 29 V ! -23 28 V ! -22 30 V -21 30 V -19 30 V -18 31 V ! -17 31 V -15 31 V ! -13 32 V ! -13 32 V -11 32 V ! -9 32 V -8 33 V ! -7 33 V -5 33 V ! -4 33 V -2 33 V -1 33 V ! 1 34 V 2 33 V 4 33 V 5 33 V ! 7 33 V ! 8 32 V ! 9 33 V ! 11 32 V ! 13 32 V ! 13 32 V ! 15 31 V ! 17 31 V ! 18 31 V ! 19 30 V 21 30 V - 22 29 V 23 29 V ! 24 29 V ! 26 27 V ! 27 28 V 28 26 V 29 26 V ! 31 25 V ! 31 25 V ! 33 24 V ! 33 23 V ! 35 22 V ! 35 22 V ! 37 20 V ! 37 20 V ! 39 19 V ! 39 19 V 40 17 V ! 40 16 V ! 42 16 V ! 42 14 V ! 42 14 V 43 13 V ! 44 12 V ! 44 10 V ! 45 10 V 45 9 V ! 46 8 V 46 6 V 46 6 V 46 5 V ! 46 3 V ! 47 3 V 47 2 V - 47 0 V 46 0 V 47 -2 V ! 47 -3 V ! 46 -3 V ! 2974 4114 L 46 -6 V ! 45 -6 V ! 46 -8 V 45 -9 V ! 45 -10 V ! 44 -10 V ! 44 -12 V 43 -13 V ! 43 -14 V ! 42 -14 V ! 41 -16 V ! 41 -16 V ! 39 -17 V ! 40 -19 V ! 38 -19 V ! 37 -20 V ! 37 -20 V ! 35 -22 V ! 35 -22 V 34 -23 V 32 -24 V ! 32 -25 V ! 30 -25 V 29 -26 V 28 -26 V ! 27 -28 V ! 26 -27 V 24 -29 V - 23 -29 V - 22 -29 V 21 -30 V ! 19 -30 V ! 18 -31 V ! 17 -31 V ! 15 -31 V ! 14 -32 V 12 -32 V ! 11 -32 V ! 9 -33 V ! 8 -32 V ! 7 -33 V 5 -33 V 4 -33 V 2 -33 V ! 1 -34 V -1 -33 V -2 -33 V ! -4 -33 V -5 -33 V ! -7 -33 V -8 -33 V ! -9 -32 V -11 -32 V -12 -32 V -14 -32 V -15 -31 V ! -17 -31 V -18 -31 V -19 -30 V -21 -30 V ! -22 -30 V ! -23 -28 V -24 -29 V ! -26 -27 V ! -27 -28 V ! -28 -26 V ! -29 -26 V ! -30 -25 V ! -32 -25 V -32 -24 V -34 -23 V ! -35 -22 V ! -35 -22 V ! -37 -20 V -37 -20 V -38 -19 V ! -40 -19 V ! -39 -17 V ! -41 -16 V ! -41 -16 V -42 -15 V ! -43 -13 V ! -43 -13 V ! -44 -12 V ! -44 -10 V -45 -10 V ! -45 -9 V ! -46 -8 V ! -45 -6 V ! -46 -6 V ! -47 -5 V ! -46 -3 V ! -47 -3 V -47 -2 V ! -46 0 V stroke 0.500 UL LTb ! 490 4872 N ! 490 280 L ! 6472 0 V ! 0 4592 V ! -6472 0 V Z stroke 1.000 UP 0.500 UL --- 543,1076 ---- } ifelse 0.500 UL LTb ! 546 280 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 280 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MRshow 0.500 UL LTb ! 546 1198 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 1198 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MRshow 0.500 UL LTb ! 546 2116 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 2116 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MRshow 0.500 UL LTb ! 546 3035 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3035 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MRshow 0.500 UL LTb ! 546 3953 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 3953 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MRshow 0.500 UL LTb ! 546 4871 M 63 0 V ! 6380 0 R -63 0 V stroke ! 0.00 0.00 0.00 C 462 4871 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MRshow 0.500 UL LTb ! 546 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 546 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0)] ] -46.7 MCshow 0.500 UL LTb ! 1835 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 1835 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.2)] ] -46.7 MCshow 0.500 UL LTb ! 3123 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 3123 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.4)] ] -46.7 MCshow 0.500 UL LTb ! 4412 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 4412 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.6)] ] -46.7 MCshow 0.500 UL LTb ! 5700 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 5700 140 M [ [(Helvetica) 140.0 0.0 true true 0 (0.8)] ] -46.7 MCshow 0.500 UL LTb ! 6989 280 M 0 63 V ! 0 4528 R 0 -63 V stroke ! 0.00 0.00 0.00 C 6989 140 M [ [(Helvetica) 140.0 0.0 true true 0 (1)] ] -46.7 MCshow 0.500 UL LTb 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL LTb + % Begin plot #1 0.500 UL LT0 ! 0.00 0.00 1.00 C LCb setrgbcolor ! 6338 4738 M ! [ [(Helvetica) 140.0 0.0 true true 0 (Voronoi Diagram)] ] -46.7 MRshow LT0 ! 0.00 0.00 1.00 C 6422 4738 M 399 0 V ! 3785 1002 M ! 3529 468 L ! 2805 905 V ! 3785 1002 L ! 332 1602 V ! 6334 1373 L ! 3785 1002 L ! 3529 468 L ! 1067 789 L ! 2718 213 V ! 1439 3510 M ! 4519 4521 L ! 587 3609 L ! 852 -99 V ! 4519 4521 L ! 4117 2604 L ! 1439 3510 L ! 1067 789 L ! 587 3609 L ! 852 -99 V ! 6129 2355 M ! 4117 2604 L ! 6334 1373 L ! -205 982 V ! 4519 4521 L ! 4117 2604 L ! 6129 2355 L ! 2951 2020 M ! 3785 1002 L ! 1067 789 L ! 2951 2020 L ! 3785 1002 L ! 332 1602 V ! 2951 2020 L ! 1439 3510 L ! 1067 789 L ! 2951 2020 L ! 1439 3510 L ! 4117 2604 L ! 2951 2020 L ! % End plot #1 ! % Begin plot #2 stroke LT1 ! 1.00 0.00 0.00 C LCb setrgbcolor ! 6338 4598 M ! [ [(Helvetica) 140.0 0.0 true true 0 (Delaunay Triangulation)] ] -46.7 MRshow LT1 ! 1.00 0.00 0.00 C 6422 4598 M 399 0 V + % End plot #2 + % Begin plot #3 stroke LT2 ! 1.00 0.00 0.00 C 6989 1944 M ! 4940 1727 L ! % End plot #3 ! % Begin plot #4 stroke LT3 ! 1.00 0.00 0.00 C 6989 4067 M ! 5360 3452 L ! % End plot #4 ! % Begin plot #5 stroke LT4 ! 1.00 0.00 0.00 C 4940 1727 M ! 420 1725 V ! % End plot #5 ! % Begin plot #6 stroke LT5 ! 1.00 0.00 0.00 C 4940 1727 M ! -28 -25 V ! % End plot #6 ! % Begin plot #7 stroke LT6 ! 1.00 0.00 0.00 C 5360 3452 M ! 3194 3682 L ! % End plot #7 ! % Begin plot #8 stroke LT7 ! 1.00 0.00 0.00 C 2208 280 M 196 760 V + % End plot #8 + % Begin plot #9 stroke LT8 ! 1.00 0.00 0.00 C 2404 1040 M ! 5305 333 L ! % End plot #9 ! % Begin plot #10 stroke LT0 ! 1.00 0.00 0.00 C 2404 1040 M -10 66 V + % End plot #10 + % Begin plot #11 stroke LT1 ! 1.00 0.00 0.00 C 5305 333 M ! 33 -53 V ! % End plot #11 ! % Begin plot #12 stroke LT2 ! 1.00 0.00 0.00 C 5305 333 M ! 4912 1702 L ! % End plot #12 ! % Begin plot #13 stroke LT3 ! 1.00 0.00 0.00 C 4912 1702 M ! -865 91 V ! % End plot #13 ! % Begin plot #14 stroke LT4 ! 1.00 0.00 0.00 C 546 2175 M 153 13 V + % End plot #14 + % Begin plot #15 stroke LT5 ! 1.00 0.00 0.00 C 2426 4871 M ! 3194 3682 L ! % End plot #15 ! % Begin plot #16 stroke LT6 ! 1.00 0.00 0.00 C 1314 4871 M ! 699 2188 L ! % End plot #16 ! % Begin plot #17 stroke LT7 ! 1.00 0.00 0.00 C 3194 3682 M ! 2786 3070 L ! % End plot #17 ! % Begin plot #18 stroke LT8 ! 1.00 0.00 0.00 C 699 2188 M ! 332 -23 V ! % End plot #18 ! % Begin plot #19 stroke LT0 ! 1.00 0.00 0.00 C 2394 1106 M ! 1653 687 V ! % End plot #19 ! % Begin plot #20 stroke LT1 ! 1.00 0.00 0.00 C 2394 1106 M ! 1031 2165 L ! % End plot #20 ! % Begin plot #21 stroke LT2 ! 1.00 0.00 0.00 C 4047 1793 M ! 2786 3070 L ! % End plot #21 ! % Begin plot #22 stroke LT3 ! 1.00 0.00 0.00 C 2786 3070 M ! 1031 2165 L ! % End plot #22 ! % Begin plot #23 stroke 3.000 UL LT4 ! 0.00 1.00 0.00 C 2786 2014 M ! -46 0 V -47 2 V ! -46 2 V ! -46 4 V ! -46 5 V -46 5 V ! -46 7 V ! -45 8 V ! -45 8 V -45 10 V ! -44 11 V ! -43 12 V ! -43 12 V ! -43 14 V -42 15 V ! -41 15 V -40 17 V ! -40 17 V ! -39 18 V ! -38 19 V -37 20 V ! -36 21 V ! -36 22 V ! -34 22 V ! -34 23 V ! -32 24 V ! -32 24 V ! -30 26 V ! -29 25 V ! -28 27 V ! -27 27 V ! -25 28 V ! -25 28 V ! -23 29 V ! -21 29 V -21 30 V -19 30 V -18 31 V ! -16 31 V -15 31 V ! -14 32 V ! -12 32 V -11 32 V ! -10 33 V -8 33 V ! -6 32 V -5 33 V ! -4 34 V -2 33 V -1 33 V ! 1 33 V 2 33 V 4 33 V 5 33 V ! 6 33 V ! 8 33 V ! 10 32 V ! 11 33 V ! 12 32 V ! 14 31 V ! 15 32 V ! 16 31 V ! 18 30 V ! 19 31 V ! 21 29 V 21 30 V 23 29 V ! 25 28 V ! 25 28 V ! 27 27 V 28 26 V 29 26 V ! 30 25 V ! 32 25 V ! 32 24 V ! 34 23 V ! 34 22 V ! 36 22 V ! 36 21 V ! 37 19 V ! 38 20 V ! 39 18 V ! 40 17 V 40 17 V ! 41 15 V ! 42 15 V 43 13 V ! 43 13 V ! 43 12 V ! 44 11 V ! 45 9 V 45 9 V ! 45 8 V 46 6 V 46 6 V 46 5 V ! 46 4 V ! 46 2 V 47 2 V 46 0 V + 47 0 V 47 -2 V ! 46 -2 V ! 46 -4 V ! stroke 2972 4118 M ! 46 -5 V ! 46 -6 V 46 -6 V ! 45 -8 V 45 -9 V ! 45 -9 V ! 44 -11 V ! 43 -12 V ! 43 -13 V 43 -13 V ! 41 -15 V ! 42 -15 V ! 40 -17 V ! 40 -17 V ! 39 -18 V ! 38 -20 V ! 37 -19 V ! 36 -21 V ! 36 -22 V ! 34 -22 V 34 -23 V 32 -24 V ! 31 -25 V ! 31 -25 V 29 -26 V 28 -26 V ! 27 -27 V ! 25 -28 V ! 24 -28 V 24 -29 V 21 -30 V ! 21 -29 V ! 19 -31 V ! 18 -30 V ! 16 -31 V ! 15 -32 V ! 14 -31 V 12 -32 V ! 11 -33 V ! 10 -32 V ! 8 -33 V ! 6 -33 V 5 -33 V 4 -33 V 2 -33 V ! 1 -33 V -1 -33 V -2 -33 V ! -4 -34 V -5 -33 V ! -6 -32 V -8 -33 V ! -10 -33 V -11 -32 V -12 -32 V -14 -32 V -15 -31 V ! -16 -31 V -18 -31 V -19 -30 V -21 -30 V ! -21 -29 V -24 -29 V ! -24 -28 V ! -25 -28 V ! -27 -27 V ! -28 -27 V ! -29 -25 V ! -31 -26 V ! -31 -24 V -32 -24 V -34 -23 V ! -34 -22 V ! -36 -22 V ! -36 -21 V -37 -20 V -38 -19 V ! -39 -18 V ! -40 -17 V ! -40 -17 V -42 -15 V ! -41 -15 V ! -43 -14 V ! -43 -12 V ! -43 -12 V ! -44 -11 V -45 -10 V ! -45 -8 V ! -45 -8 V ! -46 -7 V ! -46 -5 V ! -46 -5 V ! -46 -4 V ! -46 -2 V -47 -2 V ! -47 0 V ! % End plot #23 stroke 0.500 UL LTb ! 546 4871 N ! 546 280 L ! 6443 0 V ! 0 4591 V ! -6443 0 V Z stroke 1.000 UP 0.500 UL Files octave-3.0.3/doc/interpreter/voronoi.pdf and octave-3.0.4/doc/interpreter/voronoi.pdf differ Files octave-3.0.3/doc/interpreter/voronoi.png and octave-3.0.4/doc/interpreter/voronoi.png differ Files octave-3.0.3/doc/liboctave/liboctave.pdf and octave-3.0.4/doc/liboctave/liboctave.pdf differ Files octave-3.0.3/doc/refcard/refcard-a4.pdf and octave-3.0.4/doc/refcard/refcard-a4.pdf differ Files octave-3.0.3/doc/refcard/refcard-legal.pdf and octave-3.0.4/doc/refcard/refcard-legal.pdf differ Files octave-3.0.3/doc/refcard/refcard-letter.pdf and octave-3.0.4/doc/refcard/refcard-letter.pdf differ diff -cNr octave-3.0.3/INSTALL.OCTAVE octave-3.0.4/INSTALL.OCTAVE *** octave-3.0.3/INSTALL.OCTAVE 2008-10-03 10:27:12.000000000 +0200 --- octave-3.0.4/INSTALL.OCTAVE 2009-04-01 11:00:23.000000000 +0200 *************** *** 6,12 **** *Note:* This file is automatically generated from `doc/interpreter/install.txi' in the Octave sources, so to make changes ! to this documenation file, change that source file. 1 Installing Octave ******************* --- 6,12 ---- *Note:* This file is automatically generated from `doc/interpreter/install.txi' in the Octave sources, so to make changes ! to this documentation file, change that source file. 1 Installing Octave ******************* *************** *** 32,38 **** Enable bounds checking for indexing operators in the internal array classes. This option is primarily used for debugging Octave. Building Octave with this option has a negative ! impact on performace and is not recommended for general use. `--enable-64' This is an *experimental* option to enable Octave to use --- 32,38 ---- Enable bounds checking for indexing operators in the internal array classes. This option is primarily used for debugging Octave. Building Octave with this option has a negative ! impact on performance and is not recommended for general use. `--enable-64' This is an *experimental* option to enable Octave to use *************** *** 220,226 **** installation of Octave. * On some SCO systems, `info' fails to compile if `HAVE_TERMIOS_H' ! is defined int `config.h'. Simply removing the definition from `info/config.h' should allow it to compile. * If `configure' finds `dlopen', `dlsym', `dlclose', and `dlerror', --- 220,226 ---- installation of Octave. * On some SCO systems, `info' fails to compile if `HAVE_TERMIOS_H' ! is defined in `config.h'. Simply removing the definition from `info/config.h' should allow it to compile. * If `configure' finds `dlopen', `dlsym', `dlclose', and `dlerror', diff -cNr octave-3.0.3/libcruft/ChangeLog octave-3.0.4/libcruft/ChangeLog *** octave-3.0.3/libcruft/ChangeLog 2008-09-29 08:03:11.000000000 +0200 --- octave-3.0.4/libcruft/ChangeLog 2009-04-01 10:43:25.000000000 +0200 *************** *** 1,3 **** --- 1,7 ---- + 2009-01-16 Jaroslav Hajek + + Version 3.0.4 released. + 2008-09-24 Jaroslav Hajek Version 3.0.3 released. diff -cNr octave-3.0.3/liboctave/ChangeLog octave-3.0.4/liboctave/ChangeLog *** octave-3.0.3/liboctave/ChangeLog 2008-09-29 08:03:11.000000000 +0200 --- octave-3.0.4/liboctave/ChangeLog 2009-04-01 10:43:25.000000000 +0200 *************** *** 1,3 **** --- 1,64 ---- + 2009-01-16 Jaroslav Hajek + + Version 3.0.4 released. + + 2009-02-05 Jaroslav Hajek + + * oct-sort.cc (octave_sort::merge_hi): std::copy -> + std::copy_backward where appropriate. + + 2008-01-15 Rafael Laboissiere + + * oct-md5.cc: Include . + + 2008-10-28 Brian Gough + + * lo-specfun.cc (zbesi): Fix scaling factor for negative alpha. + (cbesi): Likewise. + + 2008-11-18 David Bateman + + * file-ops.cc (std::string file_ops::tilde_expand (const + std::string&)): Check if the string contains a tilde and fast + return if not. + + 2008-11-17 John W. Eaton + + * dir-ops.cc (dir_entry::read): Use std::list to + cache names before converting to string_vector. + + 2008-10-09 Jaroslav Hajek + + * oct-sort.cc (octave_sort::merge_getmem, + octave_sort::merge_freemem): Replace malloc -> new [], free -> + delete []. + (octave_sort::merge_lo, octave_sort::merge_hi): Replace + std::memcpy and std::memmove with std::copy. + + 2008-10-12 Jaroslav Hajek + + * CSparse.cc (ComplexMatrix::expm): Improve inverse preconditioning + according to Marco Caliari. + * dSparse.cc (Matrix::expm): Likewise. + * fCSparse.cc (FloatComplexMatrix::expm): Likewise. + * fSparse.cc (FloatMatrix::expm): Likewise. + + 2008-10-10 Jaroslav Hajek + + * sparse-util.h (SparseCholPrint): Change char * argument to const + char *. + * sparse-util.cc (SparseCholPrint): Likewise. + + 2008-10-08 John W. Eaton + + * Sparse-op-defs.h (SPARSE_SMSM_BOOL_OPS): Duplicate code for scalar + sparse arguments rather than rely on extern function. + + 2008-10-06 David Bateman + + * Sparse-op-defs.h (SPARSE_SMSM_CMP_OPS): Duplicate code for scalar + sparse arguments rather than rely on extern function. + 2008-09-24 Jaroslav Hajek Version 3.0.3 released. *************** *** 214,219 **** --- 275,285 ---- 2008-02-12 Jason Riedy + * Array.cc (ascending_compare, descending_compare): Remove + non-standard extern in the instantiations. + + * oct-sort.cc: Include and sprinkle with std:: as needed. + * dMatrix.cc (ILAENV): Declare LAPACK Fortran function. (Matrix::lssolve): Use ILAENV to query smlsiz. And add an ugly workaround for DGELSD's broken lwork query. The formula is from diff -cNr octave-3.0.3/liboctave/CMatrix.cc octave-3.0.4/liboctave/CMatrix.cc *** octave-3.0.3/liboctave/CMatrix.cc 2008-09-24 09:13:47.000000000 +0200 --- octave-3.0.4/liboctave/CMatrix.cc 2009-02-18 07:57:46.000000000 +0100 *************** *** 2964,2980 **** // inverse scaling (diagonal transformation) for (octave_idx_type i = 0; i < nc; i++) for (octave_idx_type j = 0; j < nc; j++) ! retval(i,j) *= dscale(i) / dscale(j); OCTAVE_QUIT; // construct balancing permutation vector Array iperm (nc); for (octave_idx_type i = 0; i < nc; i++) ! iperm(i) = i; // initialize to identity permutation ! // leading permutations in forward order ! for (octave_idx_type i = 0; i < (ilo-1); i++) { octave_idx_type swapidx = static_cast (dpermute(i)) - 1; octave_idx_type tmp = iperm(i); --- 2964,2980 ---- // inverse scaling (diagonal transformation) for (octave_idx_type i = 0; i < nc; i++) for (octave_idx_type j = 0; j < nc; j++) ! retval(i,j) *= dscale(i) / dscale(j); OCTAVE_QUIT; // construct balancing permutation vector Array iperm (nc); for (octave_idx_type i = 0; i < nc; i++) ! iperm(i) = i; // identity permutation ! // trailing permutations must be done in reverse order ! for (octave_idx_type i = nc - 1; i >= ihi; i--) { octave_idx_type swapidx = static_cast (dpermute(i)) - 1; octave_idx_type tmp = iperm(i); *************** *** 2982,3025 **** iperm(swapidx) = tmp; } ! // construct inverse balancing permutation vector ! Array invpvec (nc); ! for (octave_idx_type i = 0; i < nc; i++) ! invpvec(iperm(i)) = i; // Thanks to R. A. Lippert for this method ! ! OCTAVE_QUIT; ! ! ComplexMatrix tmpMat = retval; ! for (octave_idx_type i = 0; i < nc; i++) ! for (octave_idx_type j = 0; j < nc; j++) ! retval(i,j) = tmpMat(invpvec(i),invpvec(j)); ! ! OCTAVE_QUIT; ! ! for (octave_idx_type i = 0; i < nc; i++) ! iperm(i) = i; // initialize to identity permutation ! ! // trailing permutations must be done in reverse order ! for (octave_idx_type i = nc - 1; i >= ihi; i--) { octave_idx_type swapidx = static_cast (dpermute(i)) - 1; octave_idx_type tmp = iperm(i); ! iperm(i) = iperm(swapidx); iperm(swapidx) = tmp; } // construct inverse balancing permutation vector for (octave_idx_type i = 0; i < nc; i++) invpvec(iperm(i)) = i; // Thanks to R. A. Lippert for this method OCTAVE_QUIT; ! tmpMat = retval; for (octave_idx_type i = 0; i < nc; i++) for (octave_idx_type j = 0; j < nc; j++) retval(i,j) = tmpMat(invpvec(i),invpvec(j)); ! // Reverse preconditioning step 1: fix trace normalization. return exp (trshift) * retval; } --- 2982,3009 ---- iperm(swapidx) = tmp; } ! // leading permutations in forward order ! for (octave_idx_type i = 0; i < (ilo-1); i++) { octave_idx_type swapidx = static_cast (dpermute(i)) - 1; octave_idx_type tmp = iperm(i); ! iperm(i) = iperm (swapidx); iperm(swapidx) = tmp; } // construct inverse balancing permutation vector + Array invpvec (nc); for (octave_idx_type i = 0; i < nc; i++) invpvec(iperm(i)) = i; // Thanks to R. A. Lippert for this method OCTAVE_QUIT; ! ComplexMatrix tmpMat = retval; for (octave_idx_type i = 0; i < nc; i++) for (octave_idx_type j = 0; j < nc; j++) retval(i,j) = tmpMat(invpvec(i),invpvec(j)); ! // Reverse preconditioning step 1: fix trace normalization. return exp (trshift) * retval; } diff -cNr octave-3.0.3/liboctave/dir-ops.cc octave-3.0.4/liboctave/dir-ops.cc *** octave-3.0.3/liboctave/dir-ops.cc 2008-09-24 09:13:47.000000000 +0200 --- octave-3.0.4/liboctave/dir-ops.cc 2009-02-18 07:57:46.000000000 +0100 *************** *** 28,33 **** --- 28,36 ---- #include #include + #include + #include + #include "sysdir.h" #include "dir-ops.h" *************** *** 69,108 **** string_vector dir_entry::read (void) { ! static octave_idx_type grow_size = 100; ! ! octave_idx_type len = 0; ! ! string_vector dirlist; if (ok ()) { ! int count = 0; struct dirent *dir_ent; while ((dir_ent = readdir (static_cast (dir)))) { if (dir_ent) ! { ! if (count >= len) ! { ! len += grow_size; ! dirlist.resize (len); ! } ! ! dirlist[count] = dir_ent->d_name; ! ! count++; ! } else break; } ! dirlist.resize (count); } ! return dirlist; } void --- 72,97 ---- string_vector dir_entry::read (void) { ! string_vector retval; if (ok ()) { ! std::list dirlist; struct dirent *dir_ent; while ((dir_ent = readdir (static_cast (dir)))) { if (dir_ent) ! dirlist.push_back (dir_ent->d_name); else break; } ! retval = string_vector (dirlist); } ! return retval; } void diff -cNr octave-3.0.3/liboctave/dMatrix.cc octave-3.0.4/liboctave/dMatrix.cc *** octave-3.0.3/liboctave/dMatrix.cc 2008-09-24 09:13:47.000000000 +0200 --- octave-3.0.4/liboctave/dMatrix.cc 2009-02-18 07:57:46.000000000 +0100 *************** *** 2589,2595 **** // apply inverse scaling to computed exponential for (octave_idx_type i = 0; i < nc; i++) for (octave_idx_type j = 0; j < nc; j++) ! retval(i,j) *= dscale(i) / dscale(j); OCTAVE_QUIT; --- 2589,2595 ---- // apply inverse scaling to computed exponential for (octave_idx_type i = 0; i < nc; i++) for (octave_idx_type j = 0; j < nc; j++) ! retval(i,j) *= dscale(i) / dscale(j); OCTAVE_QUIT; *************** *** 2598,2651 **** for (octave_idx_type i = 0; i < nc; i++) iperm(i) = i; // identity permutation ! // leading permutations in forward order ! for (octave_idx_type i = 0; i < (ilo-1); i++) { octave_idx_type swapidx = static_cast (dpermute(i)) - 1; octave_idx_type tmp = iperm(i); ! iperm(i) = iperm (swapidx); iperm(swapidx) = tmp; } ! // construct inverse balancing permutation vector ! Array invpvec (nc); ! for (octave_idx_type i = 0; i < nc; i++) ! invpvec(iperm(i)) = i; // Thanks to R. A. Lippert for this method ! ! OCTAVE_QUIT; ! ! Matrix tmpMat = retval; ! for (octave_idx_type i = 0; i < nc; i++) ! for (octave_idx_type j = 0; j < nc; j++) ! retval(i,j) = tmpMat(invpvec(i),invpvec(j)); ! ! OCTAVE_QUIT; ! ! for (octave_idx_type i = 0; i < nc; i++) ! iperm(i) = i; // identity permutation ! ! // trailing permutations must be done in reverse order ! for (octave_idx_type i = nc - 1; i >= ihi; i--) { octave_idx_type swapidx = static_cast (dpermute(i)) - 1; octave_idx_type tmp = iperm(i); ! iperm(i) = iperm(swapidx); iperm(swapidx) = tmp; } // construct inverse balancing permutation vector for (octave_idx_type i = 0; i < nc; i++) invpvec(iperm(i)) = i; // Thanks to R. A. Lippert for this method OCTAVE_QUIT; ! ! tmpMat = retval; for (octave_idx_type i = 0; i < nc; i++) for (octave_idx_type j = 0; j < nc; j++) retval(i,j) = tmpMat(invpvec(i),invpvec(j)); ! // Reverse preconditioning step 1: fix trace normalization. ! if (trshift > 0.0) retval = exp (trshift) * retval; --- 2598,2634 ---- for (octave_idx_type i = 0; i < nc; i++) iperm(i) = i; // identity permutation ! // trailing permutations must be done in reverse order ! for (octave_idx_type i = nc - 1; i >= ihi; i--) { octave_idx_type swapidx = static_cast (dpermute(i)) - 1; octave_idx_type tmp = iperm(i); ! iperm(i) = iperm(swapidx); iperm(swapidx) = tmp; } ! // leading permutations in forward order ! for (octave_idx_type i = 0; i < (ilo-1); i++) { octave_idx_type swapidx = static_cast (dpermute(i)) - 1; octave_idx_type tmp = iperm(i); ! iperm(i) = iperm (swapidx); iperm(swapidx) = tmp; } // construct inverse balancing permutation vector + Array invpvec (nc); for (octave_idx_type i = 0; i < nc; i++) invpvec(iperm(i)) = i; // Thanks to R. A. Lippert for this method OCTAVE_QUIT; ! ! Matrix tmpMat = retval; for (octave_idx_type i = 0; i < nc; i++) for (octave_idx_type j = 0; j < nc; j++) retval(i,j) = tmpMat(invpvec(i),invpvec(j)); ! // Reverse preconditioning step 1: fix trace normalization. if (trshift > 0.0) retval = exp (trshift) * retval; diff -cNr octave-3.0.3/liboctave/EIG.cc octave-3.0.4/liboctave/EIG.cc *** octave-3.0.3/liboctave/EIG.cc 2008-09-24 09:13:47.000000000 +0200 --- octave-3.0.4/liboctave/EIG.cc 2009-04-01 10:43:23.000000000 +0200 *************** *** 99,105 **** Array wi (n); double *pwi = wi.fortran_vec (); ! volatile octave_idx_type nvr = calc_ev ? n : 0; Matrix vr (nvr, nvr); double *pvr = vr.fortran_vec (); --- 99,105 ---- Array wi (n); double *pwi = wi.fortran_vec (); ! octave_idx_type nvr = calc_ev ? n : 0; Matrix vr (nvr, nvr); double *pvr = vr.fortran_vec (); diff -cNr octave-3.0.3/liboctave/file-ops.cc octave-3.0.4/liboctave/file-ops.cc *** octave-3.0.3/liboctave/file-ops.cc 2008-09-24 09:13:47.000000000 +0200 --- octave-3.0.4/liboctave/file-ops.cc 2009-02-18 07:57:46.000000000 +0100 *************** *** 746,798 **** std::string file_ops::tilde_expand (const std::string& name) { ! std::string result; ! size_t name_len = name.length (); ! // Scan through S expanding tildes as we come to them. ! size_t pos = 0; ! while (1) ! { ! if (pos > name_len) ! break; ! size_t len; ! // Make START point to the tilde which starts the expansion. ! size_t start = tilde_find_prefix (name.substr (pos), len); ! result.append (name.substr (pos, start)); ! // Advance STRING to the starting tilde. ! pos += start; ! // Make FINI be the index of one after the last character of the ! // username. ! size_t fini = tilde_find_suffix (name.substr (pos)); ! // If both START and FINI are zero, we are all done. ! if (! (start || fini)) ! break; ! // Expand the entire tilde word, and copy it into RESULT. ! std::string tilde_word = name.substr (pos, fini); ! pos += fini; ! std::string expansion = tilde_expand_word (tilde_word); ! result.append (expansion); ! } ! return result; } // A vector version of the above. --- 746,803 ---- std::string file_ops::tilde_expand (const std::string& name) { ! if (name.find ('~') == std::string::npos) ! return name; ! else ! { ! std::string result; ! size_t name_len = name.length (); ! // Scan through S expanding tildes as we come to them. ! size_t pos = 0; ! while (1) ! { ! if (pos > name_len) ! break; ! size_t len; ! // Make START point to the tilde which starts the expansion. ! size_t start = tilde_find_prefix (name.substr (pos), len); ! result.append (name.substr (pos, start)); ! // Advance STRING to the starting tilde. ! pos += start; ! // Make FINI be the index of one after the last character of the ! // username. ! size_t fini = tilde_find_suffix (name.substr (pos)); ! // If both START and FINI are zero, we are all done. ! if (! (start || fini)) ! break; ! // Expand the entire tilde word, and copy it into RESULT. ! std::string tilde_word = name.substr (pos, fini); ! pos += fini; ! std::string expansion = tilde_expand_word (tilde_word); ! result.append (expansion); ! } ! return result; ! } } // A vector version of the above. diff -cNr octave-3.0.3/liboctave/lo-specfun.cc octave-3.0.4/liboctave/lo-specfun.cc *** octave-3.0.3/liboctave/lo-specfun.cc 2008-09-24 09:13:47.000000000 +0200 --- octave-3.0.4/liboctave/lo-specfun.cc 2009-02-18 07:57:46.000000000 +0100 *************** *** 411,418 **** if (ierr == 0 || ierr == 3) { ! tmp += (2.0 / M_PI) * sin (M_PI * alpha) * zbesk (z, alpha, kode, ierr); retval = bessel_return_value (tmp, ierr); } --- 411,426 ---- if (ierr == 0 || ierr == 3) { ! Complex tmp2 = (2.0 / M_PI) * sin (M_PI * alpha) * zbesk (z, alpha, kode, ierr); + + if (kode == 2) + { + // Compensate for different scaling factor of besk. + tmp2 *= exp(-z - std::abs(z.real())); + } + + tmp += tmp2; retval = bessel_return_value (tmp, ierr); } diff -cNr octave-3.0.3/liboctave/oct-md5.cc octave-3.0.4/liboctave/oct-md5.cc *** octave-3.0.3/liboctave/oct-md5.cc 2008-09-24 09:13:47.000000000 +0200 --- octave-3.0.4/liboctave/oct-md5.cc 2009-02-23 21:09:00.000000000 +0100 *************** *** 20,32 **** */ - #include - #include - #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "lo-error.h" #include "oct-md5.h" #include "md5.h" --- 20,34 ---- */ #ifdef HAVE_CONFIG_H #include "config.h" #endif + #include + + #include + #include + #include "lo-error.h" #include "oct-md5.h" #include "md5.h" diff -cNr octave-3.0.3/liboctave/oct-sort.cc octave-3.0.4/liboctave/oct-sort.cc *** octave-3.0.3/liboctave/oct-sort.cc 2008-09-24 09:13:47.000000000 +0200 --- octave-3.0.4/liboctave/oct-sort.cc 2009-02-24 07:56:29.000000000 +0100 *************** *** 1,5 **** --- 1,6 ---- /* Copyright (C) 2003, 2004, 2005, 2006, 2007 David Bateman + Copyright (C) 2008 Jaroslav Hajek This file is part of Octave. *************** *** 27,32 **** --- 28,39 ---- * convert the sorting code in listobject.cc into a generic class, replacing PyObject* with the type of the class T. + * replaced usages of malloc, free, memcpy and memmove by standard C++ + new [], delete [] and std::copy and std::copy_backward. Note that replacing + memmove by std::copy is possible if the destination starts before the source. + If not, std::copy_backward needs to be used. + + The Python license is PSF LICENSE AGREEMENT FOR PYTHON 2.3 *************** *** 84,90 **** #endif #include ! #include #include "lo-mappers.h" #include "quit.h" --- 91,98 ---- #endif #include ! #include ! #include #include "lo-mappers.h" #include "quit.h" *************** *** 431,438 **** void octave_sort::merge_freemem (void) { ! if (ms.a) ! free (ms.a); ms.alloced = 0; ms.a = 0; } --- 439,445 ---- void octave_sort::merge_freemem (void) { ! delete [] ms.a; ms.alloced = 0; ms.a = 0; } *************** *** 489,495 **** * we don't care what's in the block. */ merge_freemem (); ! ms.a = static_cast (malloc (need * sizeof (T))); if (ms.a) { ms.alloced = need; --- 496,502 ---- * we don't care what's in the block. */ merge_freemem (); ! ms.a = new T[need]; if (ms.a) { ms.alloced = need; *************** *** 519,525 **** if (MERGE_GETMEM (na) < 0) return -1; ! memcpy (ms.a, pa, na * sizeof (T)); dest = pa; pa = ms.a; --- 526,532 ---- if (MERGE_GETMEM (na) < 0) return -1; ! std::copy (pa, pa + na, ms.a); dest = pa; pa = ms.a; *************** *** 581,587 **** { if (k < 0) goto Fail; ! memcpy (dest, pa, k * sizeof (T)); dest += k; pa += k; na -= k; --- 588,594 ---- { if (k < 0) goto Fail; ! std::copy (pa, pa + k, dest); dest += k; pa += k; na -= k; *************** *** 605,611 **** { if (k < 0) goto Fail; ! memmove (dest, pb, k * sizeof (T)); dest += k; pb += k; nb -= k; --- 612,618 ---- { if (k < 0) goto Fail; ! std::copy (pb, pb + k, dest); dest += k; pb += k; nb -= k; *************** *** 628,639 **** Fail: if (na) ! memcpy (dest, pa, na * sizeof (T)); return result; CopyB: /* The last element of pa belongs at the end of the merge. */ ! memmove (dest, pb, nb * sizeof (T)); dest[nb] = *pa; return 0; --- 635,646 ---- Fail: if (na) ! std::copy (pa, pa + na, dest); return result; CopyB: /* The last element of pa belongs at the end of the merge. */ ! std::copy (pb, pb + nb, dest); dest[nb] = *pa; return 0; *************** *** 659,665 **** if (MERGE_GETMEM (nb) < 0) return -1; dest = pb + nb - 1; ! memcpy (ms.a, pb, nb * sizeof (T)); basea = pa; baseb = ms.a; pb = ms.a + nb - 1; --- 666,672 ---- if (MERGE_GETMEM (nb) < 0) return -1; dest = pb + nb - 1; ! std::copy (pb, pb + nb, ms.a); basea = pa; baseb = ms.a; pb = ms.a + nb - 1; *************** *** 725,731 **** { dest -= k; pa -= k; ! memmove (dest+1, pa+1, k * sizeof (T)); na -= k; if (na == 0) goto Succeed; --- 732,738 ---- { dest -= k; pa -= k; ! std::copy_backward (pa+1, pa+1 + k, dest+1 + k); na -= k; if (na == 0) goto Succeed; *************** *** 744,750 **** { dest -= k; pb -= k; ! memcpy (dest+1, pb+1, k * sizeof (T)); nb -= k; if (nb == 1) goto CopyA; --- 751,757 ---- { dest -= k; pb -= k; ! std::copy (pb+1, pb+1 + k, dest+1); nb -= k; if (nb == 1) goto CopyA; *************** *** 769,782 **** Fail: if (nb) ! memcpy (dest-(nb-1), baseb, nb * sizeof (T)); return result; CopyA: /* The first element of pb belongs at the front of the merge. */ dest -= na; pa -= na; ! memmove (dest+1, pa+1, na * sizeof (T)); *dest = *pb; return 0; --- 776,789 ---- Fail: if (nb) ! std::copy (baseb, baseb + nb, dest-(nb-1)); return result; CopyA: /* The first element of pb belongs at the front of the merge. */ dest -= na; pa -= na; ! std::copy_backward (pa+1, pa+1 + na, dest+1 + na); *dest = *pb; return 0; diff -cNr octave-3.0.3/liboctave/Sparse-op-defs.h octave-3.0.4/liboctave/Sparse-op-defs.h *** octave-3.0.3/liboctave/Sparse-op-defs.h 2008-09-24 09:13:47.000000000 +0200 --- octave-3.0.4/liboctave/Sparse-op-defs.h 2009-02-18 07:57:46.000000000 +0100 *************** *** 734,739 **** --- 734,743 ---- SPARSE_CMP_OP_DECL (mx_el_eq, M1, M2, API); \ SPARSE_CMP_OP_DECL (mx_el_ne, M1, M2, API); + // FIXME -- this macro duplicatest the bodies of the template + // functions defined in the SPARSE_SSM_CMP_OP and SPARSE_SMS_CMP_OP + // macros. + #define SPARSE_SMSM_CMP_OP(F, OP, M1, Z1, C1, M2, Z2, C2) \ SparseBoolMatrix \ F (const M1& m1, const M2& m2) \ *************** *** 748,762 **** \ if (m1_nr == 1 && m1_nc == 1) \ { \ ! extern OCTAVE_API SparseBoolMatrix F (const double&, const M2&); \ ! extern OCTAVE_API SparseBoolMatrix F (const Complex&, const M2&); \ ! r = F (m1.elem(0,0), m2); \ } \ else if (m2_nr == 1 && m2_nc == 1) \ { \ ! extern OCTAVE_API SparseBoolMatrix F (const M1&, const double&); \ ! extern OCTAVE_API SparseBoolMatrix F (const M1&, const Complex&); \ ! r = F (m1, m2.elem(0,0)); \ } \ else if (m1_nr == m2_nr && m1_nc == m2_nc) \ { \ --- 752,812 ---- \ if (m1_nr == 1 && m1_nc == 1) \ { \ ! if (C1 (m1.elem(0,0)) OP C2 (Z2)) \ ! { \ ! r = SparseBoolMatrix (m2_nr, m2_nc, true); \ ! for (octave_idx_type j = 0; j < m2_nc; j++) \ ! for (octave_idx_type i = m2.cidx(j); i < m2.cidx(j+1); i++) \ ! if (! (C1 (m1.elem (0,0)) OP C2 (m2.data(i)))) \ ! r.data (m2.ridx (i) + j * m2_nr) = false; \ ! r.maybe_compress (true); \ ! } \ ! else \ ! { \ ! r = SparseBoolMatrix (m2_nr, m2_nc, m2.nnz ()); \ ! r.cidx (0) = static_cast (0); \ ! octave_idx_type nel = 0; \ ! for (octave_idx_type j = 0; j < m2_nc; j++) \ ! { \ ! for (octave_idx_type i = m2.cidx(j); i < m2.cidx(j+1); i++) \ ! if (C1 (m1.elem (0,0)) OP C2 (m2.data(i))) \ ! { \ ! r.ridx (nel) = m2.ridx (i); \ ! r.data (nel++) = true; \ ! } \ ! r.cidx (j + 1) = nel; \ ! } \ ! r.maybe_compress (false); \ ! } \ } \ else if (m2_nr == 1 && m2_nc == 1) \ { \ ! if (C1 (Z1) OP C2 (m2.elem (0,0))) \ ! { \ ! r = SparseBoolMatrix (m1_nr, m1_nc, true); \ ! for (octave_idx_type j = 0; j < m1_nc; j++) \ ! for (octave_idx_type i = m1.cidx(j); i < m1.cidx(j+1); i++) \ ! if (! (C1 (m1.data (i)) OP C2 (m2.elem(0,0)))) \ ! r.data (m1.ridx (i) + j * m1_nr) = false; \ ! r.maybe_compress (true); \ ! } \ ! else \ ! { \ ! r = SparseBoolMatrix (m1_nr, m1_nc, m1.nnz ()); \ ! r.cidx (0) = static_cast (0); \ ! octave_idx_type nel = 0; \ ! for (octave_idx_type j = 0; j < m1_nc; j++) \ ! { \ ! for (octave_idx_type i = m1.cidx(j); i < m1.cidx(j+1); i++) \ ! if (C1 (m1.data (i)) OP C2 (m2.elem(0,0))) \ ! { \ ! r.ridx (nel) = m1.ridx (i); \ ! r.data (nel++) = true; \ ! } \ ! r.cidx (j + 1) = nel; \ ! } \ ! r.maybe_compress (false); \ ! } \ } \ else if (m1_nr == m2_nr && m1_nc == m2_nc) \ { \ *************** *** 868,873 **** --- 918,927 ---- SPARSE_BOOL_OP_DECL (mx_el_and, M1, M2, API); \ SPARSE_BOOL_OP_DECL (mx_el_or, M1, M2, API); + // FIXME -- this macro duplicatest the bodies of the template + // functions defined in the SPARSE_SSM_BOOL_OP and SPARSE_SMS_BOOL_OP + // macros. + #define SPARSE_SMSM_BOOL_OP(F, OP, M1, M2, LHS_ZERO, RHS_ZERO) \ SparseBoolMatrix \ F (const M1& m1, const M2& m2) \ *************** *** 882,896 **** \ if (m1_nr == 1 && m1_nc == 1) \ { \ ! extern OCTAVE_API SparseBoolMatrix F (const double&, const M2&); \ ! extern OCTAVE_API SparseBoolMatrix F (const Complex&, const M2&); \ ! r = F (m1.elem(0,0), m2); \ } \ else if (m2_nr == 1 && m2_nc == 1) \ { \ ! extern OCTAVE_API SparseBoolMatrix F (const M1&, const double&); \ ! extern OCTAVE_API SparseBoolMatrix F (const M1&, const Complex&); \ ! r = F (m1, m2.elem(0,0)); \ } \ else if (m1_nr == m2_nr && m1_nc == m2_nc) \ { \ --- 936,1002 ---- \ if (m1_nr == 1 && m1_nc == 1) \ { \ ! if (m2_nr > 0 && m2_nc > 0) \ ! { \ ! if ((m1.elem(0,0) != LHS_ZERO) OP RHS_ZERO) \ ! { \ ! r = SparseBoolMatrix (m2_nr, m2_nc, true); \ ! for (octave_idx_type j = 0; j < m2_nc; j++) \ ! for (octave_idx_type i = m2.cidx(j); i < m2.cidx(j+1); i++) \ ! if (! ((m1.elem(0,0) != LHS_ZERO) OP (m2.data(i) != RHS_ZERO))) \ ! r.data (m2.ridx (i) + j * m2_nr) = false; \ ! r.maybe_compress (true); \ ! } \ ! else \ ! { \ ! r = SparseBoolMatrix (m2_nr, m2_nc, m2.nnz ()); \ ! r.cidx (0) = static_cast (0); \ ! octave_idx_type nel = 0; \ ! for (octave_idx_type j = 0; j < m2_nc; j++) \ ! { \ ! for (octave_idx_type i = m2.cidx(j); i < m2.cidx(j+1); i++) \ ! if ((m1.elem(0,0) != LHS_ZERO) OP (m2.data(i) != RHS_ZERO)) \ ! { \ ! r.ridx (nel) = m2.ridx (i); \ ! r.data (nel++) = true; \ ! } \ ! r.cidx (j + 1) = nel; \ ! } \ ! r.maybe_compress (false); \ ! } \ ! } \ } \ else if (m2_nr == 1 && m2_nc == 1) \ { \ ! if (m1_nr > 0 && m1_nc > 0) \ ! { \ ! if (LHS_ZERO OP (m2.elem(0,0) != RHS_ZERO)) \ ! { \ ! r = SparseBoolMatrix (m1_nr, m1_nc, true); \ ! for (octave_idx_type j = 0; j < m1_nc; j++) \ ! for (octave_idx_type i = m1.cidx(j); i < m1.cidx(j+1); i++) \ ! if (! ((m1.data(i) != LHS_ZERO) OP (m2.elem(0,0) != RHS_ZERO))) \ ! r.data (m1.ridx (i) + j * m1_nr) = false; \ ! r.maybe_compress (true); \ ! } \ ! else \ ! { \ ! r = SparseBoolMatrix (m1_nr, m1_nc, m1.nnz ()); \ ! r.cidx (0) = static_cast (0); \ ! octave_idx_type nel = 0; \ ! for (octave_idx_type j = 0; j < m1_nc; j++) \ ! { \ ! for (octave_idx_type i = m1.cidx(j); i < m1.cidx(j+1); i++) \ ! if ((m1.data(i) != LHS_ZERO) OP (m2.elem(0,0) != RHS_ZERO)) \ ! { \ ! r.ridx (nel) = m1.ridx (i); \ ! r.data (nel++) = true; \ ! } \ ! r.cidx (j + 1) = nel; \ ! } \ ! r.maybe_compress (false); \ ! } \ ! } \ } \ else if (m1_nr == m2_nr && m1_nc == m2_nc) \ { \ diff -cNr octave-3.0.3/liboctave/sparse-util.cc octave-3.0.4/liboctave/sparse-util.cc *** octave-3.0.3/liboctave/sparse-util.cc 2008-09-24 09:13:47.000000000 +0200 --- octave-3.0.4/liboctave/sparse-util.cc 2009-02-18 07:57:46.000000000 +0100 *************** *** 30,38 **** --- 30,45 ---- #include "lo-error.h" #include "sparse-util.h" + // FIXME this overload is here due to API change in SuiteSparse (3.1 -> 3.2) void SparseCholError (int status, char *file, int line, char *message) { + SparseCholError (status, file, line, message); + } + + void + SparseCholError (int status, const char *file, int line, const char *message) + { (*current_liboctave_warning_handler)("warning %i, at line %i in file %s", status, line, file); diff -cNr octave-3.0.3/liboctave/sparse-util.h octave-3.0.4/liboctave/sparse-util.h *** octave-3.0.3/liboctave/sparse-util.h 2008-09-24 09:13:47.000000000 +0200 --- octave-3.0.4/liboctave/sparse-util.h 2009-02-18 07:57:46.000000000 +0100 *************** *** 24,30 **** #if !defined (octave_sparse_util_h) #define octave_sparse_util_h 1 ! extern OCTAVE_API void SparseCholError (int status, char *file, int line, char *message); extern OCTAVE_API int SparseCholPrint (const char *fmt, ...); #endif --- 24,34 ---- #if !defined (octave_sparse_util_h) #define octave_sparse_util_h 1 ! // FIXME this overload is here due to API change in SuiteSparse (3.1 -> 3.2) ! extern OCTAVE_API void SparseCholError (int status, char *file, ! int line, char *message); ! extern OCTAVE_API void SparseCholError (int status, const char *file, ! int line, const char *message); extern OCTAVE_API int SparseCholPrint (const char *fmt, ...); #endif diff -cNr octave-3.0.3/scripts/ChangeLog octave-3.0.4/scripts/ChangeLog *** octave-3.0.3/scripts/ChangeLog 2008-09-29 08:03:11.000000000 +0200 --- octave-3.0.4/scripts/ChangeLog 2009-04-01 10:43:25.000000000 +0200 *************** *** 1,3 **** --- 1,177 ---- + 2009-01-16 Jaroslav Hajek + + Version 3.0.4 released. + + 2009-03-25 Rob Mahurin + + * set/create_set.m: return a row vector. From M. Caliari. + + 2009-03-25 Jaroslav Hajek + + * plot/clf.m: Fix due to M. Caliari. + + 2009-02-24 Rob Mahurin + + * plot/legend.m: Fix legend order. Add explicit colors to demos. + From Marco Caliari + + 2009-02-23 John W. Eaton + + * plot/fplot.m: Fix nargin check. + From Joel Parker . + + 2008-01-15 Rafael Laboissiere + + * gethelp.cc: Include . + + 2009-02-14 Tatsuro MATSUOKA + + * miscellaneous/fileparts.m: Fix again. + + 2009-01-29 Jaroslav Hajek + + * miscellaneous/fileparts.m: Fix test for Windows. + + 2009-01-16 Daniel J Sebald + + * plot/legend.m: Fix legend order for both horizontal and + vertical string cell. + + 2009-01-13 Daniel J Sebald + + * set/unique.m: Fix for vertical array inputs. + + 2008-12-18 Daniel J Sebald + + * set/unique.m: Only check for options if nargin > 1. + + 2008-07-10 Jaroslav Hajek + + * set/unique.m: Implement 'first' and 'last', some simplifications. + * set/union.m: Implement output indices. + * set/intersect.m: Implement 'rows'. + * set/setdiff.m: Implement output indices. + * set/setxor.m: Implement 'rows' and output indices. + Add tests and adjust docs in all of the above. + + 2008-01-04 Soren Hauberg + + * set/create_set.m, set/union.m: Accept "rows" argument. + + 2008-01-15 Ben Abbott + + * plot/grid.m: Document handle argument. + + 2008-12-24 Doug Stewart + + * plot/grid.m: Handle "minor" option. + + 2008-03-04 Ben Abbott + + * polynomial/polyfit.m: Modified tests to respect a relative tolerance. + + 2008-02-19 Ben Abbott + + * polynomial/polyfit.m: Use QR decomposition. Handle + normalization option. + * polynomial/polyval.m: Normalize dependent variable. Optionally + generate 50% prediction intervals. + + 2008-10-13 Francesco Potorti + + * plot/__errplot__.m: Wrong if switch compared strings using ==. + Subsituted with a switch statement. + + 2008-12-26 Francesco Potortì + + * general/prepad.m: Add reference to postpad. + + * general/postpad.m: Use @seealso. Add reference to resize. + + * statistics/base/statistics.m: Correct help string. + + * plot/hist.m: Doc string now mentions matrix input argument. + Correct error message. + + 2008-10-21 Ben Abbott + + * plot/clf.m: Improve Matlab compatibility. + + 2008-10-16 David Bateman + + * plot/subplot.m: Allow for column vector of children for figure. + + 2008-10-16 Ben Abbott + + * plot/contourf.m: Correct order of patch object handles. + + 2008-09-08 Kai Habel + + * plot/contourf.m: Fix case for equal-sized matrices + of X and Y. + + 2008-11-26 Francesco Potortì + + * specfun/nchoosek.m: Set max_recursion_depth and use a subfunction. + + 2008-11-04 Thorsten Meyer + + * miscellaneous/unpack.m: return directly after recursive handling + of cell-strings + + 2008-11-24 Ben Abbott + + * plot/legend.m: Correct ording of legend labels. + + 2008-03-20 Ben Abbott + + * statistics/base/statistics.m: Calculate median and quantiles in + a manner consistent with method #7 used by GNU R. + * statistics/base/__quantile__.m, statistics/base/quantile.m, + statistics/base/prctile.m: New functions. + * statistics/base/Makefile.in (SOURCES): Add them to the list. + + 2008-11-10 John W. Eaton + + * polynomial/spline.m: Delete debugging statements. From + Sebastian Schöps . + + 2008-11-13 John W. Eaton + + * statistics/distributions/chi2rnd.m: Fix another missing semicolon. + From sven.mattisson@insatnet.nu. + + 2008-08-29 David Bateman + + * plot/hold.m: If currentaxes if figure doesn't exist, create it. + + 2008-10-08 John W. Eaton + + * miscellaneous/fileparts.m: Handle "/file" properly. + Improve compatibility. + + 2008-10-02 John W. Eaton + + * pkg/pkg.m (configure_make): Handle filenames with spaces.: + + 2008-10-02 Benjamin Lindner + + * pkg.m (configure_make): Enclose building directory in quotes. + + 2008-09-29 Ben Abbott + + * polynomial/deconv.m: Fix row/col orientation & length of output. + + * polynomial/conv.m: Correct row/col orientation of output. + + 2008-09-27 Ivan Sutoris + + * optimization/sqp.m: Document additional parameters. + + 2008-09-24 John W. Eaton + + * plot/fplot.m: Call axis after calling plot. + 2008-09-24 Jaroslav Hajek Version 3.0.3 released. diff -cNr octave-3.0.3/scripts/DOCSTRINGS octave-3.0.4/scripts/DOCSTRINGS *** octave-3.0.3/scripts/DOCSTRINGS 2008-09-29 07:57:17.000000000 +0200 --- octave-3.0.4/scripts/DOCSTRINGS 2009-03-27 12:52:54.000000000 +0100 *************** *** 3,6242 **** ### This file is generated automatically from the Octave sources. ### Edit those files instead and run make to update this file. ! deal -*- texinfo -*- ! @deftypefn {Function File} {[@var{r1}, @var{r2}, @dots{}, @var{rn}] =} deal (@var{a}) ! @deftypefnx {Function File} {[@var{r1}, @var{r2}, @dots{}, @var{rn}] =} deal (@var{a1}, @var{a2}, @dots{}, @var{an}) ! ! Copy the input parameters into the corresponding output parameters. ! If only one input parameter is supplied, its value is copied to each ! of the outputs. ! ! For example, ! ! @example ! [a, b, c] = deal (x, y, z); ! @end example ! @noindent ! is equivalent to @example ! @group ! a = x; ! b = y; ! c = z; ! @end group @end example @noindent ! and @example ! [a, b, c] = deal (x); @end example @noindent ! is equivalent to ! ! @example ! a = b = c = x; ! @end example @end deftypefn ! bitget -*- texinfo -*- ! @deftypefn {Function File} {@var{X} =} bitget (@var{a},@var{n}) ! Return the status of bit(s) @var{n} of unsigned integers in @var{a} ! the lowest significant bit is @var{n} = 1. ! @example ! bitget (100, 8:-1:1) ! @result{} 0 1 1 0 0 1 0 0 ! @end example ! @seealso{bitand, bitor, bitxor, bitset, bitcmp, bitshift, bitmax} @end deftypefn ! rat -*- texinfo -*- ! @deftypefn {Function File} {@var{s} =} rat (@var{x}, @var{tol}) ! @deftypefnx {Function File} {[@var{n}, @var{d}] =} rat (@var{x}, @var{tol}) ! ! Find a rational approximation to @var{x} within tolerance defined ! by @var{tol} using a continued fraction expansion. E.g, ! ! @example ! rat(pi) = 3 + 1/(7 + 1/16) = 355/113 ! rat(e) = 3 + 1/(-4 + 1/(2 + 1/(5 + 1/(-2 + 1/(-7))))) ! = 1457/536 ! @end example ! ! Called with two arguments returns the numerator and denominator separately ! as two matrices. @end deftypefn ! @seealso{rats} ! isequalwithequalnans -*- texinfo -*- ! @deftypefn {Function File} {} isequalwithequalnans (@var{x1}, @var{x2}, @dots{}) ! Assuming NaN == NaN, return true if all of @var{x1}, @var{x2}, @dots{} ! are equal. ! @seealso{isequal} @end deftypefn ! common_size -*- texinfo -*- ! @deftypefn {Function File} {[@var{err}, @var{y1}, @dots{}] =} common_size (@var{x1}, @dots{}) ! Determine if all input arguments are either scalar or of common ! size. If so, @var{err} is zero, and @var{yi} is a matrix of the ! common size with all entries equal to @var{xi} if this is a scalar or ! @var{xi} otherwise. If the inputs cannot be brought to a common size, ! errorcode is 1, and @var{yi} is @var{xi}. For example, ! ! @example ! @group ! [errorcode, a, b] = common_size ([1 2; 3 4], 5) ! @result{} errorcode = 0 ! @result{} a = [ 1, 2; 3, 4 ] ! @result{} b = [ 5, 5; 5, 5 ] ! @end group ! @end example ! @noindent ! This is useful for implementing functions where arguments can either ! be scalars or of common size. @end deftypefn ! repmat -*- texinfo -*- ! @deftypefn {Function File} {} repmat (@var{A}, @var{m}, @var{n}) ! @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n}]) ! @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n} @var{p} ...]) ! Form a block matrix of size @var{m} by @var{n}, with a copy of matrix ! @var{A} as each element. If @var{n} is not specified, form an ! @var{m} by @var{m} block matrix. @end deftypefn ! nthroot -*- texinfo -*- ! @deftypefn {Function File} {} nthroot (@var{x}, @var{n}) ! ! Compute the nth root of @var{x}, returning real results for real ! components of @var{x}. For example ! ! @example ! @group ! nthroot (-1, 3) ! @result{} -1 ! (-1) ^ (1 / 3) ! @result{} 0.50000 - 0.86603i ! @end group ! @end example ! @end deftypefn ! cart2pol -*- texinfo -*- ! @deftypefn {Function File} {[@var{theta}, @var{r}] =} cart2pol (@var{x}, @var{y}) ! @deftypefnx {Function File} {[@var{theta}, @var{r}, @var{z}] =} cart2pol (@var{x}, @var{y}, @var{z}) ! Transform cartesian to polar or cylindrical coordinates. ! @var{x}, @var{y} (and @var{z}) must be of same shape. ! @var{theta} describes the angle relative to the x - axis. ! @var{r} is the distance to the z - axis (0, 0, z). ! @seealso{pol2cart, cart2sph, sph2cart} @end deftypefn ! cell2mat -*- texinfo -*- ! @deftypefn {Function File} {@var{m} =} cell2mat (@var{c}) ! Convert the cell array @var{c} into a matrix by concatenating all ! elements of @var{c} into a hyperrectangle. Elements of @var{c} must ! be numeric, logical or char, and @code{cat} must be able to ! concatenate them together. ! @seealso{mat2cell, num2cell} @end deftypefn ! isdefinite -*- texinfo -*- ! @deftypefn {Function File} {} isdefinite (@var{x}, @var{tol}) ! Return 1 if @var{x} is symmetric positive definite within the ! tolerance specified by @var{tol} or 0 if @var{x} is symmetric ! positive semidefinite. Otherwise, return -1. If @var{tol} ! is omitted, use a tolerance equal to 100 times the machine precision. ! @seealso{issymmetric} @end deftypefn ! rot90 -*- texinfo -*- ! @deftypefn {Function File} {} rot90 (@var{x}, @var{n}) ! Return a copy of @var{x} with the elements rotated counterclockwise in ! 90-degree increments. The second argument is optional, and specifies ! how many 90-degree rotations are to be applied (the default value is 1). ! Negative values of @var{n} rotate the matrix in a clockwise direction. ! For example, @example ! @group ! rot90 ([1, 2; 3, 4], -1) ! @result{} 3 1 ! 4 2 ! @end group @end example @noindent ! rotates the given matrix clockwise by 90 degrees. The following are all ! equivalent statements: ! ! @example ! @group ! rot90 ([1, 2; 3, 4], -1) ! rot90 ([1, 2; 3, 4], 3) ! rot90 ([1, 2; 3, 4], 7) ! @end group ! @end example ! ! Due to the difficulty of defining an axis about which to rotate the ! matrix @code{rot90} only work with 2-D arrays. To rotate N-d arrays ! use @code{rotdim} instead. ! @seealso{rotdim, flipud, fliplr, flipdim} @end deftypefn ! isdir -*- texinfo -*- ! @deftypefn {Function File} {} isdir (@var{f}) ! Return true if @var{f} is a directory. @end deftypefn ! isscalar -*- texinfo -*- ! @deftypefn {Function File} {} isscalar (@var{a}) ! Return 1 if @var{a} is a scalar. Otherwise, return 0. ! @seealso{size, rows, columns, length, isscalar, ismatrix} @end deftypefn ! isa -*- texinfo -*- ! @deftypefn {Function File} {} isa (@var{x}, @var{class}) ! Return true if @var{x} is a value from the class @var{class}. @end deftypefn ! cart2sph -*- texinfo -*- ! @deftypefn {Function File} {[@var{theta}, @var{phi}, @var{r}] =} cart2sph (@var{x}, @var{y}, @var{z}) ! Transform cartesian to spherical coordinates. ! @var{x}, @var{y} and @var{z} must be of same shape. ! @var{theta} describes the angle relative to the x - axis. ! @var{phi} is the angle relative to the xy - plane. ! @var{r} is the distance to the origin (0, 0, 0). ! @seealso{pol2cart, cart2pol, sph2cart} @end deftypefn ! pol2cart -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{y}] =} pol2cart (@var{theta}, @var{r}) ! @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} pol2cart (@var{theta}, @var{r}, @var{z}) ! Transform polar or cylindrical to cartesian coordinates. ! @var{theta}, @var{r} (and @var{z}) must be of same shape. ! @var{theta} describes the angle relative to the x - axis. ! @var{r} is the distance to the z - axis (0, 0, z). ! @seealso{cart2pol, cart2sph, sph2cart} @end deftypefn ! tril -*- texinfo -*- ! @deftypefn {Function File} {} tril (@var{a}, @var{k}) ! @deftypefnx {Function File} {} triu (@var{a}, @var{k}) ! Return a new matrix formed by extracting the lower (@code{tril}) ! or upper (@code{triu}) triangular part of the matrix @var{a}, and ! setting all other elements to zero. The second argument is optional, ! and specifies how many diagonals above or below the main diagonal should ! also be set to zero. ! ! The default value of @var{k} is zero, so that @code{triu} and ! @code{tril} normally include the main diagonal as part of the result ! matrix. ! ! If the value of @var{k} is negative, additional elements above (for ! @code{tril}) or below (for @code{triu}) the main diagonal are also ! selected. ! ! The absolute value of @var{k} must not be greater than the number of ! sub- or super-diagonals. ! ! For example, ! ! @example ! @group ! tril (ones (3), -1) ! @result{} 0 0 0 ! 1 0 0 ! 1 1 0 ! @end group ! @end example ! ! @noindent ! and ! @example ! @group ! tril (ones (3), 1) ! @result{} 1 1 0 ! 1 1 1 ! 1 1 1 ! @end group ! @end example ! @seealso{triu, diag} @end deftypefn ! __isequal__ ! Undocumented internal function. ! interp1 -*- texinfo -*- ! @deftypefn {Function File} {@var{yi} =} interp1 (@var{x}, @var{y}, @var{xi}) ! @deftypefnx {Function File} {@var{yi} =} interp1 (@dots{}, @var{method}) ! @deftypefnx {Function File} {@var{yi} =} interp1 (@dots{}, @var{extrap}) ! @deftypefnx {Function File} {@var{pp} =} interp1 (@dots{}, 'pp') ! ! One-dimensional interpolation. Interpolate @var{y}, defined at the ! points @var{x}, at the points @var{xi}. The sample points @var{x} ! must be strictly monotonic. If @var{y} is an array, treat the columns ! of @var{y} separately. ! ! Method is one of: ! ! @table @asis ! @item 'nearest' ! Return the nearest neighbour. ! @item 'linear' ! Linear interpolation from nearest neighbours ! @item 'pchip' ! Piece-wise cubic hermite interpolating polynomial ! @item 'cubic' ! Cubic interpolation from four nearest neighbours ! @item 'spline' ! Cubic spline interpolation--smooth first and second derivatives ! throughout the curve ! @end table ! ! Appending '*' to the start of the above method forces @code{interp1} ! to assume that @var{x} is uniformly spaced, and only @code{@var{x} ! (1)} and @code{@var{x} (2)} are referenced. This is usually faster, ! and is never slower. The default method is 'linear'. ! ! If @var{extrap} is the string 'extrap', then extrapolate values beyond ! the endpoints. If @var{extrap} is a number, replace values beyond the ! endpoints with that number. If @var{extrap} is missing, assume NA. ! ! If the string argument 'pp' is specified, then @var{xi} should not be ! supplied and @code{interp1} returns the piece-wise polynomial that ! can later be used with @code{ppval} to evaluate the interpolation. ! There is an equivalence, such that @code{ppval (interp1 (@var{x}, ! @var{y}, @var{method}, 'pp'), @var{xi}) == interp1 (@var{x}, @var{y}, ! @var{xi}, @var{method}, 'extrap')}. ! ! An example of the use of @code{interp1} is ! ! @example ! @group ! xf=[0:0.05:10]; yf = sin(2*pi*xf/5); ! xp=[0:10]; yp = sin(2*pi*xp/5); ! lin=interp1(xp,yp,xf); ! spl=interp1(xp,yp,xf,'spline'); ! cub=interp1(xp,yp,xf,'cubic'); ! near=interp1(xp,yp,xf,'nearest'); ! plot(xf,yf,"r",xf,lin,"g",xf,spl,"b", ... ! xf,cub,"c",xf,near,"m",xp,yp,"r*"); ! legend ("original","linear","spline","cubic","nearest") ! @end group ! @end example ! @seealso{interpft} @end deftypefn ! flipdim -*- texinfo -*- ! @deftypefn {Function File} {} flipdim (@var{x}, @var{dim}) ! Return a copy of @var{x} flipped about the dimension @var{dim}. ! For example ! @example ! @group ! flipdim ([1, 2; 3, 4], 2) ! @result{} 2 1 ! 4 3 ! @end group ! @end example ! @seealso{fliplr, flipud, rot90, rotdim} @end deftypefn ! lookup -*- texinfo -*- ! @deftypefn {Function File} {@var{idx} =} lookup (@var{table}, @var{y}) ! Lookup values in a sorted table. Usually used as a prelude to ! interpolation. ! ! If table is strictly increasing and @code{idx = lookup (table, y)}, then ! @code{table(idx(i)) <= y(i) < table(idx(i+1))} for all @code{y(i)} ! within the table. If @code{y(i)} is before the table, then ! @code{idx(i)} is 0. If @code{y(i)} is after the table then ! @code{idx(i)} is @code{table(n)}. ! ! If the table is strictly decreasing, then the tests are reversed. ! There are no guarantees for tables which are non-monotonic or are not ! strictly monotonic. ! ! To get an index value which lies within an interval of the table, ! use: ! ! @example ! idx = lookup (table(2:length(table)-1), y) + 1 ! @end example ! ! @noindent ! This expression puts values before the table into the first ! interval, and values after the table into the last interval. @end deftypefn ! ind2sub -*- texinfo -*- ! @deftypefn {Function File} {[@var{s1}, @var{s2}, @dots{}, @var{sN}] =} ind2sub (@var{dims}, @var{ind}) ! Convert a linear index into subscripts. ! ! The following example shows how to convert the linear index @code{8} ! in a 3-by-3 matrix into a subscript. ! @example ! [r, c] = ind2sub ([3, 3], 8) ! @result{} r = 2 ! c = 3 ! @end example ! @seealso{sub2ind} @end deftypefn ! polyarea -*- texinfo -*- ! @deftypefn {Function File} {} polyarea (@var{x}, @var{y}) ! @deftypefnx {Function File} {} polyarea (@var{x}, @var{y}, @var{dim}) ! ! Determines area of a polygon by triangle method. The variables ! @var{x} and @var{y} define the vertex pairs, and must therefore have ! the same shape. They can be either vectors or arrays. If they are ! arrays then the columns of @var{x} and @var{y} are treated separately ! and an area returned for each. ! If the optional @var{dim} argument is given, then @code{polyarea} ! works along this dimension of the arrays @var{x} and @var{y}. @end deftypefn ! interp3 -*- texinfo -*- ! @deftypefn {Function File} {@var{vi} =} interp3 (@var{x}, @var{y},@var{z}, @var{v}, @var{xi}, @var{yi}, @var{zi}) ! @deftypefnx {Function File} {@var{vi} =} interp3 (@var{v}, @var{xi}, @var{yi}, @var{zi}) ! @deftypefnx {Function File} {@var{vi} =} interp3 (@var{v}, @var{m}) ! @deftypefnx {Function File} {@var{vi} =} interp3 (@var{v}) ! @deftypefnx {Function File} {@var{vi} =} interp3 (@dots{}, @var{method}) ! @deftypefnx {Function File} {@var{vi} =} interp3 (@dots{}, @var{method}, @var{extrapval}) ! Perform 3-dimensional interpolation. Each element of then 3-dimensional ! array @var{v} represents a value at a location given by the parameters ! @var{x}, @var{y}, and @var{z}. The parameters @var{x}, @var{x}, and ! @var{z} are either 3-dimensional arrays of the same size as the array ! @var{v} in the 'meshgrid' format or vectors. The parameters @var{xi}, etc ! respect a similar format to @var{x}, etc, and they represent the points ! at which the array @var{vi} is interpolated. ! If @var{x}, @var{y}, @var{z} are omitted, they are assumed to be ! @code{x = 1 : size (@var{v}, 2)}, @code{y = 1 : size (@var{v}, 1)} and ! @code{z = 1 : size (@var{v}, 3)}. If @var{m} is specified, then ! the interpolation adds a point half way between each of the interpolation ! points. This process is performed @var{m} times. If only @var{v} is ! specified, then @var{m} is assumed to be @code{1}. ! Method is one of: ! @table @asis ! @item 'nearest' ! Return the nearest neighbour. ! @item 'linear' ! Linear interpolation from nearest neighbours. ! @item 'cubic' ! Cubic interpolation from four nearest neighbours (not implemented yet). ! @item 'spline' ! Cubic spline interpolation--smooth first and second derivatives ! throughout the curve. ! @end table ! The default method is 'linear'. ! If @var{extrap} is the string 'extrap', then extrapolate values beyond ! the endpoints. If @var{extrap} is a number, replace values beyond the ! endpoints with that number. If @var{extrap} is missing, assume NA. ! @seealso{interp1, interp2, spline, meshgrid} @end deftypefn ! bicubic -*- texinfo -*- ! @deftypefn {Function File} {@var{zi}=} bicubic (@var{x}, @var{y}, @var{z}, @var{xi}, @var{yi}, @var{extrapval}) ! Return a matrix @var{zi} corresponding to the bicubic ! interpolations at @var{xi} and @var{yi} of the data supplied ! as @var{x}, @var{y} and @var{z}. Points outside the grid are set ! to @var{extrapval} ! See @url{http://wiki.woodpecker.org.cn/moin/Octave/Bicubic} ! for further information. ! @seealso{interp2} @end deftypefn ! num2str -*- texinfo -*- ! @deftypefn {Function File} {} num2str (@var{n}) ! @deftypefnx {Function File} {} num2str (@var{x}, @var{precision}) ! @deftypefnx {Function File} {} num2str (@var{x}, @var{format}) ! Convert a number to a string. This function is not very flexible. ! For better control over the results, use @code{sprintf} ! (@pxref{Formatted Output}). ! @seealso{sprintf, int2str} @end deftypefn ! bitcmp -*- texinfo -*- ! @deftypefn {Function File} {} bitcmp (@var{a}, @var{k}) ! Return the @var{k}-bit complement of integers in @var{a}. If ! @var{k} is omitted @code{k = log2 (bitmax) + 1} is assumed. @example ! bitcmp(7,4) ! @result{} 8 ! dec2bin(11) ! @result{} 1011 ! dec2bin(bitcmp(11, 6)) ! @result{} 110100 @end example ! @seealso{bitand, bitor, bitxor, bitset, bitget, bitcmp, bitshift, bitmax} @end deftypefn ! cumtrapz -*- texinfo -*- ! @deftypefn {Function File} {@var{z} =} cumtrapz (@var{y}) ! @deftypefnx {Function File} {@var{z} =} cumtrapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{z} =} cumtrapz (@dots{}, @var{dim}) ! Cumulative numerical integration using trapezoidal method. ! @code{cumtrapz (@var{y})} computes the cumulative integral of the ! @var{y} along the first non singleton dimension. If the argument ! @var{x} is omitted a equally spaced vector is assumed. @code{cumtrapz ! (@var{x}, @var{y})} evaluates the cumulative integral with respect ! to @var{x}. ! ! @seealso{trapz,cumsum} @end deftypefn ! rotdim -*- texinfo -*- ! @deftypefn {Function File} {} rotdim (@var{x}, @var{n}, @var{plane}) ! Return a copy of @var{x} with the elements rotated counterclockwise in ! 90-degree increments. The second argument is optional, and specifies ! how many 90-degree rotations are to be applied (the default value is 1). ! The third argument is also optional and defines the plane of the ! rotation. As such @var{plane} is a two element vector containing two ! different valid dimensions of the matrix. If @var{plane} is not given ! Then the first two non-singleton dimensions are used. ! ! Negative values of @var{n} rotate the matrix in a clockwise direction. ! For example, ! ! @example ! @group ! rotdim ([1, 2; 3, 4], -1, [1, 2]) ! @result{} 3 1 ! 4 2 ! @end group ! @end example ! ! @noindent ! rotates the given matrix clockwise by 90 degrees. The following are all ! equivalent statements: ! @example ! @group ! rotdim ([1, 2; 3, 4], -1, [1, 2]) ! rotdim ([1, 2; 3, 4], 3, [1, 2]) ! rotdim ([1, 2; 3, 4], 7, [1, 2]) ! @end group ! @end example ! @seealso{rot90, flipud, fliplr, flipdim} @end deftypefn ! accumarray -*- texinfo -*- ! @deftypefn {Function File} {} accumarray (@var{subs}, @var{vals}, @var{sz}, @var{fun}, @var{fillval}, @var{issparse}) ! @deftypefnx {Function File} {} accumarray (@var{csubs}, @var{vals}, @dots{}) ! ! Create an array by accumulating the elements of a vector into the ! positions defined by their subscripts. The subscripts are defined by ! the rows of the matrix @var{subs} and the values by @var{vals}. Each row ! of @var{subs} corresponds to one of the values in @var{vals}. ! ! The size of the matrix will be determined by the subscripts themselves. ! However, if @var{sz} is defined it determines the matrix size. The length ! of @var{sz} must correspond to the number of columns in @var{subs}. ! ! The default action of @code{accumarray} is to sum the elements with the ! same subscripts. This behavior can be modified by defining the @var{fun} ! function. This should be a function or function handle that accepts a ! column vector and returns a scalar. The result of the function should not ! depend on the order of the subscripts. ! ! The elements of the returned array that have no subscripts assoicated with ! them are set to zero. Defining @var{fillval} to some other value allows ! these values to be defined. ! ! By default @code{accumarray} returns a full matrix. If @var{issparse} is ! logically true, then a sparse matrix is returned instead. ! ! An example of the use of @code{accumarray} is: ! ! @example ! @group ! accumarray ([1,1,1;2,1,2;2,3,2;2,1,2;2,3,2], 101:105) ! @result{} ans(:,:,1) = [101, 0, 0; 0, 0, 0] ! ans(:,:,2) = [0, 0, 0; 206, 0, 208] ! @end group ! @end example @end deftypefn ! rem -*- texinfo -*- ! @deftypefn {Mapping Function} {} rem (@var{x}, @var{y}) ! Return the remainder of @code{@var{x} / @var{y}}, computed using the ! expression ! ! @example ! x - y .* fix (x ./ y) ! @end example ! An error message is printed if the dimensions of the arguments do not ! agree, or if either of the arguments is complex. ! @seealso{mod, round} @end deftypefn ! nargchk -*- texinfo -*- ! @deftypefn {Function File} {} nargchk (@var{nargin_min}, @var{nargin_max}, @var{n}) ! If @var{n} is in the range @var{nargin_min} through @var{nargin_max} ! inclusive, return the empty matrix. Otherwise, return a message ! indicating whether @var{n} is too large or too small. ! ! This is useful for checking to see that the number of arguments supplied ! to a function is within an acceptable range. @end deftypefn ! structfun -*- texinfo -*- ! @deftypefn {Function File} {} structfun (@var{func}, @var{s}) ! @deftypefnx {Function File} {[@var{a}, @var{b}] =} structfun (@dots{}) ! @deftypefnx {Function File} {} structfun (@dots{}, 'ErrorHandler', @var{errfunc}) ! @deftypefnx {Function File} {} structfun (@dots{}, 'UniformOutput', @var{val}) ! ! Evaluate the function named @var{name} on the fields of the structure ! @var{s}. The fields of @var{s} are passed to the function @var{func} ! individually. ! ! @code{structfun} accepts an arbitrary function @var{func} in the form of ! an inline function, function handle, or the name of a function (in a ! character string). In the case of a character string argument, the ! function must accept a single argument named @var{x}, and it must return ! a string value. If the function returns more than one argument, they are ! returned as separate output variables. ! ! If the param 'UniformOutput' is set to true (the default), then the function ! must return either a single element which will be concatenated into the ! return value. If 'UniformOutput is false, the outputs placed in a structure ! with the same fieldnames as the input structure. ! ! @example ! @group ! s.name1 = "John Smith"; ! s.name2 = "Jill Jones"; ! structfun (@@(x) regexp (x, '(\w+)$', 'matches')@{1@}, s, ! 'UniformOutput', false) ! @end group ! @end example ! ! Given the parameter 'ErrorHandler', then @var{errfunc} defines a function to ! call in case @var{func} generates an error. The form of the function is ! ! @example ! function [@dots{}] = errfunc (@var{se}, @dots{}) ! @end example ! where there is an additional input argument to @var{errfunc} relative to ! @var{func}, given by @var{se}. This is a structure with the elements ! 'identifier', 'message' and 'index', giving respectively the error ! identifier, the error message, and the index into the input arguments ! of the element that caused the error. ! @seealso{cellfun, arrayfun} @end deftypefn ! __splinen__ ! Undocumented internal function. ! arrayfun -*- texinfo -*- ! @deftypefn {Function File} {@var{a} =} arrayfun (@var{name}, @var{c}) ! @deftypefnx {Function File} {@var{a} =} arrayfun (@var{func}, @var{c}) ! @deftypefnx {Function File} {@var{a} =} arrayfun (@var{func}, @var{c}, @var{d}) ! @deftypefnx {Function File} {@var{a} =} arrayfun (@var{func}, @var{c}, @var{options}) ! @deftypefnx {Function File} {[@var{a}, @var{b}, @dots{}] =} arrayfun (@var{func}, @var{c}, @dots{}) ! Execute a function on each element of an array. This is useful for ! functions that do not accept array arguments. If the function does ! accept array arguments it is better to call the function directly. ! ! See @code{cellfun} for complete usage instructions. ! @seealso{cellfun} @end deftypefn ! shift -*- texinfo -*- ! @deftypefn {Function File} {} shift (@var{x}, @var{b}) ! @deftypefnx {Function File} {} shift (@var{x}, @var{b}, @var{dim}) ! If @var{x} is a vector, perform a circular shift of length @var{b} of ! the elements of @var{x}. ! If @var{x} is a matrix, do the same for each column of @var{x}. ! If the optional @var{dim} argument is given, operate along this ! dimension @end deftypefn ! int2str -*- texinfo -*- ! @deftypefn {Function File} {} int2str (@var{n}) ! Convert an integer to a string. This function is not very flexible. ! For better control over the results, use @code{sprintf} ! (@pxref{Formatted Output}). ! @seealso{sprintf, num2str} @end deftypefn ! is_duplicate_entry -*- texinfo -*- ! @deftypefn {Function File} {} is_duplicate_entry (@var{x}) ! Return non-zero if any entries in @var{x} are duplicates of one ! another. @end deftypefn ! issymmetric -*- texinfo -*- ! @deftypefn {Function File} {} issymmetric (@var{x}, @var{tol}) ! If @var{x} is symmetric within the tolerance specified by @var{tol}, ! then return the dimension of @var{x}. Otherwise, return 0. If ! @var{tol} is omitted, use a tolerance equal to the machine precision. ! Matrix @var{x} is considered symmetric if ! @code{norm (@var{x} - @var{x}.', inf) / norm (@var{x}, inf) < @var{tol}}. ! @seealso{size, rows, columns, length, ishermitian, ismatrix, isscalar, ! issquare, isvector} @end deftypefn ! prepad -*- texinfo -*- ! @deftypefn {Function File} {} prepad (@var{x}, @var{l}, @var{c}) ! @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}) ! @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}, @var{dim}) ! ! Prepends (appends) the scalar value @var{c} to the vector @var{x} ! until it is of length @var{l}. If the third argument is not ! supplied, a value of 0 is used. ! ! If @code{length (@var{x}) > @var{l}}, elements from the beginning (end) of ! @var{x} are removed until a vector of length @var{l} is obtained. ! ! If @var{x} is a matrix, elements are prepended or removed from each row. ! ! If the optional @var{dim} argument is given, then operate along this ! dimension. @end deftypefn ! fliplr -*- texinfo -*- ! @deftypefn {Function File} {} fliplr (@var{x}) ! Return a copy of @var{x} with the order of the columns reversed. For ! example, ! ! @example ! @group ! fliplr ([1, 2; 3, 4]) ! @result{} 2 1 ! 4 3 ! @end group ! @end example ! ! Note that @code{fliplr} only work with 2-D arrays. To flip N-d arrays ! use @code{flipdim} instead. ! @seealso{flipud, flipdim, rot90, rotdim} @end deftypefn ! blkdiag -*- texinfo -*- ! @deftypefn {Function File} {} blkdiag (@var{a}, @var{b}, @var{c}, @dots{}) ! Build a block diagonal matrix from @var{a}, @var{b}, @var{c}, @dots{}. ! All the arguments must be numeric and are two-dimensional matrices or ! scalars. ! @seealso{diag, horzcat, vertcat} @end deftypefn ! postpad -*- texinfo -*- ! @deftypefn {Function File} {} postpad (@var{x}, @var{l}, @var{c}) ! See prepad. @end deftypefn ! nextpow2 -*- texinfo -*- ! @deftypefn {Function File} {} nextpow2 (@var{x}) ! If @var{x} is a scalar, returns the first integer @var{n} such that ! @iftex ! @tex ! $2^n \ge |x|$. ! @end tex ! @end iftex ! @ifinfo ! 2^n >= abs (x). ! @end ifinfo ! ! If @var{x} is a vector, return @code{nextpow2 (length (@var{x}))}. ! @seealso{pow2} @end deftypefn ! diff -*- texinfo -*- ! @deftypefn {Function File} {} diff (@var{x}, @var{k}, @var{dim}) ! If @var{x} is a vector of length @var{n}, @code{diff (@var{x})} is the ! vector of first differences ! @iftex ! @tex ! $x_2 - x_1, \ldots{}, x_n - x_{n-1}$. ! @end tex ! @end iftex ! @ifinfo ! @var{x}(2) - @var{x}(1), @dots{}, @var{x}(n) - @var{x}(n-1). ! @end ifinfo ! If @var{x} is a matrix, @code{diff (@var{x})} is the matrix of column ! differences along the first non-singleton dimension. ! The second argument is optional. If supplied, @code{diff (@var{x}, ! @var{k})}, where @var{k} is a nonnegative integer, returns the ! @var{k}-th differences. It is possible that @var{k} is larger than ! then first non-singleton dimension of the matrix. In this case, ! @code{diff} continues to take the differences along the next ! non-singleton dimension. ! The dimension along which to take the difference can be explicitly ! stated with the optional variable @var{dim}. In this case the ! @var{k}-th order differences are calculated along this dimension. ! In the case where @var{k} exceeds @code{size (@var{x}, @var{dim})} ! then an empty matrix is returned. @end deftypefn ! randperm -*- texinfo -*- ! @deftypefn {Function File} {} randperm (@var{n}) ! Return a row vector containing a random permutation of the ! integers from 1 to @var{n}. @end deftypefn ! shiftdim -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} shiftdim (@var{x}, @var{n}) ! @deftypefnx {Function File} {[@var{y}, @var{ns}] =} shiftdim (@var{x}) ! Shifts the dimension of @var{x} by @var{n}, where @var{n} must be ! an integer scalar. When @var{n} is positive, the dimensions of ! @var{x} are shifted to the left, with the leading dimensions ! circulated to the end. If @var{n} is negative, then the dimensions ! of @var{x} are shifted to the right, with @var{n} leading singleton ! dimensions added. ! ! Called with a single argument, @code{shiftdim}, removes the leading ! singleton dimensions, returning the number of dimensions removed ! in the second output argument @var{ns}. ! ! For example ! ! @example ! @group ! x = ones (1, 2, 3); ! size (shiftdim (x, -1)) ! @result{} [1, 1, 2, 3] ! size (shiftdim (x, 1)) ! @result{} [2, 3] ! [b, ns] = shiftdim (x); ! @result{} b = [1, 1, 1; 1, 1, 1] ! @result{} ns = 1 ! @end group ! @end example ! @seealso {reshape, permute, ipermute, circshift, squeeze} @end deftypefn ! cplxpair -*- texinfo -*- ! @deftypefn {Function File} {} cplxpair (@var{z}, @var{tol}, @var{dim}) ! Sort the numbers @var{z} into complex conjugate pairs ordered by ! increasing real part. With identical real parts, order by increasing ! imaginary magnitude. Place the negative imaginary complex number ! first within each pair. Place all the real numbers after all the ! complex pairs (those with @code{abs (imag (@var{z}) / @var{z}) < ! @var{tol})}, where the default value of @var{tol} is @code{100 * ! @var{eps}}. ! ! By default the complex pairs are sorted along the first non-singleton ! dimension of @var{z}. If @var{dim} is specified, then the complex ! pairs are sorted along this dimension. ! ! Signal an error if some complex numbers could not be paired. Requires ! all complex numbers to be exact conjugates within tol, or signals an ! error. Note that there are no guarantees on the order of the returned ! pairs with identical real parts but differing imaginary parts. ! ! @c Using 'smallexample' to make text fit in page when using 'smallbook' ! @smallexample ! cplxpair (exp(2i*pi*[0:4]'/5)) == exp(2i*pi*[3; 2; 4; 1; 0]/5) ! @end smallexample @end deftypefn ! interpft -*- texinfo -*- ! @deftypefn {Function File} {} interpft (@var{x}, @var{n}) ! @deftypefnx {Function File} {} interpft (@var{x}, @var{n}, @var{dim}) ! ! Fourier interpolation. If @var{x} is a vector, then @var{x} is ! resampled with @var{n} points. The data in @var{x} is assumed to be ! equispaced. If @var{x} is an array, then operate along each column of ! the array separately. If @var{dim} is specified, then interpolate ! along the dimension @var{dim}. ! ! @code{interpft} assumes that the interpolated function is periodic, ! and so assumptions are made about the end points of the interpolation. ! @seealso{interp1} @end deftypefn ! bitset -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} bitset (@var{a}, @var{n}) ! @deftypefnx {Function File} {@var{x} =} bitset (@var{a}, @var{n}, @var{v}) ! Set or reset bit(s) @var{n} of unsigned integers in @var{a}. ! @var{v} = 0 resets and @var{v} = 1 sets the bits. ! The lowest significant bit is: @var{n} = 1 ! @example ! dec2bin (bitset (10, 1)) ! @result{} 1011 ! @end example ! @seealso{bitand, bitor, bitxor, bitget, bitcmp, bitshift, bitmax} @end deftypefn ! triu -*- texinfo -*- ! @deftypefn {Function File} {} triu (@var{a}, @var{k}) ! See tril. @end deftypefn ! isvector -*- texinfo -*- ! @deftypefn {Function File} {} isvector (@var{a}) ! Return 1 if @var{a} is a vector. Otherwise, return 0. ! @seealso{size, rows, columns, length, isscalar, ismatrix} @end deftypefn ! sortrows -*- texinfo -*- ! @deftypefn {Function File} {} sortrows (@var{a}, @var{c}) ! Sort the rows of the matrix @var{a} according to the order of the ! columns specified in @var{c}. If @var{c} is omitted, a ! lexicographical sort is used. By default ascending order is used ! however if elements of @var{c} are negative then the corrosponding ! column is sorted in descending order. @end deftypefn ! circshift -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} circshift (@var{x}, @var{n}) ! Circularly shifts the values of the array @var{x}. @var{n} must be ! a vector of integers no longer than the number of dimensions in ! @var{x}. The values of @var{n} can be either positive or negative, ! which determines the direction in which the values or @var{x} are ! shifted. If an element of @var{n} is zero, then the corresponding ! dimension of @var{x} will not be shifted. For example ! ! @example ! @group ! x = [1, 2, 3; 4, 5, 6; 7, 8, 9]; ! circshift (x, 1) ! @result{} 7, 8, 9 ! 1, 2, 3 ! 4, 5, 6 ! circshift (x, -2) ! @result{} 7, 8, 9 ! 1, 2, 3 ! 4, 5, 6 ! circshift (x, [0,1]) ! @result{} 3, 1, 2 ! 6, 4, 5 ! 9, 7, 8 ! @end group ! @end example ! @seealso {permute, ipermute, shiftdim} @end deftypefn ! sub2ind -*- texinfo -*- ! @deftypefn {Function File} {@var{ind} =} sub2ind (@var{dims}, @var{i}, @var{j}) ! @deftypefnx {Function File} {@var{ind} =} sub2ind (@var{dims}, @var{s1}, @var{s2}, @dots{}, @var{sN}) ! Convert subscripts into a linear index. ! The following example shows how to convert the two-dimensional ! index @code{(2,3)} of a 3-by-3 matrix to a linear index. ! @example ! linear_index = sub2ind ([3, 3], 2, 3) ! @result{} 8 ! @end example ! @seealso{ind2sub} @end deftypefn ! interpn -*- texinfo -*- ! @deftypefn {Function File} {@var{vi} =} interpn (@var{x1}, @var{x2}, @dots{}, @var{v}, @var{y1}, @var{y2}, @dots{}) ! @deftypefnx {Function File} {@var{vi} =} interpn (@var{v}, @var{y1}, @var{y2}, @dots{}) ! @deftypefnx {Function File} {@var{vi} =} interpn (@var{v}, @var{m}) ! @deftypefnx {Function File} {@var{vi} =} interpn (@var{v}) ! @deftypefnx {Function File} {@var{vi} =} interpn (@dots{}, @var{method}) ! @deftypefnx {Function File} {@var{vi} =} interpn (@dots{}, @var{method}, @var{extrapval}) ! Perform @var{n}-dimensional interpolation, where @var{n} is at least two. ! Each element of then @var{n}-dimensional array @var{v} represents a value ! at a location given by the parameters @var{x1}, @var{x2}, @dots{}, @var{xn}. ! The parameters @var{x1}, @var{x2}, @dots{}, @var{xn} are either ! @var{n}-dimensional arrays of the same size as the array @var{v} in ! the 'ndgrid' format or vectors. The parameters @var{y1}, etc respect a ! similar format to @var{x1}, etc, and they represent the points at which ! the array @var{vi} is interpolated. ! If @var{x1}, @dots{}, @var{xn} are omitted, they are assumed to be ! @code{x1 = 1 : size (@var{v}, 1)}, etc. If @var{m} is specified, then ! the interpolation adds a point half way between each of the interpolation ! points. This process is performed @var{m} times. If only @var{v} is ! specified, then @var{m} is assumed to be @code{1}. ! Method is one of: ! @table @asis ! @item 'nearest' ! Return the nearest neighbour. ! @item 'linear' ! Linear interpolation from nearest neighbours. ! @item 'cubic' ! Cubic interpolation from four nearest neighbours (not implemented yet). ! @item 'spline' ! Cubic spline interpolation--smooth first and second derivatives ! throughout the curve. ! @end table ! The default method is 'linear'. ! If @var{extrapval} is the scalar value, use it to replace the values ! beyond the endpoints with that number. If @var{extrapval} is missing, ! assume NA. ! @seealso{interp1, interp2, spline, ndgrid} @end deftypefn ! celldisp -*- texinfo -*- ! @deftypefn {Function File} {} celldisp (@var{c}, @var{name}) ! Recursively display the contents of a cell array. By default the values ! are displayed with the name of the variable @var{c}. However, this name ! can be replaced with the variable @var{name}. ! @seealso{disp} @end deftypefn ! gradient -*- texinfo -*- ! @deftypefn {Function File} {@var{x} = } gradient (@var{M}) ! @deftypefnx {Function File} {[@var{x}, @var{y}, @dots{}] = } gradient (@var{M}) ! @deftypefnx {Function File} {[@dots{}] = } gradient (@var{M}, @var{s}) ! @deftypefnx {Function File} {[@dots{}] = } gradient (@var{M}, @var{dx}, @var{dy}, @dots{}) ! ! Calculates the gradient. @code{@var{x} = gradient (@var{M})} ! calculates the one dimensional gradient if @var{M} is a vector. If ! @var{M} is a matrix the gradient is calculated for each row. ! @code{[@var{x}, @var{y}] = gradient (@var{M})} calculates the one ! dimensional gradient for each direction if @var{M} if @var{M} is a ! matrix. Additional return arguments can be use for multi-dimensional ! matrices. ! Spacing values between two points can be provided by the ! @var{dx}, @var{dy} or @var{h} parameters. If @var{h} is supplied it ! is assumed to be the spacing in all directions. Otherwise, separate ! values of the spacing can be supplied by the @var{dx}, etc variables. ! A scalar value specifies an equidistant spacing, while a vector value ! can be used to specify a variable spacing. The length must match ! their respective dimension of @var{M}. ! At boundary points a linear extrapolation is applied. Interior points ! are calculated with the first approximation of the numerical gradient ! @example ! y'(i) = 1/(x(i+1)-x(i-1)) *(y(i-1)-y(i+1)). ! @end example @end deftypefn ! flipud -*- texinfo -*- ! @deftypefn {Function File} {} flipud (@var{x}) ! Return a copy of @var{x} with the order of the rows reversed. For ! example, ! @example ! @group ! flipud ([1, 2; 3, 4]) ! @result{} 3 4 ! 1 2 ! @end group ! @end example ! Due to the difficulty of defining which axis about which to flip the ! matrix @code{flipud} only work with 2-d arrays. To flip N-d arrays ! use @code{flipdim} instead. ! @seealso{fliplr, flipdim, rot90, rotdim} @end deftypefn ! del2 -*- texinfo -*- ! @deftypefn {Function File} {@var{d} =} del2 (@var{m}) ! @deftypefnx {Function File} {@var{d} =} del2 (@var{m}, @var{h}) ! @deftypefnx {Function File} {@var{d} =} del2 (@var{m}, @var{dx}, @var{dy}, @dots{}) ! Calculates the discrete Laplace operator. If @var{m} is a matrix this is ! defined as ! @iftex ! @tex ! $d = {1 \over 4} \left( {d^2 \over dx^2} M(x,y) + {d^2 \over dy^2} M(x,y) \right)$ ! @end tex ! @end iftex ! @ifnottex ! @example ! @group ! 1 / d^2 d^2 \ ! D = --- * | --- M(x,y) + --- M(x,y) | ! 4 \ dx^2 dy^2 / ! @end group ! @end example ! @end ifnottex ! The above to continued to N-dimensional arrays calculating the second ! derivative over the higher dimensions. ! The spacing between evaluation points may be defined by @var{h}, which is a ! scalar defining the spacing in all dimensions. Or alternative, the spacing ! in each dimension may be defined separately by @var{dx}, @var{dy}, etc. ! Scalar spacing values give equidistant spacing, whereas vector spacing ! values can be used to specify variable spacing. The length of the vectors ! must match the respective dimension of @var{m}. The default spacing value ! is 1. ! You need at least 3 data points for each dimension. Boundary points are ! calculated as the linear extrapolation of the interior points. ! @seealso{gradient, diff} @end deftypefn ! logspace -*- texinfo -*- ! @deftypefn {Function File} {} logspace (@var{base}, @var{limit}, @var{n}) ! Similar to @code{linspace} except that the values are logarithmically ! spaced from ! @iftex ! @tex ! $10^{base}$ to $10^{limit}$. ! @end tex ! @end iftex ! @ifinfo ! 10^base to 10^limit. ! @end ifinfo ! If @var{limit} is equal to ! @iftex ! @tex ! $\pi$, ! @end tex ! @end iftex ! @ifinfo ! pi, ! @end ifinfo ! the points are between ! @iftex ! @tex ! $10^{base}$ and $\pi$, ! @end tex ! @end iftex ! @ifinfo ! 10^base and pi, ! @end ifinfo ! @emph{not} ! @iftex ! @tex ! $10^{base}$ and $10^{\pi}$, ! @end tex ! @end iftex ! @ifinfo ! 10^base and 10^pi, ! @end ifinfo ! in order to be compatible with the corresponding @sc{Matlab} ! function. ! Also for compatibility, return the second argument if fewer than two ! values are requested. ! @seealso{linspace} @end deftypefn ! quadl -*- texinfo -*- ! @deftypefn {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}) ! @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) ! @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! Numerically evaluate integral using adaptive Lobatto rule. ! @code{quadl (@var{f}, @var{a}, @var{b})} approximates the integral of ! @code{@var{f}(@var{x})} to machine precision. @var{f} is either a ! function handle, inline function or string containing the name of ! the function to evaluate. The function @var{f} must return a vector ! of output values if given a vector of input values. ! If defined, @var{tol} defines the relative tolerance to which to ! which to integrate @code{@var{f}(@var{x})}. While if @var{trace} is ! defined, displays the left end point of the current interval, the ! interval length, and the partial integral. ! Additional arguments @var{p1}, etc, are passed directly to @var{f}. ! To use default values for @var{tol} and @var{trace}, one may pass ! empty matrices. ! Reference: W. Gander and W. Gautschi, 'Adaptive Quadrature - ! Revisited', BIT Vol. 40, No. 1, March 2000, pp. 84--101. ! @url{http://www.inf.ethz.ch/personal/gander/} @end deftypefn ! strerror ! -*- texinfo -*- ! @deftypefn {Function File} {} strerror (@var{name}, @var{num}) ! Return the text of an error message for function @var{name} ! corresponding to the error number @var{num}. This function is intended ! to be used to print useful error messages for those functions that ! return numeric error codes. ! @end deftypefn ! logical -*- texinfo -*- ! @deftypefn {Function File} {} logical (@var{arg}) ! Convert @var{arg} to a logical value. For example, ! @example ! logical ([-1, 0, 1]) ! @end example ! @noindent ! is equivalent to ! @example ! [-1, 0, 1] != 0 ! @end example ! @end deftypefn ! runlength ! -*- texinfo -*- ! @deftypefn {Function File} {} runlength (@var{x}) ! Find the lengths of all sequences of common values. Return the ! vector of lengths and the value that was repeated. ! @example ! runlength ([2, 2, 0, 4, 4, 4, 0, 1, 1, 1, 1]) ! @result{} [2, 1, 3, 1, 4] ! @end example ! @end deftypefn ! issquare ! -*- texinfo -*- ! @deftypefn {Function File} {} issquare (@var{x}) ! If @var{x} is a square matrix, then return the dimension of @var{x}. ! Otherwise, return 0. ! @seealso{size, rows, columns, length, ismatrix, isscalar, isvector} @end deftypefn ! trapz -*- texinfo -*- ! @deftypefn {Function File} {@var{z} =} trapz (@var{y}) ! @deftypefnx {Function File} {@var{z} =} trapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{z} =} trapz (@dots{}, @var{dim}) ! Numerical integration using trapezoidal method. @code{trapz ! (@var{y})} computes the integral of the @var{y} along the first ! non singleton dimension. If the argument @var{x} is omitted a ! equally spaced vector is assumed. @code{trapz (@var{x}, @var{y})} ! evaluates the integral with respect to @var{x}. ! ! @seealso{cumtrapz} @end deftypefn ! mod -*- texinfo -*- ! @deftypefn {Mapping Function} {} mod (@var{x}, @var{y}) ! Compute modulo function. Conceptually this is given by ! ! @example ! x - y .* floor (x ./ y) ! @end example ! and is written in a manner that the correct modulus is returned for ! integer types. This function handles negative values correctly. That ! is @code{mod (-1, 3)} is 2, not -1 as @code{rem (-1, 3)} returns. ! Also, @code{mod (@var{x}, 0)} returns @var{x}. ! An error message is printed if the dimensions of the arguments do not ! agree, or if either of the arguments is complex. ! @seealso{rem, round} ! @end deftypefn ! sph2cart ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} sph2cart (@var{theta}, @var{phi}, @var{r}) ! Transform spherical to cartesian coordinates. ! @var{x}, @var{y} and @var{z} must be of same shape. ! @var{theta} describes the angle relative to the x-axis. ! @var{phi} is the angle relative to the xy-plane. ! @var{r} is the distance to the origin (0, 0, 0). ! @seealso{pol2cart, cart2pol, cart2sph} ! @end deftypefn ! perror ! -*- texinfo -*- ! @deftypefn {Function File} {} perror (@var{name}, @var{num}) ! Print the error message for function @var{name} corresponding to the ! error number @var{num}. This function is intended to be used to print ! useful error messages for those functions that return numeric error ! codes. ! @seealso{strerror} ! @end deftypefn ! isequal ! -*- texinfo -*- ! @deftypefn {Function File} {} isequal (@var{x1}, @var{x2}, @dots{}) ! Return true if all of @var{x1}, @var{x2}, @dots{} are equal. ! @seealso{isequalwithequalnans} ! @end deftypefn ! interp2 ! -*- texinfo -*- ! @deftypefn {Function File} {@var{zi}=} interp2 (@var{x}, @var{y}, @var{z}, @var{xi}, @var{yi}) ! @deftypefnx {Function File} {@var{zi}=} interp2 (@var{Z}, @var{xi}, @var{yi}) ! @deftypefnx {Function File} {@var{zi}=} interp2 (@var{Z}, @var{n}) ! @deftypefnx {Function File} {@var{zi}=} interp2 (@dots{}, @var{method}) ! @deftypefnx {Function File} {@var{zi}=} interp2 (@dots{}, @var{method}, @var{extrapval}) ! ! Two-dimensional interpolation. @var{x}, @var{y} and @var{z} describe a ! surface function. If @var{x} and @var{y} are vectors their length ! must correspondent to the size of @var{z}. @var{x} and @var{Yy} must be ! monotonic. If they are matrices they must have the @code{meshgrid} ! format. ! ! @table @code ! @item interp2 (@var{x}, @var{y}, @var{Z}, @var{xi}, @var{yi}, @dots{}) ! Returns a matrix corresponding to the points described by the ! matrices @var{XI}, @var{YI}. ! If the last argument is a string, the interpolation method can ! be specified. The method can be 'linear', 'nearest' or 'cubic'. ! If it is omitted 'linear' interpolation is assumed. ! @item interp2 (@var{z}, @var{xi}, @var{yi}) ! Assumes @code{@var{x} = 1:rows (@var{z})} and @code{@var{y} = ! 1:columns (@var{z})} ! @item interp2 (@var{z}, @var{n}) ! Interleaves the Matrix @var{z} n-times. If @var{n} is omitted a value ! of @code{@var{n} = 1} is assumed. ! @end table ! The variable @var{method} defines the method to use for the ! interpolation. It can take one of the values ! @table @asis ! @item 'nearest' ! Return the nearest neighbor. ! @item 'linear' ! Linear interpolation from nearest neighbors. ! @item 'pchip' ! Piece-wise cubic hermite interpolating polynomial (not implemented yet). ! @item 'cubic' ! Cubic interpolation from four nearest neighbors. ! @item 'spline' ! Cubic spline interpolation--smooth first and second derivatives ! throughout the curve. ! @end table ! If a scalar value @var{extrapval} is defined as the final value, then ! values outside the mesh as set to this value. Note that in this case ! @var{method} must be defined as well. If @var{extrapval} is not ! defined then NA is assumed. ! @seealso{interp1} @end deftypefn ! vech -*- texinfo -*- ! @deftypefn {Function File} {} vech (@var{x}) ! Return the vector obtained by eliminating all supradiagonal elements of ! the square matrix @var{x} and stacking the result one column above the ! other. @end deftypefn ! cross -*- texinfo -*- ! @deftypefn {Function File} {} cross (@var{x}, @var{y}, @var{dim}) ! Computes the vector cross product of the two 3-dimensional vectors ! @var{x} and @var{y}. ! @example ! @group ! cross ([1,1,0], [0,1,1]) ! @result{} [ 1; -1; 1 ] ! @end group ! @end example ! If @var{x} and @var{y} are matrices, the cross product is applied ! along the first dimension with 3 elements. The optional argument ! @var{dim} is used to force the cross product to be calculated along ! the dimension defined by @var{dim}. @end deftypefn ! krylov -*- texinfo -*- ! @deftypefn {Function File} {[@var{u}, @var{h}, @var{nu}] =} krylov (@var{a}, @var{v}, @var{k}, @var{eps1}, @var{pflg}) ! Construct an orthogonal basis @var{u} of block Krylov subspace @example ! [v a*v a^2*v ... a^(k+1)*v] @end example @noindent ! Using Householder reflections to guard against loss of orthogonality. ! ! If @var{v} is a vector, then @var{h} contains the Hessenberg matrix ! such that @code{a*u == u*h+rk*ek'}, in which @code{rk = ! a*u(:,k)-u*h(:,k)}, and @code{ek'} is the vector ! @code{[0, 0, @dots{}, 1]} of length @code{k}. Otherwise, @var{h} is ! meaningless. ! ! If @var{v} is a vector and @var{k} is greater than ! @code{length(A)-1}, then @var{h} contains the Hessenberg matrix such ! that @code{a*u == u*h}. ! ! The value of @var{nu} is the dimension of the span of the krylov ! subspace (based on @var{eps1}). ! ! If @var{b} is a vector and @var{k} is greater than @var{m-1}, then ! @var{h} contains the Hessenberg decomposition of @var{a}. ! The optional parameter @var{eps1} is the threshold for zero. The ! default value is 1e-12. ! If the optional parameter @var{pflg} is nonzero, row pivoting is used ! to improve numerical behavior. The default value is 0. ! Reference: Hodel and Misra, "Partial Pivoting in the Computation of ! Krylov Subspaces", to be submitted to Linear Algebra and its ! Applications @end deftypefn ! __norm__ ! Undocumented internal function. ! qzhess -*- texinfo -*- ! @deftypefn {Function File} {[@var{aa}, @var{bb}, @var{q}, @var{z}] =} qzhess (@var{a}, @var{b}) ! Compute the Hessenberg-triangular decomposition of the matrix pencil ! @code{(@var{a}, @var{b})}, returning ! @code{@var{aa} = @var{q} * @var{a} * @var{z}}, ! @code{@var{bb} = @var{q} * @var{b} * @var{z}}, with @var{q} and @var{z} ! orthogonal. For example, ! @example ! @group ! [aa, bb, q, z] = qzhess ([1, 2; 3, 4], [5, 6; 7, 8]) ! @result{} aa = [ -3.02244, -4.41741; 0.92998, 0.69749 ] ! @result{} bb = [ -8.60233, -9.99730; 0.00000, -0.23250 ] ! @result{} q = [ -0.58124, -0.81373; -0.81373, 0.58124 ] ! @result{} z = [ 1, 0; 0, 1 ] ! @end group ! @end example ! The Hessenberg-triangular decomposition is the first step in ! Moler and Stewart's QZ decomposition algorithm. ! Algorithm taken from Golub and Van Loan, @cite{Matrix Computations, 2nd ! edition}. ! @end deftypefn ! krylovb ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{u}, @var{ucols}] =} krylovb (@var{a}, @var{v}, @var{k}, @var{eps1}, @var{pflg}) ! See @code{krylov}. @end deftypefn ! orth -*- texinfo -*- ! @deftypefn {Function File} {} orth (@var{a}, @var{tol}) ! Return an orthonormal basis of the range space of @var{a}. ! The dimension of the range space is taken as the number of singular ! values of @var{a} greater than @var{tol}. If the argument @var{tol} is ! missing, it is computed as ! @example ! max (size (@var{a})) * max (svd (@var{a})) * eps ! @end example ! @end deftypefn ! dmult ! -*- texinfo -*- ! @deftypefn {Function File} {} dmult (@var{a}, @var{b}) ! If @var{a} is a vector of length @code{rows (@var{b})}, return ! @code{diag (@var{a}) * @var{b}} (but computed much more efficiently). ! @end deftypefn ! cond ! -*- texinfo -*- ! @deftypefn {Function File} {} cond (@var{a},@var{p}) ! Compute the @var{p}-norm condition number of a matrix. @code{cond (@var{a})} is ! defined as @code{norm (@var{a}, @var{p}) * norm (inv (@var{a}), @var{p})}. ! By default @code{@var{p}=2} is used which implies a (relatively slow) ! singular value decomposition. Other possible selections are ! @code{@var{p}= 1, Inf, inf, 'Inf', 'fro'} which are generally faster. ! @seealso{norm, inv, det, svd, rank} @end deftypefn ! condest -*- texinfo -*- ! @deftypefn {Function File} {[@var{est}, @var{v}] =} condest (@var{a}, @var{t}) ! @deftypefnx {Function File} {[@var{est}, @var{v}] =} condest (@var{a}, @var{solve}, @var{solve_t}, @var{t}) ! @deftypefnx {Function File} {[@var{est}, @var{v}] =} condest (@var{apply}, @var{apply_t}, @var{solve}, @var{solve_t}, @var{n}, @var{t}) ! Estimate the 1-norm condition number of a matrix matrix @var{A} ! using @var{t} test vectors using a randomized 1-norm estimator. ! If @var{t} exceeds 5, then only 5 test vectors are used. ! If the matrix is not explicit, e.g. when estimating the condition ! number of @var{a} given an LU factorization, @code{condest} uses the ! following functions: ! @table @var ! @item apply ! @code{A*x} for a matrix @code{x} of size @var{n} by @var{t}. ! @item apply_t ! @code{A'*x} for a matrix @code{x} of size @var{n} by @var{t}. ! @item solve ! @code{A \ b} for a matrix @code{b} of size @var{n} by @var{t}. ! @item solve_t ! @code{A' \ b} for a matrix @code{b} of size @var{n} by @var{t}. ! @end table ! The implicit version requires an explicit dimension @var{n}. ! @code{condest} uses a randomized algorithm to approximate ! the 1-norms. ! @code{condest} returns the 1-norm condition estimate @var{est} and ! a vector @var{v} satisfying @code{norm (A*v, 1) == norm (A, 1) * norm ! (@var{v}, 1) / @var{est}}. When @var{est} is large, @var{v} is an ! approximate null vector. ! References: ! @itemize ! @item Nicholas J. Higham and Françoise Tisseur, "A Block Algorithm ! for Matrix 1-Norm Estimation, with an Application to 1-Norm ! Pseudospectra." SIMAX vol 21, no 4, pp 1185-1201. ! @url{http://dx.doi.org/10.1137/S0895479899356080} ! @item Nicholas J. Higham and Françoise Tisseur, "A Block Algorithm ! for Matrix 1-Norm Estimation, with an Application to 1-Norm ! Pseudospectra." @url{http://citeseer.ist.psu.edu/223007.html} ! @end itemize ! @seealso{norm, cond, onenormest} ! @end deftypefn ! vec ! -*- texinfo -*- ! @deftypefn {Function File} {} vec (@var{x}) ! Return the vector obtained by stacking the columns of the matrix @var{x} ! one above the other. @end deftypefn ! null -*- texinfo -*- ! @deftypefn {Function File} {} null (@var{a}, @var{tol}) ! Return an orthonormal basis of the null space of @var{a}. ! The dimension of the null space is taken as the number of singular ! values of @var{a} not greater than @var{tol}. If the argument @var{tol} ! is missing, it is computed as @example ! max (size (@var{a})) * max (svd (@var{a})) * eps @end example @end deftypefn ! rref -*- texinfo -*- ! @deftypefn {Function File} {[@var{r}, @var{k}] =} rref (@var{a}, @var{tol}) ! Returns the reduced row echelon form of @var{a}. @var{tol} defaults ! to @code{eps * max (size (@var{a})) * norm (@var{a}, inf)}. ! Called with two return arguments, @var{k} returns the vector of ! "bound variables", which are those columns on which elimination ! has been performed. @end deftypefn ! housh -*- texinfo -*- ! @deftypefn {Function File} {[@var{housv}, @var{beta}, @var{zer}] =} housh (@var{x}, @var{j}, @var{z}) ! Compute Householder reflection vector @var{housv} to reflect @var{x} ! to be the jth column of identity, i.e., ! @example ! @group ! (I - beta*housv*housv')x = norm(x)*e(j) if x(1) < 0, ! (I - beta*housv*housv')x = -norm(x)*e(j) if x(1) >= 0 ! @end group ! @end example ! @noindent ! Inputs ! @table @var ! @item x ! vector ! @item j ! index into vector ! @item z ! threshold for zero (usually should be the number 0) ! @end table ! @noindent ! Outputs (see Golub and Van Loan): ! @table @var ! @item beta ! If beta = 0, then no reflection need be applied (zer set to 0) ! @item housv ! householder vector ! @end table @end deftypefn ! logm -*- texinfo -*- ! @deftypefn {Function File} {} logm (@var{a}) ! Compute the matrix logarithm of the square matrix @var{a}. Note that ! this is currently implemented in terms of an eigenvalue expansion and ! needs to be improved to be more robust. @end deftypefn ! trace -*- texinfo -*- ! @deftypefn {Function File} {} trace (@var{a}) ! Compute the trace of @var{a}, @code{sum (diag (@var{a}))}. @end deftypefn ! rank -*- texinfo -*- ! @deftypefn {Function File} {} rank (@var{a}, @var{tol}) ! Compute the rank of @var{a}, using the singular value decomposition. ! The rank is taken to be the number of singular values of @var{a} that ! are greater than the specified tolerance @var{tol}. If the second ! argument is omitted, it is taken to be ! ! @example ! tol = max (size (@var{a})) * sigma(1) * eps; ! @end example ! @noindent ! where @code{eps} is machine precision and @code{sigma(1)} is the largest ! singular value of @var{a}. ! @end deftypefn ! dot ! -*- texinfo -*- ! @deftypefn {Function File} {} dot (@var{x}, @var{y}, @var{dim}) ! Computes the dot product of two vectors. If @var{x} and @var{y} ! are matrices, calculate the dot-product along the first ! non-singleton dimension. If the optional argument @var{dim} is ! given, calculate the dot-product along this dimension. @end deftypefn ! commutation_matrix -*- texinfo -*- ! @deftypefn {Function File} {} commutation_matrix (@var{m}, @var{n}) ! Return the commutation matrix ! @iftex ! @tex ! $K_{m,n}$ ! @end tex ! @end iftex ! @ifinfo ! K(m,n) ! @end ifinfo ! which is the unique ! @iftex ! @tex ! $m n \times m n$ ! @end tex ! @end iftex ! @ifinfo ! @var{m}*@var{n} by @var{m}*@var{n} ! @end ifinfo ! matrix such that ! @iftex ! @tex ! $K_{m,n} \cdot {\rm vec} (A) = {\rm vec} (A^T)$ ! @end tex ! @end iftex ! @ifinfo ! @math{K(m,n) * vec(A) = vec(A')} ! @end ifinfo ! for all ! @iftex ! @tex ! $m\times n$ ! @end tex ! @end iftex ! @ifinfo ! @math{m} by @math{n} ! @end ifinfo ! matrices ! @iftex ! @tex ! $A$. ! @end tex ! @end iftex ! @ifinfo ! @math{A}. ! @end ifinfo ! ! If only one argument @var{m} is given, ! @iftex ! @tex ! $K_{m,m}$ ! @end tex ! @end iftex ! @ifinfo ! @math{K(m,m)} ! @end ifinfo ! is returned. ! See Magnus and Neudecker (1988), Matrix differential calculus with ! applications in statistics and econometrics. @end deftypefn ! duplication_matrix -*- texinfo -*- ! @deftypefn {Function File} {} duplication_matrix (@var{n}) ! Return the duplication matrix ! @iftex ! @tex ! $D_n$ ! @end tex ! @end iftex ! @ifinfo ! @math{Dn} ! @end ifinfo ! which is the unique ! @iftex ! @tex ! $n^2 \times n(n+1)/2$ ! @end tex ! @end iftex ! @ifinfo ! @math{n^2} by @math{n*(n+1)/2} ! @end ifinfo ! matrix such that ! @iftex ! @tex ! $D_n * {\rm vech} (A) = {\rm vec} (A)$ ! @end tex ! @end iftex ! @ifinfo ! @math{Dn vech (A) = vec (A)} ! @end ifinfo ! for all symmetric ! @iftex ! @tex ! $n \times n$ ! @end tex ! @end iftex ! @ifinfo ! @math{n} by @math{n} ! @end ifinfo ! matrices ! @iftex ! @tex ! $A$. ! @end tex ! @end iftex ! @ifinfo ! @math{A}. ! @end ifinfo ! See Magnus and Neudecker (1988), Matrix differential calculus with ! applications in statistics and econometrics. @end deftypefn ! onenormest -*- texinfo -*- ! @deftypefn {Function File} {[@var{est}, @var{v}, @var{w}, @var{iter}] =} onenormest (@var{a}, @var{t}) ! @deftypefnx {Function File} {[@var{est}, @var{v}, @var{w}, @var{iter}] =} onenormest (@var{apply}, @var{apply_t}, @var{n}, @var{t}) ! ! Apply Higham and Tisseur's randomized block 1-norm estimator to ! matrix @var{a} using @var{t} test vectors. If @var{t} exceeds 5, then ! only 5 test vectors are used. ! ! If the matrix is not explicit, e.g. when estimating the norm of ! @code{inv (@var{A})} given an LU factorization, @code{onenormest} applies ! @var{A} and its conjugate transpose through a pair of functions ! @var{apply} and @var{apply_t}, respectively, to a dense matrix of size ! @var{n} by @var{t}. The implicit version requires an explicit dimension ! @var{n}. ! ! Returns the norm estimate @var{est}, two vectors @var{v} and ! @var{w} related by norm ! @code{(@var{w}, 1) = @var{est} * norm (@var{v}, 1)}, ! and the number of iterations @var{iter}. The number of ! iterations is limited to 10 and is at least 2. ! ! References: ! @itemize ! @item Nicholas J. Higham and Françoise Tisseur, "A Block Algorithm ! for Matrix 1-Norm Estimation, with an Application to 1-Norm ! Pseudospectra." SIMAX vol 21, no 4, pp 1185-1201. ! @url{http://dx.doi.org/10.1137/S0895479899356080} ! @item Nicholas J. Higham and Françoise Tisseur, "A Block Algorithm ! for Matrix 1-Norm Estimation, with an Application to 1-Norm ! Pseudospectra." @url{http://citeseer.ist.psu.edu/223007.html} ! @end itemize ! ! @seealso{condest, norm, cond} @end deftypefn ! beep -*- texinfo -*- ! @deftypefn {Function File} {} beep () ! Produce a beep from the speaker (or visual bell). ! @seealso{puts, fputs, printf, fprintf} @end deftypefn ! griddata3 -*- texinfo -*- ! @deftypefn {Function File} {@var{vi} =} griddata3 (@var{x}, @var{y}, @var{z}, @var{v} @var{xi}, @var{yi}, @var{zi}, @var{method}, @var{options}) ! ! Generate a regular mesh from irregular data using interpolation. ! The function is defined by @code{@var{y} = f (@var{x},@var{y},@var{z})}. ! The interpolation points are all @var{xi}. ! ! The interpolation method can be @code{"nearest"} or @code{"linear"}. ! If method is omitted it defaults to @code{"linear"}. ! @seealso{griddata, delaunayn} @end deftypefn ! delaunayn -*- texinfo -*- ! @deftypefn {Function File} {@var{T} =} delaunayn (@var{P}) ! @deftypefnx {Function File} {@var{T} =} delaunayn (@var{P}, @var{opt}) ! Form the Delaunay triangulation for a set of points. ! The Delaunay triangulation is a tessellation of the convex hull of the ! points such that no n-sphere defined by the n-triangles contains ! any other points from the set. ! The input matrix @var{P} of size @code{[n, dim]} contains @var{n} ! points in a space of dimension dim. The return matrix @var{T} has the ! size @code{[m, dim+1]}. It contains for each row a set of indices to ! the points, which describes a simplex of dimension dim. For example, ! a 2d simplex is a triangle and 3d simplex is a tetrahedron. ! ! Extra options for the underlying Qhull command can be specified by the ! second argument. This argument is a cell array of strings. The default ! options depend on the dimension of the input: ! ! @itemize ! @item 2D and 3D: @var{opt} = @code{@{"Qt", "Qbb", "Qc"@}} ! @item 4D and higher: @var{opt} = @code{@{"Qt", "Qbb", "Qc", "Qz"@}} ! @end itemize ! ! If @var{opt} is [], then the default arguments are used. If @var{opt} ! is @code{@{"@w{}"@}}, then none of the default arguments are used by Qhull. ! See the Qhull documentation for the available options. ! ! All options can also be specified as single string, for example ! @code{"Qt Qbb Qc Qz"}. ! @end deftypefn ! dsearch -*- texinfo -*- ! @deftypefn {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}) ! @deftypefnx {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}, @var{s}) ! Returns the index @var{idx} or the closest point in @code{@var{x}, @var{y})} ! to the elements @code{[@var{xi}(:), @var{yi}(:)]}. The variable @var{s} is ! accepted but ignored for compatibility. ! @seealso{dsearchn, tsearch} @end deftypefn ! voronoi -*- texinfo -*- ! @deftypefn {Function File} {} voronoi (@var{x}, @var{y}) ! @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle") ! @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle", @var{options}) ! @deftypefnx {Function File} {[@var{vx}, @var{vy}] =} voronoi (@dots{}) ! plots voronoi diagram of points @code{(@var{x}, @var{y})}. ! The voronoi facets with points at infinity are not drawn. ! [@var{vx}, @var{vy}] = voronoi(...) returns the vertices instead plotting the ! diagram. plot (@var{vx}, @var{vy}) shows the voronoi diagram. ! ! A fourth optional argument, which must be a string, contains extra options ! passed to the underlying qhull command. See the documentation for the ! Qhull library for details. ! ! @example ! @group ! x = rand (10, 1); ! y = rand (size (x)); ! h = convhull (x, y); ! [vx, vy] = voronoi (x, y); ! plot (vx, vy, "-b", x, y, "o", x(h), y(h), "-g") ! legend ("", "points", "hull"); ! @end group ! @end example ! ! @seealso{voronoin, delaunay, convhull} @end deftypefn ! triplot -*- texinfo -*- ! @deftypefn {Function File} {} triplot (@var{tri}, @var{x}, @var{y}) ! @deftypefnx {Function File} {} triplot (@var{tri}, @var{x}, @var{y}, @var{linespec}) ! @deftypefnx {Function File} {@var{h} = } triplot (@dots{}) ! Plot a triangular mesh in 2D. The variable @var{tri} is the triangular ! meshing of the points @code{(@var{x}, @var{y})} which is returned from ! @code{delaunay}. If given, the @var{linespec} determines the properties ! to use for the lines. The output argument @var{h} is the graphic handle ! to the plot. ! @seealso{plot, trimesh, delaunay} @end deftypefn ! trimesh -*- texinfo -*- ! @deftypefn {Function File} {} trimesh (@var{tri}, @var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {@var{h} = } trimesh (@dots{}) ! Plot a triangular mesh in 3D. The variable @var{tri} is the triangular ! meshing of the points @code{(@var{x}, @var{y})} which is returned ! from @code{delaunay}. The variable @var{z} is value at the point ! @code{(@var{x}, @var{y})}. The output argument @var{h} is the graphic ! handle to the plot. ! @seealso{triplot, delaunay3} @end deftypefn ! griddatan -*- texinfo -*- ! @deftypefn {Function File} {@var{yi} =} griddatan (@var{x}, @var{y}, @var{xi}, @var{method}, @var{options}) ! ! Generate a regular mesh from irregular data using interpolation. ! The function is defined by @code{@var{y} = f (@var{x})}. ! The interpolation points are all @var{xi}. ! The interpolation method can be @code{"nearest"} or @code{"linear"}. ! If method is omitted it defaults to @code{"linear"}. ! @seealso{griddata, delaunayn} @end deftypefn ! inpolygon -*- texinfo -*- ! @deftypefn {Function File} {[@var{in}, @var{on}] = } inpolygon (@var{x}, @var{y}, @var{xv}, @var{xy}) ! ! For a polygon defined by @code{(@var{xv}, @var{yv})} points, determine ! if the points @code{(@var{x}, @var{y})} are inside or outside the polygon. ! The variables @var{x}, @var{y}, must have the same dimension. The optional ! output @var{on} gives the points that are on the polygon. ! @end deftypefn ! griddata -*- texinfo -*- ! @deftypefn {Function File} {@var{zi} =} griddata (@var{x}, @var{y}, @var{z}, @var{xi}, @var{yi}, @var{method}) ! @deftypefnx {Function File} {[@var{xi}, @var{yi}, @var{zi}] =} griddata (@var{x}, @var{y}, @var{z}, @var{xi}, @var{yi}, @var{method}) ! ! Generate a regular mesh from irregular data using interpolation. ! The function is defined by @code{@var{z} = f (@var{x}, @var{y})}. ! The interpolation points are all @code{(@var{xi}, @var{yi})}. If ! @var{xi}, @var{yi} are vectors then they are made into a 2D mesh. ! The interpolation method can be @code{"nearest"}, @code{"cubic"} or ! @code{"linear"}. If method is omitted it defaults to @code{"linear"}. ! @seealso{delaunay} @end deftypefn ! voronoin -*- texinfo -*- ! @deftypefn {Function File} {[@var{C}, @var{F}] =} voronoin (@var{pts}) ! @deftypefnx {Function File} {[@var{C}, @var{F}] =} voronoin (@var{pts}, @var{options}) ! computes n- dimensional voronoi facets. The input matrix @var{pts} ! of size [n, dim] contains n points of dimension dim. ! @var{C} contains the points of the voronoi facets. The list @var{F} ! contains for each facet the indices of the voronoi points. ! A second optional argument, which must be a string, contains extra options ! passed to the underlying qhull command. See the documentation for the ! Qhull library for details. ! @seealso{voronoin, delaunay, convhull} @end deftypefn ! dsearchn -*- texinfo -*- ! @deftypefn {Function File} {@var{idx} =} dsearchn (@var{x}, @var{tri}, @var{xi}) ! @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{tri}, @var{xi}, @var{outval}) ! @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{xi}) ! @deftypefnx {Function File} {[@var{idx}, @var{d}] =} dsearchn (@dots{}) ! Returns the index @var{idx} or the closest point in @var{x} to the elements ! @var{xi}. If @var{outval} is supplied, then the values of @var{xi} that are ! not contained within one of the simplicies @var{tri} are set to ! @var{outval}. Generally, @var{tri} is returned from @code{delaunayn ! (@var{x})}. ! @seealso{dsearch, tsearch} @end deftypefn ! tsearchn -*- texinfo -*- ! @deftypefn {Function File} {[@var{idx}, @var{p}] =} tsearchn (@var{x}, @var{t}, @var{xi}) ! Searches for the enclosing Delaunay convex hull. For @code{@var{t} = ! delaunayn (@var{x})}, finds the index in @var{t} containing the ! points @var{xi}. For points outside the convex hull, @var{idx} is NaN. ! If requested @code{tsearchn} also returns the barycentric coordinates @var{p} ! of the enclosing triangles. ! @seealso{delaunay, delaunayn} @end deftypefn ! delaunay3 -*- texinfo -*- ! @deftypefn {Function File} {@var{T} =} delaunay3 (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {@var{T} =} delaunay3 (@var{x}, @var{y}, @var{z}, @var{opt}) ! A matrix of size [n, 4] is returned. Each row contains a ! set of tetrahedron which are ! described by the indices to the data point vectors (x,y,z). ! ! A fourth optional argument, which must be a string or cell array of strings, ! contains extra options passed to the underlying qhull command. See the ! documentation for the Qhull library for details. ! @seealso{delaunay,delaunayn} @end deftypefn ! delaunay -*- texinfo -*- ! @deftypefn {Function File} {@var{tri}=} delaunay (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{tri}=} delaunay (@var{x}, @var{y}, @var{opt}) ! The return matrix of size [n, 3] contains a set triangles which are ! described by the indices to the data point x and y vector. ! The triangulation satisfies the Delaunay circumcircle criterion. ! No other data point is in the circumcircle of the defining triangle. ! ! A third optional argument, which must be a string, contains extra options ! passed to the underlying qhull command. See the documentation for the ! Qhull library for details. ! @example ! @group ! x = rand (1, 10); ! y = rand (size (x)); ! T = delaunay (x, y); ! X = [x(T(:,1)); x(T(:,2)); x(T(:,3)); x(T(:,1))]; ! Y = [y(T(:,1)); y(T(:,2)); y(T(:,3)); y(T(:,1))]; ! axis ([0,1,0,1]); ! plot (X, Y, "b", x, y, "r*"); ! @end group ! @end example ! @seealso{voronoi, delaunay3, delaunayn} @end deftypefn ! convhull -*- texinfo -*- ! @deftypefn {Function File} {@var{H} =} convhull (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{H} =} convhull (@var{x}, @var{y}, @var{opt}) ! Returns the index vector to the points of the enclosing convex hull. The ! data points are defined by the x and y vectors. ! ! A third optional argument, which must be a string, contains extra options ! passed to the underlying qhull command. See the documentation for the ! Qhull library for details. ! ! @seealso{delaunay, convhulln} @end deftypefn ! eomday -*- texinfo -*- ! @deftypefn {Function File} {@var{e} =} eomday (@var{y}, @var{m}) ! Return the last day of the month @var{m} for the year @var{y}. ! @seealso{datenum, datevec, weekday, eomdate} @end deftypefn ! datestr -*- texinfo -*- ! @deftypefn {Function File} {@var{str} =} datestr (@var{date}, [@var{f}, [@var{p}]]) ! Format the given date/time according to the format @code{f} and return ! the result in @var{str}. @var{date} is a serial date number (see ! @code{datenum}) or a date vector (see @code{datevec}). The value of ! @var{date} may also be a string or cell array of strings. ! ! @var{f} can be an integer which corresponds to one of the codes in ! the table below, or a date format string. ! ! @var{p} is the year at the start of the century in which two-digit years ! are to be interpreted in. If not specified, it defaults to the current ! year minus 50. ! ! For example, the date 730736.65149 (2000-09-07 15:38:09.0934) would be ! formatted as follows: ! ! @multitable @columnfractions 0.1 0.45 0.35 ! @headitem Code @tab Format @tab Example ! @item 0 @tab dd-mmm-yyyy HH:MM:SS @tab 07-Sep-2000 15:38:09 ! @item 1 @tab dd-mmm-yyyy @tab 07-Sep-2000 ! @item 2 @tab mm/dd/yy @tab 09/07/00 ! @item 3 @tab mmm @tab Sep ! @item 4 @tab m @tab S ! @item 5 @tab mm @tab 09 ! @item 6 @tab mm/dd @tab 09/07 ! @item 7 @tab dd @tab 07 ! @item 8 @tab ddd @tab Thu ! @item 9 @tab d @tab T ! @item 10 @tab yyyy @tab 2000 ! @item 11 @tab yy @tab 00 ! @item 12 @tab mmmyy @tab Sep00 ! @item 13 @tab HH:MM:SS @tab 15:38:09 ! @item 14 @tab HH:MM:SS PM @tab 03:38:09 PM ! @item 15 @tab HH:MM @tab 15:38 ! @item 16 @tab HH:MM PM @tab 03:38 PM ! @item 17 @tab QQ-YY @tab Q3-00 ! @item 18 @tab QQ @tab Q3 ! @item 19 @tab dd/mm @tab 13/03 ! @item 20 @tab dd/mm/yy @tab 13/03/95 ! @item 21 @tab mmm.dd.yyyy HH:MM:SS @tab Mar.03.1962 13:53:06 ! @item 22 @tab mmm.dd.yyyy @tab Mar.03.1962 ! @item 23 @tab mm/dd/yyyy @tab 03/13/1962 ! @item 24 @tab dd/mm/yyyy @tab 12/03/1962 ! @item 25 @tab yy/mm/dd @tab 95/03/13 ! @item 26 @tab yyyy/mm/dd @tab 1995/03/13 ! @item 27 @tab QQ-YYYY @tab Q4-2132 ! @item 28 @tab mmmyyyy @tab Mar2047 ! @item 29 @tab yyyymmdd @tab 20470313 ! @item 30 @tab yyyymmddTHHMMSS @tab 20470313T132603 ! @item 31 @tab yyyy-mm-dd HH:MM:SS @tab 1047-03-13 13:26:03 ! @end multitable ! ! If @var{f} is a format string, the following symbols are recognised: ! ! @multitable @columnfractions 0.1 0.7 0.2 ! @headitem Symbol @tab Meaning @tab Example ! @item yyyy @tab Full year @tab 2005 ! @item yy @tab Two-digit year @tab 2005 ! @item mmmm @tab Full month name @tab December ! @item mmm @tab Abbreviated month name @tab Dec ! @item mm @tab Numeric month number (padded with zeros) @tab 01, 08, 12 ! @item m @tab First letter of month name (capitalized) @tab D ! @item dddd @tab Full weekday name @tab Sunday ! @item ddd @tab Abbreviated weekday name @tab Sun ! @item dd @tab Numeric day of month (padded with zeros) @tab 11 ! @item d @tab First letter of weekday name (capitalized) @tab S ! @item HH @tab Hour of day, padded with zeros if PM is set @tab 09:00 ! @item @tab and not padded with zeros otherwise @tab 9:00 AM ! @item MM @tab Minute of hour (padded with zeros) @tab 10:05 ! @item SS @tab Second of minute (padded with zeros) @tab 10:05:03 ! @item PM @tab Use 12-hour time format @tab 11:30 PM ! @end multitable ! ! If @var{f} is not specified or is @code{-1}, then use 0, 1 or 16, ! depending on whether the date portion or the time portion of ! @var{date} is empty. ! ! If @var{p} is nor specified, it defaults to the current year minus 50. ! ! If a matrix or cell array of dates is given, a vector of date strings is ! returned. ! @seealso{datenum, datevec, date, clock, now, datetick} @end deftypefn ! ctime -*- texinfo -*- ! @deftypefn {Function File} {} ctime (@var{t}) ! Convert a value returned from @code{time} (or any other nonnegative ! integer), to the local time and return a string of the same form as ! @code{asctime}. The function @code{ctime (time)} is equivalent to ! @code{asctime (localtime (time))}. For example, ! @example ! @group ! ctime (time ()) ! @result{} "Mon Feb 17 01:15:06 1997\n" ! @end group ! @end example @end deftypefn ! asctime -*- texinfo -*- ! @deftypefn {Function File} {} asctime (@var{tm_struct}) ! Convert a time structure to a string using the following five-field ! format: Thu Mar 28 08:40:14 1996. For example, ! ! @example ! @group ! asctime (localtime (time ())) ! @result{} "Mon Feb 17 01:15:06 1997\n" ! @end group ! @end example ! This is equivalent to @code{ctime (time ())}. @end deftypefn ! calendar -*- texinfo -*- ! @deftypefn {Function File} {} calendar (@dots{}) ! @deftypefnx {Function File} {@var{c} =} calendar () ! @deftypefnx {Function File} {@var{c} =} calendar (@var{d}) ! @deftypefnx {Function File} {@var{c} =} calendar (@var{y}, @var{m}) ! If called with no arguments, return the current monthly calendar in ! a 6x7 matrix. ! ! If @var{d} is specified, return the calendar for the month containing ! the day @var{d}, which must be a serial date number or a date string. ! ! If @var{y} and @var{m} are specified, return the calendar for year @var{y} ! and month @var{m}. ! ! If no output arguments are specified, print the calendar on the screen ! instead of returning a matrix. ! @seealso{datenum} @end deftypefn ! is_leap_year -*- texinfo -*- ! @deftypefn {Function File} {} is_leap_year (@var{year}) ! Return 1 if the given year is a leap year and 0 otherwise. If no ! arguments are provided, @code{is_leap_year} will use the current year. ! For example, ! @example ! @group ! is_leap_year (2000) ! @result{} 1 ! @end group ! @end example @end deftypefn ! etime -*- texinfo -*- ! @deftypefn {Function File} {} etime (@var{t1}, @var{t2}) ! Return the difference (in seconds) between two time values returned from ! @code{clock}. For example: ! ! @example ! t0 = clock (); ! many computations later... ! elapsed_time = etime (clock (), t0); ! @end example ! ! @noindent ! will set the variable @code{elapsed_time} to the number of seconds since ! the variable @code{t0} was set. ! @seealso{tic, toc, clock, cputime} @end deftypefn ! weekday -*- texinfo -*- ! @deftypefn {Function File} {[@var{n}, @var{s}] =} weekday (@var{d}, [@var{form}]) ! Return the day of week as a number in @var{n} and a string in @var{s}, ! for example @code{[1, "Sun"]}, @code{[2, "Mon"]}, @dots{}, or ! @code{[7, "Sat"]}. ! ! @var{d} is a serial date number or a date string. ! ! If the string @var{form} is given and is @code{"long"}, @var{s} will ! contain the full name of the weekday; otherwise (or if @var{form} is ! @code{"short"}), @var{s} will contain the abbreviated name of the weekday. ! @seealso{datenum, datevec, eomday} @end deftypefn ! datevec -*- texinfo -*- ! @deftypefn {Function File} {@var{v} =} datevec (@var{date}) ! @deftypefnx {Function File} {@var{v} =} datevec (@var{date}, @var{f}) ! @deftypefnx {Function File} {@var{v} =} datevec (@var{date}, @var{p}) ! @deftypefnx {Function File} {@var{v} =} datevec (@var{date}, @var{f}, @var{p}) ! @deftypefnx {Function File} {[@var{y}, @var{m}, @var{d}, @var{h}, @var{mi}, @var{s}] =} datevec (@dots{}) ! Convert a serial date number (see @code{datenum}) or date string (see ! @code{datestr}) into a date vector. ! ! A date vector is a row vector with six members, representing the year, ! month, day, hour, minute, and seconds respectively. ! ! @var{f} is the format string used to interpret date strings ! (see @code{datestr}). ! ! @var{p} is the year at the start of the century in which two-digit years ! are to be interpreted in. If not specified, it defaults to the current ! year minus 50. ! @seealso{datenum, datestr, date, clock, now} @end deftypefn ! clock -*- texinfo -*- ! @deftypefn {Function File} {} clock () ! Return a vector containing the current year, month (1-12), day (1-31), ! hour (0-23), minute (0-59) and second (0-61). For example, ! ! @example ! @group ! clock () ! @result{} [ 1993, 8, 20, 4, 56, 1 ] ! @end group ! @end example ! The function clock is more accurate on systems that have the ! @code{gettimeofday} function. @end deftypefn ! date -*- texinfo -*- ! @deftypefn {Function File} {} date () ! Return the date as a character string in the form DD-MMM-YY. For ! example, ! @example ! @group ! date () ! @result{} "20-Aug-93" ! @end group ! @end example @end deftypefn ! now -*- texinfo -*- ! @deftypefn {Function File} {t =} now () ! Returns the current local time as the number of days since Jan 1, 0000. ! By this reckoning, Jan 1, 1970 is day number 719529. ! ! The integral part, @code{floor (now)} corresponds to 00:00:00 today. ! ! The fractional part, @code{rem (now, 1)} corresponds to the current ! time on Jan 1, 0000. ! The returned value is also called a "serial date number" ! (see @code{datenum}). ! @seealso{clock, date, datenum} @end deftypefn ! datenum -*- texinfo -*- ! @deftypefn {Function File} {} datenum (@var{year}, @var{month}, @var{day}) ! @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}) ! @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}) ! @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}, @var{second}) ! @deftypefnx {Function File} {} datenum (@code{"date"}) ! @deftypefnx {Function File} {} datenum (@code{"date"}, @var{p}) ! Returns the specified local time as a day number, with Jan 1, 0000 ! being day 1. By this reckoning, Jan 1, 1970 is day number 719529. ! The fractional portion, @var{p}, corresponds to the portion of the ! specified day. ! ! Notes: ! ! @itemize ! @item ! Years can be negative and/or fractional. ! @item ! Months below 1 are considered to be January. ! @item ! Days of the month start at 1. ! @item ! Days beyond the end of the month go into subsequent months. ! @item ! Days before the beginning of the month go to the previous month. ! @item ! Days can be fractional. ! @end itemize ! ! @strong{Warning:} this function does not attempt to handle Julian ! calendars so dates before Octave 15, 1582 are wrong by as much ! as eleven days. Also be aware that only Roman Catholic countries ! adopted the calendar in 1582. It took until 1924 for it to be ! adopted everywhere. See the Wikipedia entry on the Gregorian ! calendar for more details. ! @strong{Warning:} leap seconds are ignored. A table of leap seconds ! is available on the Wikipedia entry for leap seconds. ! @seealso{date, clock, now, datestr, datevec, calendar, weekday} @end deftypefn ! __img_via_file__ ! Undocumented internal function. ! hsv2rgb -*- texinfo -*- ! @deftypefn {Function File} {@var{rgb_map} =} hsv2rgb (@var{hsv_map}) ! Transform a colormap from the hsv space to the rgb space. ! @seealso{rgb2hsv} @end deftypefn ! hot -*- texinfo -*- ! @deftypefn {Function File} {} hot (@var{n}) ! Create color colormap. This colormap is black through dark red, red, ! orange, yellow to white. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! saveimage -*- texinfo -*- ! @deftypefn {Function File} {} saveimage (@var{file}, @var{x}, @var{fmt}, @var{map}) ! Save the matrix @var{x} to @var{file} in image format @var{fmt}. Valid ! values for @var{fmt} are ! ! @table @code ! @item "img" ! Octave's image format. The current colormap is also saved in the file. ! ! @item "ppm" ! Portable pixmap format. ! ! @item "ps" ! PostScript format. Note that images saved in PostScript format can not ! be read back into Octave with loadimage. ! @end table ! ! If the fourth argument is supplied, the specified colormap will also be ! saved along with the image. ! Note: if the colormap contains only two entries and these entries are ! black and white, the bitmap ppm and PostScript formats are used. If the ! image is a gray scale image (the entries within each row of the colormap ! are equal) the gray scale ppm and PostScript image formats are used, ! otherwise the full color formats are used. ! @seealso{loadimage, save, load, colormap} @end deftypefn ! ntsc2rgb -*- texinfo -*- ! @deftypefn {Function File} {} ntsc2rgb (@var{yiq}) ! Image format conversion. @end deftypefn ! gmap40 -*- texinfo -*- ! @deftypefn {Function File} {} gmap40 (@var{n}) ! Create a color colormap. The colormap is red, green, blue, yellow, ! magneta and cyan. These are the colors that are allowed with patch ! objects using gnuplot 4.0, and so this colormap function is specially ! designed for users of gnuplot 4.0. The argument @var{n} should be ! a scalar. If it is omitted, a length of 6 is assumed. Larger values ! of @var{n} result in a repetition of the above colors ! @seealso{colormap} @end deftypefn ! rainbow -*- texinfo -*- ! @deftypefn {Function File} {} rainbow (@var{n}) ! Create color colormap. This colormap is red through orange, yellow, green, ! blue to violet. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! rgb2ind -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{rgb}) ! @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{r}, @var{g}, @var{b}) ! Convert and RGB image to an Octave indexed image. ! @seealso{ind2rgb, rgb2ntsc} @end deftypefn ! gray2ind -*- texinfo -*- ! @deftypefn {Function File} {[@var{img}, @var{map}] =} gray2ind (@var{}) ! Convert a gray scale intensity image to an Octave indexed image. @end deftypefn ! imagesc -*- texinfo -*- ! @deftypefn {Function File} {} imagesc (@var{a}) ! @deftypefnx {Function File} {} imagesc (@var{x}, @var{y}, @var{a}) ! @deftypefnx {Function File} {} imagesc (@dots{}, @var{limits}) ! @deftypefnx {Function File} {} imagesc (@var{h}, @dots{}) ! @deftypefnx {Function File} { @var{h} = } imagesc (@dots{}) ! Display a scaled version of the matrix @var{a} as a color image. The ! colormap is scaled so that the entries of the matrix occupy the entire ! colormap. If @var{limits} = [@var{lo}, @var{hi}] are given, then that ! range is set to the 'clim' of the current axes. ! ! The axis values corresponding to the matrix elements are specified in ! @var{x} and @var{y}, either as pairs giving the minimum and maximum ! values for the respective axes, or as values for each row and column ! of the matrix @var{a}. ! @seealso{image, imshow, clim, caxis} @end deftypefn ! prism -*- texinfo -*- ! @deftypefn {Function File} {} prism (@var{n}) ! Create color colormap. This colormap cycles trough red, orange, yellow, ! green, blue and violet. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! gray -*- texinfo -*- ! @deftypefn {Function File} {} gray (@var{n}) ! Return a gray colormap with @var{n} entries corresponding to values from ! 0 to @var{n}-1. The argument @var{n} should be a scalar. If it is ! omitted, the length of the current colormap or 64 is assumed. @end deftypefn ! imshow -*- texinfo -*- ! @deftypefn {Function File} {} imshow (@var{im}) ! @deftypefnx {Function File} {} imshow (@var{im}, @var{limits}) ! @deftypefnx {Function File} {} imshow (@var{im}, @var{map}) ! @deftypefnx {Function File} {} imshow (@var{rgb}, @dots{}) ! @deftypefnx {Function File} {} imshow (@var{filename}) ! @deftypefnx {Function File} {} imshow (@dots{}, @var{string_param1}, @var{value1}, @dots{}) ! Display the image @var{im}, where @var{im} can be a 2-dimensional ! (gray-scale image) or a 3-dimensional (RGB image) matrix. ! ! If @var{limits} is a 2-element vector @code{[@var{low}, @var{high}]}, ! the image is shown using a display range between @var{low} and ! @var{high}. If an empty matrix is passed for @var{limits}, the ! display range is computed as the range between the minimal and the ! maximal value in the image. ! ! If @var{map} is a valid color map, the image will be shown as an indexed ! image using the supplied color map. ! ! If a file name is given instead of an image, the file will be read and ! shown. ! If given, the parameter @var{string_param1} has value ! @var{value1}. @var{string_param1} can be any of the following: ! @table @samp ! @item "displayrange" ! @var{value1} is the display range as described above. ! @end table ! @seealso{image, imagesc, colormap, gray2ind, rgb2ind} @end deftypefn ! autumn -*- texinfo -*- ! @deftypefn {Function File} {} autumn (@var{n}) ! Create color colormap. This colormap is red through orange to yellow. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! brighten -*- texinfo -*- ! @deftypefn {Function File} {@var{map_out} =} brighten (@var{map}, @var{beta}) ! @deftypefnx {Function File} {@var{map_out} =} brighten (@var{h}, @var{beta}) ! @deftypefnx {Function File} {@var{map_out} =} brighten (@var{beta}) ! Darkens or brightens the given colormap. If the @var{map} argument ! is omitted, the function is applied to the current colormap. The first ! argument can also be a valid graphics handle @var{h}, in which case ! @code{brighten} is applied to the colormap associated with this handle. ! ! Should the resulting colormap @var{map_out} not be assigned, it will be ! written to the current colormap. ! The argument @var{beta} should be a scalar between -1 and 1, ! where a negative value darkens and a positive value brightens ! the colormap. ! @seealso{colormap} @end deftypefn ! ind2gray -*- texinfo -*- ! @deftypefn {Function File} {} ind2gray (@var{x}, @var{map}) ! Convert an Octave indexed image to a gray scale intensity image. ! If @var{map} is omitted, the current colormap is used to determine the ! intensities. ! @seealso{gray2ind, rgb2ntsc, image, colormap} @end deftypefn ! bone -*- texinfo -*- ! @deftypefn {Function File} {} bone (@var{n}) ! Create color colormap. This colormap is a gray colormap with a light ! blue tone. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! __img__ ! Undocumented internal function. ! image_viewer -*- texinfo -*- ! @deftypefn {Function File} {[@var{fcn}, @var{default_zoom}] =} image_viewer (@var{fcn}, @var{default_zoom}) ! Change the program or function used for viewing images and return the ! previous values. ! ! When the @code{image} or @code{imshow} function is called it will ! launch an external program to display the image. The default behaviour ! is to use gnuplot if the installed version supports image viewing, ! and otherwise try the programs @code{display}, @code{xv}, and ! @code{xloadimage}. Using this function it is possible to change that ! behaviour. ! ! When called with one input argument images will be displayed by saving ! the image to a file and the system command @var{command} will called ! to view the image. The @var{command} must be a string containing ! @code{%s} and possibly @code{%f}. The @code{%s} will be replaced by ! the filename of the image, and the @code{%f} will (if present) be ! replaced by the zoom factor given to the @code{image} function. ! For example, ! @example ! image_viewer ("eog %s"); ! @end example ! changes the image viewer to the @code{eog} program. ! With two input arguments, images will be displayed by calling ! the function @var{function_handle}. For example, ! @example ! image_viewer (data, @@my_image_viewer); ! @end example ! sets the image viewer function to @code{my_image_viewer}. The image ! viewer function is called with @example ! my_image_viewer (@var{x}, @var{y}, @var{im}, @var{zoom}, @var{data}) @end example ! where @var{x} and @var{y} are the axis of the image, @var{im} is the image ! variable, and @var{data} is extra user-supplied data to be passed to ! the viewer function. ! With three input arguments it is possible to change the zooming. ! Some programs (like @code{xloadimage}) require the zoom factor to be ! between 0 and 100, and not 0 and 1 like Octave assumes. This is ! solved by setting the third argument to 100. ! @seealso{image, imshow} @end deftypefn ! ocean -*- texinfo -*- ! @deftypefn {Function File} {} ocean (@var{n}) ! Create color colormap. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. @end deftypefn ! flag -*- texinfo -*- ! @deftypefn {Function File} {} flag (@var{n}) ! Create color colormap. This colormap cycles through red, white, blue ! and black. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! ind2rgb -*- texinfo -*- ! @deftypefn {Function File} {@var{rgb} =} ind2rgb (@var{x}, @var{map}) ! @deftypefnx {Function File} {[@var{r}, @var{g}, @var{b}] =} ind2rgb (@var{x}, @var{map}) ! Convert an indexed image to red, green, and blue color components. ! If the colormap doesn't contain enough colors, pad it with the ! last color in the map. ! If @var{map} is omitted, the current colormap is used for the conversion. ! @seealso{rgb2ind, image, imshow, ind2gray, gray2ind} @end deftypefn ! rgb2hsv -*- texinfo -*- ! @deftypefn {Function File} {@var{hsv_map} =} rgb2hsv (@var{rgb_map}) ! Transform a colormap from the rgb space to the hsv space. ! ! A color n the RGB space consists of the red, green and blue intensities. ! In the HSV space each color is represented by their hue, saturation ! and value (brightness). Value gives the amount of light in the color. ! Hue describes the dominant wavelength. ! Saturation is the amount of Hue mixed into the color. ! @seealso{hsv2rgb} @end deftypefn ! loadimage -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{map}] =} loadimage (@var{file}) ! Load an image file and it's associated color map from the specified ! @var{file}. The image must be stored in Octave's image format. ! @seealso{saveimage, load, save} @end deftypefn ! white -*- texinfo -*- ! @deftypefn {Function File} {} white (@var{n}) ! Create color colormap. This colormap is completely white. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! cool -*- texinfo -*- ! @deftypefn {Function File} {} cool (@var{n}) ! Create color colormap. The colormap is cyan to magenta. The argument ! @var{n} should be a scalar. If it is omitted, the length of the current ! colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! summer -*- texinfo -*- ! @deftypefn {Function File} {} summer (@var{n}) ! Create color colormap. This colormap is green to yellow. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! winter -*- texinfo -*- ! @deftypefn {Function File} {} winter (@var{n}) ! Create color colormap. This colormap is blue to green. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! copper -*- texinfo -*- ! @deftypefn {Function File} {} copper (@var{n}) ! Create color colormap. This colormap is black to a light copper tone. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! colormap -*- texinfo -*- ! @deftypefn {Function File} {} colormap (@var{map}) ! @deftypefnx {Function File} {} colormap ("default") ! Set the current colormap. ! ! @code{colormap (@var{map})} sets the current colormap to @var{map}. The ! color map should be an @var{n} row by 3 column matrix. The columns ! contain red, green, and blue intensities respectively. All entries ! should be between 0 and 1 inclusive. The new colormap is returned. ! ! @code{colormap ("default")} restores the default colormap (the ! @code{jet} map with 64 entries). The default colormap is returned. ! With no arguments, @code{colormap} returns the current color map. ! @seealso{jet} @end deftypefn ! spring -*- texinfo -*- ! @deftypefn {Function File} {} spring (@var{n}) ! Create color colormap. This colormap is magenta to yellow. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! image -*- texinfo -*- ! @deftypefn {Function File} {} image (@var{img}) ! @deftypefnx {Function File} {} image (@var{x}, @var{y}, @var{img}) ! Display a matrix as a color image. The elements of @var{x} are indices ! into the current colormap, and the colormap will be scaled so that the ! extremes of @var{x} are mapped to the extremes of teh colormap. ! ! It first tries to use @code{gnuplot}, then @code{display} from ! @code{ImageMagick}, then @code{xv}, and then @code{xloadimage}. ! The actual program used can be changed using the @code{image_viewer} ! function. ! The axis values corresponding to the matrix elements are specified in ! @var{x} and @var{y}. If you're not using gnuplot 4.2 or later, these ! variables are ignored. ! @seealso{imshow, imagesc, colormap, image_viewer} @end deftypefn ! rgb2ntsc -*- texinfo -*- ! @deftypefn {Function File} {} rgb2ntsc (@var{rgb}) ! Image format conversion. @end deftypefn ! pink -*- texinfo -*- ! @deftypefn {Function File} {} pink (@var{n}) ! Create color colormap. This colormap gives a sephia tone on black and ! white images. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! hsv -*- texinfo -*- ! @deftypefn {Function File} {} hsv (@var{n}) ! Create color colormap. This colormap is red through yellow, green, cyan, ! blue, magenta to red. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! jet -*- texinfo -*- ! @deftypefn {Function File} {} jet (@var{n}) ! Create color colormap. This colormap is dark blue through blue, cyan, ! green, yellow, red to dark red. The argument @var{n} should be a scalar. ! If it is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! cor_test -*- texinfo -*- ! @deftypefn {Function File} {} cor_test (@var{x}, @var{y}, @var{alt}, @var{method}) ! Test whether two samples @var{x} and @var{y} come from uncorrelated ! populations. ! ! The optional argument string @var{alt} describes the alternative ! hypothesis, and can be @code{"!="} or @code{"<>"} (non-zero), ! @code{">"} (greater than 0), or @code{"<"} (less than 0). The ! default is the two-sided case. ! ! The optional argument string @var{method} specifies on which ! correlation coefficient the test should be based. If @var{method} is ! @code{"pearson"} (default), the (usual) Pearson's product moment ! correlation coefficient is used. In this case, the data should come ! from a bivariate normal distribution. Otherwise, the other two ! methods offer nonparametric alternatives. If @var{method} is ! @code{"kendall"}, then Kendall's rank correlation tau is used. If ! @var{method} is @code{"spearman"}, then Spearman's rank correlation ! rho is used. Only the first character is necessary. ! ! The output is a structure with the following elements: ! ! @table @var ! @item pval ! The p-value of the test. ! @item stat ! The value of the test statistic. ! @item dist ! The distribution of the test statistic. ! @item params ! The parameters of the null distribution of the test statistic. ! @item alternative ! The alternative hypothesis. ! @item method ! The method used for testing. ! @end table ! If no output argument is given, the p-value is displayed. @end deftypefn ! hotelling_test_2 -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{tsq}] =} hotelling_test_2 (@var{x}, @var{y}) ! For two samples @var{x} from multivariate normal distributions with ! the same number of variables (columns), unknown means and unknown ! equal covariance matrices, test the null hypothesis @code{mean ! (@var{x}) == mean (@var{y})}. ! ! Hotelling's two-sample @math{T^2} is returned in @var{tsq}. Under the null, ! ! @iftex ! @tex ! $$ ! {n_x+n_y-p-1) T^2 \over p(n_x+n_y-2)} ! $$ ! @end tex ! @end iftex ! @ifnottex ! @example ! (n_x+n_y-p-1) T^2 / (p(n_x+n_y-2)) ! @end example ! @end ifnottex ! ! @noindent ! has an F distribution with @math{p} and @math{n_x+n_y-p-1} degrees of ! freedom, where @math{n_x} and @math{n_y} are the sample sizes and ! @math{p} is the number of variables. ! ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! kolmogorov_smirnov_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{ks}] =} kolmogorov_smirnov_test (@var{x}, @var{dist}, @var{params}, @var{alt}) ! Perform a Kolmogorov-Smirnov test of the null hypothesis that the ! sample @var{x} comes from the (continuous) distribution dist. I.e., ! if F and G are the CDFs corresponding to the sample and dist, ! respectively, then the null is that F == G. ! ! The optional argument @var{params} contains a list of parameters of ! @var{dist}. For example, to test whether a sample @var{x} comes from ! a uniform distribution on [2,4], use ! ! @example ! kolmogorov_smirnov_test(x, "uniform", 2, 4) ! @end example ! ! @noindent ! @var{dist} can be any string for which a function @var{dist_cdf} ! that calculates the CDF of distribution @var{dist} exists. ! ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative F ! != G. In this case, the test statistic @var{ks} follows a two-sided ! Kolmogorov-Smirnov distribution. If @var{alt} is @code{">"}, the ! one-sided alternative F > G is considered. Similarly for @code{"<"}, ! the one-sided alternative F > G is considered. In this case, the ! test statistic @var{ks} has a one-sided Kolmogorov-Smirnov ! distribution. The default is the two-sided case. ! ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value is displayed. @end deftypefn ! welch_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{t}, @var{df}] =} welch_test (@var{x}, @var{y}, @var{alt}) ! For two samples @var{x} and @var{y} from normal distributions with ! unknown means and unknown and not necessarily equal variances, ! perform a Welch test of the null hypothesis of equal means. ! Under the null, the test statistic @var{t} approximately follows a ! Student distribution with @var{df} degrees of freedom. ! ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{mean (@var{x}) != @var{m}}. If @var{alt} is @code{">"}, the ! one-sided alternative mean(x) > @var{m} is considered. Similarly for ! @code{"<"}, the one-sided alternative mean(x) < @var{m} is ! considered. The default is the two-sided case. ! ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! z_test_2 -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{z}] =} z_test_2 (@var{x}, @var{y}, @var{v_x}, @var{v_y}, @var{alt}) ! For two samples @var{x} and @var{y} from normal distributions with ! unknown means and known variances @var{v_x} and @var{v_y}, perform a ! Z-test of the hypothesis of equal means. Under the null, the test ! statistic @var{z} follows a standard normal distribution. ! ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{mean (@var{x}) != mean (@var{y})}. If alt is @code{">"}, the ! one-sided alternative @code{mean (@var{x}) > mean (@var{y})} is used. ! Similarly for @code{"<"}, the one-sided alternative @code{mean ! (@var{x}) < mean (@var{y})} is used. The default is the two-sided ! case. ! ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed ! along with some information. @end deftypefn ! t_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{t}, @var{df}] =} t_test (@var{x}, @var{m}, @var{alt}) ! For a sample @var{x} from a normal distribution with unknown mean and ! variance, perform a t-test of the null hypothesis @code{mean ! (@var{x}) == @var{m}}. Under the null, the test statistic @var{t} ! follows a Student distribution with @code{@var{df} = length (@var{x}) ! - 1} degrees of freedom. ! ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{mean (@var{x}) != @var{m}}. If @var{alt} is @code{">"}, the ! one-sided alternative @code{mean (@var{x}) > @var{m}} is considered. ! Similarly for @var{"<"}, the one-sided alternative @code{mean ! (@var{x}) < @var{m}} is considered. The default is the two-sided ! case. ! ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! f_test_regression -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{f}, @var{df_num}, @var{df_den}] =} f_test_regression (@var{y}, @var{x}, @var{rr}, @var{r}) ! Perform an F test for the null hypothesis rr * b = r in a classical ! normal regression model y = X * b + e. ! ! Under the null, the test statistic @var{f} follows an F distribution ! with @var{df_num} and @var{df_den} degrees of freedom. ! ! The p-value (1 minus the CDF of this distribution at @var{f}) is ! returned in @var{pval}. ! ! If not given explicitly, @var{r} = 0. ! ! If no output argument is given, the p-value is displayed. @end deftypefn ! u_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{z}] =} u_test (@var{x}, @var{y}, @var{alt}) ! For two samples @var{x} and @var{y}, perform a Mann-Whitney U-test of ! the null hypothesis PROB (@var{x} > @var{y}) == 1/2 == PROB (@var{x} ! < @var{y}). Under the null, the test statistic @var{z} approximately ! follows a standard normal distribution. Note that this test is ! equivalent to the Wilcoxon rank-sum test. ! ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! PROB (@var{x} > @var{y}) != 1/2. If @var{alt} is @code{">"}, the ! one-sided alternative PROB (@var{x} > @var{y}) > 1/2 is considered. ! Similarly for @code{"<"}, the one-sided alternative PROB (@var{x} > ! @var{y}) < 1/2 is considered. The default is the two-sided case. ! ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! wilcoxon_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{z}] =} wilcoxon_test (@var{x}, @var{y}, @var{alt}) ! For two matched-pair sample vectors @var{x} and @var{y}, perform a ! Wilcoxon signed-rank test of the null hypothesis PROB (@var{x} > ! @var{y}) == 1/2. Under the null, the test statistic @var{z} ! approximately follows a standard normal distribution when @var{n} > 25. ! ! @strong{Warning}: This function assumes a normal distribution for @var{z} ! and thus is invalid for @var{n} <= 25. ! ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! PROB (@var{x} > @var{y}) != 1/2. If alt is @code{">"}, the one-sided ! alternative PROB (@var{x} > @var{y}) > 1/2 is considered. Similarly ! for @code{"<"}, the one-sided alternative PROB (@var{x} > @var{y}) < ! 1/2 is considered. The default is the two-sided case. ! ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! t_test_regression -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{t}, @var{df}] =} t_test_regression (@var{y}, @var{x}, @var{rr}, @var{r}, @var{alt}) ! Perform an t test for the null hypothesis @code{@var{rr} * @var{b} = ! @var{r}} in a classical normal regression model @code{@var{y} = ! @var{x} * @var{b} + @var{e}}. Under the null, the test statistic @var{t} ! follows a @var{t} distribution with @var{df} degrees of freedom. ! ! If @var{r} is omitted, a value of 0 is assumed. ! ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{@var{rr} * @var{b} != @var{r}}. If @var{alt} is @code{">"}, the ! one-sided alternative @code{@var{rr} * @var{b} > @var{r}} is used. ! Similarly for @var{"<"}, the one-sided alternative @code{@var{rr} * ! @var{b} < @var{r}} is used. The default is the two-sided case. ! ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! chisquare_test_independence -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{chisq}, @var{df}] =} chisquare_test_independence (@var{x}) ! Perform a chi-square test for independence based on the contingency ! table @var{x}. Under the null hypothesis of independence, ! @var{chisq} approximately has a chi-square distribution with ! @var{df} degrees of freedom. ! The p-value (1 minus the CDF of this distribution at chisq) of the ! test is returned in @var{pval}. ! If no output argument is given, the p-value is displayed. @end deftypefn ! hotelling_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{tsq}] =} hotelling_test (@var{x}, @var{m}) ! For a sample @var{x} from a multivariate normal distribution with unknown ! mean and covariance matrix, test the null hypothesis that @code{mean ! (@var{x}) == @var{m}}. ! ! Hotelling's @math{T^2} is returned in @var{tsq}. Under the null, ! @math{(n-p) T^2 / (p(n-1))} has an F distribution with @math{p} and ! @math{n-p} degrees of freedom, where @math{n} and @math{p} are the ! numbers of samples and variables, respectively. ! ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! prop_test_2 -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{z}] =} prop_test_2 (@var{x1}, @var{n1}, @var{x2}, @var{n2}, @var{alt}) ! If @var{x1} and @var{n1} are the counts of successes and trials in ! one sample, and @var{x2} and @var{n2} those in a second one, test the ! null hypothesis that the success probabilities @var{p1} and @var{p2} ! are the same. Under the null, the test statistic @var{z} ! approximately follows a standard normal distribution. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @var{p1} != @var{p2}. If @var{alt} is @code{">"}, the one-sided ! alternative @var{p1} > @var{p2} is used. Similarly for @code{"<"}, ! the one-sided alternative @var{p1} < @var{p2} is used. ! The default is the two-sided case. ! ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! bartlett_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{chisq}, @var{df}] =} bartlett_test (@var{x1}, @dots{}) ! Perform a Bartlett test for the homogeneity of variances in the data ! vectors @var{x1}, @var{x2}, @dots{}, @var{xk}, where @var{k} > 1. ! ! Under the null of equal variances, the test statistic @var{chisq} ! approximately follows a chi-square distribution with @var{df} degrees of ! freedom. ! ! The p-value (1 minus the CDF of this distribution at @var{chisq}) is ! returned in @var{pval}. ! ! If no output argument is given, the p-value is displayed. @end deftypefn ! z_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{z}] =} z_test (@var{x}, @var{m}, @var{v}, @var{alt}) ! Perform a Z-test of the null hypothesis @code{mean (@var{x}) == ! @var{m}} for a sample @var{x} from a normal distribution with unknown ! mean and known variance @var{v}. Under the null, the test statistic ! @var{z} follows a standard normal distribution. ! ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{mean (@var{x}) != @var{m}}. If @var{alt} is @code{">"}, the ! one-sided alternative @code{mean (@var{x}) > @var{m}} is considered. ! Similarly for @code{"<"}, the one-sided alternative @code{mean ! (@var{x}) < @var{m}} is considered. The default is the two-sided ! case. ! ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed ! along with some information. @end deftypefn ! mcnemar_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{chisq}, @var{df}] =} mcnemar_test (@var{x}) ! For a square contingency table @var{x} of data cross-classified on ! the row and column variables, McNemar's test can be used for testing ! the null hypothesis of symmetry of the classification probabilities. ! ! Under the null, @var{chisq} is approximately distributed as chisquare ! with @var{df} degrees of freedom. ! ! The p-value (1 minus the CDF of this distribution at @var{chisq}) is ! returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! kruskal_wallis_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{k}, @var{df}] =} kruskal_wallis_test (@var{x1}, @dots{}) ! Perform a Kruskal-Wallis one-factor "analysis of variance". ! ! Suppose a variable is observed for @var{k} > 1 different groups, and ! let @var{x1}, @dots{}, @var{xk} be the corresponding data vectors. ! Under the null hypothesis that the ranks in the pooled sample are not ! affected by the group memberships, the test statistic @var{k} is ! approximately chi-square with @var{df} = @var{k} - 1 degrees of ! freedom. ! If the data contains ties (some value appears more than once) ! @var{k} is divided by ! 1 - @var{sumTies} / ( @var{n}^3 - @var{n} ) ! where @var{sumTies} is the sum of @var{t}^2 - @var{t} over each group ! of ties where @var{t} is the number of ties in the group and @var{n} ! is the total number of values in the input data. For more info on ! this adjustment see "Use of Ranks in One-Criterion Variance Analysis" ! in Journal of the American Statistical Association, Vol. 47, ! No. 260 (Dec 1952) by William H. Kruskal and W. Allen Wallis. ! The p-value (1 minus the CDF of this distribution at @var{k}) is ! returned in @var{pval}. ! If no output argument is given, the p-value is displayed. ! @end deftypefn ! var_test ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{f}, @var{df_num}, @var{df_den}] =} var_test (@var{x}, @var{y}, @var{alt}) ! For two samples @var{x} and @var{y} from normal distributions with ! unknown means and unknown variances, perform an F-test of the null ! hypothesis of equal variances. Under the null, the test statistic ! @var{f} follows an F-distribution with @var{df_num} and @var{df_den} ! degrees of freedom. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{var (@var{x}) != var (@var{y})}. If @var{alt} is @code{">"}, ! the one-sided alternative @code{var (@var{x}) > var (@var{y})} is ! used. Similarly for "<", the one-sided alternative @code{var ! (@var{x}) > var (@var{y})} is used. The default is the two-sided ! case. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value of the test is displayed. ! @end deftypefn ! kolmogorov_smirnov_test_2 ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{ks}, @var{d}] =} kolmogorov_smirnov_test_2 (@var{x}, @var{y}, @var{alt}) ! Perform a 2-sample Kolmogorov-Smirnov test of the null hypothesis ! that the samples @var{x} and @var{y} come from the same (continuous) ! distribution. I.e., if F and G are the CDFs corresponding to the ! @var{x} and @var{y} samples, respectively, then the null is that F == ! G. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative F ! != G. In this case, the test statistic @var{ks} follows a two-sided ! Kolmogorov-Smirnov distribution. If @var{alt} is @code{">"}, the ! one-sided alternative F > G is considered. Similarly for @code{"<"}, ! the one-sided alternative F < G is considered. In this case, the ! test statistic @var{ks} has a one-sided Kolmogorov-Smirnov ! distribution. The default is the two-sided case. ! The p-value of the test is returned in @var{pval}. ! The third returned value, @var{d}, is the test statistic, the maximum ! vertical distance between the two cumulative distribution functions. ! If no output argument is given, the p-value is displayed. @end deftypefn ! manova -*- texinfo -*- ! @deftypefn {Function File} {} manova (@var{y}, @var{g}) ! Perform a one-way multivariate analysis of variance (MANOVA). The ! goal is to test whether the p-dimensional population means of data ! taken from @var{k} different groups are all equal. All data are ! assumed drawn independently from p-dimensional normal distributions ! with the same covariance matrix. ! ! The data matrix is given by @var{y}. As usual, rows are observations ! and columns are variables. The vector @var{g} specifies the ! corresponding group labels (e.g., numbers from 1 to @var{k}). ! ! The LR test statistic (Wilks' Lambda) and approximate p-values are ! computed and displayed. @end deftypefn ! sign_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{b}, @var{n}] =} sign_test (@var{x}, @var{y}, @var{alt}) ! For two matched-pair samples @var{x} and @var{y}, perform a sign test ! of the null hypothesis PROB (@var{x} > @var{y}) == PROB (@var{x} < ! @var{y}) == 1/2. Under the null, the test statistic @var{b} roughly ! follows a binomial distribution with parameters @code{@var{n} = sum ! (@var{x} != @var{y})} and @var{p} = 1/2. ! With the optional argument @code{alt}, the alternative of interest ! can be selected. If @var{alt} is @code{"!="} or @code{"<>"}, the ! null hypothesis is tested against the two-sided alternative PROB ! (@var{x} < @var{y}) != 1/2. If @var{alt} is @code{">"}, the ! one-sided alternative PROB (@var{x} > @var{y}) > 1/2 ("x is ! stochastically greater than y") is considered. Similarly for ! @code{"<"}, the one-sided alternative PROB (@var{x} > @var{y}) < 1/2 ! ("x is stochastically less than y") is considered. The default is ! the two-sided case. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! anova -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{f}, @var{df_b}, @var{df_w}] =} anova (@var{y}, @var{g}) ! Perform a one-way analysis of variance (ANOVA). The goal is to test ! whether the population means of data taken from @var{k} different ! groups are all equal. ! ! Data may be given in a single vector @var{y} with groups specified by ! a corresponding vector of group labels @var{g} (e.g., numbers from 1 ! to @var{k}). This is the general form which does not impose any ! restriction on the number of data in each group or the group labels. ! ! If @var{y} is a matrix and @var{g} is omitted, each column of @var{y} ! is treated as a group. This form is only appropriate for balanced ! ANOVA in which the numbers of samples from each group are all equal. ! ! Under the null of constant means, the statistic @var{f} follows an F ! distribution with @var{df_b} and @var{df_w} degrees of freedom. ! ! The p-value (1 minus the CDF of this distribution at @var{f}) is ! returned in @var{pval}. ! ! If no output argument is given, the standard one-way ANOVA table is ! printed. @end deftypefn ! chisquare_test_homogeneity -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{chisq}, @var{df}] =} chisquare_test_homogeneity (@var{x}, @var{y}, @var{c}) ! Given two samples @var{x} and @var{y}, perform a chisquare test for ! homogeneity of the null hypothesis that @var{x} and @var{y} come from ! the same distribution, based on the partition induced by the ! (strictly increasing) entries of @var{c}. ! ! For large samples, the test statistic @var{chisq} approximately follows a ! chisquare distribution with @var{df} = @code{length (@var{c})} ! degrees of freedom. ! ! The p-value (1 minus the CDF of this distribution at @var{chisq}) is ! returned in @var{pval}. ! If no output argument is given, the p-value is displayed. ! @end deftypefn ! t_test_2 ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{t}, @var{df}] =} t_test_2 (@var{x}, @var{y}, @var{alt}) ! For two samples x and y from normal distributions with unknown means ! and unknown equal variances, perform a two-sample t-test of the null ! hypothesis of equal means. Under the null, the test statistic ! @var{t} follows a Student distribution with @var{df} degrees of ! freedom. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{mean (@var{x}) != mean (@var{y})}. If @var{alt} is @code{">"}, ! the one-sided alternative @code{mean (@var{x}) > mean (@var{y})} is ! used. Similarly for @code{"<"}, the one-sided alternative @code{mean ! (@var{x}) < mean (@var{y})} is used. The default is the two-sided ! case. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value of the test is displayed. ! @end deftypefn ! run_test ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{chisq}] =} run_test (@var{x}) ! Perform a chi-square test with 6 degrees of freedom based on the ! upward runs in the columns of @var{x}. Can be used to test whether ! @var{x} contains independent data. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value is displayed. ! @end deftypefn ! stdnormal_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} stdnormal_pdf (@var{x}) ! For each element of @var{x}, compute the probability density function ! (PDF) of the standard normal distribution at @var{x}. @end deftypefn ! betacdf -*- texinfo -*- ! @deftypefn {Function File} {} betacdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, returns the CDF at @var{x} of the beta ! distribution with parameters @var{a} and @var{b}, i.e., ! PROB (beta (@var{a}, @var{b}) <= @var{x}). @end deftypefn ! poissinv -*- texinfo -*- ! @deftypefn {Function File} {} poissinv (@var{x}, @var{lambda}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the Poisson distribution with parameter ! @var{lambda}. @end deftypefn ! nbinpdf -*- texinfo -*- ! @deftypefn {Function File} {} nbinpdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the Pascal (negative binomial) distribution with ! parameters @var{n} and @var{p}. ! The number of failures in a Bernoulli experiment with success ! probability @var{p} before the @var{n}-th success follows this ! distribution. ! @end deftypefn ! trnd ! -*- texinfo -*- ! @deftypefn {Function File} {} trnd (@var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} trnd (@var{n}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the t ! (Student) distribution with @var{n} degrees of freedom. @var{n} must ! be a scalar or of size @var{r} by @var{c}. Or if @var{sz} is a ! vector create a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{n}. @end deftypefn ! binocdf -*- texinfo -*- ! @deftypefn {Function File} {} binocdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the CDF at @var{x} of the ! binomial distribution with parameters @var{n} and @var{p}. @end deftypefn ! laplace_rnd -*- texinfo -*- ! @deftypefn {Function File} {} laplace_rnd (@var{r}, @var{c}) ! @deftypefnx {Function File} {} laplace_rnd (@var{sz}); ! Return an @var{r} by @var{c} matrix of random numbers from the ! Laplace distribution. Or if @var{sz} is a vector, create a matrix of ! @var{sz}. @end deftypefn ! expinv -*- texinfo -*- ! @deftypefn {Function File} {} expinv (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the exponential distribution with mean ! @var{lambda}. @end deftypefn ! gaminv -*- texinfo -*- ! @deftypefn {Function File} {} gaminv (@var{x}, @var{a}, @var{b}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the Gamma distribution with parameters @var{a} ! and @var{b}. ! @seealso{gamma, gammaln, gammainc, gampdf, gamcdf, gamrnd} @end deftypefn ! hygepdf -*- texinfo -*- ! @deftypefn {Function File} {} hygepdf (@var{x}, @var{t}, @var{m}, @var{n}) ! Compute the probability density function (PDF) at @var{x} of the ! hypergeometric distribution with parameters @var{t}, @var{m}, and ! @var{n}. This is the probability of obtaining @var{x} marked items ! when randomly drawing a sample of size @var{n} without replacement ! from a population of total size @var{t} containing @var{m} marked items. ! The arguments must be of common size or scalar. ! @end deftypefn ! chi2cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} chi2cdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the chisquare distribution with @var{n} ! degrees of freedom. @end deftypefn ! empirical_inv -*- texinfo -*- ! @deftypefn {Function File} {} empirical_inv (@var{x}, @var{data}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the empirical distribution obtained from the ! univariate sample @var{data}. @end deftypefn ! nbinrnd -*- texinfo -*- ! @deftypefn {Function File} {} nbinrnd (@var{n}, @var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} nbinrnd (@var{n}, @var{p}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the Pascal ! (negative binomial) distribution with parameters @var{n} and @var{p}. ! Both @var{n} and @var{p} must be scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{n} and @var{p}. Or if @var{sz} is a vector, ! create a matrix of size @var{sz}. @end deftypefn ! unifcdf -*- texinfo -*- ! @deftypefn {Function File} {} unifcdf (@var{x}, @var{a}, @var{b}) ! Return the CDF at @var{x} of the uniform distribution on [@var{a}, ! @var{b}], i.e., PROB (uniform (@var{a}, @var{b}) <= x). ! Default values are @var{a} = 0, @var{b} = 1. @end deftypefn ! binornd -*- texinfo -*- ! @deftypefn {Function File} {} binornd (@var{n}, @var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} binornd (@var{n}, @var{p}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the binomial distribution with parameters @var{n} ! and @var{p}. Both @var{n} and @var{p} must be scalar or of size ! @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{n} and @var{p}. @end deftypefn ! unifpdf -*- texinfo -*- ! @deftypefn {Function File} {} unifpdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the PDF at @var{x} of the uniform ! distribution on [@var{a}, @var{b}]. ! Default values are @var{a} = 0, @var{b} = 1. @end deftypefn ! hygeinv -*- texinfo -*- ! @deftypefn {Function File} {} hygeinv (@var{x}, @var{t}, @var{m}, @var{n}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! hypergeometric distribution with parameters @var{t}, @var{m}, and ! @var{n}. ! ! The parameters @var{t}, @var{m}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. @end deftypefn ! chi2pdf -*- texinfo -*- ! @deftypefn {Function File} {} chisquare_pdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the chisquare distribution with @var{n} degrees ! of freedom. @end deftypefn ! hygecdf -*- texinfo -*- ! @deftypefn {Function File} {} hygecdf (@var{x}, @var{t}, @var{m}, @var{n}) ! Compute the cumulative distribution function (CDF) at @var{x} of the ! hypergeometric distribution with parameters @var{t}, @var{m}, and ! @var{n}. This is the probability of obtaining not more than @var{x} ! marked items when randomly drawing a sample of size @var{n} without ! replacement from a population of total size @var{t} containing ! @var{m} marked items. ! The parameters @var{t}, @var{m}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. @end deftypefn ! tpdf -*- texinfo -*- ! @deftypefn {Function File} {} tpdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the @var{t} (Student) distribution with @var{n} ! degrees of freedom. @end deftypefn ! unifinv -*- texinfo -*- ! @deftypefn {Function File} {} unifinv (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the uniform distribution on [@var{a}, @var{b}]. ! Default values are @var{a} = 0, @var{b} = 1. @end deftypefn ! cauchy_pdf -*- texinfo -*- ! @deftypefn {Function File} {} cauchy_pdf (@var{x}, @var{lambda}, @var{sigma}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the Cauchy distribution with location parameter ! @var{lambda} and scale parameter @var{sigma} > 0. Default values are ! @var{lambda} = 0, @var{sigma} = 1. ! @end deftypefn ! unidcdf ! -*- texinfo -*- ! @deftypefn {Function File} {} unidcdf (@var{x}, @var{v}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of a univariate discrete distribution which ! assumes the values in @var{v} with equal probability. ! @end deftypefn ! empirical_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} empirical_cdf (@var{x}, @var{data}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the empirical distribution obtained from ! the univariate sample @var{data}. ! @end deftypefn ! normrnd ! -*- texinfo -*- ! @deftypefn {Function File} {} normrnd (@var{m}, @var{s}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} normrnd (@var{m}, @var{s}, @var{sz}) ! Return an @var{r} by @var{c} or @code{size (@var{sz})} matrix of ! random samples from the normal distribution with parameters mean @var{m} ! and standard deviation @var{s}. Both @var{m} and @var{s} must be scalar ! or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{m} and @var{s}. ! @end deftypefn ! exppdf ! -*- texinfo -*- ! @deftypefn {Function File} {} exppdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the probability density function ! (PDF) of the exponential distribution with mean @var{lambda}. ! @end deftypefn ! betapdf ! -*- texinfo -*- ! @deftypefn {Function File} {} betapdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, returns the PDF at @var{x} of the beta ! distribution with parameters @var{a} and @var{b}. @end deftypefn ! laplace_cdf -*- texinfo -*- ! @deftypefn {Function File} {} laplace_cdf (@var{x}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Laplace distribution. @end deftypefn ! logistic_pdf -*- texinfo -*- ! @deftypefn {Function File} {} logistic_pdf (@var{x}) ! For each component of @var{x}, compute the PDF at @var{x} of the ! logistic distribution. @end deftypefn ! logninv -*- texinfo -*- ! @deftypefn {Function File} {} logninv (@var{x}, @var{mu}, @var{sigma}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the lognormal distribution with parameters @var{mu} ! and @var{sigma}. If a random variable follows this distribution, its ! logarithm is normally distributed with mean @code{log (@var{mu})} and ! variance @var{sigma}. ! Default values are @var{mu} = 1, @var{sigma} = 1. ! @end deftypefn ! tcdf ! -*- texinfo -*- ! @deftypefn {Function File} {} tcdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the t (Student) distribution with ! @var{n} degrees of freedom, i.e., PROB (t(@var{n}) <= @var{x}). @end deftypefn ! lognrnd -*- texinfo -*- ! @deftypefn {Function File} {} lognrnd (@var{mu}, @var{sigma}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} lognrnd (@var{mu}, @var{sigma}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! lognormal distribution with parameters @var{mu} and @var{sigma}. Both ! @var{mu} and @var{sigma} must be scalar or of size @var{r} by @var{c}. ! Or if @var{sz} is a vector, create a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{mu} and @var{sigma}. ! @end deftypefn ! geornd ! -*- texinfo -*- ! @deftypefn {Function File} {} geornd (@var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} geornd (@var{p}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! geometric distribution with parameter @var{p}, which must be a scalar ! or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are given create a matrix with @var{r} rows and ! @var{c} columns. Or if @var{sz} is a vector, create a matrix of size ! @var{sz}. @end deftypefn ! normcdf -*- texinfo -*- ! @deftypefn {Function File} {} normcdf (@var{x}, @var{m}, @var{s}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the normal distribution with mean ! @var{m} and standard deviation @var{s}. ! Default values are @var{m} = 0, @var{s} = 1. @end deftypefn ! wblcdf -*- texinfo -*- ! @deftypefn {Function File} {} wblcdf (@var{x}, @var{scale}, @var{shape}) ! Compute the cumulative distribution function (CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}, which is @iftex @tex ! $$ 1 - \exp(-(x/shape)^{scale}) $$ ! for $x\geq 0$. @end tex @end iftex @ifnottex @example ! 1 - exp(-(x/shape)^scale) @end example - for @var{x} >= 0. @end ifnottex @end deftypefn ! fpdf -*- texinfo -*- ! @deftypefn {Function File} {} fpdf (@var{x}, @var{m}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the F distribution with @var{m} and @var{n} ! degrees of freedom. @end deftypefn ! norminv -*- texinfo -*- ! @deftypefn {Function File} {} norminv (@var{x}, @var{m}, @var{s}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the normal distribution with mean @var{m} and ! standard deviation @var{s}. ! Default values are @var{m} = 0, @var{s} = 1. ! @end deftypefn ! chi2rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} chi2rnd (@var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} chi2rnd (@var{n}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the chisquare distribution with @var{n} degrees ! of freedom. @var{n} must be a scalar or of size @var{r} by @var{c}. - If @var{r} and @var{c} are omitted, the size of the result matrix is - the size of @var{n}. - @end deftypefn - laplace_inv - -*- texinfo -*- - @deftypefn {Function File} {} laplace_inv (@var{x}) - For each element of @var{x}, compute the quantile (the inverse of the - CDF) at @var{x} of the Laplace distribution. - @end deftypefn - betainv - -*- texinfo -*- - @deftypefn {Function File} {} betainv (@var{x}, @var{a}, @var{b}) - For each component of @var{x}, compute the quantile (the inverse of - the CDF) at @var{x} of the Beta distribution with parameters @var{a} - and @var{b}. - @end deftypefn - stdnormal_rnd - -*- texinfo -*- - @deftypefn {Function File} {} stdnormal_rnd (@var{r}, @var{c}) - @deftypefnx {Function File} {} stdnormal_rnd (@var{sz}) - Return an @var{r} by @var{c} or @code{size (@var{sz})} matrix of - random numbers from the standard normal distribution. - @end deftypefn - kolmogorov_smirnov_cdf - -*- texinfo -*- - @deftypefn {Function File} {} kolmogorov_smirnov_cdf (@var{x}, @var{tol}) - Return the CDF at @var{x} of the Kolmogorov-Smirnov distribution, @iftex @tex ! $$ Q(x) = \sum_{k=-\infty}^\infty (-1)^k \exp(-2 k^2 x^2) $$ @end tex @end iftex ! @ifinfo @example ! Inf ! Q(x) = SUM (-1)^k exp(-2 k^2 x^2) ! k = -Inf @end example ! @end ifinfo ! @noindent ! for @var{x} > 0. ! The optional parameter @var{tol} specifies the precision up to which ! the series should be evaluated; the default is @var{tol} = @code{eps}. ! @end deftypefn ! poisscdf ! -*- texinfo -*- ! @deftypefn {Function File} {} poisscdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Poisson distribution with parameter ! lambda. ! @end deftypefn ! gamcdf ! -*- texinfo -*- ! @deftypefn {Function File} {} gamcdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Gamma distribution with parameters ! @var{a} and @var{b}. ! @seealso{gamma, gammaln, gammainc, gampdf, gaminv, gamrnd} ! @end deftypefn ! cauchy_inv ! -*- texinfo -*- ! @deftypefn {Function File} {} cauchy_inv (@var{x}, @var{lambda}, @var{sigma}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the Cauchy distribution with location parameter ! @var{lambda} and scale parameter @var{sigma}. Default values are ! @var{lambda} = 0, @var{sigma} = 1. ! @end deftypefn ! logistic_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} logistic_cdf (@var{x}) ! For each component of @var{x}, compute the CDF at @var{x} of the ! logistic distribution. ! @end deftypefn ! cauchy_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} cauchy_cdf (@var{x}, @var{lambda}, @var{sigma}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Cauchy distribution with location ! parameter @var{lambda} and scale parameter @var{sigma}. Default ! values are @var{lambda} = 0, @var{sigma} = 1. @end deftypefn ! expcdf -*- texinfo -*- ! @deftypefn {Function File} {} expcdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the exponential distribution with ! mean @var{lambda}. ! The arguments can be of common size or scalar. @end deftypefn ! normpdf -*- texinfo -*- ! @deftypefn {Function File} {} normpdf (@var{x}, @var{m}, @var{s}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the normal distribution with mean @var{m} and ! standard deviation @var{s}. ! Default values are @var{m} = 0, @var{s} = 1. @end deftypefn ! geocdf -*- texinfo -*- ! @deftypefn {Function File} {} geocdf (@var{x}, @var{p}) ! For each element of @var{x}, compute the CDF at @var{x} of the ! geometric distribution with parameter @var{p}. @end deftypefn ! empirical_rnd -*- texinfo -*- ! @deftypefn {Function File} {} empirical_rnd (@var{n}, @var{data}) ! @deftypefnx {Function File} {} empirical_rnd (@var{data}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} empirical_rnd (@var{data}, @var{sz}) ! Generate a bootstrap sample of size @var{n} from the empirical ! distribution obtained from the univariate sample @var{data}. ! ! If @var{r} and @var{c} are given create a matrix with @var{r} rows and ! @var{c} columns. Or if @var{sz} is a vector, create a matrix of size ! @var{sz}. @end deftypefn ! wblpdf -*- texinfo -*- ! @deftypefn {Function File} {} wblpdf (@var{x}, @var{scale}, @var{shape}) ! Compute the probability density function (PDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape} which is given by ! @iftex @tex ! $$ scale \cdot shape^{-scale} x^{scale-1} \exp(-(x/shape)^{scale}) $$ @end tex @end iftex ! @ifnottex @example ! scale * shape^(-scale) * x^(scale-1) * exp(-(x/shape)^scale) @end example ! @end ifnottex ! @noindent ! for @var{x} > 0. @end deftypefn ! gampdf -*- texinfo -*- ! @deftypefn {Function File} {} gampdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, return the probability density function ! (PDF) at @var{x} of the Gamma distribution with parameters @var{a} ! and @var{b}. ! @seealso{gamma, gammaln, gammainc, gamcdf, gaminv, gamrnd} @end deftypefn ! frnd -*- texinfo -*- ! @deftypefn {Function File} {} frnd (@var{m}, @var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} frnd (@var{m}, @var{n}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the F ! distribution with @var{m} and @var{n} degrees of freedom. Both ! @var{m} and @var{n} must be scalar or of size @var{r} by @var{c}. ! If @var{sz} is a vector the random samples are in a matrix of ! size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{m} and @var{n}. @end deftypefn ! empirical_pdf -*- texinfo -*- ! @deftypefn {Function File} {} empirical_pdf (@var{x}, @var{data}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the empirical distribution obtained from the ! univariate sample @var{data}. @end deftypefn ! stdnormal_inv -*- texinfo -*- ! @deftypefn {Function File} {} stdnormal_inv (@var{x}) ! For each component of @var{x}, compute compute the quantile (the ! inverse of the CDF) at @var{x} of the standard normal distribution. ! @end deftypefn ! discrete_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} discrete_rnd (@var{n}, @var{v}, @var{p}) ! @deftypefnx {Function File} {} discrete_rnd (@var{v}, @var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} discrete_rnd (@var{v}, @var{p}, @var{sz}) ! Generate a row vector containing a random sample of size @var{n} from ! the univariate distribution which assumes the values in @var{v} with ! probabilities @var{p}. @var{n} must be a scalar. ! If @var{r} and @var{c} are given create a matrix with @var{r} rows and ! @var{c} columns. Or if @var{sz} is a vector, create a matrix of size ! @var{sz}. ! @end deftypefn ! tinv ! -*- texinfo -*- ! @deftypefn {Function File} {} tinv (@var{x}, @var{n}) ! For each probability value @var{x}, compute the the inverse of the ! cumulative distribution function (CDF) of the t (Student) ! distribution with degrees of freedom @var{n}. This function is ! analagous to looking in a table for the t-value of a single-tailed ! distribution. @end deftypefn ! discrete_cdf -*- texinfo -*- ! @deftypefn {Function File} {} discrete_cdf (@var{x}, @var{v}, @var{p}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of a univariate discrete distribution which ! assumes the values in @var{v} with probabilities @var{p}. @end deftypefn ! cauchy_rnd -*- texinfo -*- ! @deftypefn {Function File} {} cauchy_rnd (@var{lambda}, @var{sigma}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} cauchy_rnd (@var{lambda}, @var{sigma}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the Cauchy distribution with parameters @var{lambda} ! and @var{sigma} which must both be scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{lambda} and @var{sigma}. @end deftypefn ! geoinv -*- texinfo -*- ! @deftypefn {Function File} {} geoinv (@var{x}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! geometric distribution with parameter @var{p}. @end deftypefn ! wblrnd -*- texinfo -*- ! @deftypefn {Function File} {} wblrnd (@var{scale}, @var{shape}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} wblrnd (@var{scale}, @var{shape}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! Weibull distribution with parameters @var{scale} and @var{shape} ! which must be scalar or of size @var{r} by @var{c}. Or if @var{sz} ! is a vector return a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{alpha} and @var{sigma}. @end deftypefn ! betarnd -*- texinfo -*- ! @deftypefn {Function File} {} betarnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} betarnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or @code{size (@var{sz})} matrix of ! random samples from the Beta distribution with parameters @var{a} and ! @var{b}. Both @var{a} and @var{b} must be scalar or of size @var{r} ! by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. @end deftypefn ! lognpdf -*- texinfo -*- ! @deftypefn {Function File} {} lognpdf (@var{x}, @var{mu}, @var{sigma}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the lognormal distribution with parameters ! @var{mu} and @var{sigma}. If a random variable follows this distribution, ! its logarithm is normally distributed with mean @var{mu} ! and standard deviation @var{sigma}. ! Default values are @var{mu} = 1, @var{sigma} = 1. @end deftypefn ! binopdf -*- texinfo -*- ! @deftypefn {Function File} {} binopdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the binomial distribution with parameters @var{n} ! and @var{p}. @end deftypefn ! logistic_inv -*- texinfo -*- ! @deftypefn {Function File} {} logistic_inv (@var{x}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the logistic distribution. @end deftypefn ! discrete_pdf -*- texinfo -*- ! @deftypefn {Function File} {} discrete_pdf (@var{x}, @var{v}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of a univariate discrete distribution which assumes ! the values in @var{v} with probabilities @var{p}. @end deftypefn ! stdnormal_cdf -*- texinfo -*- ! @deftypefn {Function File} {} stdnormal_cdf (@var{x}) ! For each component of @var{x}, compute the CDF of the standard normal ! distribution at @var{x}. @end deftypefn ! gamrnd -*- texinfo -*- ! @deftypefn {Function File} {} gamrnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} gamrnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the Gamma distribution with parameters @var{a} ! and @var{b}. Both @var{a} and @var{b} must be scalar or of size ! @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. ! @seealso{gamma, gammaln, gammainc, gampdf, gamcdf, gaminv} @end deftypefn ! poisspdf -*- texinfo -*- ! @deftypefn {Function File} {} poisspdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the poisson distribution with parameter @var{lambda}. @end deftypefn ! exprnd -*- texinfo -*- ! @deftypefn {Function File} {} exprnd (@var{lambda}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} exprnd (@var{lambda}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! exponential distribution with mean @var{lambda}, which must be a ! scalar or of size @var{r} by @var{c}. Or if @var{sz} is a vector, ! create a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{lambda}. ! @end deftypefn ! nbincdf ! -*- texinfo -*- ! @deftypefn {Function File} {} nbincdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the CDF at x of the Pascal ! (negative binomial) distribution with parameters @var{n} and @var{p}. - The number of failures in a Bernoulli experiment with success - probability @var{p} before the @var{n}-th success follows this - distribution. @end deftypefn ! logistic_rnd -*- texinfo -*- ! @deftypefn {Function File} {} logistic_rnd (@var{r}, @var{c}) ! @deftypefnx {Function File} {} logistic_rnd (@var{sz}) ! Return an @var{r} by @var{c} matrix of random numbers from the ! logistic distribution. Or if @var{sz} is a vector, create a matrix of ! @var{sz}. @end deftypefn ! unidpdf -*- texinfo -*- ! @deftypefn {Function File} {} unidpdf (@var{x}, @var{v}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of a univariate discrete distribution which assumes ! the values in @var{v} with equal probability. @end deftypefn ! unidrnd -*- texinfo -*- ! @deftypefn {Function File} {} unidrnd (@var{mx}); ! @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{v}); ! @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{m}, @var{n}, @dots{}); ! Return random values from discrete uniform distribution, with maximum ! value(s) given by the integer @var{mx}, which may be a scalar or ! multidimensional array. ! If @var{mx} is a scalar, the size of the result is specified by ! the vector @var{v}, or by the optional arguments @var{m}, @var{n}, ! @dots{}. Otherwise, the size of the result is the same as the size ! of @var{mx}. @end deftypefn ! wblinv -*- texinfo -*- ! @deftypefn {Function File} {} wblinv (@var{x}, @var{scale}, @var{shape}) ! Compute the quantile (the inverse of the CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}. @end deftypefn ! fcdf -*- texinfo -*- ! @deftypefn {Function File} {} fcdf (@var{x}, @var{m}, @var{n}) ! For each element of @var{x}, compute the CDF at @var{x} of the F ! distribution with @var{m} and @var{n} degrees of freedom, i.e., ! PROB (F (@var{m}, @var{n}) <= @var{x}). @end deftypefn ! binoinv -*- texinfo -*- ! @deftypefn {Function File} {} binoinv (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! binomial distribution with parameters @var{n} and @var{p}. @end deftypefn ! chi2inv -*- texinfo -*- ! @deftypefn {Function File} {} chi2inv (@var{x}, @var{n}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the chisquare distribution with @var{n} degrees of ! freedom. @end deftypefn ! geopdf -*- texinfo -*- ! @deftypefn {Function File} {} geopdf (@var{x}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the geometric distribution with parameter @var{p}. @end deftypefn ! logncdf -*- texinfo -*- ! @deftypefn {Function File} {} logncdf (@var{x}, @var{mu}, @var{sigma}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the lognormal distribution with ! parameters @var{mu} and @var{sigma}. If a random variable follows this ! distribution, its logarithm is normally distributed with mean ! @var{mu} and standard deviation @var{sigma}. ! Default values are @var{mu} = 1, @var{sigma} = 1. ! @end deftypefn ! unifrnd ! -*- texinfo -*- ! @deftypefn {Function File} {} unifrnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} unifrnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the uniform distribution on [@var{a}, @var{b}]. ! Both @var{a} and @var{b} must be scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. @end deftypefn ! wienrnd -*- texinfo -*- ! @deftypefn {Function File} {} wienrnd (@var{t}, @var{d}, @var{n}) ! Return a simulated realization of the @var{d}-dimensional Wiener Process ! on the interval [0, @var{t}]. If @var{d} is omitted, @var{d} = 1 is ! used. The first column of the return matrix contains time, the ! remaining columns contain the Wiener process. ! The optional parameter @var{n} gives the number of summands used for ! simulating the process over an interval of length 1. If @var{n} is ! omitted, @var{n} = 1000 is used. @end deftypefn ! discrete_inv -*- texinfo -*- ! @deftypefn {Function File} {} discrete_inv (@var{x}, @var{v}, @var{p}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the univariate distribution which assumes the ! values in @var{v} with probabilities @var{p}. @end deftypefn ! poissrnd -*- texinfo -*- ! @deftypefn {Function File} {} poissrnd (@var{lambda}, @var{r}, @var{c}) ! Return an @var{r} by @var{c} matrix of random samples from the ! Poisson distribution with parameter @var{lambda}, which must be a ! scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{lambda}. @end deftypefn ! finv -*- texinfo -*- ! @deftypefn {Function File} {} finv (@var{x}, @var{m}, @var{n}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the F distribution with parameters @var{m} and ! @var{n}. @end deftypefn ! hygernd ! -*- texinfo -*- ! @deftypefn {Function File} {} hygernd (@var{t}, @var{m}, @var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} hygernd (@var{t}, @var{m}, @var{n}, @var{sz}) ! @deftypefnx {Function File} {} hygernd (@var{t}, @var{m}, @var{n}) ! Return an @var{r} by @var{c} matrix of random samples from the ! hypergeometric distribution with parameters @var{t}, @var{m}, ! and @var{n}. ! ! The parameters @var{t}, @var{m}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. ! ! The parameter @var{sz} must be scalar or a vector of matrix ! dimensions. If @var{sz} is scalar, then a @var{sz} by @var{sz} ! matrix of random samples is generated. ! @end deftypefn ! nbininv ! -*- texinfo -*- ! @deftypefn {Function File} {} nbininv (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! Pascal (negative binomial) distribution with parameters @var{n} and ! @var{p}. ! ! The number of failures in a Bernoulli experiment with success ! probability @var{p} before the @var{n}-th success follows this ! distribution. ! @end deftypefn ! unidinv -*- texinfo -*- ! @deftypefn {Function File} {} unidinv (@var{x}, @var{v}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the univariate discrete distribution which assumes the ! values in @var{v} with equal probability @end deftypefn ! laplace_pdf -*- texinfo -*- ! @deftypefn {Function File} {} laplace_pdf (@var{x}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the Laplace distribution. @end deftypefn ! logistic_regression -*- texinfo -*- ! @deftypefn {Function File} {[@var{theta}, @var{beta}, @var{dev}, @var{dl}, @var{d2l}, @var{p}] =} logistic_regression (@var{y}, @var{x}, @var{print}, @var{theta}, @var{beta}) ! Perform ordinal logistic regression. ! ! Suppose @var{y} takes values in @var{k} ordered categories, and let ! @code{gamma_i (@var{x})} be the cumulative probability that @var{y} ! falls in one of the first @var{i} categories given the covariate ! @var{x}. Then @example ! [theta, beta] = logistic_regression (y, x) @end example @noindent ! fits the model ! ! @example ! logit (gamma_i (x)) = theta_i - beta' * x, i = 1...k-1 ! @end example ! ! The number of ordinal categories, @var{k}, is taken to be the number ! of distinct values of @code{round (@var{y})}. If @var{k} equals 2, ! @var{y} is binary and the model is ordinary logistic regression. The ! matrix @var{x} is assumed to have full column rank. ! ! Given @var{y} only, @code{theta = logistic_regression (y)} ! fits the model with baseline logit odds only. ! The full form is @example ! [theta, beta, dev, dl, d2l, gamma] ! = logistic_regression (y, x, print, theta, beta) @end example ! @noindent ! in which all output arguments and all input arguments except @var{y} ! are optional. ! ! Setting @var{print} to 1 requests summary information about the fitted ! model to be displayed. Setting @var{print} to 2 requests information ! about convergence at each iteration. Other values request no ! information to be displayed. The input arguments @var{theta} and ! @var{beta} give initial estimates for @var{theta} and @var{beta}. ! ! The returned value @var{dev} holds minus twice the log-likelihood. ! The returned values @var{dl} and @var{d2l} are the vector of first ! and the matrix of second derivatives of the log-likelihood with ! respect to @var{theta} and @var{beta}. ! @var{p} holds estimates for the conditional distribution of @var{y} ! given @var{x}. ! @end deftypefn ! logistic_regression_derivatives ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{dl}, @var{d2l}] =} logistic_regression_derivatives (@var{x}, @var{z}, @var{z1}, @var{g}, @var{g1}, @var{p}) ! Called by logistic_regression. Calculates derivates of the ! log-likelihood for ordinal logistic regression model. ! @end deftypefn ! logistic_regression_likelihood ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{g}, @var{g1}, @var{p}, @var{dev}] =} logistic_regression_likelihood (@var{y}, @var{x}, @var{beta}, @var{z}, @var{z1}) ! Calculates likelihood for the ordinal logistic regression model. ! Called by logistic_regression. @end deftypefn ! logit -*- texinfo -*- ! @deftypefn {Function File} {} logit (@var{p}) ! For each component of @var{p}, return the logit of @var{p} defined as ! @iftex ! @tex ! $$ ! {\rm logit}(p) = \log\Big({p \over 1-p}\Big) ! $$ ! @end tex ! @end iftex ! @ifnottex @example ! logit(@var{p}) = log (@var{p} / (1-@var{p})) @end example - @end ifnottex - @end deftypefn - cov - -*- texinfo -*- - @deftypefn {Function File} {} cov (@var{x}, @var{y}) - Compute covariance. - - If each row of @var{x} and @var{y} is an observation and each column is - a variable, the (@var{i}, @var{j})-th entry of - @code{cov (@var{x}, @var{y})} is the covariance between the @var{i}-th - variable in @var{x} and the @var{j}-th variable in @var{y}. - @iftex - @tex - $$ - \sigma_{ij} = {1 \over N-1} \sum_{i=1}^N (x_i - \bar{x})(y_i - \bar{y}) - $$ - where $\bar{x}$ and $\bar{y}$ are the mean values of $x$ and $y$. - @end tex - @end iftex - If called with one argument, compute @code{cov (@var{x}, @var{x})}. - @end deftypefn - iqr - -*- texinfo -*- - @deftypefn {Function File} {} iqr (@var{x}, @var{dim}) - If @var{x} is a vector, return the interquartile range, i.e., the - difference between the upper and lower quartile, of the input data. ! If @var{x} is a matrix, do the above for first non singleton ! dimension of @var{x}. If the option @var{dim} argument is given, ! then operate along this dimension. @end deftypefn ! studentize -*- texinfo -*- ! @deftypefn {Function File} {} studentize (@var{x}, @var{dim}) ! If @var{x} is a vector, subtract its mean and divide by its standard ! deviation. ! If @var{x} is a matrix, do the above along the first non-singleton ! dimension. If the optional argument @var{dim} is given then operate ! along this dimension. ! @end deftypefn ! moment ! -*- texinfo -*- ! @deftypefn {Function File} {} moment (@var{x}, @var{p}, @var{opt}, @var{dim}) ! If @var{x} is a vector, compute the @var{p}-th moment of @var{x}. ! If @var{x} is a matrix, return the row vector containing the ! @var{p}-th moment of each column. ! With the optional string opt, the kind of moment to be computed can ! be specified. If opt contains @code{"c"} or @code{"a"}, central ! and/or absolute moments are returned. For example, @example ! moment (x, 3, "ac") @end example @noindent ! computes the third central absolute moment of @var{x}. - If the optional argument @var{dim} is supplied, work along dimension - @var{dim}. - @end deftypefn - corrcoef - -*- texinfo -*- - @deftypefn {Function File} {} corrcoef (@var{x}, @var{y}) - Compute correlation. - - If each row of @var{x} and @var{y} is an observation and each column is - a variable, the (@var{i}, @var{j})-th entry of - @code{corrcoef (@var{x}, @var{y})} is the correlation between the - @var{i}-th variable in @var{x} and the @var{j}-th variable in @var{y}. - - @iftex - @tex - $$ - {\rm corrcoef}(x,y) = {{\rm cov}(x,y) \over {\rm std}(x) {\rm std}(y)} - $$ - @end tex - @end iftex - @ifnottex - @example - corrcoef(x,y) = cov(x,y)/(std(x)*std(y)) - @end example - @end ifnottex - - If called with one argument, compute @code{corrcoef (@var{x}, @var{x})}. - @end deftypefn - cor - -*- texinfo -*- - @deftypefn {Function File} {} cor (@var{x}, @var{y}) - Compute correlation. - - The (@var{i}, @var{j})-th entry of @code{cor (@var{x}, @var{y})} is - the correlation between the @var{i}-th variable in @var{x} and the - @var{j}-th variable in @var{y}. - - @iftex - @tex - $$ - {\rm corrcoef}(x,y) = {{\rm cov}(x,y) \over {\rm std}(x) {\rm std}(y)} - $$ - @end tex - @end iftex - @ifnottex @example ! corrcoef(x,y) = cov(x,y)/(std(x)*std(y)) @end example ! @end ifnottex ! ! For matrices, each row is an observation and each column a variable; ! vectors are always observations and may be row or column vectors. ! ! @code{cor (@var{x})} is equivalent to @code{cor (@var{x}, @var{x})}. ! Note that the @code{corrcoef} function does the same as @code{cor}. @end deftypefn ! values -*- texinfo -*- ! @deftypefn {Function File} {} values (@var{x}) ! Return the different values in a column vector, arranged in ascending ! order. ! ! As an example, @code{values([1, 2, 3, 1])} returns the vector ! @code{[1, 2, 3]}. @end deftypefn ! statistics -*- texinfo -*- ! @deftypefn {Function File} {} statistics (@var{x}) ! If @var{x} is a matrix, return a matrix with the minimum, first ! quartile, median, third quartile, maximum, mean, standard deviation, ! skewness and kurtosis of the columns of @var{x} as its rows. ! If @var{x} is a vector, treat it as a column vector. ! @end deftypefn ! mahalanobis ! -*- texinfo -*- ! @deftypefn {Function File} {} mahalanobis (@var{x}, @var{y}) ! Return the Mahalanobis' D-square distance between the multivariate ! samples @var{x} and @var{y}, which must have the same number of ! components (columns), but may have a different number of observations ! (rows). ! @end deftypefn ! kendall ! -*- texinfo -*- ! @deftypefn {Function File} {} kendall (@var{x}, @var{y}) ! Compute Kendall's @var{tau} for each of the variables specified by ! the input arguments. ! For matrices, each row is an observation and each column a variable; ! vectors are always observations and may be row or column vectors. ! @code{kendall (@var{x})} is equivalent to @code{kendall (@var{x}, ! @var{x})}. ! For two data vectors @var{x}, @var{y} of common length @var{n}, ! Kendall's @var{tau} is the correlation of the signs of all rank ! differences of @var{x} and @var{y}; i.e., if both @var{x} and ! @var{y} have distinct entries, then ! @iftex ! @tex ! $$ \tau = {1 \over n(n-1)} \sum_{i,j} {\rm sign}(q_i-q_j) {\rm sign}(r_i-r_j) $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! 1 ! tau = ------- SUM sign (q(i) - q(j)) * sign (r(i) - r(j)) ! n (n-1) i,j ! @end example ! @end ifinfo ! @noindent ! in which the ! @iftex ! @tex ! $q_i$ and $r_i$ ! @end tex ! @end iftex ! @ifinfo ! @var{q}(@var{i}) and @var{r}(@var{i}) ! @end ifinfo ! are the ranks of ! @var{x} and @var{y}, respectively. ! If @var{x} and @var{y} are drawn from independent distributions, ! Kendall's @var{tau} is asymptotically normal with mean 0 and variance ! @iftex ! @tex ! ${2 (2n+5) \over 9n(n-1)}$. ! @end tex ! @end iftex ! @ifnottex ! @code{(2 * (2@var{n}+5)) / (9 * @var{n} * (@var{n}-1))}. ! @end ifnottex @end deftypefn ! ols -*- texinfo -*- ! @deftypefn {Function File} {[@var{beta}, @var{sigma}, @var{r}] =} ols (@var{y}, @var{x}) ! Ordinary least squares estimation for the multivariate model ! @iftex ! @tex ! $y = x b + e$ ! with ! $\bar{e} = 0$, and cov(vec($e$)) = kron ($s, I$) ! @end tex ! @end iftex ! @ifinfo ! @math{y = x b + e} with ! @math{mean (e) = 0} and @math{cov (vec (e)) = kron (s, I)}. ! @end ifinfo ! where ! @iftex ! @tex ! $y$ is a $t \times p$ matrix, $x$ is a $t \times k$ matrix, ! $b$ is a $k \times p$ matrix, and $e$ is a $t \times p$ matrix. ! @end tex ! @end iftex ! @ifinfo ! @math{y} is a @math{t} by @math{p} matrix, @math{x} is a @math{t} by ! @math{k} matrix, @math{b} is a @math{k} by @math{p} matrix, and ! @math{e} is a @math{t} by @math{p} matrix. ! @end ifinfo ! Each row of @var{y} and @var{x} is an observation and each column a ! variable. ! The return values @var{beta}, @var{sigma}, and @var{r} are defined as ! follows. ! @table @var ! @item beta ! The OLS estimator for @var{b}, @code{@var{beta} = pinv (@var{x}) * ! @var{y}}, where @code{pinv (@var{x})} denotes the pseudoinverse of ! @var{x}. ! @item sigma ! The OLS estimator for the matrix @var{s}, @example @group ! @var{sigma} = (@var{y}-@var{x}*@var{beta})' ! * (@var{y}-@var{x}*@var{beta}) ! / (@var{t}-rank(@var{x})) @end group @end example ! @item r ! The matrix of OLS residuals, @code{@var{r} = @var{y} - @var{x} * ! @var{beta}}. ! @end table @end deftypefn ! cloglog -*- texinfo -*- ! @deftypefn {Function File} {} cloglog (@var{x}) ! Return the complementary log-log function of @var{x}, defined as ! ! @iftex ! @tex ! $$ ! {\rm cloglog}(x) = - \log (- \log (x)) ! $$ ! @end tex ! @end iftex ! @ifnottex ! @example ! cloglog(x) = - log (- log (@var{x})) ! @end example ! @end ifnottex ! @end deftypefn ! meansq ! -*- texinfo -*- ! @deftypefn {Function File} {} meansq (@var{x}) ! @deftypefnx {Function File} {} meansq (@var{x}, @var{dim}) ! For vector arguments, return the mean square of the values. ! For matrix arguments, return a row vector containing the mean square ! of each column. With the optional @var{dim} argument, returns the ! mean squared of the values along this dimension. ! @end deftypefn ! mode ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{m}, @var{f}, @var{c}] =} mode (@var{x}, @var{dim}) ! Count the most frequently appearing value. @code{mode} counts the ! frequency along the first non-singleton dimension and if two or more ! values have te same frequency returns the smallest of the two in ! @var{m}. The dimension along which to count can be specified by the ! @var{dim} parameter. ! ! The variable @var{f} counts the frequency of each of the most frequently ! occurring elements. The cell array @var{c} contains all of the elements ! with the maximum frequency . ! @end deftypefn ! range ! -*- texinfo -*- ! @deftypefn {Function File} {} range (@var{x}) ! @deftypefnx {Function File} {} range (@var{x}, @var{dim}) ! If @var{x} is a vector, return the range, i.e., the difference ! between the maximum and the minimum, of the input data. ! ! If @var{x} is a matrix, do the above for each column of @var{x}. ! If the optional argument @var{dim} is supplied, work along dimension ! @var{dim}. @end deftypefn ! cut -*- texinfo -*- ! @deftypefn {Function File} {} cut (@var{x}, @var{breaks}) ! Create categorical data out of numerical or continuous data by ! cutting into intervals. ! ! If @var{breaks} is a scalar, the data is cut into that many ! equal-width intervals. If @var{breaks} is a vector of break points, ! the category has @code{length (@var{breaks}) - 1} groups. ! ! The returned value is a vector of the same size as @var{x} telling ! which group each point in @var{x} belongs to. Groups are labelled ! from 1 to the number of groups; points outside the range of ! @var{breaks} are labelled by @code{NaN}. @end deftypefn ! std -*- texinfo -*- ! @deftypefn {Function File} {} std (@var{x}) ! @deftypefnx {Function File} {} std (@var{x}, @var{opt}) ! @deftypefnx {Function File} {} std (@var{x}, @var{opt}, @var{dim}) ! If @var{x} is a vector, compute the standard deviation of the elements ! of @var{x}. ! @iftex ! @tex ! $$ ! {\rm std} (x) = \sigma (x) = \sqrt{{\sum_{i=1}^N (x_i - \bar{x})^2 \over N - 1}} ! $$ ! where $\bar{x}$ is the mean value of $x$. ! @end tex ! @end iftex ! @ifnottex @example @group ! std (x) = sqrt (sumsq (x - mean (x)) / (n - 1)) @end group @end example - @end ifnottex - If @var{x} is a matrix, compute the standard deviation for - each column and return them in a row vector. - - The argument @var{opt} determines the type of normalization to use. Valid values - are - - @table @asis - @item 0: - normalizes with @math{N-1}, provides the square root of best unbiased estimator of - the variance [default] - @item 1: - normalizes with @math{N}, this provides the square root of the second moment around - the mean - @end table ! The third argument @var{dim} determines the dimension along which the standard ! deviation is calculated. ! @seealso{mean, median} @end deftypefn ! mean -*- texinfo -*- ! @deftypefn {Function File} {} mean (@var{x}, @var{dim}, @var{opt}) ! If @var{x} is a vector, compute the mean of the elements of @var{x} ! @iftex ! @tex ! $$ {\rm mean}(x) = \bar{x} = {1\over N} \sum_{i=1}^N x_i $$ ! @end tex ! @end iftex ! @ifinfo @example ! mean (x) = SUM_i x(i) / N @end example - @end ifinfo - If @var{x} is a matrix, compute the mean for each column and return them - in a row vector. - - With the optional argument @var{opt}, the kind of mean computed can be - selected. The following options are recognized: ! @table @code ! @item "a" ! Compute the (ordinary) arithmetic mean. This is the default. ! ! @item "g" ! Compute the geometric mean. ! ! @item "h" ! Compute the harmonic mean. ! @end table ! ! If the optional argument @var{dim} is supplied, work along dimension ! @var{dim}. ! ! Both @var{dim} and @var{opt} are optional. If both are supplied, ! either may appear first. ! @end deftypefn ! run_count ! -*- texinfo -*- ! @deftypefn {Function File} {} run_count (@var{x}, @var{n}) ! Count the upward runs along the first non-singleton dimension of ! @var{x} of length 1, 2, @dots{}, @var{n}-1 and greater than or equal ! to @var{n}. If the optional argument @var{dim} is given operate ! along this dimension @end deftypefn ! qqplot -*- texinfo -*- ! @deftypefn {Function File} {[@var{q}, @var{s}] =} qqplot (@var{x}, @var{dist}, @var{params}) ! Perform a QQ-plot (quantile plot). ! ! If F is the CDF of the distribution @var{dist} with parameters ! @var{params} and G its inverse, and @var{x} a sample vector of length ! @var{n}, the QQ-plot graphs ordinate @var{s}(@var{i}) = @var{i}-th ! largest element of x versus abscissa @var{q}(@var{i}f) = G((@var{i} - ! 0.5)/@var{n}). ! ! If the sample comes from F except for a transformation of location ! and scale, the pairs will approximately follow a straight line. ! ! The default for @var{dist} is the standard normal distribution. The ! optional argument @var{params} contains a list of parameters of ! @var{dist}. For example, for a quantile plot of the uniform ! distribution on [2,4] and @var{x}, use @example ! qqplot (x, "uniform", 2, 4) @end example @noindent ! @var{dist} can be any string for which a function @var{dist_inv} ! that calculates the inverse CDF of distribution @var{dist} exists. ! ! If no output arguments are given, the data are plotted directly. @end deftypefn ! gls -*- texinfo -*- ! @deftypefn {Function File} {[@var{beta}, @var{v}, @var{r}] =} gls (@var{y}, @var{x}, @var{o}) ! Generalized least squares estimation for the multivariate model ! @iftex ! @tex ! $y = x b + e$ ! with $\bar{e} = 0$ and cov(vec($e$)) = $(s^2)o$, ! @end tex ! @end iftex ! @ifinfo ! @math{y = x b + e} with @math{mean (e) = 0} and ! @math{cov (vec (e)) = (s^2) o}, ! @end ifinfo ! where ! @iftex ! @tex ! $y$ is a $t \times p$ matrix, $x$ is a $t \times k$ matrix, $b$ is a $k ! \times p$ matrix, $e$ is a $t \times p$ matrix, and $o$ is a $tp \times ! tp$ matrix. ! @end tex ! @end iftex ! @ifinfo ! @math{y} is a @math{t} by @math{p} matrix, @math{x} is a @math{t} by ! @math{k} matrix, @math{b} is a @math{k} by @math{p} matrix, @math{e} ! is a @math{t} by @math{p} matrix, and @math{o} is a @math{t p} by ! @math{t p} matrix. ! @end ifinfo ! ! @noindent ! Each row of @var{y} and @var{x} is an observation and each column a ! variable. The return values @var{beta}, @var{v}, and @var{r} are ! defined as follows. ! ! @table @var ! @item beta ! The GLS estimator for @math{b}. ! ! @item v ! The GLS estimator for @math{s^2}. ! @item r ! The matrix of GLS residuals, @math{r = y - x beta}. ! @end table @end deftypefn ! ppplot -*- texinfo -*- ! @deftypefn {Function File} {[@var{p}, @var{y}] =} ppplot (@var{x}, @var{dist}, @var{params}) ! Perform a PP-plot (probability plot). ! ! If F is the CDF of the distribution @var{dist} with parameters ! @var{params} and @var{x} a sample vector of length @var{n}, the ! PP-plot graphs ordinate @var{y}(@var{i}) = F (@var{i}-th largest ! element of @var{x}) versus abscissa @var{p}(@var{i}) = (@var{i} - ! 0.5)/@var{n}. If the sample comes from F, the pairs will ! approximately follow a straight line. ! ! The default for @var{dist} is the standard normal distribution. The ! optional argument @var{params} contains a list of parameters of ! @var{dist}. For example, for a probability plot of the uniform ! distribution on [2,4] and @var{x}, use ! ! @example ! ppplot (x, "uniform", 2, 4) ! @end example ! ! @noindent ! @var{dist} can be any string for which a function @var{dist_cdf} ! that calculates the CDF of distribution @var{dist} exists. ! ! If no output arguments are given, the data are plotted directly. @end deftypefn ! kurtosis -*- texinfo -*- ! @deftypefn {Function File} {} kurtosis (@var{x}, @var{dim}) ! If @var{x} is a vector of length @math{N}, return the kurtosis ! @iftex ! @tex ! $$ ! {\rm kurtosis} (x) = {1\over N \sigma(x)^4} \sum_{i=1}^N (x_i-\bar{x})^4 - 3 ! $$ ! where $\bar{x}$ is the mean value of $x$. ! @end tex ! @end iftex ! @ifinfo @example ! kurtosis (x) = N^(-1) std(x)^(-4) sum ((x - mean(x)).^4) - 3 @end example - @end ifinfo @noindent ! of @var{x}. If @var{x} is a matrix, return the kurtosis over the ! first non-singleton dimension. The optional argument @var{dim} ! can be given to force the kurtosis to be given over that ! dimension. @end deftypefn ! spearman -*- texinfo -*- ! @deftypefn {Function File} {} spearman (@var{x}, @var{y}) ! Compute Spearman's rank correlation coefficient @var{rho} for each of ! the variables specified by the input arguments. ! For matrices, each row is an observation and each column a variable; ! vectors are always observations and may be row or column vectors. ! @code{spearman (@var{x})} is equivalent to @code{spearman (@var{x}, ! @var{x})}. ! For two data vectors @var{x} and @var{y}, Spearman's @var{rho} is the ! correlation of the ranks of @var{x} and @var{y}. ! If @var{x} and @var{y} are drawn from independent distributions, ! @var{rho} has zero mean and variance @code{1 / (n - 1)}, and is ! asymptotically normally distributed. @end deftypefn ! skewness -*- texinfo -*- ! @deftypefn {Function File} {} skewness (@var{x}, @var{dim}) ! If @var{x} is a vector of length @math{n}, return the skewness ! @iftex ! @tex ! $$ ! {\rm skewness} (x) = {1\over N \sigma(x)^3} \sum_{i=1}^N (x_i-\bar{x})^3 ! $$ ! where $\bar{x}$ is the mean value of $x$. ! @end tex ! @end iftex ! @ifinfo ! @example ! skewness (x) = N^(-1) std(x)^(-3) sum ((x - mean(x)).^3) ! @end example ! @end ifinfo ! @noindent ! of @var{x}. If @var{x} is a matrix, return the skewness along the ! first non-singleton dimension of the matrix. If the optional ! @var{dim} argument is given, operate along this dimension. @end deftypefn ! table -*- texinfo -*- ! @deftypefn {Function File} {[@var{t}, @var{l_x}] =} table (@var{x}) ! @deftypefnx {Function File} {[@var{t}, @var{l_x}, @var{l_y}] =} table (@var{x}, @var{y}) ! Create a contingency table @var{t} from data vectors. The @var{l} ! vectors are the corresponding levels. ! ! Currently, only 1- and 2-dimensional tables are supported. @end deftypefn ! probit -*- texinfo -*- ! @deftypefn {Function File} {} probit (@var{p}) ! For each component of @var{p}, return the probit (the quantile of the ! standard normal distribution) of @var{p}. @end deftypefn ! ranks -*- texinfo -*- ! @deftypefn {Function File} {} ranks (@var{x}, @var{dim}) ! Return the ranks of @var{x} along the first non-singleton dimension ! adjust for ties. If the optional argument @var{dim} is ! given, operate along this dimension. @end deftypefn ! var -*- texinfo -*- ! @deftypefn {Function File} {} var (@var{x}) ! For vector arguments, return the (real) variance of the values. ! For matrix arguments, return a row vector containing the variance for ! each column. ! ! The argument @var{opt} determines the type of normalization to use. ! Valid values are ! @table @asis ! @item 0: ! Normalizes with @math{N-1}, provides the best unbiased estimator of the ! variance [default]. ! @item 1: ! Normalizes with @math{N}, this provides the second moment around the mean. ! @end table ! The third argument @var{dim} determines the dimension along which the ! variance is calculated. @end deftypefn ! center -*- texinfo -*- ! @deftypefn {Function File} {} center (@var{x}) ! @deftypefnx {Function File} {} center (@var{x}, @var{dim}) ! If @var{x} is a vector, subtract its mean. ! If @var{x} is a matrix, do the above for each column. ! If the optional argument @var{dim} is given, perform the above ! operation along this dimension ! @end deftypefn ! median ! -*- texinfo -*- ! @deftypefn {Function File} {} median (@var{x}, @var{dim}) ! If @var{x} is a vector, compute the median value of the elements of ! @var{x}. If the elements of @var{x} are sorted, the median is defined ! as ! @iftex ! @tex ! $$ ! {\rm median} (x) = ! \cases{x(\lceil N/2\rceil), & $N$ odd;\cr ! (x(N/2)+x(N/2+1))/2, & $N$ even.} ! $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! @group ! x(ceil(N/2)), N odd ! median(x) = ! (x(N/2) + x((N/2)+1))/2, N even ! @end group ! @end example ! @end ifinfo ! If @var{x} is a matrix, compute the median value for each ! column and return them in a row vector. If the optional @var{dim} ! argument is given, operate along this dimension. ! @seealso{std, mean} ! @end deftypefn ! union ! -*- texinfo -*- ! @deftypefn {Function File} {} union (@var{x}, @var{y}) ! Return the set of elements that are in either of the sets @var{x} and ! @var{y}. For example, ! @example ! @group ! union ([ 1, 2, 4 ], [ 2, 3, 5 ]) ! @result{} [ 1, 2, 3, 4, 5 ] ! @end group ! @end example ! @seealso{create_set, intersection, complement} @end deftypefn ! ismember -*- texinfo -*- ! @deftypefn {Function File} {[@var{tf}, @var{a_idx}] =} ismember (@var{A}, @var{S}) ! @deftypefnx {Function File} {[@var{tf}, @var{a_idx}] =} ismember (@var{A}, @var{S}, "rows") ! Return a matrix @var{tf} the same shape as @var{A} which has 1 if ! @code{A(i,j)} is in @var{S} or 0 if it isn't. If a second output argument ! is requested, the indexes into @var{S} of the matching elements are ! also returned. @example ! @group ! a = [3, 10, 1]; ! s = [0:9]; ! [tf, a_idx] = residue (a, s); ! @result{} tf = [1, 0, 1] ! @result{} a_idx = [4, 0, 2] ! @end group @end example ! The inputs, @var{A} and @var{S}, may also be cell arrays. ! @example ! @group ! a = @{'abc'@}; ! s = @{'abc', 'def'@}; ! [tf, a_idx] = residue (a, s); ! @result{} tf = [1, 0] ! @result{} a_idx = [1, 0] ! @end group ! @end example ! With the optional third argument @code{"rows"}, and matrices ! @var{A} and @var{S} with the same number of columns, compare rows in ! @var{A} with the rows in @var{S}. @example ! @group ! a = [1:3; 5:7; 4:6]; ! s = [0:2; 1:3; 2:4; 3:5; 4:6]; ! [tf, a_idx] = ismember(a, s, 'rows'); ! @result{} tf = logical ([1; 0; 1]) ! @result{} a_idx = [2; 0; 5]; ! @end group @end example ! ! @seealso{unique, union, intersection, setxor, setdiff} @end deftypefn ! complement -*- texinfo -*- ! @deftypefn {Function File} {} complement (@var{x}, @var{y}) ! Return the elements of set @var{y} that are not in set @var{x}. For ! example, ! ! @example ! @group ! complement ([ 1, 2, 3 ], [ 2, 3, 5 ]) ! @result{} 5 ! @end group ! @end example ! @seealso{create_set, union, intersection} @end deftypefn ! intersect -*- texinfo -*- ! @deftypefn {Function File} {} intersect (@var{a}, @var{b}) ! @deftypefnx {Function File} {[@var{c}, @var{ia}, @var{ib}] =} intersect (@var{a}, @var{b}) ! ! Return the elements in both @var{a} and @var{b}, sorted in ascending ! order. If @var{a} and @var{b} are both column vectors return a column ! vector, otherwise return a row vector. ! ! Return index vectors @var{ia} and @var{ib} such that @code{a(ia)==c} and ! @code{b(ib)==c}. @end deftypefn ! @seealso{unique, union, setxor, setdiff, ismember} ! setxor -*- texinfo -*- ! @deftypefn {Function File} {} setxor (@var{a}, @var{b}) ! Return the elements exclusive to @var{a} or @var{b}, sorted in ascending ! order. If @var{a} and @var{b} are both column vectors return a column ! vector, otherwise return a row vector. ! @seealso{unique, union, intersect, setdiff, ismember} ! @end deftypefn ! create_set ! -*- texinfo -*- ! @deftypefn {Function File} {} create_set (@var{x}) ! Return a row vector containing the unique values in @var{x}, sorted in ! ascending order. For example, @example @group ! create_set ([ 1, 2; 3, 4; 4, 2 ]) ! @result{} [ 1, 2, 3, 4 ] @end group @end example - @seealso{union, intersection, complement} @end deftypefn ! setdiff -*- texinfo -*- ! @deftypefn {Function File} {} setdiff (@var{a}, @var{b}) ! @deftypefnx {Function File} {} setdiff (@var{a}, @var{b}, "rows") ! Return the elements in @var{a} that are not in @var{b}, sorted in ! ascending order. If @var{a} and @var{b} are both column vectors ! return a column vector, otherwise return a row vector. ! Given the optional third argument @samp{"rows"}, return the rows in ! @var{a} that are not in @var{b}, sorted in ascending order by rows. ! @seealso{unique, union, intersect, setxor, ismember} ! @end deftypefn ! unique ! -*- texinfo -*- ! @deftypefn {Function File} {} unique (@var{x}) ! Return the unique elements of @var{x}, sorted in ascending order. ! If @var{x} is a row vector, return a row vector, but if @var{x} ! is a column vector or a matrix return a column vector. ! @deftypefnx {Function File} {} unique (@var{A}, 'rows') ! Return the unique rows of @var{A}, sorted in ascending order. ! @deftypefnx {Function File} {[@var{y}, @var{i}, @var{j}] = } unique (@var{x}) ! Return index vectors @var{i} and @var{j} such that @code{x(i)==y} and ! @code{y(j)==x}. ! @seealso{union, intersect, setdiff, setxor, ismember} ! @end deftypefn ! primes ! -*- texinfo -*- ! @deftypefn {Function File} {} primes (@var{n}) ! Return all primes up to @var{n}. ! Note that if you need a specific number of primes, you can use the ! fact the distance from one prime to the next is on average ! proportional to the logarithm of the prime. Integrating, you find ! that there are about @math{k} primes less than @math{k \log ( 5 k )}. ! ! The algorithm used is called the Sieve of Erastothenes. ! @end deftypefn ! log2 ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} log2 (@var{x}) ! @deftypefnx {Mapping Function} {[@var{f}, @var{e}] =} log2 (@var{x}) ! Compute the base-2 logarithm of @var{x}. With two outputs, returns ! @var{f} and @var{e} such that ! @iftex ! @tex ! $1/2 <= |f| < 1$ and $x = f \cdot 2^e$. ! @end tex ! @end iftex ! @ifinfo ! 1/2 <= abs(f) < 1 and x = f * 2^e. ! @end ifinfo ! @seealso{log, log10, logspace, exp} ! @end deftypefn ! factorial ! -*- texinfo -*- ! @deftypefn {Function File} {} factorial (@var{n}) ! Return the factorial of @var{n}. If @var{n} is scalar, this is ! equivalent to @code{prod (1:@var{n})}. If @var{n} is an array, ! the factorial of the elements of the array are returned. ! @end deftypefn ! isprime ! -*- texinfo -*- ! @deftypefn {Function File} {} isprime (@var{n}) ! Return true if @var{n} is a prime number, false otherwise. ! Something like the following is much faster if you need to test a lot ! of small numbers: @example ! @var{t} = ismember (@var{n}, primes (max (@var{n} (:)))); @end example ! If max(n) is very large, then you should be using special purpose ! factorization code. ! ! @seealso{primes, factor, gcd, lcm} ! @end deftypefn ! perms ! -*- texinfo -*- ! @deftypefn {Function File} {} perms (@var{v}) ! Generate all permutations of @var{v}, one row per permutation. The ! result has size @code{factorial (@var{n}) * @var{n}}, where @var{n} ! is the length of @var{v}. ! As an example, @code{perms([1, 2, 3])} returns the matrix ! @example ! 1 2 3 ! 2 1 3 ! 1 3 2 ! 2 3 1 ! 3 1 2 ! 3 2 1 ! @end example ! @end deftypefn ! betaln ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} betaln (@var{a}, @var{b}) ! Return the log of the Beta function, ! @iftex ! @tex ! $$ ! B (a, b) = \log {\Gamma (a) \Gamma (b) \over \Gamma (a + b)}. ! $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! betaln (a, b) = gammaln (a) + gammaln (b) - gammaln (a + b) ! @end example ! @end ifinfo ! @seealso{beta, betai, gammaln} ! @end deftypefn ! bessel ! -*- texinfo -*- ! @deftypefn {Loadable Function} {[@var{j}, @var{ierr}] =} besselj (@var{alpha}, @var{x}, @var{opt}) ! @deftypefnx {Loadable Function} {[@var{y}, @var{ierr}] =} bessely (@var{alpha}, @var{x}, @var{opt}) ! @deftypefnx {Loadable Function} {[@var{i}, @var{ierr}] =} besseli (@var{alpha}, @var{x}, @var{opt}) ! @deftypefnx {Loadable Function} {[@var{k}, @var{ierr}] =} besselk (@var{alpha}, @var{x}, @var{opt}) ! @deftypefnx {Loadable Function} {[@var{h}, @var{ierr}] =} besselh (@var{alpha}, @var{k}, @var{x}, @var{opt}) ! Compute Bessel or Hankel functions of various kinds: @table @code ! @item besselj ! Bessel functions of the first kind. ! @item bessely ! Bessel functions of the second kind. ! @item besseli ! Modified Bessel functions of the first kind. ! @item besselk ! Modified Bessel functions of the second kind. ! @item besselh ! Compute Hankel functions of the first (@var{k} = 1) or second (@var{k} ! = 2) kind. @end table ! If the argument @var{opt} is supplied, the result is scaled by the ! @code{exp (-I*@var{x})} for @var{k} = 1 or @code{exp (I*@var{x})} for ! @var{k} = 2. ! If @var{alpha} is a scalar, the result is the same size as @var{x}. ! If @var{x} is a scalar, the result is the same size as @var{alpha}. ! If @var{alpha} is a row vector and @var{x} is a column vector, the ! result is a matrix with @code{length (@var{x})} rows and ! @code{length (@var{alpha})} columns. Otherwise, @var{alpha} and ! @var{x} must conform and the result will be the same size. ! The value of @var{alpha} must be real. The value of @var{x} may be ! complex. ! If requested, @var{ierr} contains the following status information ! and is the same size as the result. ! @enumerate 0 ! @item ! Normal return. ! @item ! Input error, return @code{NaN}. ! @item ! Overflow, return @code{Inf}. ! @item ! Loss of significance by argument reduction results in less than ! half of machine accuracy. ! @item ! Complete loss of significance by argument reduction, return @code{NaN}. ! @item ! Error---no computation, algorithm termination condition not met, ! return @code{NaN}. ! @end enumerate @end deftypefn ! nchoosek -*- texinfo -*- ! @deftypefn {Function File} {@var{c} =} nchoosek (@var{n}, @var{k}) ! Compute the binomial coefficient or all combinations of @var{n}. ! If @var{n} is a scalar then, calculate the binomial coefficient ! of @var{n} and @var{k}, defined as @iftex @tex ! $$ ! {n \choose k} = {n (n-1) (n-2) \cdots (n-k+1) \over k!} ! = {n! \over k! (n-k)!} ! $$ @end tex @end iftex @ifinfo ! ! @example @group ! / \ ! | n | n (n-1) (n-2) ... (n-k+1) n! ! | | = ------------------------- = --------- ! | k | k! k! (n-k)! ! \ / ! @end group @end example @end ifinfo ! ! If @var{n} is a vector generate all combinations of the elements ! of @var{n}, taken @var{k} at a time, one row per combination. The ! resulting @var{c} has size @code{[nchoosek (length (@var{n}), ! @var{k}), @var{k}]}. ! ! @seealso{bincoeff} @end deftypefn ! beta -*- texinfo -*- ! @deftypefn {Mapping Function} {} beta (@var{a}, @var{b}) ! Return the Beta function, ! @iftex ! @tex ! $$ ! B (a, b) = {\Gamma (a) \Gamma (b) \over \Gamma (a + b)}. ! $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! beta (a, b) = gamma (a) * gamma (b) / gamma (a + b). ! @end example ! @end ifinfo ! @end deftypefn ! factor ! -*- texinfo -*- ! @deftypefn {Function File} {@var{p} =} factor (@var{q}) ! @deftypefnx {Function File} {[@var{p}, @var{n}] =} factor (@var{q}) ! ! Return prime factorization of @var{q}. That is @code{prod (@var{p}) ! == @var{q}}. If @code{@var{q} == 1}, returns 1. ! ! With two output arguments, returns the unique primes @var{p} and ! their multiplicities. That is @code{prod (@var{p} .^ @var{n}) == ! @var{q}}. ! ! @end deftypefn ! legendre ! -*- texinfo -*- ! @deftypefn {Function File} {@var{L} =} legendre (@var{n}, @var{X}) ! ! Legendre Function of degree n and order m ! where all values for m = 0..@var{n} are returned. ! @var{n} must be a scalar in the range [0..255]. ! The return value has one dimension more than @var{x}. @example ! The Legendre Function of degree n and order m ! @group ! m m 2 m/2 d^m ! P(x) = (-1) * (1-x ) * ---- P (x) ! n dx^m n ! @end group ! with: ! Legendre polynomial of degree n @group ! 1 d^n 2 n ! P (x) = ------ [----(x - 1) ] ! n 2^n n! dx^n ! @end group ! ! legendre(3,[-1.0 -0.9 -0.8]) returns the matrix - @group - x | -1.0 | -0.9 | -0.8 - ------------------------------------ - m=0 | -1.00000 | -0.47250 | -0.08000 - m=1 | 0.00000 | -1.99420 | -1.98000 - m=2 | 0.00000 | -2.56500 | -4.32000 - m=3 | 0.00000 | -1.24229 | -3.24000 @end group @end example @end deftypefn ! erfinv ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} erfinv (@var{z}) ! Computes the inverse of the error function. ! @seealso{erf, erfc} ! @end deftypefn ! betai -*- texinfo -*- ! @deftypefn {Function File} {} betai (@var{a}, @var{b}, @var{x}) ! This function is provided for compatibility with older versions of ! Octave. New programs should use betainc instead. ! @code{betai (@var{a}, @var{b}, @var{x})} is the same as @code{betainc ! (@var{x}, @var{a}, @var{b})}. ! @end deftypefn ! pow2 ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} pow2 (@var{x}) ! @deftypefnx {Mapping Function} {} pow2 (@var{f}, @var{e}) ! With one argument, computes ! @iftex ! @tex ! $2^x$ ! @end tex ! @end iftex ! @ifinfo ! 2 .^ x ! @end ifinfo ! for each element of @var{x}. With two arguments, returns ! @iftex ! @tex ! $f \cdot 2^e$. ! @end tex ! @end iftex ! @ifinfo ! f .* (2 .^ e). ! @end ifinfo ! @seealso{nextpow2} ! @end deftypefn ! gammai ! -*- texinfo -*- ! @deftypefn {Function File} {} gammai (@var{a}, @var{x}) ! This function is provided for compatibility with older versions of ! Octave. New programs should use @code{gammainc} instead. ! @code{gammai (@var{a}, @var{x})} is the same as @code{gammainc ! (@var{x}, @var{a})}. ! @end deftypefn ! residue ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{r}, @var{p}, @var{k}, @var{e}] =} residue (@var{b}, @var{a}) ! Compute the partial fraction expansion for the quotient of the ! polynomials, @var{b} and @var{a}. ! @iftex ! @tex ! $$ ! {B(s)\over A(s)} = \sum_{m=1}^M {r_m\over (s-p_m)^e_m} ! + \sum_{i=1}^N k_i s^{N-i}. ! $$ ! @end tex ! @end iftex ! @ifinfo @example ! B(s) M r(m) N ! ---- = SUM ------------- + SUM k(i)*s^(N-i) ! A(s) m=1 (s-p(m))^e(m) i=1 @end example - @end ifinfo @noindent ! where @math{M} is the number of poles (the length of the @var{r}, ! @var{p}, and @var{e}), the @var{k} vector is a polynomial of order @math{N-1} ! representing the direct contribution, and the @var{e} vector specifies ! the multiplicity of the mth residue's pole. ! For example, @example ! @group ! b = [1, 1, 1]; ! a = [1, -5, 8, -4]; ! [r, p, k, e] = residue (b, a); ! @result{} r = [-2; 7; 3] ! @result{} p = [2; 2; 1] ! @result{} k = [](0x0) ! @result{} e = [1; 2; 1] ! @end group @end example @noindent ! which represents the following partial fraction expansion ! @iftex ! @tex ! $$ ! {s^2+s+1\over s^3-5s^2+8s-4} = {-2\over s-2} + {7\over (s-2)^2} + {3\over s-1} ! $$ ! @end tex ! @end iftex ! @ifinfo @example ! s^2 + s + 1 -2 7 3 ! ------------------- = ----- + ------- + ----- ! s^3 - 5s^2 + 8s - 4 (s-2) (s-2)^2 (s-1) @end example ! @end ifinfo ! ! @deftypefnx {Function File} {[@var{b}, @var{a}] =} residue (@var{r}, @var{p}, @var{k}) ! @deftypefnx {Function File} {[@var{b}, @var{a}] =} residue (@var{r}, @var{p}, @var{k}, @var{e}) ! Compute the reconstituted quotient of polynomials, ! @var{b}(s)/@var{a}(s), from the partial fraction expansion; ! represented by the residues, poles, and a direct polynomial specified ! by @var{r}, @var{p} and @var{k}, and the pole multiplicity @var{e}. ! ! If the multiplicity, @var{e}, is not explicitly specified the multiplicity is ! determined by the script mpoles.m. ! For example, @example ! @group ! r = [-2; 7; 3]; ! p = [2; 2; 1]; ! k = [1, 0]; ! [b, a] = residue (r, p, k); ! @result{} b = [1, -5, 9, -3, 1] ! @result{} a = [1, -5, 8, -4] ! ! where mpoles.m is used to determine e = [1; 2; 1] ! ! @end group @end example ! Alternatively the multiplicity may be defined explicitly, for example, @example @group ! r = [7; 3; -2]; ! p = [2; 1; 2]; ! k = [1, 0]; ! e = [2; 1; 1]; ! [b, a] = residue (r, p, k, e); ! @result{} b = [1, -5, 9, -3, 1] ! @result{} a = [1, -5, 8, -4] @end group @end example ! ! @noindent ! which represents the following partial fraction expansion ! @iftex ! @tex ! $$ ! {-2\over s-2} + {7\over (s-2)^2} + {3\over s-1} + s = {s^4-5s^3+9s^2-3s+1\over s^3-5s^2+8s-4} ! $$ ! @end tex ! @end iftex ! @ifinfo ! ! @example ! -2 7 3 s^4 - 5s^3 + 9s^2 - 3s + 1 ! ----- + ------- + ----- + s = -------------------------- ! (s-2) (s-2)^2 (s-1) s^3 - 5s^2 + 8s - 4 ! @end example ! @end ifinfo ! @seealso{poly, roots, conv, deconv, mpoles, polyval, polyderiv, polyinteg} ! @end deftypefn ! polyint ! -*- texinfo -*- ! @deftypefn {Function File} {} polyint (@var{c}, @var{k}) ! Return the coefficients of the integral of the polynomial whose ! coefficients are represented by the vector @var{c}. The variable ! @var{k} is the constant of integration, which by default is set to zero. ! @seealso{poly, polyderiv, polyreduce, roots, conv, deconv, residue, ! filter, polyval, and polyvalm} @end deftypefn ! unmkpp -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{p}, @var{n}, @var{k}, @var{d}] =} unmkpp (@var{pp}) ! ! Extract the components of a piece-wise polynomial structure @var{pp}. ! These are as follows: ! ! @table @asis ! @item @var{x} ! Samples points. ! @item @var{p} ! Polynomial coefficients for points in sample interval. @code{@var{p} ! (@var{i}, :)} contains the coefficients for the polynomial over ! interval @var{i} ordered from highest to lowest. If @code{@var{d} > ! 1}, @code{@var{p} (@var{r}, @var{i}, :)} contains the coefficients for ! the r-th polynomial defined on interval @var{i}. However, this is ! stored as a 2-D array such that @code{@var{c} = reshape (@var{p} (:, ! @var{j}), @var{n}, @var{d})} gives @code{@var{c} (@var{i}, @var{r})} ! is the j-th coefficient of the r-th polynomial over the i-th interval. ! @item @var{n} ! Number of polynomial pieces. ! @item @var{k} ! Order of the polynomial plus 1. ! @item @var{d} ! Number of polynomials defined for each interval. ! @end table ! ! @seealso{mkpp, ppval, spline} @end deftypefn ! deconv -*- texinfo -*- ! @deftypefn {Function File} {} deconv (@var{y}, @var{a}) ! Deconvolve two vectors. ! ! @code{[b, r] = deconv (y, a)} solves for @var{b} and @var{r} such that ! @code{y = conv (a, b) + r}. ! If @var{y} and @var{a} are polynomial coefficient vectors, @var{b} will ! contain the coefficients of the polynomial quotient and @var{r} will be ! a remainder polynomial of lowest order. ! @seealso{conv, poly, roots, residue, polyval, polyderiv, polyinteg} ! @end deftypefn ! polyfit ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{p}, @var{s}] =} polyfit (@var{x}, @var{y}, @var{n}) ! Return the coefficients of a polynomial @var{p}(@var{x}) of degree ! @var{n} that minimizes ! @iftex ! @tex ! $$ ! \sum_{i=1}^N (p(x_i) - y_i)^2 ! $$ ! @end tex ! @end iftex ! @ifinfo ! @code{sumsq (p(x(i)) - y(i))}, ! @end ifinfo ! to best fit the data in the least squares sense. ! The polynomial coefficients are returned in a row vector. ! If two output arguments are requested, the second is a structure ! containing the following fields: - @table @code - @item R - The Cholesky factor of the Vandermonde matrix used to compute the - polynomial coefficients. - @item X - The Vandermonde matrix used to compute the polynomial coefficients. - @item df - The degrees of freedom. - @item normr - The norm of the residuals. - @item yf - The values of the polynomial for each value of @var{x}. - @end table - @end deftypefn - poly - -*- texinfo -*- - @deftypefn {Function File} {} poly (@var{a}) - If @var{a} is a square @math{N}-by-@math{N} matrix, @code{poly (@var{a})} - is the row vector of the coefficients of @code{det (z * eye (N) - a)}, - the characteristic polynomial of @var{a}. As an example we can use - this to find the eigenvalues of @var{a} as the roots of @code{poly (@var{a})}. @example ! roots(poly(eye(3))) ! @result{} 1.00000 + 0.00000i ! @result{} 1.00000 - 0.00000i ! @result{} 1.00000 + 0.00000i @end example - In real-life examples you should, however, use the @code{eig} function - for computing eigenvalues. - - If @var{x} is a vector, @code{poly (@var{x})} is a vector of coefficients - of the polynomial whose roots are the elements of @var{x}. That is, - of @var{c} is a polynomial, then the elements of - @code{@var{d} = roots (poly (@var{c}))} are contained in @var{c}. - The vectors @var{c} and @var{d} are, however, not equal due to sorting - and numerical errors. - @seealso{eig, roots} @end deftypefn ! polyvalm -*- texinfo -*- ! @deftypefn {Function File} {} polyvalm (@var{c}, @var{x}) ! Evaluate a polynomial in the matrix sense. ! @code{polyvalm (@var{c}, @var{x})} will evaluate the polynomial in the ! matrix sense, i.e. matrix multiplication is used instead of element by ! element multiplication as is used in polyval. ! The argument @var{x} must be a square matrix. ! @seealso{polyval, poly, roots, conv, deconv, residue, filter, ! polyderiv, and polyinteg} ! @end deftypefn ! polyder ! -*- texinfo -*- ! @deftypefn {Function File} {} polyder (@var{c}) ! @deftypefnx {Function File} {[@var{q}] =} polyder (@var{b}, @var{a}) ! @deftypefnx {Function File} {[@var{q}, @var{r}] =} polyder (@var{b}, @var{a}) ! See polyderiv. @end deftypefn ! polyderiv -*- texinfo -*- ! @deftypefn {Function File} {} polyderiv (@var{c}) ! @deftypefnx {Function File} {[@var{q}] =} polyderiv (@var{b}, @var{a}) ! @deftypefnx {Function File} {[@var{q}, @var{r}] =} polyderiv (@var{b}, @var{a}) ! Return the coefficients of the derivative of the polynomial whose ! coefficients are given by vector @var{c}. If a pair of polynomials ! is given @var{b} and @var{a}, the derivative of the product is ! returned in @var{q}, or the quotient numerator in @var{q} and the ! quotient denominator in @var{r}. ! @seealso{poly, polyinteg, polyreduce, roots, conv, deconv, residue, ! filter, polygcd, polyval, polyvalm} @end deftypefn ! compan -*- texinfo -*- ! @deftypefn {Function File} {} compan (@var{c}) ! Compute the companion matrix corresponding to polynomial coefficient ! vector @var{c}. - The companion matrix is @iftex @tex ! $$ ! A = \left[\matrix{ ! -c_2/c_1 & -c_3/c_1 & \cdots & -c_N/c_1 & -c_{N+1}/c_1\cr ! 1 & 0 & \cdots & 0 & 0 \cr ! 0 & 1 & \cdots & 0 & 0 \cr ! \vdots & \vdots & \ddots & \vdots & \vdots \cr ! 0 & 0 & \cdots & 1 & 0}\right]. ! $$ @end tex @end iftex @ifnottex ! ! @smallexample ! _ _ ! | -c(2)/c(1) -c(3)/c(1) ... -c(N)/c(1) -c(N+1)/c(1) | ! | 1 0 ... 0 0 | ! | 0 1 ... 0 0 | ! A = | . . . . . | ! | . . . . . | ! | . . . . . | ! |_ 0 0 ... 1 0 _| ! @end smallexample @end ifnottex ! The eigenvalues of the companion matrix are equal to the roots of the ! polynomial. ! @seealso{poly, roots, residue, conv, deconv, polyval, polyderiv, ! polyinteg} ! @end deftypefn ! roots ! -*- texinfo -*- ! @deftypefn {Function File} {} roots (@var{v}) ! For a vector @var{v} with @math{N} components, return ! the roots of the polynomial ! @iftex ! @tex ! $$ ! v_1 z^{N-1} + \cdots + v_{N-1} z + v_N. ! $$ ! @end tex ! @end iftex ! @ifnottex @example ! v(1) * z^(N-1) + ... + v(N-1) * z + v(N) @end example - @end ifnottex ! As an example, the following code finds the roots of the quadratic ! polynomial ! @iftex ! @tex ! $$ p(x) = x^2 - 5. $$ ! @end tex ! @end iftex ! @ifnottex ! @example ! p(x) = x^2 - 5. ! @end example ! @end ifnottex ! @example ! c = [1, 0, -5]; ! roots(c) ! @result{} 2.2361 ! @result{} -2.2361 ! @end example ! Note that the true result is ! @iftex ! @tex ! $\pm \sqrt{5}$ ! @end tex ! @end iftex ! @ifnottex ! @math{+/- sqrt(5)} ! @end ifnottex ! which is roughly ! @iftex ! @tex ! $\pm 2.2361$. ! @end tex ! @end iftex ! @ifnottex ! @math{+/- 2.2361}. ! @end ifnottex ! @seealso{compan} @end deftypefn ! conv -*- texinfo -*- ! @deftypefn {Function File} {} conv (@var{a}, @var{b}) ! Convolve two vectors. ! @code{y = conv (a, b)} returns a vector of length equal to ! @code{length (a) + length (b) - 1}. ! If @var{a} and @var{b} are polynomial coefficient vectors, @code{conv} ! returns the coefficients of the product polynomial. ! @seealso{deconv, poly, roots, residue, polyval, polyderiv, polyinteg} @end deftypefn ! ppval -*- texinfo -*- ! @deftypefn {Function File} {@var{yi} =} ppval (@var{pp}, @var{xi}) ! Evaluate piece-wise polynomial @var{pp} at the points @var{xi}. ! If @code{@var{pp}.d} is a scalar greater than 1, or an array, ! then the returned value @var{yi} will be an array that is ! @code{d1, d1, @dots{}, dk, length (@var{xi})]}. ! @seealso{mkpp, unmkpp, spline} ! @end deftypefn ! polyval -*- texinfo -*- ! @deftypefn {Function File} {} polyval (@var{c}, @var{x}) ! Evaluate a polynomial. ! ! @code{polyval (@var{c}, @var{x})} will evaluate the polynomial at the ! specified value of @var{x}. ! If @var{x} is a vector or matrix, the polynomial is evaluated at each of ! the elements of @var{x}. ! @seealso{polyvalm, poly, roots, conv, deconv, residue, filter, ! polyderiv, polyinteg} @end deftypefn ! pchip -*- texinfo -*- ! @deftypefn {Function File} {@var{pp} = } pchip (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{yi} = } pchip (@var{x}, @var{y}, @var{xi}) ! Piecewise Cubic Hermite interpolating polynomial. Called with two ! arguments, the piece-wise polynomial @var{pp} is returned, that may ! later be used with @code{ppval} to evaluate the polynomial at ! specific points. ! The variable @var{x} must be a strictly monotonic vector (either ! increasing or decreasing). While @var{y} can be either a vector or ! array. In the case where @var{y} is a vector, it must have a length ! of @var{n}. If @var{y} is an array, then the size of @var{y} must ! have the form ! @iftex ! @tex ! $$[s_1, s_2, \cdots, s_k, n]$$ ! @end tex ! @end iftex ! @ifinfo ! @code{[@var{s1}, @var{s2}, @dots{}, @var{sk}, @var{n}]} ! @end ifinfo ! The array is then reshaped internally to a matrix where the leading ! dimension is given by ! @iftex ! @tex ! $$s_1 s_2 \cdots s_k$$ ! @end tex ! @end iftex ! @ifinfo ! @code{@var{s1} * @var{s2} * @dots{} * @var{sk}} ! @end ifinfo ! and each row in this matrix is then treated separately. Note that this ! is exactly the opposite treatment than @code{interp1} and is done ! for compatibility. ! Called with a third input argument, @code{pchip} evaluates the ! piece-wise polynomial at the points @var{xi}. There is an equivalence ! between @code{ppval (pchip (@var{x}, @var{y}), @var{xi})} and ! @code{pchip (@var{x}, @var{y}, @var{xi})}. ! @seealso{spline, ppval, mkpp, unmkpp} @end deftypefn ! mpoles -*- texinfo -*- ! @deftypefn {Function File} {[@var{multp}, @var{indx}] =} mpoles (@var{p}) ! @deftypefnx {Function File} {[@var{multp}, @var{indx}] =} mpoles (@var{p}, @var{tol}) ! @deftypefnx {Function File} {[@var{multp}, @var{indx}] =} mpoles (@var{p}, @var{tol}, @var{reorder}) ! Identifiy unique poles in @var{p} and associates their multiplicity, ! ordering them from largest to smallest. ! If the relative difference of the poles is less than @var{tol}, then ! they are considered to be multiples. The default value for @var{tol} ! is 0.001. ! If the optional parameter @var{reorder} is zero, poles are not sorted. ! The value @var{multp} is a vector specifying the multiplicity of the ! poles. @var{multp}(:) refers to mulitplicity of @var{p}(@var{indx}(:)). ! For example, @example @group ! p = [2 3 1 1 2]; ! [m, n] = mpoles(p); ! @result{} m = [1; 1; 2; 1; 2] ! @result{} n = [2; 5; 1; 4; 3] ! @result{} p(n) = [3, 2, 2, 1, 1] @end group @end example ! @seealso{poly, roots, conv, deconv, polyval, polyderiv, polyinteg, residue} @end deftypefn ! spline -*- texinfo -*- ! @deftypefn {Function File} {@var{pp} = } spline (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{yi} = } spline (@var{x}, @var{y}, @var{xi}) ! ! Returns the cubic spline interpolation of @var{y} at the point ! @var{x}. Called with two arguments the piece-wise polynomial @var{pp} ! that may later be used with @code{ppval} to evaluate the polynomial ! at specific points. ! ! The variable @var{x} must be a vector of length @var{n}, and @var{y} ! can be either a vector or array. In the case where @var{y} is a ! vector, it can have a length of either @var{n} or @code{@var{n} + 2}. ! If the length of @var{y} is @var{n}, then the 'not-a-knot' end ! condition is used. If the length of @var{y} is @code{@var{n} + 2}, ! then the first and last values of the vector @var{y} are the first ! derivative of the cubic spline at the end-points. ! If @var{y} is an array, then the size of @var{y} must have the form ! @iftex ! @tex ! $$[s_1, s_2, \cdots, s_k, n]$$ ! @end tex ! @end iftex ! @ifinfo ! @code{[@var{s1}, @var{s2}, @dots{}, @var{sk}, @var{n}]} ! @end ifinfo ! or ! @iftex ! @tex ! $$[s_1, s_2, \cdots, s_k, n + 2]$$. ! @end tex ! @end iftex ! @ifinfo ! @code{[@var{s1}, @var{s2}, @dots{}, @var{sk}, @var{n} + 2]}. ! @end ifinfo ! The array is then reshaped internally to a matrix where to leading ! dimension is given by ! @iftex ! @tex ! $$s_1 s_2 \cdots s_k$$ ! @end tex ! @end iftex ! @ifinfo ! @code{@var{s1} * @var{s2} * @dots{} * @var{sk}} ! @end ifinfo ! and each row this matrix is then treated separately. Note that this ! is exactly the opposite treatment than @code{interp1} and is done ! for compatibility. ! Called with a third input argument, @code{spline} evaluates the ! piece-wise spline at the points @var{xi}. There is an equivalence ! between @code{ppval (spline (@var{x}, @var{y}), @var{xi})} and ! @code{spline (@var{x}, @var{y}, @var{xi})}. ! @seealso{ppval, mkpp, unmkpp} ! @end deftypefn ! mkpp ! -*- texinfo -*- ! @deftypefn {Function File} {@var{pp} = } mkpp (@var{x}, @var{p}) ! @deftypefnx {Function File} {@var{pp} = } mkpp (@var{x}, @var{p}, @var{d}) ! Construct a piece-wise polynomial structure from sample points ! @var{x} and coefficients @var{p}. The ith row of @var{p}, ! @code{@var{p} (@var{i},:)}, contains the coefficients for the polynomial ! over the @var{i}-th interval, ordered from highest to ! lowest. There must be one row for each interval in @var{x}, so ! @code{rows (@var{p}) == length (@var{x}) - 1}. ! You can concatenate multiple polynomials of the same order over the ! same set of intervals using @code{@var{p} = [ @var{p1}; @var{p2}; ! @dots{}; @var{pd} ]}. In this case, @code{rows (@var{p}) == @var{d} ! * (length (@var{x}) - 1)}. ! @var{d} specifies the shape of the matrix @var{p} for all except the ! last dimension. If @var{d} is not specified it will be computed as ! @code{round (rows (@var{p}) / (length (@var{x}) - 1))} instead. - @seealso{unmkpp, ppval, spline} - @end deftypefn - polyout - -*- texinfo -*- - @deftypefn {Function File} {} polyout (@var{c}, @var{x}) - Write formatted polynomial - @iftex - @tex - $$ c(x) = c_1 x^n + \ldots + c_n x + c_{n+1} $$ - @end tex - @end iftex - @ifinfo @example ! c(x) = c(1) * x^n + ... + c(n) x + c(n+1) @end example - @end ifinfo - and return it as a string or write it to the screen (if - @var{nargout} is zero). - @var{x} defaults to the string @code{"s"}. - @seealso{polyval, polyvalm, poly, roots, conv, deconv, residue, - filter, polyderiv, and polyinteg} - @end deftypefn - polyreduce - -*- texinfo -*- - @deftypefn {Function File} {} polyreduce (@var{c}) - Reduces a polynomial coefficient vector to a minimum number of terms by - stripping off any leading zeros. - @seealso{poly, roots, conv, deconv, residue, filter, polyval, - polyvalm, polyderiv, polyinteg} - @end deftypefn - polygcd - -*- texinfo -*- - @deftypefn {Function File} {@var{q} =} polygcd (@var{b}, @var{a}, @var{tol}) ! Find greatest common divisor of two polynomials. This is equivalent ! to the polynomial found by multiplying together all the common roots. ! Together with deconv, you can reduce a ratio of two polynomials. ! Tolerance defaults to ! @example ! sqrt(eps). ! @end example ! Note that this is an unstable ! algorithm, so don't try it on large polynomials. - Example @example ! polygcd (poly(1:8), poly(3:12)) - poly(3:8) ! @result{} [ 0, 0, 0, 0, 0, 0, 0 ] ! deconv (poly(1:8), polygcd (poly(1:8), poly(3:12))) ... ! - poly(1:2) ! @result{} [ 0, 0, 0 ] @end example - @seealso{poly, polyinteg, polyderiv, polyreduce, roots, conv, deconv, - residue, filter, polyval, and polyvalm} - @end deftypefn - saveaudio - -*- texinfo -*- - @deftypefn {Function File} {} saveaudio (@var{name}, @var{x}, @var{ext}, @var{bps}) - Saves a vector @var{x} of audio data to the file - @file{@var{name}.@var{ext}}. The optional parameters @var{ext} and - @var{bps} determine the encoding and the number of bits per sample used - in the audio file (see @code{loadaudio}); defaults are @file{lin} and - 8, respectively. - @seealso{lin2mu, mu2lin, loadaudio, playaudio, setaudio, record} - @end deftypefn - loadaudio - -*- texinfo -*- - @deftypefn {Function File} {} loadaudio (@var{name}, @var{ext}, @var{bps}) - Loads audio data from the file @file{@var{name}.@var{ext}} into the - vector @var{x}. - - The extension @var{ext} determines how the data in the audio file is - interpreted; the extensions @file{lin} (default) and @file{raw} - correspond to linear, the extensions @file{au}, @file{mu}, or @file{snd} - to mu-law encoding. ! The argument @var{bps} can be either 8 (default) or 16, and specifies ! the number of bits per sample used in the audio file. ! @seealso{lin2mu, mu2lin, saveaudio, playaudio, setaudio, record} ! @end deftypefn ! setaudio ! -*- texinfo -*- ! @deftypefn {Function File} {} setaudio ([@var{w_type} [, @var{value}]]) ! Execute the shell command @samp{mixer [@var{w_type} [, @var{value}]]} ! @end deftypefn ! record ! -*- texinfo -*- ! @deftypefn {Function File} {} record (@var{sec}, @var{sampling_rate}) ! Records @var{sec} seconds of audio input into the vector @var{x}. The ! default value for @var{sampling_rate} is 8000 samples per second, or ! 8kHz. The program waits until the user types @key{RET} and then ! immediately starts to record. ! @seealso{lin2mu, mu2lin, loadaudio, saveaudio, playaudio, setaudio} ! @end deftypefn ! playaudio ! -*- texinfo -*- ! @deftypefn {Function File} {} playaudio (@var{name}, @var{ext}) ! @deftypefnx {Function File} {} playaudio (@var{x}) ! Plays the audio file @file{@var{name}.@var{ext}} or the audio data ! stored in the vector @var{x}. ! @seealso{lin2mu, mu2lin, loadaudio, saveaudio, setaudio, record} ! @end deftypefn ! mu2lin ! -*- texinfo -*- ! @deftypefn {Function File} {} mu2lin (@var{x}, @var{bps}) ! Converts audio data from linear to mu-law. Mu-law values are 8-bit ! unsigned integers. Linear values use @var{n}-bit signed integers ! or floating point values in the range -1<=y<=1 if @var{n} is 0. If ! @var{n} is not specified it defaults to 8. ! @seealso{lin2mu, loadaudio, saveaudio, playaudio, setaudio, record} ! @end deftypefn ! wavwrite ! -*- texinfo -*- ! @deftypefn {Function File} {} wavwrite (@var{y}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{bits}, @var{filename}) ! Write @var{y} to the canonical RIFF/WAVE sound file @var{filename} ! with sample rate @var{fs} and bits per sample @var{bits}. The ! default sample rate is 8000 Hz with 16-bits per sample. Each column ! of the data represents a separate channel. ! @seealso{wavread} ! @end deftypefn ! lin2mu ! -*- texinfo -*- ! @deftypefn {Function File} {} lin2mu (@var{x}, @var{n}) ! Converts audio data from linear to mu-law. Mu-law values use 8-bit ! unsigned integers. Linear values use @var{n}-bit signed integers or ! floating point values in the range -1<=@var{x}<=1 if @var{n} is 0. ! If @var{n} is not specified it defaults to 0, 8 or 16 depending on ! the range values in @var{x}. ! @seealso{mu2lin, loadaudio, saveaudio, playaudio, setaudio, record} ! @end deftypefn ! wavread ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} wavread (@var{filename}) ! Load the RIFF/WAVE sound file @var{filename}, and return the samples ! in vector @var{y}. If the file contains multichannel data, then ! @var{y} is a matrix with the channels represented as columns. ! @deftypefnx {Function File} {[@var{y}, @var{Fs}, @var{bits}] =} wavread (@var{filename}) ! Additionally return the sample rate (@var{fs}) in Hz and the number of bits ! per sample (@var{bits}). ! @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename}, @var{n}) ! Read only the first @var{n} samples from each channel. ! @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename},[@var{n1} @var{n2}]) ! Read only samples @var{n1} through @var{n2} from each channel. ! @deftypefnx {Function File} {[@var{samples}, @var{channels}] =} wavread (@var{filename}, "size") ! Return the number of samples (@var{n}) and channels (@var{ch}) ! instead of the audio data. ! @seealso{wavwrite} @end deftypefn ! __pltopt__ ! Undocumented internal function. ! quiver -*- texinfo -*- ! @deftypefn {Function File} {} quiver (@var{u}, @var{v}) ! @deftypefnx {Function File} {} quiver (@var{x}, @var{y}, @var{u}, @var{v}) ! @deftypefnx {Function File} {} quiver (@dots{}, @var{s}) ! @deftypefnx {Function File} {} quiver (@dots{}, @var{style}) ! @deftypefnx {Function File} {} quiver (@dots{}, 'filled') ! @deftypefnx {Function File} {} quiver (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} quiver (@dots{}) ! Plot the @code{(@var{u}, @var{v})} components of a vector field in ! an @code{(@var{x}, @var{y})} meshgrid. If the grid is uniform, you can ! specify @var{x} and @var{y} as vectors. ! If @var{x} and @var{y} are undefined they are assumed to be ! @code{(1:@var{m}, 1:@var{n})} where @code{[@var{m}, @var{n}] = ! size(@var{u})}. ! The variable @var{s} is a scalar defining a scaling factor to use for ! the arrows of the field relative to the mesh spacing. A value of 0 ! disables all scaling. The default value is 1. The style to use for the plot can be defined with a line style @var{style} in a similar manner to the line styles used with the @code{plot} command. - If a marker is specified then markers at the grid points of the vectors are - printed rather than arrows. If the argument 'filled' is given then the - markers as filled. The optional return value @var{h} provides a list of handles to the the parts of the vector field (body, arrow and marker). @example @group ! [x, y] = meshgrid (1:2:20); ! quiver (x, y, sin (2*pi*x/10), sin (2*pi*y/10)); @end group @end example ! @seealso{plot} @end deftypefn ! clf -*- texinfo -*- ! @deftypefn {Function File} {} clf () ! Clear the current figure. ! @seealso{close, delete} @end deftypefn ! meshc -*- texinfo -*- ! @deftypefn {Function File} {} meshc (@var{x}, @var{y}, @var{z}) ! Plot a mesh and contour given matrices @var{x}, and @var{y} from ! @code{meshgrid} and a matrix @var{z} corresponding to the @var{x} and ! @var{y} coordinates of the mesh. If @var{x} and @var{y} are vectors, ! then a typical vertex is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, ! columns of @var{z} correspond to different @var{x} values and rows of ! @var{z} correspond to different @var{y} values. ! @seealso{meshgrid, mesh, contour} @end deftypefn ! __axis_label__ ! Undocumented internal function. ! zlabel -*- texinfo -*- ! @deftypefn {Function File} {} zlabel (@var{string}) ! @deftypefnx {Function File} {} zlabel (@var{h}, @var{string}) ! See xlabel. @end deftypefn ! gcf -*- texinfo -*- ! @deftypefn {Function File} {} gcf () ! Return the current figure handle. If a figure does not exist, create ! one and return its handle. The handle may then be used to examine or ! set properties of the figure. For example, ! @example ! @group ! fplot (@@sin, [-10, 10]); ! fig = gcf (); ! set (fig, "visible", "off"); ! @end group ! @end example ! @noindent ! plots a sine wave, finds the handle of the current figure, and then ! makes that figure invisible. Setting the visible property of the ! figure to @code{"on"} will cause it to be displayed again. ! @seealso{get, set} @end deftypefn ! colorbar -*- texinfo -*- ! @deftypefn {Function File} {} colorbar (@var{s}) ! @deftypefnx {Function File} {} colorbar ('peer', @var{h}, @dots{}) ! Adds a colorbar to the current axes. Valid values for @var{s} are ! @table @asis ! @item 'EastOutside' ! Place the colorbar outside the plot to the right. This is the default. ! @item 'East' ! Place the colorbar inside the plot to the right. ! @item 'WestOutside' ! Place the colorbar outside the plot to the left. ! @item 'West' ! Place the colorbar inside the plot to the left. ! @item 'NorthOutside' ! Place the colorbar above the plot. ! @item 'North' ! Place the colorbar at the top of the plot. ! @item 'SouthOutside' ! Place the colorbar under the plot. ! @item 'South' ! Place the colorbar at the bottom of the plot. ! @item 'Off', 'None' ! Remove any existing colorbar from the plot. ! @end table ! If the argument 'peer' is given, then the following argument is treated ! as the axes handle on which to add the colorbar. @end deftypefn ! box -*- texinfo -*- ! @deftypefn {Function File} {} box (@var{arg}) ! @deftypefnx {Function File} {} box (@var{h}, @dots{}) ! Control the display of a border around the plot. ! The argument may be either @code{"on"} or @code{"off"}. If it is ! omitted, the current box state is toggled. ! @seealso{grid} @end deftypefn ! ndgrid -*- texinfo -*- ! @deftypefn {Function File} {[@var{y1}, @var{y2}, @dots{}, @var{y}n] =} ndgrid (@var{x1}, @var{x2}, @dots{}, @var{x}n) ! @deftypefnx {Function File} {[@var{y1}, @var{y2}, @dots{}, @var{y}n] =} ndgrid (@var{x}) ! Given n vectors @var{x1}, @dots{} @var{x}n, @code{ndgrid} returns ! n arrays of dimension n. The elements of the ith output argument ! contains the elements of the vector @var{x}i repeated over all ! dimensions different from the ith dimension. Calling ndgrid with ! only one input argument @var{x} is equivalent of calling ndgrid with ! all n input arguments equal to @var{x}: ! [@var{y1}, @var{y2}, @dots{}, @var{y}n] = ndgrid (@var{x}, @dots{}, @var{x}) ! @seealso{meshgrid} @end deftypefn ! isfigure -*- texinfo -*- ! @deftypefn {Function File} {} isfigure (@var{h}) ! Return true if @var{h} is a graphics handle that contains a figure ! object and false otherwise. @end deftypefn ! __go_draw_axes__ ! Undocumented internal function. ! __patch__ Undocumented internal function. ! loglog -*- texinfo -*- ! @deftypefn {Function File} {} loglog (@var{args}) ! Produce a two-dimensional plot using log scales for both axes. See ! the description of @code{plot} for a description of the arguments ! that @code{loglog} will accept. ! @seealso{plot, semilogx, semilogy} @end deftypefn ! pie -*- texinfo -*- ! @deftypefn {Function File} {} pie (@var{y}) ! @deftypefnx {Function File} {} pie (@var{y}, @var{explode}) ! @deftypefnx {Function File} {} pie (@dots{}, @var{labels}) ! @deftypefnx {Function File} {} pie (@var{h}, @dots{}); ! @deftypefnx {Function File} {@var{h} =} pie (@dots{}); ! Produce a pie chart. ! ! Called with a single vector arrgument, produces a pie chart of the ! elements in @var{x}, with the size of the slice determined by percentage ! size of the values of @var{x}. ! ! The variable @var{explode} is a vector of the same length as @var{x} that ! if non zero 'explodes' the slice from the pie chart. ! ! If given @var{labels} is a cell array of strings of the same length as ! @var{x}, giving the labels of each of the slices of the pie chart. ! ! The optional return value @var{h} provides a handle to the patch object. ! @seealso{bar, stem} @end deftypefn ! __area__ ! Undocumented internal function. ! stairs -*- texinfo -*- ! @deftypefn {Function File} {} stairs (@var{x}, @var{y}) ! Produce a stairstep plot. The arguments may be vectors or matrices. ! ! If only one argument is given, it is taken as a vector of y-values ! and the x coordinates are taken to be the indices of the elements. ! ! If two output arguments are specified, the data are generated but ! not plotted. For example, ! ! @example ! stairs (x, y); ! @end example ! ! @noindent ! and @example ! @group ! [xs, ys] = stairs (x, y); ! plot (xs, ys); ! @end group @end example @noindent ! are equivalent. ! @seealso{plot, semilogx, semilogy, loglog, polar, mesh, contour, ! bar, xlabel, ylabel, title} @end deftypefn ! plotyy -*- texinfo -*- ! @deftypefn {Function File} {} plotyy (@var{x1}, @var{y1}, @var{x2}, @var{y2}) ! @deftypefnx {Function File} {} plotyy (@dots{}, @var{fun}) ! @deftypefnx {Function File} {} plotyy (@dots{}, @var{fun1}, @var{fun2}) ! @deftypefnx {Function File} {} plotyy (@var{h}, @dots{}) ! @deftypefnx {Function File} {[@var{ax}, @var{h1}, @var{h2}] =} plotyy (@dots{}) ! Plots two sets of data with independent y-axes. The arguments @var{x1} and ! @var{y1} define the arguments for the first plot and @var{x1} and @var{y2} ! for the second. ! ! By default the arguments are evaluated with ! @code{feval (@@plot, @var{x}, @var{y})}. However the type of plot can be ! modified with the @var{fun} argument, in which case the plots are ! generated by @code{feval (@var{fun}, @var{x}, @var{y})}. @var{fun} can be ! a function handle, an inline function or a string of a function name. ! ! The function to use for each of the plots can be independently defined ! with @var{fun1} and @var{fun2}. ! ! If given, @var{h} defines the principal axis in which to plot the @var{x1} ! and @var{y1} data. The return value @var{ax} is a two element vector with ! the axis handles of the two plots. @var{h1} and @var{h2} are handles to ! the objects generated by the plot commands. ! ! @example ! @group ! x = 0:0.1:2*pi; ! y1 = sin (x); ! y2 = exp (x - 1); ! ax = plotyy (x, y1, x - 1, y2, @@plot, @@semilogy); ! xlabel ("X"); ! ylabel (ax(1), "Axis 1"); ! ylabel (ax(2), "Axis 2"); ! @end group ! @end example @end deftypefn ! __plt2mm__ Undocumented internal function. ! legend -*- texinfo -*- ! @deftypefn {Function File} {} legend (@var{st1}, @var{st2}, @dots{}) ! @deftypefnx {Function File} {} legend (@var{st1}, @var{st2}, @dots{}, "location", @var{pos}) ! @deftypefnx {Function File} {} legend (@var{matstr}) ! @deftypefnx {Function File} {} legend (@var{matstr}, "location", @var{pos}) ! @deftypefnx {Function File} {} legend (@var{cell}) ! @deftypefnx {Function File} {} legend (@var{cell}, "location", @var{pos}) ! @deftypefnx {Function File} {} legend ('@var{func}') ! ! Display a legend for the current axes using the specified strings ! as labels. Legend entries may be specified as individual character ! string arguments, a character array, or a cell array of character ! strings. Legend works on line graphs, bar graphs, etc. A plot must ! exist before legend is called. ! The optional parameter @var{pos} specifies the location of the legend ! as follows: ! ! @multitable @columnfractions 0.06 0.14 0.80 ! @item @tab north @tab ! center top ! @item @tab south @tab ! center bottom ! @item @tab east @tab ! right center ! @item @tab west @tab ! left center ! @item @tab northeast @tab ! right top (default) ! @item @tab northwest @tab ! left top ! @item @tab southeast @tab ! right bottom ! @item @tab southwest @tab ! left bottom ! @item ! @item @tab outside @tab ! can be appended to any location string ! @end multitable ! ! Some specific functions are directly available using @var{func}: ! ! @table @asis ! @item "show" ! Show legends from the plot ! @item "hide" ! @itemx "off" ! Hide legends from the plot ! @item "boxon" ! Draw a box around legends ! @item "boxoff" ! Withdraw the box around legends ! @item "left" ! Text is to the left of the keys ! @item "right" ! Text is to the right of the keys ! @end table ! @end deftypefn ! print ! -*- texinfo -*- ! @deftypefn {Function File} {} print (@var{filename}, @var{options}) ! Print a graph, or save it to a file ! ! @var{filename} defines the file name of the output file. If no ! filename is specified, output is sent to the printer. @var{options}: @table @code --- 3,4980 ---- ### This file is generated automatically from the Octave sources. ### Edit those files instead and run make to update this file. ! geometric_rnd -*- texinfo -*- ! @deftypefn {Function File} {} geometric_rnd (@var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} geometric_rnd (@var{p}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! geometric distribution with parameter @var{p}, which must be a scalar ! or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are given create a matrix with @var{r} rows and ! @var{c} columns. Or if @var{sz} is a vector, create a matrix of size ! @var{sz}. ! @end deftypefn ! meshdom ! -*- texinfo -*- ! @deftypefn {Function File} {} meshdom (@var{x}, @var{y}) ! This function has been deprecated. Use @code{meshgrid} instead. ! @end deftypefn ! is_square ! -*- texinfo -*- ! @deftypefn {Function File} {} is_square (@var{x}) ! This function has been deprecated. Use issquare instead. ! @end deftypefn ! poisson_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} poisson_pdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the poisson distribution with parameter @var{lambda}. ! @end deftypefn ! weibull_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} weibull_cdf (@var{x}, @var{shape}, @var{scale}) ! Compute the cumulative distribution function (CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}, which is @example ! 1 - exp(-(x/shape)^scale) @end example @noindent ! for @var{x} >= 0. ! @end deftypefn ! weibpdf ! -*- texinfo -*- ! @deftypefn {Function File} {} weibpdf (@var{x}, @var{scale}, @var{shape}) ! Compute the probability density function (PDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape} which is given by @example ! scale * shape^(-scale) * x^(scale-1) * exp(-(x/shape)^scale) @end example @noindent ! for @var{x} > 0. @end deftypefn ! normal_cdf -*- texinfo -*- ! @deftypefn {Function File} {} normal_cdf (@var{x}, @var{m}, @var{v}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the normal distribution with mean ! @var{m} and variance @var{v}. ! Default values are @var{m} = 0, @var{v} = 1. @end deftypefn ! chisquare_inv -*- texinfo -*- ! @deftypefn {Function File} {} chisquare_inv (@var{x}, @var{n}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the chisquare distribution with @var{n} degrees of ! freedom. @end deftypefn ! gamma_pdf -*- texinfo -*- ! @deftypefn {Function File} {} gamma_pdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, return the probability density function ! (PDF) at @var{x} of the Gamma distribution with parameters @var{a} ! and @var{b}. @end deftypefn ! t_inv -*- texinfo -*- ! @deftypefn {Function File} {} t_inv (@var{x}, @var{n}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the t (Student) distribution with parameter ! @var{n}. ! @end deftypefn ! pascal_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} pascal_pdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the Pascal (negative binomial) distribution with ! parameters @var{n} and @var{p}. ! The number of failures in a Bernoulli experiment with success ! probability @var{p} before the @var{n}-th success follows this ! distribution. @end deftypefn ! isstr -*- texinfo -*- ! @deftypefn {Function File} {} isstr (@var{a}) ! This function has been deprecated. Use ischar instead. @end deftypefn ! is_struct -*- texinfo -*- ! @deftypefn {Function File} {} is_struct (@var{a}) ! This function has been deprecated. Use isstruct instead. @end deftypefn ! chisquare_pdf -*- texinfo -*- ! @deftypefn {Function File} {} chisquare_pdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the chisquare distribution with @var{n} degrees ! of freedom. @end deftypefn ! setstr -*- texinfo -*- ! @deftypefn {Function File} {} setstr (@var{s}) ! This function has been deprecated. Use char instead. @end deftypefn ! uniform_cdf -*- texinfo -*- ! @deftypefn {Function File} {} uniform_cdf (@var{x}, @var{a}, @var{b}) ! Return the CDF at @var{x} of the uniform distribution on [@var{a}, ! @var{b}], i.e., PROB (uniform (@var{a}, @var{b}) <= x). ! ! Default values are @var{a} = 0, @var{b} = 1. @end deftypefn ! weibull_pdf -*- texinfo -*- ! @deftypefn {Function File} {} weibull_pdf (@var{x}, @var{shape}, @var{scale}) ! Compute the probability density function (PDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape} which is given by @example ! scale * shape^(-scale) * x^(scale-1) * exp(-(x/shape)^scale) @end example @noindent ! for @var{x} > 0. @end deftypefn ! is_complex -*- texinfo -*- ! @deftypefn {Function File} {} is_complex (@var{a}) ! This function has been deprecated. Use iscomplex instead. @end deftypefn ! lognormal_inv -*- texinfo -*- ! @deftypefn {Function File} {} lognormal_inv (@var{x}, @var{a}, @var{v}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the lognormal distribution with parameters @var{a} ! and @var{v}. If a random variable follows this distribution, its ! logarithm is normally distributed with mean @code{log (@var{a})} and ! variance @var{v}. ! ! Default values are @var{a} = 1, @var{v} = 1. @end deftypefn ! t_pdf -*- texinfo -*- ! @deftypefn {Function File} {} t_pdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the @var{t} (Student) distribution with @var{n} ! degrees of freedom. @end deftypefn ! com2str -*- texinfo -*- ! @deftypefn {Function File} {} com2str (@var{zz}, @var{flg}) ! This function has been deprecated. Use num2str instead. ! ! Convert complex number to a string. ! @strong{Inputs} ! @table @var ! @item zz ! complex number ! @item flg ! format flag ! 0 (default): -1, 0, 1, 1i, 1 + 0.5i ! 1 (for use with zpout): -1, 0, + 1, + 1i, + 1 + 0.5i ! @end table @end deftypefn ! polyinteg -*- texinfo -*- ! @deftypefn {Function File} {} polyinteg (@var{c}) ! Return the coefficients of the integral of the polynomial whose ! coefficients are represented by the vector @var{c}. ! ! The constant of integration is set to zero. ! @seealso{poly, polyderiv, polyreduce, roots, conv, deconv, residue, ! filter, polyval, and polyvalm} @end deftypefn ! f_rnd -*- texinfo -*- ! @deftypefn {Function File} {} f_rnd (@var{m}, @var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} f_rnd (@var{m}, @var{n}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the F ! distribution with @var{m} and @var{n} degrees of freedom. Both ! @var{m} and @var{n} must be scalar or of size @var{r} by @var{c}. ! If @var{sz} is a vector the random samples are in a matrix of ! size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{m} and @var{n}. @end deftypefn ! exponential_rnd -*- texinfo -*- ! @deftypefn {Function File} {} exponential_rnd (@var{lambda}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} exponential_rnd (@var{lambda}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! exponential distribution with parameter @var{lambda}, which must be a ! scalar or of size @var{r} by @var{c}. Or if @var{sz} is a vector, ! create a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{lambda}. @end deftypefn ! lognormal_rnd -*- texinfo -*- ! @deftypefn {Function File} {} lognormal_rnd (@var{a}, @var{v}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} lognormal_rnd (@var{a}, @var{v}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! lognormal distribution with parameters @var{a} and @var{v}. Both ! @var{a} and @var{v} must be scalar or of size @var{r} by @var{c}. ! Or if @var{sz} is a vector, create a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{v}. @end deftypefn ! binomial_inv -*- texinfo -*- ! @deftypefn {Function File} {} binomial_inv (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! binomial distribution with parameters @var{n} and @var{p}. @end deftypefn ! poisson_rnd -*- texinfo -*- ! @deftypefn {Function File} {} poisson_rnd (@var{lambda}, @var{r}, @var{c}) ! Return an @var{r} by @var{c} matrix of random samples from the ! Poisson distribution with parameter @var{lambda}, which must be a ! scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{lambda}. @end deftypefn ! weibinv -*- texinfo -*- ! @deftypefn {Function File} {} weibinv (@var{x}, @var{scale}, @var{shape}) ! Compute the quantile (the inverse of the CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}. ! @end deftypefn ! is_matrix ! -*- texinfo -*- ! @deftypefn {Function File} {} is_matrix (@var{a}) ! This function has been deprecated. Use ismatrix instead. ! @end deftypefn ! exponential_inv ! -*- texinfo -*- ! @deftypefn {Function File} {} exponential_inv (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the exponential distribution with parameter ! @var{lambda}. ! @end deftypefn ! geometric_inv ! -*- texinfo -*- ! @deftypefn {Function File} {} geometric_inv (@var{x}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! geometric distribution with parameter @var{p}. ! @end deftypefn ! lognormal_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} lognormal_cdf (@var{x}, @var{a}, @var{v}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the lognormal distribution with ! parameters @var{a} and @var{v}. If a random variable follows this ! distribution, its logarithm is normally distributed with mean ! @code{log (@var{a})} and variance @var{v}. ! Default values are @var{a} = 1, @var{v} = 1. ! @end deftypefn ! gamma_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} gamma_cdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Gamma distribution with parameters ! @var{a} and @var{b}. ! @end deftypefn ! clearplot ! -*- texinfo -*- ! @deftypefn {Function File} {} clearplot () ! This function has been deprecated. Use clf instead. ! @end deftypefn ! struct_contains ! -*- texinfo -*- ! @deftypefn {Function File} {} struct_contains (@var{expr}, @var{name}) ! This function has been deprecated. Use isfield instead. ! @end deftypefn ! normal_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} normal_rnd (@var{m}, @var{v}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} normal_rnd (@var{m}, @var{v}, @var{sz}) ! Return an @var{r} by @var{c} or @code{size (@var{sz})} matrix of ! random samples from the normal distribution with parameters @var{m} ! and @var{v}. Both @var{m} and @var{v} must be scalar or of size ! @var{r} by @var{c}. + If @var{r} and @var{c} are omitted, the size of the result matrix is + the common size of @var{m} and @var{v}. @end deftypefn ! is_bool -*- texinfo -*- ! @deftypefn {Function File} {} is_bool (@var{a}) ! This function has been deprecated. Use isbool instead. ! @end deftypefn ! gamma_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} gamma_rnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} gamma_rnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the Gamma distribution with parameters @var{a} ! and @var{b}. Both @var{a} and @var{b} must be scalar or of size ! @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. ! @end deftypefn ! pascal_inv ! -*- texinfo -*- ! @deftypefn {Function File} {} pascal_inv (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! Pascal (negative binomial) distribution with parameters @var{n} and ! @var{p}. ! The number of failures in a Bernoulli experiment with success ! probability @var{p} before the @var{n}-th success follows this ! distribution. ! @end deftypefn ! uniform_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} uniform_pdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the PDF at @var{x} of the uniform ! distribution on [@var{a}, @var{b}]. ! Default values are @var{a} = 0, @var{b} = 1. ! @end deftypefn ! exponential_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} exponential_cdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the exponential distribution with ! parameter @var{lambda}. ! The arguments can be of common size or scalar. ! @end deftypefn ! hypergeometric_inv ! -*- texinfo -*- ! @deftypefn {Function File} {} hypergeometric_inv (@var{x}, @var{m}, @var{t}, @var{n}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! hypergeometric distribution with parameters @var{m}, @var{t}, and ! @var{n}. ! The parameters @var{m}, @var{t}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. ! @end deftypefn ! wiener_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} wiener_rnd (@var{t}, @var{d}, @var{n}) ! Return a simulated realization of the @var{d}-dimensional Wiener Process ! on the interval [0, @var{t}]. If @var{d} is omitted, @var{d} = 1 is ! used. The first column of the return matrix contains time, the ! remaining columns contain the Wiener process. ! The optional parameter @var{n} gives the number of summands used for ! simulating the process over an interval of length 1. If @var{n} is ! omitted, @var{n} = 1000 is used. @end deftypefn ! lognormal_pdf -*- texinfo -*- ! @deftypefn {Function File} {} lognormal_pdf (@var{x}, @var{a}, @var{v}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the lognormal distribution with parameters ! @var{a} and @var{v}. If a random variable follows this distribution, ! its logarithm is normally distributed with mean @code{log (@var{a})} ! and variance @var{v}. ! Default values are @var{a} = 1, @var{v} = 1. ! @end deftypefn ! beta_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} beta_pdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, returns the PDF at @var{x} of the beta ! distribution with parameters @var{a} and @var{b}. ! @end deftypefn ! weibrnd ! -*- texinfo -*- ! @deftypefn {Function File} {} weibrnd (@var{scale}, @var{shape}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} weibrnd (@var{scale}, @var{shape}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! Weibull distribution with parameters @var{scale} and @var{shape} ! which must be scalar or of size @var{r} by @var{c}. Or if @var{sz} ! is a vector return a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{alpha} and @var{sigma}. @end deftypefn ! intersection -*- texinfo -*- ! @deftypefn {Function File} {} intersection (@var{x}, @var{y}) ! This function has been deprecated. Use intersect instead. @end deftypefn ! weibull_inv -*- texinfo -*- ! @deftypefn {Function File} {} weibull_inv (@var{x}, @var{shape}, @var{scale}) ! Compute the quantile (the inverse of the CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}. ! @end deftypefn ! weibcdf ! -*- texinfo -*- ! @deftypefn {Function File} {} weibcdf (@var{x}, @var{scale}, @var{shape}) ! Compute the cumulative distribution function (CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}, which is @example ! 1 - exp(-(x/shape)^scale) @end example ! ! @noindent ! for @var{x} >= 0. @end deftypefn ! t_rnd -*- texinfo -*- ! @deftypefn {Function File} {} t_rnd (@var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} t_rnd (@var{n}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the t ! (Student) distribution with @var{n} degrees of freedom. @var{n} must ! be a scalar or of size @var{r} by @var{c}. Or if @var{sz} is a ! vector create a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{n}. @end deftypefn ! hypergeometric_pdf -*- texinfo -*- ! @deftypefn {Function File} {} hypergeometric_pdf (@var{x}, @var{m}, @var{t}, @var{n}) ! Compute the probability density function (PDF) at @var{x} of the ! hypergeometric distribution with parameters @var{m}, @var{t}, and ! @var{n}. This is the probability of obtaining @var{x} marked items ! when randomly drawing a sample of size @var{n} without replacement ! from a population of total size @var{t} containing @var{m} marked items. ! The arguments must be of common size or scalar. @end deftypefn ! binomial_pdf -*- texinfo -*- ! @deftypefn {Function File} {} binomial_pdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the binomial distribution with parameters @var{n} ! and @var{p}. @end deftypefn ! chisquare_rnd -*- texinfo -*- ! @deftypefn {Function File} {} chisquare_rnd (@var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} chisquare_rnd (@var{n}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the chisquare distribution with @var{n} degrees ! of freedom. @var{n} must be a scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{n}. @end deftypefn ! poisson_inv -*- texinfo -*- ! @deftypefn {Function File} {} poisson_inv (@var{x}, @var{lambda}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the Poisson distribution with parameter ! @var{lambda}. @end deftypefn ! beta_rnd -*- texinfo -*- ! @deftypefn {Function File} {} beta_rnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} beta_rnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or @code{size (@var{sz})} matrix of ! random samples from the Beta distribution with parameters @var{a} and ! @var{b}. Both @var{a} and @var{b} must be scalar or of size @var{r} ! by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. @end deftypefn ! chisquare_cdf -*- texinfo -*- ! @deftypefn {Function File} {} chisquare_cdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the chisquare distribution with @var{n} ! degrees of freedom. @end deftypefn ! hypergeometric_cdf -*- texinfo -*- ! @deftypefn {Function File} {} hypergeometric_cdf (@var{x}, @var{m}, @var{t}, @var{n}) ! Compute the cumulative distribution function (CDF) at @var{x} of the ! hypergeometric distribution with parameters @var{m}, @var{t}, and ! @var{n}. This is the probability of obtaining not more than @var{x} ! marked items when randomly drawing a sample of size @var{n} without ! replacement from a population of total size @var{t} containing ! @var{m} marked items. ! The parameters @var{m}, @var{t}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. @end deftypefn ! is_scalar -*- texinfo -*- ! @deftypefn {Function File} {} is_scalar (@var{a}) ! This function has been deprecated. Use isscalar instead. @end deftypefn ! uniform_rnd -*- texinfo -*- ! @deftypefn {Function File} {} uniform_rnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} uniform_rnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the uniform distribution on [@var{a}, @var{b}]. ! Both @var{a} and @var{b} must be scalar or of size @var{r} by @var{c}. ! ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. @end deftypefn ! struct_elements -*- texinfo -*- ! @deftypefn {Function File} {} struct_elements (@var{struct}) ! This function has been deprecated. Use fieldnames instead. @end deftypefn ! beta_inv -*- texinfo -*- ! @deftypefn {Function File} {} beta_inv (@var{x}, @var{a}, @var{b}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the Beta distribution with parameters @var{a} ! and @var{b}. @end deftypefn ! gamma_inv -*- texinfo -*- ! @deftypefn {Function File} {} gamma_inv (@var{x}, @var{a}, @var{b}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the Gamma distribution with parameters @var{a} ! and @var{b}. @end deftypefn ! clg -*- texinfo -*- ! @deftypefn {Function File} {} clg () ! This function has been deprecated. Use clf instead. @end deftypefn ! exponential_pdf -*- texinfo -*- ! @deftypefn {Function File} {} exponential_pdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the probability density function ! (PDF) of the exponential distribution with parameter @var{lambda}. @end deftypefn ! f_inv -*- texinfo -*- ! @deftypefn {Function File} {} f_inv (@var{x}, @var{m}, @var{n}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the F distribution with parameters @var{m} and ! @var{n}. @end deftypefn ! normal_pdf -*- texinfo -*- ! @deftypefn {Function File} {} normal_pdf (@var{x}, @var{m}, @var{v}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the normal distribution with mean @var{m} and ! variance @var{v}. ! Default values are @var{m} = 0, @var{v} = 1. ! @end deftypefn ! binomial_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} binomial_rnd (@var{n}, @var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} binomial_rnd (@var{n}, @var{p}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the binomial distribution with parameters @var{n} ! and @var{p}. Both @var{n} and @var{p} must be scalar or of size ! @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{n} and @var{p}. ! @end deftypefn ! pascal_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} pascal_cdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the CDF at x of the Pascal ! (negative binomial) distribution with parameters @var{n} and @var{p}. ! The number of failures in a Bernoulli experiment with success ! probability @var{p} before the @var{n}-th success follows this ! distribution. @end deftypefn ! geometric_pdf -*- texinfo -*- ! @deftypefn {Function File} {} geometric_pdf (@var{x}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the geometric distribution with parameter @var{p}. @end deftypefn ! is_vector -*- texinfo -*- ! @deftypefn {Function File} {} is_vector (@var{a}) ! This function has been deprecated. Use isvector instead. @end deftypefn ! f_cdf -*- texinfo -*- ! @deftypefn {Function File} {} f_cdf (@var{x}, @var{m}, @var{n}) ! For each element of @var{x}, compute the CDF at @var{x} of the F ! distribution with @var{m} and @var{n} degrees of freedom, i.e., ! PROB (F (@var{m}, @var{n}) <= @var{x}). @end deftypefn ! normal_inv -*- texinfo -*- ! @deftypefn {Function File} {} normal_inv (@var{x}, @var{m}, @var{v}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the normal distribution with mean @var{m} and ! variance @var{v}. ! Default values are @var{m} = 0, @var{v} = 1. @end deftypefn ! uniform_inv -*- texinfo -*- ! @deftypefn {Function File} {} uniform_inv (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the uniform distribution on [@var{a}, @var{b}]. ! Default values are @var{a} = 0, @var{b} = 1. @end deftypefn ! geometric_cdf -*- texinfo -*- ! @deftypefn {Function File} {} geometric_cdf (@var{x}, @var{p}) ! For each element of @var{x}, compute the CDF at @var{x} of the ! geometric distribution with parameter @var{p}. @end deftypefn ! binomial_cdf -*- texinfo -*- ! @deftypefn {Function File} {} binomial_cdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the CDF at @var{x} of the ! binomial distribution with parameters @var{n} and @var{p}. @end deftypefn ! hypergeometric_rnd -*- texinfo -*- ! @deftypefn {Function File} {} hypergeometric_rnd (@var{m}, @var{t}, @var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} hygernd (@var{m}, @var{t}, @var{n}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! hypergeometric distribution with parameters @var{m}, @var{t}, ! and @var{n}. ! ! The parameters @var{m}, @var{t}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. @end deftypefn ! beta_cdf -*- texinfo -*- ! @deftypefn {Function File} {} beta_cdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, returns the CDF at @var{x} of the beta ! distribution with parameters @var{a} and @var{b}, i.e., ! PROB (beta (@var{a}, @var{b}) <= @var{x}). @end deftypefn ! is_symmetric -*- texinfo -*- ! @deftypefn {Function File} {} issymmetric (@var{x}, @var{tol}) ! This function has been deprecated. Use issymmetric instead. ! @end deftypefn ! weibull_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} weibull_rnd (@var{shape}, @var{scale}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} weibull_rnd (@var{shape}, @var{scale}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! Weibull distribution with parameters @var{scale} and @var{shape} ! which must be scalar or of size @var{r} by @var{c}. Or if @var{sz} ! is a vector return a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{alpha} and @var{sigma}. ! @end deftypefn ! is_list ! -*- texinfo -*- ! @deftypefn {Function File} {} is_list (@var{a}) ! This function has been deprecated. Use islist instead. ! @end deftypefn ! t_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} t_cdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the CDF at @var{x} of the ! t (Student) distribution with @var{n} degrees of freedom, i.e., ! PROB (t(@var{n}) <= @var{x}). ! @end deftypefn ! poisson_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} poisson_cdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Poisson distribution with parameter ! lambda. ! @end deftypefn ! f_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} f_pdf (@var{x}, @var{m}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the F distribution with @var{m} and @var{n} ! degrees of freedom. ! @end deftypefn ! is_stream ! -*- texinfo -*- ! @deftypefn {Function File} {} is_stream (@var{a}) ! This function has been deprecated. Use isstream instead. ! @end deftypefn ! pascal_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} pascal_rnd (@var{n}, @var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} pascal_rnd (@var{n}, @var{p}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the Pascal ! (negative binomial) distribution with parameters @var{n} and @var{p}. ! Both @var{n} and @var{p} must be scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{n} and @var{p}. Or if @var{sz} is a vector, ! create a matrix of size @var{sz}. @end deftypefn ! hotelling_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{tsq}] =} hotelling_test (@var{x}, @var{m}) ! For a sample @var{x} from a multivariate normal distribution with unknown ! mean and covariance matrix, test the null hypothesis that @code{mean ! (@var{x}) == @var{m}}. ! Hotelling's @math{T^2} is returned in @var{tsq}. Under the null, ! @math{(n-p) T^2 / (p(n-1))} has an F distribution with @math{p} and ! @math{n-p} degrees of freedom, where @math{n} and @math{p} are the ! numbers of samples and variables, respectively. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value of the test is displayed. ! @end deftypefn ! t_test_2 ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{t}, @var{df}] =} t_test_2 (@var{x}, @var{y}, @var{alt}) ! For two samples x and y from normal distributions with unknown means ! and unknown equal variances, perform a two-sample t-test of the null ! hypothesis of equal means. Under the null, the test statistic ! @var{t} follows a Student distribution with @var{df} degrees of ! freedom. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{mean (@var{x}) != mean (@var{y})}. If @var{alt} is @code{">"}, ! the one-sided alternative @code{mean (@var{x}) > mean (@var{y})} is ! used. Similarly for @code{"<"}, the one-sided alternative @code{mean ! (@var{x}) < mean (@var{y})} is used. The default is the two-sided ! case. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! t_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{t}, @var{df}] =} t_test (@var{x}, @var{m}, @var{alt}) ! For a sample @var{x} from a normal distribution with unknown mean and ! variance, perform a t-test of the null hypothesis @code{mean ! (@var{x}) == @var{m}}. Under the null, the test statistic @var{t} ! follows a Student distribution with @code{@var{df} = length (@var{x}) ! - 1} degrees of freedom. ! ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{mean (@var{x}) != @var{m}}. If @var{alt} is @code{">"}, the ! one-sided alternative @code{mean (@var{x}) > @var{m}} is considered. ! Similarly for @var{"<"}, the one-sided alternative @code{mean ! (@var{x}) < @var{m}} is considered. The default is the two-sided ! case. ! ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! cor_test -*- texinfo -*- ! @deftypefn {Function File} {} cor_test (@var{x}, @var{y}, @var{alt}, @var{method}) ! Test whether two samples @var{x} and @var{y} come from uncorrelated ! populations. ! The optional argument string @var{alt} describes the alternative ! hypothesis, and can be @code{"!="} or @code{"<>"} (non-zero), ! @code{">"} (greater than 0), or @code{"<"} (less than 0). The ! default is the two-sided case. ! The optional argument string @var{method} specifies on which ! correlation coefficient the test should be based. If @var{method} is ! @code{"pearson"} (default), the (usual) Pearson's product moment ! correlation coefficient is used. In this case, the data should come ! from a bivariate normal distribution. Otherwise, the other two ! methods offer nonparametric alternatives. If @var{method} is ! @code{"kendall"}, then Kendall's rank correlation tau is used. If ! @var{method} is @code{"spearman"}, then Spearman's rank correlation ! rho is used. Only the first character is necessary. ! The output is a structure with the following elements: ! @table @var ! @item pval ! The p-value of the test. ! @item stat ! The value of the test statistic. ! @item dist ! The distribution of the test statistic. ! @item params ! The parameters of the null distribution of the test statistic. ! @item alternative ! The alternative hypothesis. ! @item method ! The method used for testing. ! @end table + If no output argument is given, the p-value is displayed. @end deftypefn ! f_test_regression -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{f}, @var{df_num}, @var{df_den}] =} f_test_regression (@var{y}, @var{x}, @var{rr}, @var{r}) ! Perform an F test for the null hypothesis rr * b = r in a classical ! normal regression model y = X * b + e. ! Under the null, the test statistic @var{f} follows an F distribution ! with @var{df_num} and @var{df_den} degrees of freedom. ! The p-value (1 minus the CDF of this distribution at @var{f}) is ! returned in @var{pval}. ! ! If not given explicitly, @var{r} = 0. ! ! If no output argument is given, the p-value is displayed. @end deftypefn ! z_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{z}] =} z_test (@var{x}, @var{m}, @var{v}, @var{alt}) ! Perform a Z-test of the null hypothesis @code{mean (@var{x}) == ! @var{m}} for a sample @var{x} from a normal distribution with unknown ! mean and known variance @var{v}. Under the null, the test statistic ! @var{z} follows a standard normal distribution. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{mean (@var{x}) != @var{m}}. If @var{alt} is @code{">"}, the ! one-sided alternative @code{mean (@var{x}) > @var{m}} is considered. ! Similarly for @code{"<"}, the one-sided alternative @code{mean ! (@var{x}) < @var{m}} is considered. The default is the two-sided ! case. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value of the test is displayed ! along with some information. ! @end deftypefn ! welch_test ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{t}, @var{df}] =} welch_test (@var{x}, @var{y}, @var{alt}) ! For two samples @var{x} and @var{y} from normal distributions with ! unknown means and unknown and not necessarily equal variances, ! perform a Welch test of the null hypothesis of equal means. ! Under the null, the test statistic @var{t} approximately follows a ! Student distribution with @var{df} degrees of freedom. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{mean (@var{x}) != @var{m}}. If @var{alt} is @code{">"}, the ! one-sided alternative mean(x) > @var{m} is considered. Similarly for ! @code{"<"}, the one-sided alternative mean(x) < @var{m} is ! considered. The default is the two-sided case. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! mcnemar_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{chisq}, @var{df}] =} mcnemar_test (@var{x}) ! For a square contingency table @var{x} of data cross-classified on ! the row and column variables, McNemar's test can be used for testing ! the null hypothesis of symmetry of the classification probabilities. ! Under the null, @var{chisq} is approximately distributed as chisquare ! with @var{df} degrees of freedom. ! The p-value (1 minus the CDF of this distribution at @var{chisq}) is ! returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! anova -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{f}, @var{df_b}, @var{df_w}] =} anova (@var{y}, @var{g}) ! Perform a one-way analysis of variance (ANOVA). The goal is to test ! whether the population means of data taken from @var{k} different ! groups are all equal. ! Data may be given in a single vector @var{y} with groups specified by ! a corresponding vector of group labels @var{g} (e.g., numbers from 1 ! to @var{k}). This is the general form which does not impose any ! restriction on the number of data in each group or the group labels. ! If @var{y} is a matrix and @var{g} is omitted, each column of @var{y} ! is treated as a group. This form is only appropriate for balanced ! ANOVA in which the numbers of samples from each group are all equal. ! Under the null of constant means, the statistic @var{f} follows an F ! distribution with @var{df_b} and @var{df_w} degrees of freedom. ! The p-value (1 minus the CDF of this distribution at @var{f}) is ! returned in @var{pval}. + If no output argument is given, the standard one-way ANOVA table is + printed. @end deftypefn ! kolmogorov_smirnov_test_2 -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{ks}, @var{d}] =} kolmogorov_smirnov_test_2 (@var{x}, @var{y}, @var{alt}) ! Perform a 2-sample Kolmogorov-Smirnov test of the null hypothesis ! that the samples @var{x} and @var{y} come from the same (continuous) ! distribution. I.e., if F and G are the CDFs corresponding to the ! @var{x} and @var{y} samples, respectively, then the null is that F == ! G. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative F ! != G. In this case, the test statistic @var{ks} follows a two-sided ! Kolmogorov-Smirnov distribution. If @var{alt} is @code{">"}, the ! one-sided alternative F > G is considered. Similarly for @code{"<"}, ! the one-sided alternative F < G is considered. In this case, the ! test statistic @var{ks} has a one-sided Kolmogorov-Smirnov ! distribution. The default is the two-sided case. ! The p-value of the test is returned in @var{pval}. ! The third returned value, @var{d}, is the test statistic, the maximum ! vertical distance between the two cumulative distribution functions. ! If no output argument is given, the p-value is displayed. @end deftypefn ! chisquare_test_independence -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{chisq}, @var{df}] =} chisquare_test_independence (@var{x}) ! Perform a chi-square test for independence based on the contingency ! table @var{x}. Under the null hypothesis of independence, ! @var{chisq} approximately has a chi-square distribution with ! @var{df} degrees of freedom. ! The p-value (1 minus the CDF of this distribution at chisq) of the ! test is returned in @var{pval}. ! ! If no output argument is given, the p-value is displayed. @end deftypefn ! kruskal_wallis_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{k}, @var{df}] =} kruskal_wallis_test (@var{x1}, @dots{}) ! Perform a Kruskal-Wallis one-factor "analysis of variance". ! Suppose a variable is observed for @var{k} > 1 different groups, and ! let @var{x1}, @dots{}, @var{xk} be the corresponding data vectors. ! Under the null hypothesis that the ranks in the pooled sample are not ! affected by the group memberships, the test statistic @var{k} is ! approximately chi-square with @var{df} = @var{k} - 1 degrees of ! freedom. ! If the data contains ties (some value appears more than once) ! @var{k} is divided by ! 1 - @var{sumTies} / ( @var{n}^3 - @var{n} ) ! where @var{sumTies} is the sum of @var{t}^2 - @var{t} over each group ! of ties where @var{t} is the number of ties in the group and @var{n} ! is the total number of values in the input data. For more info on ! this adjustment see "Use of Ranks in One-Criterion Variance Analysis" ! in Journal of the American Statistical Association, Vol. 47, ! No. 260 (Dec 1952) by William H. Kruskal and W. Allen Wallis. ! The p-value (1 minus the CDF of this distribution at @var{k}) is ! returned in @var{pval}. ! If no output argument is given, the p-value is displayed. ! @end deftypefn ! run_test ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{chisq}] =} run_test (@var{x}) ! Perform a chi-square test with 6 degrees of freedom based on the ! upward runs in the columns of @var{x}. Can be used to test whether ! @var{x} contains independent data. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value is displayed. @end deftypefn ! t_test_regression -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{t}, @var{df}] =} t_test_regression (@var{y}, @var{x}, @var{rr}, @var{r}, @var{alt}) ! Perform an t test for the null hypothesis @code{@var{rr} * @var{b} = ! @var{r}} in a classical normal regression model @code{@var{y} = ! @var{x} * @var{b} + @var{e}}. Under the null, the test statistic @var{t} ! follows a @var{t} distribution with @var{df} degrees of freedom. ! ! If @var{r} is omitted, a value of 0 is assumed. ! ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{@var{rr} * @var{b} != @var{r}}. If @var{alt} is @code{">"}, the ! one-sided alternative @code{@var{rr} * @var{b} > @var{r}} is used. ! Similarly for @var{"<"}, the one-sided alternative @code{@var{rr} * ! @var{b} < @var{r}} is used. The default is the two-sided case. ! ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! z_test_2 -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{z}] =} z_test_2 (@var{x}, @var{y}, @var{v_x}, @var{v_y}, @var{alt}) ! For two samples @var{x} and @var{y} from normal distributions with ! unknown means and known variances @var{v_x} and @var{v_y}, perform a ! Z-test of the hypothesis of equal means. Under the null, the test ! statistic @var{z} follows a standard normal distribution. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{mean (@var{x}) != mean (@var{y})}. If alt is @code{">"}, the ! one-sided alternative @code{mean (@var{x}) > mean (@var{y})} is used. ! Similarly for @code{"<"}, the one-sided alternative @code{mean ! (@var{x}) < mean (@var{y})} is used. The default is the two-sided ! case. ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed ! along with some information. @end deftypefn ! kolmogorov_smirnov_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{ks}] =} kolmogorov_smirnov_test (@var{x}, @var{dist}, @var{params}, @var{alt}) ! Perform a Kolmogorov-Smirnov test of the null hypothesis that the ! sample @var{x} comes from the (continuous) distribution dist. I.e., ! if F and G are the CDFs corresponding to the sample and dist, ! respectively, then the null is that F == G. ! ! The optional argument @var{params} contains a list of parameters of ! @var{dist}. For example, to test whether a sample @var{x} comes from ! a uniform distribution on [2,4], use @example ! kolmogorov_smirnov_test(x, "uniform", 2, 4) @end example @noindent ! @var{dist} can be any string for which a function @var{dist_cdf} ! that calculates the CDF of distribution @var{dist} exists. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative F ! != G. In this case, the test statistic @var{ks} follows a two-sided ! Kolmogorov-Smirnov distribution. If @var{alt} is @code{">"}, the ! one-sided alternative F > G is considered. Similarly for @code{"<"}, ! the one-sided alternative F > G is considered. In this case, the ! test statistic @var{ks} has a one-sided Kolmogorov-Smirnov ! distribution. The default is the two-sided case. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value is displayed. @end deftypefn ! u_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{z}] =} u_test (@var{x}, @var{y}, @var{alt}) ! For two samples @var{x} and @var{y}, perform a Mann-Whitney U-test of ! the null hypothesis PROB (@var{x} > @var{y}) == 1/2 == PROB (@var{x} ! < @var{y}). Under the null, the test statistic @var{z} approximately ! follows a standard normal distribution. Note that this test is ! equivalent to the Wilcoxon rank-sum test. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! PROB (@var{x} > @var{y}) != 1/2. If @var{alt} is @code{">"}, the ! one-sided alternative PROB (@var{x} > @var{y}) > 1/2 is considered. ! Similarly for @code{"<"}, the one-sided alternative PROB (@var{x} > ! @var{y}) < 1/2 is considered. The default is the two-sided case. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! var_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{f}, @var{df_num}, @var{df_den}] =} var_test (@var{x}, @var{y}, @var{alt}) ! For two samples @var{x} and @var{y} from normal distributions with ! unknown means and unknown variances, perform an F-test of the null ! hypothesis of equal variances. Under the null, the test statistic ! @var{f} follows an F-distribution with @var{df_num} and @var{df_den} ! degrees of freedom. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @code{var (@var{x}) != var (@var{y})}. If @var{alt} is @code{">"}, ! the one-sided alternative @code{var (@var{x}) > var (@var{y})} is ! used. Similarly for "<", the one-sided alternative @code{var ! (@var{x}) > var (@var{y})} is used. The default is the two-sided ! case. ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! sign_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{b}, @var{n}] =} sign_test (@var{x}, @var{y}, @var{alt}) ! For two matched-pair samples @var{x} and @var{y}, perform a sign test ! of the null hypothesis PROB (@var{x} > @var{y}) == PROB (@var{x} < ! @var{y}) == 1/2. Under the null, the test statistic @var{b} roughly ! follows a binomial distribution with parameters @code{@var{n} = sum ! (@var{x} != @var{y})} and @var{p} = 1/2. ! With the optional argument @code{alt}, the alternative of interest ! can be selected. If @var{alt} is @code{"!="} or @code{"<>"}, the ! null hypothesis is tested against the two-sided alternative PROB ! (@var{x} < @var{y}) != 1/2. If @var{alt} is @code{">"}, the ! one-sided alternative PROB (@var{x} > @var{y}) > 1/2 ("x is ! stochastically greater than y") is considered. Similarly for ! @code{"<"}, the one-sided alternative PROB (@var{x} > @var{y}) < 1/2 ! ("x is stochastically less than y") is considered. The default is ! the two-sided case. ! The p-value of the test is returned in @var{pval}. ! If no output argument is given, the p-value of the test is displayed. ! @end deftypefn ! manova ! -*- texinfo -*- ! @deftypefn {Function File} {} manova (@var{y}, @var{g}) ! Perform a one-way multivariate analysis of variance (MANOVA). The ! goal is to test whether the p-dimensional population means of data ! taken from @var{k} different groups are all equal. All data are ! assumed drawn independently from p-dimensional normal distributions ! with the same covariance matrix. ! The data matrix is given by @var{y}. As usual, rows are observations ! and columns are variables. The vector @var{g} specifies the ! corresponding group labels (e.g., numbers from 1 to @var{k}). ! The LR test statistic (Wilks' Lambda) and approximate p-values are ! computed and displayed. ! @end deftypefn ! wilcoxon_test ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{z}] =} wilcoxon_test (@var{x}, @var{y}, @var{alt}) ! For two matched-pair sample vectors @var{x} and @var{y}, perform a ! Wilcoxon signed-rank test of the null hypothesis PROB (@var{x} > ! @var{y}) == 1/2. Under the null, the test statistic @var{z} ! approximately follows a standard normal distribution when @var{n} > 25. ! @strong{Warning}: This function assumes a normal distribution for @var{z} ! and thus is invalid for @var{n} <= 25. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! PROB (@var{x} > @var{y}) != 1/2. If alt is @code{">"}, the one-sided ! alternative PROB (@var{x} > @var{y}) > 1/2 is considered. Similarly ! for @code{"<"}, the one-sided alternative PROB (@var{x} > @var{y}) < ! 1/2 is considered. The default is the two-sided case. ! The p-value of the test is returned in @var{pval}. ! ! If no output argument is given, the p-value of the test is displayed. @end deftypefn ! hotelling_test_2 -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{tsq}] =} hotelling_test_2 (@var{x}, @var{y}) ! For two samples @var{x} from multivariate normal distributions with ! the same number of variables (columns), unknown means and unknown ! equal covariance matrices, test the null hypothesis @code{mean ! (@var{x}) == mean (@var{y})}. ! Hotelling's two-sample @math{T^2} is returned in @var{tsq}. Under the null, + @iftex + @tex + $$ + {n_x+n_y-p-1) T^2 \over p(n_x+n_y-2)} + $$ + @end tex + @end iftex + @ifnottex @example ! (n_x+n_y-p-1) T^2 / (p(n_x+n_y-2)) @end example + @end ifnottex + + @noindent + has an F distribution with @math{p} and @math{n_x+n_y-p-1} degrees of + freedom, where @math{n_x} and @math{n_y} are the sample sizes and + @math{p} is the number of variables. + + The p-value of the test is returned in @var{pval}. + + If no output argument is given, the p-value of the test is displayed. @end deftypefn ! prop_test_2 -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{z}] =} prop_test_2 (@var{x1}, @var{n1}, @var{x2}, @var{n2}, @var{alt}) ! If @var{x1} and @var{n1} are the counts of successes and trials in ! one sample, and @var{x2} and @var{n2} those in a second one, test the ! null hypothesis that the success probabilities @var{p1} and @var{p2} ! are the same. Under the null, the test statistic @var{z} ! approximately follows a standard normal distribution. ! With the optional argument string @var{alt}, the alternative of ! interest can be selected. If @var{alt} is @code{"!="} or ! @code{"<>"}, the null is tested against the two-sided alternative ! @var{p1} != @var{p2}. If @var{alt} is @code{">"}, the one-sided ! alternative @var{p1} > @var{p2} is used. Similarly for @code{"<"}, ! the one-sided alternative @var{p1} < @var{p2} is used. ! The default is the two-sided case. ! The p-value of the test is returned in @var{pval}. + If no output argument is given, the p-value of the test is displayed. @end deftypefn ! bartlett_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{chisq}, @var{df}] =} bartlett_test (@var{x1}, @dots{}) ! Perform a Bartlett test for the homogeneity of variances in the data ! vectors @var{x1}, @var{x2}, @dots{}, @var{xk}, where @var{k} > 1. ! Under the null of equal variances, the test statistic @var{chisq} ! approximately follows a chi-square distribution with @var{df} degrees of ! freedom. ! The p-value (1 minus the CDF of this distribution at @var{chisq}) is ! returned in @var{pval}. ! If no output argument is given, the p-value is displayed. ! @end deftypefn ! chisquare_test_homogeneity ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{chisq}, @var{df}] =} chisquare_test_homogeneity (@var{x}, @var{y}, @var{c}) ! Given two samples @var{x} and @var{y}, perform a chisquare test for ! homogeneity of the null hypothesis that @var{x} and @var{y} come from ! the same distribution, based on the partition induced by the ! (strictly increasing) entries of @var{c}. ! For large samples, the test statistic @var{chisq} approximately follows a ! chisquare distribution with @var{df} = @code{length (@var{c})} ! degrees of freedom. ! The p-value (1 minus the CDF of this distribution at @var{chisq}) is ! returned in @var{pval}. ! ! If no output argument is given, the p-value is displayed. @end deftypefn ! stdnormal_pdf -*- texinfo -*- ! @deftypefn {Function File} {} stdnormal_pdf (@var{x}) ! For each element of @var{x}, compute the probability density function ! (PDF) of the standard normal distribution at @var{x}. @end deftypefn ! binoinv -*- texinfo -*- ! @deftypefn {Function File} {} binoinv (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! binomial distribution with parameters @var{n} and @var{p}. @end deftypefn ! frnd -*- texinfo -*- ! @deftypefn {Function File} {} frnd (@var{m}, @var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} frnd (@var{m}, @var{n}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the F ! distribution with @var{m} and @var{n} degrees of freedom. Both ! @var{m} and @var{n} must be scalar or of size @var{r} by @var{c}. ! If @var{sz} is a vector the random samples are in a matrix of ! size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{m} and @var{n}. @end deftypefn ! gamrnd -*- texinfo -*- ! @deftypefn {Function File} {} gamrnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} gamrnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the Gamma distribution with parameters @var{a} ! and @var{b}. Both @var{a} and @var{b} must be scalar or of size ! @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. ! @seealso{gamma, gammaln, gammainc, gampdf, gamcdf, gaminv} @end deftypefn ! norminv -*- texinfo -*- ! @deftypefn {Function File} {} norminv (@var{x}, @var{m}, @var{s}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the normal distribution with mean @var{m} and ! standard deviation @var{s}. ! Default values are @var{m} = 0, @var{s} = 1. @end deftypefn ! poisscdf -*- texinfo -*- ! @deftypefn {Function File} {} poisscdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Poisson distribution with parameter ! lambda. @end deftypefn ! poisspdf -*- texinfo -*- ! @deftypefn {Function File} {} poisspdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the poisson distribution with parameter @var{lambda}. @end deftypefn ! geocdf -*- texinfo -*- ! @deftypefn {Function File} {} geocdf (@var{x}, @var{p}) ! For each element of @var{x}, compute the CDF at @var{x} of the ! geometric distribution with parameter @var{p}. @end deftypefn ! empirical_inv -*- texinfo -*- ! @deftypefn {Function File} {} empirical_inv (@var{x}, @var{data}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the empirical distribution obtained from the ! univariate sample @var{data}. @end deftypefn ! gaminv -*- texinfo -*- ! @deftypefn {Function File} {} gaminv (@var{x}, @var{a}, @var{b}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the Gamma distribution with parameters @var{a} ! and @var{b}. ! @seealso{gamma, gammaln, gammainc, gampdf, gamcdf, gamrnd} @end deftypefn ! discrete_cdf -*- texinfo -*- ! @deftypefn {Function File} {} discrete_cdf (@var{x}, @var{v}, @var{p}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of a univariate discrete distribution which ! assumes the values in @var{v} with probabilities @var{p}. @end deftypefn ! cauchy_pdf -*- texinfo -*- ! @deftypefn {Function File} {} cauchy_pdf (@var{x}, @var{lambda}, @var{sigma}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the Cauchy distribution with location parameter ! @var{lambda} and scale parameter @var{sigma} > 0. Default values are ! @var{lambda} = 0, @var{sigma} = 1. @end deftypefn ! betarnd -*- texinfo -*- ! @deftypefn {Function File} {} betarnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} betarnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or @code{size (@var{sz})} matrix of ! random samples from the Beta distribution with parameters @var{a} and ! @var{b}. Both @var{a} and @var{b} must be scalar or of size @var{r} ! by @var{c}. ! ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. @end deftypefn ! empirical_rnd -*- texinfo -*- ! @deftypefn {Function File} {} empirical_rnd (@var{n}, @var{data}) ! @deftypefnx {Function File} {} empirical_rnd (@var{data}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} empirical_rnd (@var{data}, @var{sz}) ! Generate a bootstrap sample of size @var{n} from the empirical ! distribution obtained from the univariate sample @var{data}. ! If @var{r} and @var{c} are given create a matrix with @var{r} rows and ! @var{c} columns. Or if @var{sz} is a vector, create a matrix of size ! @var{sz}. @end deftypefn ! stdnormal_inv -*- texinfo -*- ! @deftypefn {Function File} {} stdnormal_inv (@var{x}) ! For each component of @var{x}, compute compute the quantile (the ! inverse of the CDF) at @var{x} of the standard normal distribution. @end deftypefn ! normcdf -*- texinfo -*- ! @deftypefn {Function File} {} normcdf (@var{x}, @var{m}, @var{s}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the normal distribution with mean ! @var{m} and standard deviation @var{s}. ! Default values are @var{m} = 0, @var{s} = 1. @end deftypefn ! gampdf -*- texinfo -*- ! @deftypefn {Function File} {} gampdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, return the probability density function ! (PDF) at @var{x} of the Gamma distribution with parameters @var{a} ! and @var{b}. ! @seealso{gamma, gammaln, gammainc, gamcdf, gaminv, gamrnd} ! @end deftypefn ! discrete_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} discrete_rnd (@var{n}, @var{v}, @var{p}) ! @deftypefnx {Function File} {} discrete_rnd (@var{v}, @var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} discrete_rnd (@var{v}, @var{p}, @var{sz}) ! Generate a row vector containing a random sample of size @var{n} from ! the univariate distribution which assumes the values in @var{v} with ! probabilities @var{p}. @var{n} must be a scalar. ! If @var{r} and @var{c} are given create a matrix with @var{r} rows and ! @var{c} columns. Or if @var{sz} is a vector, create a matrix of size ! @var{sz}. @end deftypefn ! chi2cdf -*- texinfo -*- ! @deftypefn {Function File} {} chi2cdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the chisquare distribution with @var{n} ! degrees of freedom. @end deftypefn ! expinv -*- texinfo -*- ! @deftypefn {Function File} {} expinv (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the exponential distribution with mean ! @var{lambda}. @end deftypefn ! chi2pdf -*- texinfo -*- ! @deftypefn {Function File} {} chisquare_pdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the chisquare distribution with @var{n} degrees ! of freedom. @end deftypefn ! unifcdf -*- texinfo -*- ! @deftypefn {Function File} {} unifcdf (@var{x}, @var{a}, @var{b}) ! Return the CDF at @var{x} of the uniform distribution on [@var{a}, ! @var{b}], i.e., PROB (uniform (@var{a}, @var{b}) <= x). ! Default values are @var{a} = 0, @var{b} = 1. @end deftypefn ! betapdf -*- texinfo -*- ! @deftypefn {Function File} {} betapdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, returns the PDF at @var{x} of the beta ! distribution with parameters @var{a} and @var{b}. @end deftypefn ! stdnormal_rnd -*- texinfo -*- ! @deftypefn {Function File} {} stdnormal_rnd (@var{r}, @var{c}) ! @deftypefnx {Function File} {} stdnormal_rnd (@var{sz}) ! Return an @var{r} by @var{c} or @code{size (@var{sz})} matrix of ! random numbers from the standard normal distribution. @end deftypefn ! unidrnd -*- texinfo -*- ! @deftypefn {Function File} {} unidrnd (@var{mx}); ! @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{v}); ! @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{m}, @var{n}, @dots{}); ! Return random values from discrete uniform distribution, with maximum ! value(s) given by the integer @var{mx}, which may be a scalar or ! multidimensional array. ! If @var{mx} is a scalar, the size of the result is specified by ! the vector @var{v}, or by the optional arguments @var{m}, @var{n}, ! @dots{}. Otherwise, the size of the result is the same as the size ! of @var{mx}. @end deftypefn ! hygepdf -*- texinfo -*- ! @deftypefn {Function File} {} hygepdf (@var{x}, @var{t}, @var{m}, @var{n}) ! Compute the probability density function (PDF) at @var{x} of the ! hypergeometric distribution with parameters @var{t}, @var{m}, and ! @var{n}. This is the probability of obtaining @var{x} marked items ! when randomly drawing a sample of size @var{n} without replacement ! from a population of total size @var{t} containing @var{m} marked items. ! The arguments must be of common size or scalar. @end deftypefn ! wblrnd -*- texinfo -*- ! @deftypefn {Function File} {} wblrnd (@var{scale}, @var{shape}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} wblrnd (@var{scale}, @var{shape}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! Weibull distribution with parameters @var{scale} and @var{shape} ! which must be scalar or of size @var{r} by @var{c}. Or if @var{sz} ! is a vector return a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{alpha} and @var{sigma}. @end deftypefn ! cauchy_cdf -*- texinfo -*- ! @deftypefn {Function File} {} cauchy_cdf (@var{x}, @var{lambda}, @var{sigma}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Cauchy distribution with location ! parameter @var{lambda} and scale parameter @var{sigma}. Default ! values are @var{lambda} = 0, @var{sigma} = 1. @end deftypefn ! normrnd -*- texinfo -*- ! @deftypefn {Function File} {} normrnd (@var{m}, @var{s}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} normrnd (@var{m}, @var{s}, @var{sz}) ! Return an @var{r} by @var{c} or @code{size (@var{sz})} matrix of ! random samples from the normal distribution with parameters mean @var{m} ! and standard deviation @var{s}. Both @var{m} and @var{s} must be scalar ! or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{m} and @var{s}. @end deftypefn ! exppdf -*- texinfo -*- ! @deftypefn {Function File} {} exppdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the probability density function ! (PDF) of the exponential distribution with mean @var{lambda}. @end deftypefn ! unidinv -*- texinfo -*- ! @deftypefn {Function File} {} unidinv (@var{x}, @var{v}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the univariate discrete distribution which assumes the ! values in @var{v} with equal probability @end deftypefn ! finv -*- texinfo -*- ! @deftypefn {Function File} {} finv (@var{x}, @var{m}, @var{n}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the F distribution with parameters @var{m} and ! @var{n}. @end deftypefn ! normpdf -*- texinfo -*- ! @deftypefn {Function File} {} normpdf (@var{x}, @var{m}, @var{s}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the normal distribution with mean @var{m} and ! standard deviation @var{s}. ! Default values are @var{m} = 0, @var{s} = 1. @end deftypefn ! logninv -*- texinfo -*- ! @deftypefn {Function File} {} logninv (@var{x}, @var{mu}, @var{sigma}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the lognormal distribution with parameters @var{mu} ! and @var{sigma}. If a random variable follows this distribution, its ! logarithm is normally distributed with mean @code{log (@var{mu})} and ! variance @var{sigma}. ! Default values are @var{mu} = 1, @var{sigma} = 1. @end deftypefn ! expcdf -*- texinfo -*- ! @deftypefn {Function File} {} expcdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the exponential distribution with ! mean @var{lambda}. ! The arguments can be of common size or scalar. @end deftypefn ! logncdf -*- texinfo -*- ! @deftypefn {Function File} {} logncdf (@var{x}, @var{mu}, @var{sigma}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the lognormal distribution with ! parameters @var{mu} and @var{sigma}. If a random variable follows this ! distribution, its logarithm is normally distributed with mean ! @var{mu} and standard deviation @var{sigma}. ! Default values are @var{mu} = 1, @var{sigma} = 1. @end deftypefn ! laplace_pdf -*- texinfo -*- ! @deftypefn {Function File} {} laplace_pdf (@var{x}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the Laplace distribution. @end deftypefn ! laplace_rnd -*- texinfo -*- ! @deftypefn {Function File} {} laplace_rnd (@var{r}, @var{c}) ! @deftypefnx {Function File} {} laplace_rnd (@var{sz}); ! Return an @var{r} by @var{c} matrix of random numbers from the ! Laplace distribution. Or if @var{sz} is a vector, create a matrix of ! @var{sz}. @end deftypefn ! lognrnd -*- texinfo -*- ! @deftypefn {Function File} {} lognrnd (@var{mu}, @var{sigma}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} lognrnd (@var{mu}, @var{sigma}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! lognormal distribution with parameters @var{mu} and @var{sigma}. Both ! @var{mu} and @var{sigma} must be scalar or of size @var{r} by @var{c}. ! Or if @var{sz} is a vector, create a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{mu} and @var{sigma}. @end deftypefn ! poissinv -*- texinfo -*- ! @deftypefn {Function File} {} poissinv (@var{x}, @var{lambda}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the Poisson distribution with parameter ! @var{lambda}. @end deftypefn ! hygeinv -*- texinfo -*- ! @deftypefn {Function File} {} hygeinv (@var{x}, @var{t}, @var{m}, @var{n}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! hypergeometric distribution with parameters @var{t}, @var{m}, and ! @var{n}. ! ! The parameters @var{t}, @var{m}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. @end deftypefn ! fcdf -*- texinfo -*- ! @deftypefn {Function File} {} fcdf (@var{x}, @var{m}, @var{n}) ! For each element of @var{x}, compute the CDF at @var{x} of the F ! distribution with @var{m} and @var{n} degrees of freedom, i.e., ! PROB (F (@var{m}, @var{n}) <= @var{x}). @end deftypefn ! stdnormal_cdf -*- texinfo -*- ! @deftypefn {Function File} {} stdnormal_cdf (@var{x}) ! For each component of @var{x}, compute the CDF of the standard normal ! distribution at @var{x}. @end deftypefn ! nbininv -*- texinfo -*- ! @deftypefn {Function File} {} nbininv (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! Pascal (negative binomial) distribution with parameters @var{n} and ! @var{p}. ! ! The number of failures in a Bernoulli experiment with success ! probability @var{p} before the @var{n}-th success follows this ! distribution. @end deftypefn ! logistic_inv -*- texinfo -*- ! @deftypefn {Function File} {} logistic_inv (@var{x}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the logistic distribution. ! @end deftypefn ! hygecdf ! -*- texinfo -*- ! @deftypefn {Function File} {} hygecdf (@var{x}, @var{t}, @var{m}, @var{n}) ! Compute the cumulative distribution function (CDF) at @var{x} of the ! hypergeometric distribution with parameters @var{t}, @var{m}, and ! @var{n}. This is the probability of obtaining not more than @var{x} ! marked items when randomly drawing a sample of size @var{n} without ! replacement from a population of total size @var{t} containing ! @var{m} marked items. ! The parameters @var{t}, @var{m}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. @end deftypefn ! unidpdf -*- texinfo -*- ! @deftypefn {Function File} {} unidpdf (@var{x}, @var{v}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of a univariate discrete distribution which assumes ! the values in @var{v} with equal probability. @end deftypefn ! logistic_cdf -*- texinfo -*- ! @deftypefn {Function File} {} logistic_cdf (@var{x}) ! For each component of @var{x}, compute the CDF at @var{x} of the ! logistic distribution. @end deftypefn ! gamcdf -*- texinfo -*- ! @deftypefn {Function File} {} gamcdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Gamma distribution with parameters ! @var{a} and @var{b}. ! @seealso{gamma, gammaln, gammainc, gampdf, gaminv, gamrnd} ! @end deftypefn ! unifinv ! -*- texinfo -*- ! @deftypefn {Function File} {} unifinv (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the uniform distribution on [@var{a}, @var{b}]. ! Default values are @var{a} = 0, @var{b} = 1. @end deftypefn ! tpdf -*- texinfo -*- ! @deftypefn {Function File} {} tpdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the @var{t} (Student) distribution with @var{n} ! degrees of freedom. @end deftypefn ! nbinpdf -*- texinfo -*- ! @deftypefn {Function File} {} nbinpdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the Pascal (negative binomial) distribution with ! parameters @var{n} and @var{p}. ! The number of failures in a Bernoulli experiment with success ! probability @var{p} before the @var{n}-th success follows this ! distribution. @end deftypefn ! geoinv -*- texinfo -*- ! @deftypefn {Function File} {} geoinv (@var{x}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! geometric distribution with parameter @var{p}. @end deftypefn ! discrete_inv -*- texinfo -*- ! @deftypefn {Function File} {} discrete_inv (@var{x}, @var{v}, @var{p}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the univariate distribution which assumes the ! values in @var{v} with probabilities @var{p}. @end deftypefn ! unidcdf -*- texinfo -*- ! @deftypefn {Function File} {} unidcdf (@var{x}, @var{v}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of a univariate discrete distribution which ! assumes the values in @var{v} with equal probability. ! @end deftypefn ! binopdf ! -*- texinfo -*- ! @deftypefn {Function File} {} binopdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the binomial distribution with parameters @var{n} ! and @var{p}. ! @end deftypefn ! wblcdf ! -*- texinfo -*- ! @deftypefn {Function File} {} wblcdf (@var{x}, @var{scale}, @var{shape}) ! Compute the cumulative distribution function (CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}, which is ! @iftex ! @tex ! $$ 1 - \exp(-(x/shape)^{scale}) $$ ! for $x\geq 0$. ! @end tex ! @end iftex ! @ifnottex @example ! 1 - exp(-(x/shape)^scale) @end example ! for @var{x} >= 0. ! @end ifnottex ! @end deftypefn ! hygernd ! -*- texinfo -*- ! @deftypefn {Function File} {} hygernd (@var{t}, @var{m}, @var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} hygernd (@var{t}, @var{m}, @var{n}, @var{sz}) ! @deftypefnx {Function File} {} hygernd (@var{t}, @var{m}, @var{n}) ! Return an @var{r} by @var{c} matrix of random samples from the ! hypergeometric distribution with parameters @var{t}, @var{m}, ! and @var{n}. ! The parameters @var{t}, @var{m}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. ! The parameter @var{sz} must be scalar or a vector of matrix ! dimensions. If @var{sz} is scalar, then a @var{sz} by @var{sz} ! matrix of random samples is generated. @end deftypefn ! trnd -*- texinfo -*- ! @deftypefn {Function File} {} trnd (@var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} trnd (@var{n}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the t ! (Student) distribution with @var{n} degrees of freedom. @var{n} must ! be a scalar or of size @var{r} by @var{c}. Or if @var{sz} is a ! vector create a matrix of size @var{sz}. ! ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{n}. @end deftypefn ! kolmogorov_smirnov_cdf -*- texinfo -*- ! @deftypefn {Function File} {} kolmogorov_smirnov_cdf (@var{x}, @var{tol}) ! Return the CDF at @var{x} of the Kolmogorov-Smirnov distribution, ! @iftex ! @tex ! $$ Q(x) = \sum_{k=-\infty}^\infty (-1)^k \exp(-2 k^2 x^2) $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! Inf ! Q(x) = SUM (-1)^k exp(-2 k^2 x^2) ! k = -Inf ! @end example ! @end ifinfo ! ! @noindent ! for @var{x} > 0. ! ! The optional parameter @var{tol} specifies the precision up to which ! the series should be evaluated; the default is @var{tol} = @code{eps}. @end deftypefn ! laplace_cdf -*- texinfo -*- ! @deftypefn {Function File} {} laplace_cdf (@var{x}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Laplace distribution. @end deftypefn ! exprnd -*- texinfo -*- ! @deftypefn {Function File} {} exprnd (@var{lambda}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} exprnd (@var{lambda}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! exponential distribution with mean @var{lambda}, which must be a ! scalar or of size @var{r} by @var{c}. Or if @var{sz} is a vector, ! create a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{lambda}. @end deftypefn ! poissrnd -*- texinfo -*- ! @deftypefn {Function File} {} poissrnd (@var{lambda}, @var{r}, @var{c}) ! Return an @var{r} by @var{c} matrix of random samples from the ! Poisson distribution with parameter @var{lambda}, which must be a ! scalar or of size @var{r} by @var{c}. ! ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{lambda}. @end deftypefn ! chi2inv -*- texinfo -*- ! @deftypefn {Function File} {} chi2inv (@var{x}, @var{n}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the chisquare distribution with @var{n} degrees of ! freedom. @end deftypefn ! unifrnd -*- texinfo -*- ! @deftypefn {Function File} {} unifrnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} unifrnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the uniform distribution on [@var{a}, @var{b}]. ! Both @var{a} and @var{b} must be scalar or of size @var{r} by @var{c}. ! ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. @end deftypefn ! logistic_rnd -*- texinfo -*- ! @deftypefn {Function File} {} logistic_rnd (@var{r}, @var{c}) ! @deftypefnx {Function File} {} logistic_rnd (@var{sz}) ! Return an @var{r} by @var{c} matrix of random numbers from the ! logistic distribution. Or if @var{sz} is a vector, create a matrix of ! @var{sz}. @end deftypefn ! cauchy_rnd -*- texinfo -*- ! @deftypefn {Function File} {} cauchy_rnd (@var{lambda}, @var{sigma}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} cauchy_rnd (@var{lambda}, @var{sigma}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the Cauchy distribution with parameters @var{lambda} ! and @var{sigma} which must both be scalar or of size @var{r} by @var{c}. ! ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{lambda} and @var{sigma}. @end deftypefn ! betainv -*- texinfo -*- ! @deftypefn {Function File} {} betainv (@var{x}, @var{a}, @var{b}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the Beta distribution with parameters @var{a} ! and @var{b}. @end deftypefn ! unifpdf -*- texinfo -*- ! @deftypefn {Function File} {} unifpdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the PDF at @var{x} of the uniform ! distribution on [@var{a}, @var{b}]. ! Default values are @var{a} = 0, @var{b} = 1. @end deftypefn ! betacdf -*- texinfo -*- ! @deftypefn {Function File} {} betacdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, returns the CDF at @var{x} of the beta ! distribution with parameters @var{a} and @var{b}, i.e., ! PROB (beta (@var{a}, @var{b}) <= @var{x}). @end deftypefn ! lognpdf -*- texinfo -*- ! @deftypefn {Function File} {} lognpdf (@var{x}, @var{mu}, @var{sigma}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the lognormal distribution with parameters ! @var{mu} and @var{sigma}. If a random variable follows this distribution, ! its logarithm is normally distributed with mean @var{mu} ! and standard deviation @var{sigma}. ! Default values are @var{mu} = 1, @var{sigma} = 1. @end deftypefn ! nbincdf -*- texinfo -*- ! @deftypefn {Function File} {} nbincdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the CDF at x of the Pascal ! (negative binomial) distribution with parameters @var{n} and @var{p}. ! ! The number of failures in a Bernoulli experiment with success ! probability @var{p} before the @var{n}-th success follows this ! distribution. @end deftypefn ! geopdf -*- texinfo -*- ! @deftypefn {Function File} {} geopdf (@var{x}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the geometric distribution with parameter @var{p}. @end deftypefn ! wienrnd -*- texinfo -*- ! @deftypefn {Function File} {} wienrnd (@var{t}, @var{d}, @var{n}) ! Return a simulated realization of the @var{d}-dimensional Wiener Process ! on the interval [0, @var{t}]. If @var{d} is omitted, @var{d} = 1 is ! used. The first column of the return matrix contains time, the ! remaining columns contain the Wiener process. ! ! The optional parameter @var{n} gives the number of summands used for ! simulating the process over an interval of length 1. If @var{n} is ! omitted, @var{n} = 1000 is used. @end deftypefn ! empirical_cdf -*- texinfo -*- ! @deftypefn {Function File} {} empirical_cdf (@var{x}, @var{data}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the empirical distribution obtained from ! the univariate sample @var{data}. @end deftypefn ! geornd -*- texinfo -*- ! @deftypefn {Function File} {} geornd (@var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} geornd (@var{p}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! geometric distribution with parameter @var{p}, which must be a scalar ! or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are given create a matrix with @var{r} rows and ! @var{c} columns. Or if @var{sz} is a vector, create a matrix of size ! @var{sz}. @end deftypefn ! binocdf -*- texinfo -*- ! @deftypefn {Function File} {} binocdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the CDF at @var{x} of the ! binomial distribution with parameters @var{n} and @var{p}. @end deftypefn ! tinv -*- texinfo -*- ! @deftypefn {Function File} {} tinv (@var{x}, @var{n}) ! For each probability value @var{x}, compute the the inverse of the ! cumulative distribution function (CDF) of the t (Student) ! distribution with degrees of freedom @var{n}. This function is ! analagous to looking in a table for the t-value of a single-tailed ! distribution. @end deftypefn ! binornd -*- texinfo -*- ! @deftypefn {Function File} {} binornd (@var{n}, @var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} binornd (@var{n}, @var{p}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the binomial distribution with parameters @var{n} ! and @var{p}. Both @var{n} and @var{p} must be scalar or of size ! @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{n} and @var{p}. @end deftypefn ! tcdf -*- texinfo -*- ! @deftypefn {Function File} {} tcdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the t (Student) distribution with ! @var{n} degrees of freedom, i.e., PROB (t(@var{n}) <= @var{x}). @end deftypefn ! fpdf -*- texinfo -*- ! @deftypefn {Function File} {} fpdf (@var{x}, @var{m}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the F distribution with @var{m} and @var{n} ! degrees of freedom. @end deftypefn ! wblinv -*- texinfo -*- ! @deftypefn {Function File} {} wblinv (@var{x}, @var{scale}, @var{shape}) ! Compute the quantile (the inverse of the CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}. @end deftypefn ! cauchy_inv -*- texinfo -*- ! @deftypefn {Function File} {} cauchy_inv (@var{x}, @var{lambda}, @var{sigma}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the Cauchy distribution with location parameter ! @var{lambda} and scale parameter @var{sigma}. Default values are ! @var{lambda} = 0, @var{sigma} = 1. @end deftypefn ! nbinrnd -*- texinfo -*- ! @deftypefn {Function File} {} nbinrnd (@var{n}, @var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} nbinrnd (@var{n}, @var{p}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the Pascal ! (negative binomial) distribution with parameters @var{n} and @var{p}. ! Both @var{n} and @var{p} must be scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{n} and @var{p}. Or if @var{sz} is a vector, ! create a matrix of size @var{sz}. @end deftypefn ! empirical_pdf -*- texinfo -*- ! @deftypefn {Function File} {} empirical_pdf (@var{x}, @var{data}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the empirical distribution obtained from the ! univariate sample @var{data}. @end deftypefn ! wblpdf -*- texinfo -*- ! @deftypefn {Function File} {} wblpdf (@var{x}, @var{scale}, @var{shape}) ! Compute the probability density function (PDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape} which is given by ! @iftex ! @tex ! $$ scale \cdot shape^{-scale} x^{scale-1} \exp(-(x/shape)^{scale}) $$ ! @end tex ! @end iftex ! @ifnottex ! @example ! scale * shape^(-scale) * x^(scale-1) * exp(-(x/shape)^scale) ! @end example ! @end ifnottex ! @noindent ! for @var{x} > 0. @end deftypefn ! laplace_inv -*- texinfo -*- ! @deftypefn {Function File} {} laplace_inv (@var{x}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the Laplace distribution. @end deftypefn ! chi2rnd -*- texinfo -*- ! @deftypefn {Function File} {} chi2rnd (@var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} chi2rnd (@var{n}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the chisquare distribution with @var{n} degrees ! of freedom. @var{n} must be a scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{n}. @end deftypefn ! discrete_pdf -*- texinfo -*- ! @deftypefn {Function File} {} discrete_pdf (@var{x}, @var{v}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of a univariate discrete distribution which assumes ! the values in @var{v} with probabilities @var{p}. @end deftypefn ! logistic_pdf -*- texinfo -*- ! @deftypefn {Function File} {} logistic_pdf (@var{x}) ! For each component of @var{x}, compute the PDF at @var{x} of the ! logistic distribution. @end deftypefn ! logistic_regression_derivatives -*- texinfo -*- ! @deftypefn {Function File} {[@var{dl}, @var{d2l}] =} logistic_regression_derivatives (@var{x}, @var{z}, @var{z1}, @var{g}, @var{g1}, @var{p}) ! Called by logistic_regression. Calculates derivates of the ! log-likelihood for ordinal logistic regression model. @end deftypefn ! logistic_regression -*- texinfo -*- ! @deftypefn {Function File} {[@var{theta}, @var{beta}, @var{dev}, @var{dl}, @var{d2l}, @var{p}] =} logistic_regression (@var{y}, @var{x}, @var{print}, @var{theta}, @var{beta}) ! Perform ordinal logistic regression. ! Suppose @var{y} takes values in @var{k} ordered categories, and let ! @code{gamma_i (@var{x})} be the cumulative probability that @var{y} ! falls in one of the first @var{i} categories given the covariate ! @var{x}. Then ! @example ! [theta, beta] = logistic_regression (y, x) ! @end example ! @noindent ! fits the model ! @example ! logit (gamma_i (x)) = theta_i - beta' * x, i = 1...k-1 ! @end example ! The number of ordinal categories, @var{k}, is taken to be the number ! of distinct values of @code{round (@var{y})}. If @var{k} equals 2, ! @var{y} is binary and the model is ordinary logistic regression. The ! matrix @var{x} is assumed to have full column rank. ! Given @var{y} only, @code{theta = logistic_regression (y)} ! fits the model with baseline logit odds only. ! The full form is ! @example ! [theta, beta, dev, dl, d2l, gamma] ! = logistic_regression (y, x, print, theta, beta) ! @end example ! @noindent ! in which all output arguments and all input arguments except @var{y} ! are optional. ! Setting @var{print} to 1 requests summary information about the fitted ! model to be displayed. Setting @var{print} to 2 requests information ! about convergence at each iteration. Other values request no ! information to be displayed. The input arguments @var{theta} and ! @var{beta} give initial estimates for @var{theta} and @var{beta}. ! The returned value @var{dev} holds minus twice the log-likelihood. ! The returned values @var{dl} and @var{d2l} are the vector of first ! and the matrix of second derivatives of the log-likelihood with ! respect to @var{theta} and @var{beta}. ! @var{p} holds estimates for the conditional distribution of @var{y} ! given @var{x}. @end deftypefn ! logistic_regression_likelihood -*- texinfo -*- ! @deftypefn {Function File} {[@var{g}, @var{g1}, @var{p}, @var{dev}] =} logistic_regression_likelihood (@var{y}, @var{x}, @var{beta}, @var{z}, @var{z1}) ! Calculates likelihood for the ordinal logistic regression model. ! Called by logistic_regression. @end deftypefn ! spearman -*- texinfo -*- ! @deftypefn {Function File} {} spearman (@var{x}, @var{y}) ! Compute Spearman's rank correlation coefficient @var{rho} for each of ! the variables specified by the input arguments. ! For matrices, each row is an observation and each column a variable; ! vectors are always observations and may be row or column vectors. ! @code{spearman (@var{x})} is equivalent to @code{spearman (@var{x}, ! @var{x})}. ! For two data vectors @var{x} and @var{y}, Spearman's @var{rho} is the ! correlation of the ranks of @var{x} and @var{y}. ! ! If @var{x} and @var{y} are drawn from independent distributions, ! @var{rho} has zero mean and variance @code{1 / (n - 1)}, and is ! asymptotically normally distributed. @end deftypefn ! __quantile__ -*- texinfo -*- ! @deftypefn {Function File} {@var{q} =} __quantile__ (@var{x}, @var{p}) ! @deftypefnx {Function File} {@var{q} =} __quantile__ (@var{x}, @var{p}, @var{method}) ! For the cumulative probability values in @var{p}, compute the ! quantiles, @var{q} (the inverse of the cdf), for the sample, @var{x}. ! ! The optional input, @var{method}, refers to nine methods available in R ! (http://www.r-project.org/). The default is @var{method} = 7. For more ! detail, see `help quantile'. ! @seealso{prctile, quantile, statistics} @end deftypefn ! ols -*- texinfo -*- ! @deftypefn {Function File} {[@var{beta}, @var{sigma}, @var{r}] =} ols (@var{y}, @var{x}) ! Ordinary least squares estimation for the multivariate model ! @iftex ! @tex ! $y = x b + e$ ! with ! $\bar{e} = 0$, and cov(vec($e$)) = kron ($s, I$) ! @end tex ! @end iftex ! @ifinfo ! @math{y = x b + e} with ! @math{mean (e) = 0} and @math{cov (vec (e)) = kron (s, I)}. ! @end ifinfo ! where ! @iftex ! @tex ! $y$ is a $t \times p$ matrix, $x$ is a $t \times k$ matrix, ! $b$ is a $k \times p$ matrix, and $e$ is a $t \times p$ matrix. ! @end tex ! @end iftex ! @ifinfo ! @math{y} is a @math{t} by @math{p} matrix, @math{x} is a @math{t} by ! @math{k} matrix, @math{b} is a @math{k} by @math{p} matrix, and ! @math{e} is a @math{t} by @math{p} matrix. ! @end ifinfo ! Each row of @var{y} and @var{x} is an observation and each column a ! variable. ! The return values @var{beta}, @var{sigma}, and @var{r} are defined as ! follows. ! @table @var ! @item beta ! The OLS estimator for @var{b}, @code{@var{beta} = pinv (@var{x}) * ! @var{y}}, where @code{pinv (@var{x})} denotes the pseudoinverse of ! @var{x}. ! @item sigma ! The OLS estimator for the matrix @var{s}, ! @example ! @group ! @var{sigma} = (@var{y}-@var{x}*@var{beta})' ! * (@var{y}-@var{x}*@var{beta}) ! / (@var{t}-rank(@var{x})) ! @end group ! @end example ! @item r ! The matrix of OLS residuals, @code{@var{r} = @var{y} - @var{x} * ! @var{beta}}. ! @end table @end deftypefn ! mode -*- texinfo -*- ! @deftypefn {Function File} {[@var{m}, @var{f}, @var{c}] =} mode (@var{x}, @var{dim}) ! Count the most frequently appearing value. @code{mode} counts the ! frequency along the first non-singleton dimension and if two or more ! values have te same frequency returns the smallest of the two in ! @var{m}. The dimension along which to count can be specified by the ! @var{dim} parameter. ! ! The variable @var{f} counts the frequency of each of the most frequently ! occurring elements. The cell array @var{c} contains all of the elements ! with the maximum frequency . @end deftypefn ! probit -*- texinfo -*- ! @deftypefn {Function File} {} probit (@var{p}) ! For each component of @var{p}, return the probit (the quantile of the ! standard normal distribution) of @var{p}. @end deftypefn ! ppplot -*- texinfo -*- ! @deftypefn {Function File} {[@var{p}, @var{y}] =} ppplot (@var{x}, @var{dist}, @var{params}) ! Perform a PP-plot (probability plot). ! If F is the CDF of the distribution @var{dist} with parameters ! @var{params} and @var{x} a sample vector of length @var{n}, the ! PP-plot graphs ordinate @var{y}(@var{i}) = F (@var{i}-th largest ! element of @var{x}) versus abscissa @var{p}(@var{i}) = (@var{i} - ! 0.5)/@var{n}. If the sample comes from F, the pairs will ! approximately follow a straight line. ! The default for @var{dist} is the standard normal distribution. The ! optional argument @var{params} contains a list of parameters of ! @var{dist}. For example, for a probability plot of the uniform ! distribution on [2,4] and @var{x}, use ! ! @example ! ppplot (x, "uniform", 2, 4) ! @end example ! ! @noindent ! @var{dist} can be any string for which a function @var{dist_cdf} ! that calculates the CDF of distribution @var{dist} exists. ! ! If no output arguments are given, the data are plotted directly. @end deftypefn ! qqplot -*- texinfo -*- ! @deftypefn {Function File} {[@var{q}, @var{s}] =} qqplot (@var{x}, @var{dist}, @var{params}) ! Perform a QQ-plot (quantile plot). ! ! If F is the CDF of the distribution @var{dist} with parameters ! @var{params} and G its inverse, and @var{x} a sample vector of length ! @var{n}, the QQ-plot graphs ordinate @var{s}(@var{i}) = @var{i}-th ! largest element of x versus abscissa @var{q}(@var{i}f) = G((@var{i} - ! 0.5)/@var{n}). ! ! If the sample comes from F except for a transformation of location ! and scale, the pairs will approximately follow a straight line. ! ! The default for @var{dist} is the standard normal distribution. The ! optional argument @var{params} contains a list of parameters of ! @var{dist}. For example, for a quantile plot of the uniform ! distribution on [2,4] and @var{x}, use ! ! @example ! qqplot (x, "uniform", 2, 4) ! @end example ! ! @noindent ! @var{dist} can be any string for which a function @var{dist_inv} ! that calculates the inverse CDF of distribution @var{dist} exists. ! ! If no output arguments are given, the data are plotted directly. @end deftypefn ! median -*- texinfo -*- ! @deftypefn {Function File} {} median (@var{x}, @var{dim}) ! If @var{x} is a vector, compute the median value of the elements of ! @var{x}. If the elements of @var{x} are sorted, the median is defined ! as ! @iftex ! @tex ! $$ ! {\rm median} (x) = ! \cases{x(\lceil N/2\rceil), & $N$ odd;\cr ! (x(N/2)+x(N/2+1))/2, & $N$ even.} ! $$ ! @end tex ! @end iftex ! @ifinfo ! ! @example ! @group ! x(ceil(N/2)), N odd ! median(x) = ! (x(N/2) + x((N/2)+1))/2, N even ! @end group ! @end example ! @end ifinfo ! If @var{x} is a matrix, compute the median value for each ! column and return them in a row vector. If the optional @var{dim} ! argument is given, operate along this dimension. ! @seealso{std, mean} @end deftypefn ! cov -*- texinfo -*- ! @deftypefn {Function File} {} cov (@var{x}, @var{y}) ! Compute covariance. ! ! If each row of @var{x} and @var{y} is an observation and each column is ! a variable, the (@var{i}, @var{j})-th entry of ! @code{cov (@var{x}, @var{y})} is the covariance between the @var{i}-th ! variable in @var{x} and the @var{j}-th variable in @var{y}. ! @iftex ! @tex ! $$ ! \sigma_{ij} = {1 \over N-1} \sum_{i=1}^N (x_i - \bar{x})(y_i - \bar{y}) ! $$ ! where $\bar{x}$ and $\bar{y}$ are the mean values of $x$ and $y$. ! @end tex ! @end iftex ! If called with one argument, compute @code{cov (@var{x}, @var{x})}. @end deftypefn ! table -*- texinfo -*- ! @deftypefn {Function File} {[@var{t}, @var{l_x}] =} table (@var{x}) ! @deftypefnx {Function File} {[@var{t}, @var{l_x}, @var{l_y}] =} table (@var{x}, @var{y}) ! Create a contingency table @var{t} from data vectors. The @var{l} ! vectors are the corresponding levels. ! ! Currently, only 1- and 2-dimensional tables are supported. @end deftypefn ! std -*- texinfo -*- ! @deftypefn {Function File} {} std (@var{x}) ! @deftypefnx {Function File} {} std (@var{x}, @var{opt}) ! @deftypefnx {Function File} {} std (@var{x}, @var{opt}, @var{dim}) ! If @var{x} is a vector, compute the standard deviation of the elements ! of @var{x}. ! @iftex ! @tex ! $$ ! {\rm std} (x) = \sigma (x) = \sqrt{{\sum_{i=1}^N (x_i - \bar{x})^2 \over N - 1}} ! $$ ! where $\bar{x}$ is the mean value of $x$. ! @end tex ! @end iftex ! @ifnottex ! @example ! @group ! std (x) = sqrt (sumsq (x - mean (x)) / (n - 1)) ! @end group ! @end example ! @end ifnottex ! If @var{x} is a matrix, compute the standard deviation for ! each column and return them in a row vector. ! ! The argument @var{opt} determines the type of normalization to use. Valid values ! are ! ! @table @asis ! @item 0: ! normalizes with @math{N-1}, provides the square root of best unbiased estimator of ! the variance [default] ! @item 1: ! normalizes with @math{N}, this provides the square root of the second moment around ! the mean ! @end table ! ! The third argument @var{dim} determines the dimension along which the standard ! deviation is calculated. ! @seealso{mean, median} @end deftypefn ! range -*- texinfo -*- ! @deftypefn {Function File} {} range (@var{x}) ! @deftypefnx {Function File} {} range (@var{x}, @var{dim}) ! If @var{x} is a vector, return the range, i.e., the difference ! between the maximum and the minimum, of the input data. ! ! If @var{x} is a matrix, do the above for each column of @var{x}. ! ! If the optional argument @var{dim} is supplied, work along dimension ! @var{dim}. @end deftypefn ! skewness -*- texinfo -*- ! @deftypefn {Function File} {} skewness (@var{x}, @var{dim}) ! If @var{x} is a vector of length @math{n}, return the skewness ! @iftex ! @tex ! $$ ! {\rm skewness} (x) = {1\over N \sigma(x)^3} \sum_{i=1}^N (x_i-\bar{x})^3 ! $$ ! where $\bar{x}$ is the mean value of $x$. ! @end tex ! @end iftex ! @ifinfo ! @example ! skewness (x) = N^(-1) std(x)^(-3) sum ((x - mean(x)).^3) ! @end example ! @end ifinfo ! ! @noindent ! of @var{x}. If @var{x} is a matrix, return the skewness along the ! first non-singleton dimension of the matrix. If the optional ! @var{dim} argument is given, operate along this dimension. @end deftypefn ! studentize -*- texinfo -*- ! @deftypefn {Function File} {} studentize (@var{x}, @var{dim}) ! If @var{x} is a vector, subtract its mean and divide by its standard ! deviation. ! If @var{x} is a matrix, do the above along the first non-singleton ! dimension. If the optional argument @var{dim} is given then operate ! along this dimension. @end deftypefn ! var -*- texinfo -*- ! @deftypefn {Function File} {} var (@var{x}) ! For vector arguments, return the (real) variance of the values. ! For matrix arguments, return a row vector containing the variance for ! each column. ! The argument @var{opt} determines the type of normalization to use. ! Valid values are ! ! @table @asis ! @item 0: ! Normalizes with @math{N-1}, provides the best unbiased estimator of the ! variance [default]. ! @item 1: ! Normalizes with @math{N}, this provides the second moment around the mean. ! @end table ! ! The third argument @var{dim} determines the dimension along which the ! variance is calculated. @end deftypefn ! values -*- texinfo -*- ! @deftypefn {Function File} {} values (@var{x}) ! Return the different values in a column vector, arranged in ascending ! order. ! As an example, @code{values([1, 2, 3, 1])} returns the vector ! @code{[1, 2, 3]}. @end deftypefn ! ranks -*- texinfo -*- ! @deftypefn {Function File} {} ranks (@var{x}, @var{dim}) ! Return the ranks of @var{x} along the first non-singleton dimension ! adjust for ties. If the optional argument @var{dim} is ! given, operate along this dimension. @end deftypefn ! prctile -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} prctile (@var{x}, @var{p}) ! @deftypefnx {Function File} {@var{q} =} prctile (@var{x}, @var{p}, @var{dim}) ! For a sample @var{x}, compute the the quantiles, @var{y}, corresponding ! to the cumulative probability values, P, in percent. All non-numeric ! values (NaNs) of X are ignored. ! ! If @var{x} is a matrix, compute the the percentiles for each column and ! return them in a matrix, such that the i-th row of @var{y} contains the ! @var{p}(i)th percentiles of each column of @var{x}. ! ! The optional argument @var{dim} determines the dimension along which ! the percentiles are calculated. If @var{dim} is omitted, and @var{x} is ! a vector or matrix, it defaults to 1 (column wise quantiles). In the ! instance that @var{x} is a N-d array, @var{dim} defaults to the first ! dimension whose size greater than unity. ! @end deftypefn ! kendall -*- texinfo -*- ! @deftypefn {Function File} {} kendall (@var{x}, @var{y}) ! Compute Kendall's @var{tau} for each of the variables specified by ! the input arguments. ! For matrices, each row is an observation and each column a variable; ! vectors are always observations and may be row or column vectors. ! ! @code{kendall (@var{x})} is equivalent to @code{kendall (@var{x}, ! @var{x})}. ! ! For two data vectors @var{x}, @var{y} of common length @var{n}, ! Kendall's @var{tau} is the correlation of the signs of all rank ! differences of @var{x} and @var{y}; i.e., if both @var{x} and ! @var{y} have distinct entries, then ! ! @iftex ! @tex ! $$ \tau = {1 \over n(n-1)} \sum_{i,j} {\rm sign}(q_i-q_j) {\rm sign}(r_i-r_j) $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! 1 ! tau = ------- SUM sign (q(i) - q(j)) * sign (r(i) - r(j)) ! n (n-1) i,j ! @end example ! @end ifinfo ! ! @noindent ! in which the ! @iftex ! @tex ! $q_i$ and $r_i$ ! @end tex ! @end iftex ! @ifinfo ! @var{q}(@var{i}) and @var{r}(@var{i}) ! @end ifinfo ! are the ranks of ! @var{x} and @var{y}, respectively. ! ! If @var{x} and @var{y} are drawn from independent distributions, ! Kendall's @var{tau} is asymptotically normal with mean 0 and variance ! @iftex ! @tex ! ${2 (2n+5) \over 9n(n-1)}$. ! @end tex ! @end iftex ! @ifnottex ! @code{(2 * (2@var{n}+5)) / (9 * @var{n} * (@var{n}-1))}. ! @end ifnottex @end deftypefn ! center -*- texinfo -*- ! @deftypefn {Function File} {} center (@var{x}) ! @deftypefnx {Function File} {} center (@var{x}, @var{dim}) ! If @var{x} is a vector, subtract its mean. ! If @var{x} is a matrix, do the above for each column. ! If the optional argument @var{dim} is given, perform the above ! operation along this dimension @end deftypefn ! iqr -*- texinfo -*- ! @deftypefn {Function File} {} iqr (@var{x}, @var{dim}) ! If @var{x} is a vector, return the interquartile range, i.e., the ! difference between the upper and lower quartile, of the input data. ! If @var{x} is a matrix, do the above for first non singleton ! dimension of @var{x}. If the option @var{dim} argument is given, ! then operate along this dimension. @end deftypefn ! statistics -*- texinfo -*- ! @deftypefn {Function File} {} statistics (@var{x}) ! If @var{x} is a matrix, return a matrix with the minimum, first ! quartile, median, third quartile, maximum, mean, standard deviation, ! skewness and kurtosis of the columns of @var{x} as its columns. ! If @var{x} is a vector, calculate the statistics along the ! non-singleton dimension. @end deftypefn ! meansq -*- texinfo -*- ! @deftypefn {Function File} {} meansq (@var{x}) ! @deftypefnx {Function File} {} meansq (@var{x}, @var{dim}) ! For vector arguments, return the mean square of the values. ! For matrix arguments, return a row vector containing the mean square ! of each column. With the optional @var{dim} argument, returns the ! mean squared of the values along this dimension. @end deftypefn ! mahalanobis -*- texinfo -*- ! @deftypefn {Function File} {} mahalanobis (@var{x}, @var{y}) ! Return the Mahalanobis' D-square distance between the multivariate ! samples @var{x} and @var{y}, which must have the same number of ! components (columns), but may have a different number of observations ! (rows). @end deftypefn ! cloglog -*- texinfo -*- ! @deftypefn {Function File} {} cloglog (@var{x}) ! Return the complementary log-log function of @var{x}, defined as ! @iftex ! @tex ! $$ ! {\rm cloglog}(x) = - \log (- \log (x)) ! $$ ! @end tex ! @end iftex ! @ifnottex ! @example ! cloglog(x) = - log (- log (@var{x})) ! @end example ! @end ifnottex @end deftypefn ! quantile -*- texinfo -*- ! @deftypefn {Function File} {@var{q} =} quantile (@var{x}, @var{p}) ! @deftypefnx {Function File} {@var{q} =} quantile (@var{x}, @var{p}, @var{dim}) ! @deftypefnx {Function File} {@var{q} =} quantile (@var{x}, @var{p}, @var{dim}, @var{method} ) ! For a sample, @var{x}, calculate the quantiles, @var{q}, corresponding to ! the cumulative probability values in @var{p}. All non-numeric values (NaNs) of ! @var{x} are ignored. ! ! If @var{x} is a matrix, compute the quantiles for each column and ! return them in a matrix, such that the i-th row of @var{q} contains ! the @var{p}(i)th quantiles of each column of @var{x}. ! ! The optional argument @var{dim} determines the dimension along which ! the percentiles are calculated. If @var{dim} is omitted, and @var{x} is ! a vector or matrix, it defaults to 1 (column wise quantiles). In the ! instance that @var{x} is a N-d array, @var{dim} defaults to the first ! dimension whose size greater than unity. ! ! The methods available to calculate sample quantiles are the nine methods ! used by R (http://www.r-project.org/). The default value is METHOD = 5. ! ! Discontinuous sample quantile methods 1, 2, and 3 ! ! @enumerate 1 ! @item Method 1: Inverse of empirical distribution function. ! @item Method 2: Similar to method 1 but with averaging at discontinuities. ! @item Method 3: SAS definition: nearest even order statistic. ! @end enumerate ! Continuous sample quantile methods 4 through 9, where p(k) is the linear ! interpolation function respecting each methods' representative cdf. ! @enumerate 4 ! @item Method 4: p(k) = k / n. That is, linear interpolation of the empirical cdf. ! @item Method 5: p(k) = (k - 0.5) / n. That is a piecewise linear function where ! the knots are the values midway through the steps of the empirical cdf. ! @item Method 6: p(k) = k / (n + 1). ! @item Method 7: p(k) = (k - 1) / (n - 1). ! @item Method 8: p(k) = (k - 1/3) / (n + 1/3). The resulting quantile estimates ! are approximately median-unbiased regardless of the distribution of @var{x}. ! @item Method 9: p(k) = (k - 3/8) / (n + 1/4). The resulting quantile estimates ! are approximately unbiased for the expected order statistics if @var{x} is ! normally distributed. ! @end enumerate ! ! Hyndman and Fan (1996) recommend method 8. Maxima, S, and R ! (versions prior to 2.0.0) use 7 as their default. Minitab and SPSS ! use method 6. Matlab uses method 5. ! ! References: ! ! @itemize @bullet ! @item Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New ! S Language. Wadsworth & Brooks/Cole. ! ! @item Hyndman, R. J. and Fan, Y. (1996) Sample quantiles in ! statistical packages, American Statistician, 50, 361-365. ! ! @item R: A Language and Environment for Statistical Computing; ! @url{http://cran.r-project.org/doc/manuals/fullrefman.pdf}. ! @end itemize @end deftypefn ! moment -*- texinfo -*- ! @deftypefn {Function File} {} moment (@var{x}, @var{p}, @var{opt}, @var{dim}) ! If @var{x} is a vector, compute the @var{p}-th moment of @var{x}. ! If @var{x} is a matrix, return the row vector containing the ! @var{p}-th moment of each column. ! ! With the optional string opt, the kind of moment to be computed can ! be specified. If opt contains @code{"c"} or @code{"a"}, central ! and/or absolute moments are returned. For example, ! ! @example ! moment (x, 3, "ac") ! @end example ! ! @noindent ! computes the third central absolute moment of @var{x}. ! ! If the optional argument @var{dim} is supplied, work along dimension ! @var{dim}. @end deftypefn ! corrcoef -*- texinfo -*- ! @deftypefn {Function File} {} corrcoef (@var{x}, @var{y}) ! Compute correlation. ! ! If each row of @var{x} and @var{y} is an observation and each column is ! a variable, the (@var{i}, @var{j})-th entry of ! @code{corrcoef (@var{x}, @var{y})} is the correlation between the ! @var{i}-th variable in @var{x} and the @var{j}-th variable in @var{y}. @iftex @tex ! $$ ! {\rm corrcoef}(x,y) = {{\rm cov}(x,y) \over {\rm std}(x) {\rm std}(y)} ! $$ @end tex @end iftex @ifnottex @example ! corrcoef(x,y) = cov(x,y)/(std(x)*std(y)) @end example @end ifnottex + + If called with one argument, compute @code{corrcoef (@var{x}, @var{x})}. @end deftypefn ! logit -*- texinfo -*- ! @deftypefn {Function File} {} logit (@var{p}) ! For each component of @var{p}, return the logit of @var{p} defined as ! @iftex ! @tex ! $$ ! {\rm logit}(p) = \log\Big({p \over 1-p}\Big) ! $$ ! @end tex ! @end iftex ! @ifnottex ! @example ! logit(@var{p}) = log (@var{p} / (1-@var{p})) ! @end example ! @end ifnottex @end deftypefn ! cor -*- texinfo -*- ! @deftypefn {Function File} {} cor (@var{x}, @var{y}) ! Compute correlation. ! The (@var{i}, @var{j})-th entry of @code{cor (@var{x}, @var{y})} is ! the correlation between the @var{i}-th variable in @var{x} and the ! @var{j}-th variable in @var{y}. @iftex @tex ! $$ ! {\rm corrcoef}(x,y) = {{\rm cov}(x,y) \over {\rm std}(x) {\rm std}(y)} ! $$ @end tex @end iftex ! @ifnottex @example ! corrcoef(x,y) = cov(x,y)/(std(x)*std(y)) @end example ! @end ifnottex ! For matrices, each row is an observation and each column a variable; ! vectors are always observations and may be row or column vectors. ! @code{cor (@var{x})} is equivalent to @code{cor (@var{x}, @var{x})}. ! ! Note that the @code{corrcoef} function does the same as @code{cor}. @end deftypefn ! kurtosis -*- texinfo -*- ! @deftypefn {Function File} {} kurtosis (@var{x}, @var{dim}) ! If @var{x} is a vector of length @math{N}, return the kurtosis ! @iftex ! @tex ! $$ ! {\rm kurtosis} (x) = {1\over N \sigma(x)^4} \sum_{i=1}^N (x_i-\bar{x})^4 - 3 ! $$ ! where $\bar{x}$ is the mean value of $x$. ! @end tex ! @end iftex ! @ifinfo ! @example ! kurtosis (x) = N^(-1) std(x)^(-4) sum ((x - mean(x)).^4) - 3 ! @end example ! @end ifinfo ! ! @noindent ! of @var{x}. If @var{x} is a matrix, return the kurtosis over the ! first non-singleton dimension. The optional argument @var{dim} ! can be given to force the kurtosis to be given over that ! dimension. @end deftypefn ! cut -*- texinfo -*- ! @deftypefn {Function File} {} cut (@var{x}, @var{breaks}) ! Create categorical data out of numerical or continuous data by ! cutting into intervals. ! If @var{breaks} is a scalar, the data is cut into that many ! equal-width intervals. If @var{breaks} is a vector of break points, ! the category has @code{length (@var{breaks}) - 1} groups. ! ! The returned value is a vector of the same size as @var{x} telling ! which group each point in @var{x} belongs to. Groups are labelled ! from 1 to the number of groups; points outside the range of ! @var{breaks} are labelled by @code{NaN}. @end deftypefn ! gls -*- texinfo -*- ! @deftypefn {Function File} {[@var{beta}, @var{v}, @var{r}] =} gls (@var{y}, @var{x}, @var{o}) ! Generalized least squares estimation for the multivariate model ! @iftex ! @tex ! $y = x b + e$ ! with $\bar{e} = 0$ and cov(vec($e$)) = $(s^2)o$, ! @end tex ! @end iftex ! @ifinfo ! @math{y = x b + e} with @math{mean (e) = 0} and ! @math{cov (vec (e)) = (s^2) o}, ! @end ifinfo ! where ! @iftex ! @tex ! $y$ is a $t \times p$ matrix, $x$ is a $t \times k$ matrix, $b$ is a $k ! \times p$ matrix, $e$ is a $t \times p$ matrix, and $o$ is a $tp \times ! tp$ matrix. ! @end tex ! @end iftex ! @ifinfo ! @math{y} is a @math{t} by @math{p} matrix, @math{x} is a @math{t} by ! @math{k} matrix, @math{b} is a @math{k} by @math{p} matrix, @math{e} ! is a @math{t} by @math{p} matrix, and @math{o} is a @math{t p} by ! @math{t p} matrix. ! @end ifinfo ! ! @noindent ! Each row of @var{y} and @var{x} is an observation and each column a ! variable. The return values @var{beta}, @var{v}, and @var{r} are ! defined as follows. ! ! @table @var ! @item beta ! The GLS estimator for @math{b}. ! ! @item v ! The GLS estimator for @math{s^2}. ! ! @item r ! The matrix of GLS residuals, @math{r = y - x beta}. ! @end table @end deftypefn ! run_count -*- texinfo -*- ! @deftypefn {Function File} {} run_count (@var{x}, @var{n}) ! Count the upward runs along the first non-singleton dimension of ! @var{x} of length 1, 2, @dots{}, @var{n}-1 and greater than or equal ! to @var{n}. If the optional argument @var{dim} is given operate ! along this dimension @end deftypefn ! mean -*- texinfo -*- ! @deftypefn {Function File} {} mean (@var{x}, @var{dim}, @var{opt}) ! If @var{x} is a vector, compute the mean of the elements of @var{x} @iftex @tex ! $$ {\rm mean}(x) = \bar{x} = {1\over N} \sum_{i=1}^N x_i $$ @end tex @end iftex ! @ifinfo ! @example ! mean (x) = SUM_i x(i) / N @end example ! @end ifinfo ! If @var{x} is a matrix, compute the mean for each column and return them ! in a row vector. ! With the optional argument @var{opt}, the kind of mean computed can be ! selected. The following options are recognized: ! ! @table @code ! @item "a" ! Compute the (ordinary) arithmetic mean. This is the default. ! ! @item "g" ! Compute the geometric mean. ! ! @item "h" ! Compute the harmonic mean. ! @end table ! ! If the optional argument @var{dim} is supplied, work along dimension ! @var{dim}. ! ! Both @var{dim} and @var{opt} are optional. If both are supplied, ! either may appear first. @end deftypefn ! qmult -*- texinfo -*- ! @deftypefn {Function File} {} qmult (@var{a}, @var{b}) ! Multiply two quaternions. ! ! @example ! [w, x, y, z] = w*i + x*j + y*k + z ! @end example ! ! @noindent ! identities: ! ! @example ! i^2 = j^2 = k^2 = -1 ! ij = k jk = i ! ki = j kj = -i ! ji = -k ik = -j ! @end example @end deftypefn ! qderiv -*- texinfo -*- ! @deftypefn {Function File} {} qderiv (omega) ! Derivative of a quaternion. ! Let Q be a quaternion to transform a vector from a fixed frame to ! a rotating frame. If the rotating frame is rotating about the ! [x, y, z] axes at angular rates [wx, wy, wz], then the derivative ! of Q is given by ! ! @example ! Q' = qderivmat (omega) * Q ! @end example ! ! If the passive convention is used (rotate the frame, not the vector), ! then ! ! @example ! Q' = -qderivmat (omega) * Q ! @end example @end deftypefn ! qtrans -*- texinfo -*- ! @deftypefn {Function File} {} qtrans (@var{v}, @var{q}) ! Transform the unit quaternion @var{v} by the unit quaternion @var{q}. ! Returns @code{@var{v} = @var{q}*@var{v}/@var{q}}. @end deftypefn ! qconj -*- texinfo -*- ! @deftypefn {Function File} {} qconj (@var{q}) ! Conjugate of a quaternion. ! @example ! q = [w, x, y, z] = w*i + x*j + y*k + z ! qconj (q) = -w*i -x*j -y*k + z ! @end example @end deftypefn ! qcoordinate_plot -*- texinfo -*- ! @deftypefn {Function File} {} qcoordinate_plot (@var{qf}, @var{qb}, @var{qv}) ! Plot in the current figure a set of coordinate axes as viewed from ! the orientation specified by quaternion @var{qv}. Inertial axes are ! also plotted: ! ! @table @var ! @item qf ! Quaternion from reference (x,y,z) to inertial. ! @item qb ! Quaternion from reference to body. ! @item qv ! Quaternion from reference to view angle. ! @end table @end deftypefn ! qinv -*- texinfo -*- ! @deftypefn {Function File} {} qinv (@var{q}) ! Return the inverse of a quaternion. ! @example ! q = [w, x, y, z] = w*i + x*j + y*k + z ! qmult (q, qinv (q)) = 1 = [0 0 0 1] ! @end example @end deftypefn ! qtransvmat -*- texinfo -*- ! @deftypefn {Function File} {} qtransvmat (@var{qib}) ! Construct a 3x3 transformation matrix from quaternion @var{qib} that ! is equivalent to rotation of th radians about axis @var{vv}, where ! @code{[@var{vv}, @var{th}] = quaternion (@var{qib})}. @end deftypefn ! qderivmat -*- texinfo -*- ! @deftypefn {Function File} {} qderivmat (@var{omega}) ! Derivative of a quaternion. ! Let Q be a quaternion to transform a vector from a fixed frame to ! a rotating frame. If the rotating frame is rotating about the ! [x, y, z] axes at angular rates [wx, wy, wz], then the derivative ! of Q is given by ! ! @example ! Q' = qderivmat (omega) * Q ! @end example ! ! If the passive convention is used (rotate the frame, not the vector), ! then ! ! @example ! Q' = -qderivmat (omega) * Q. ! @end example @end deftypefn ! demoquat -*- texinfo -*- ! @deftypefn {Function File} {} demoquat () ! Demonstrate the functions available for manipulating quaternions. ! Thanks to Mr. Charles Hall, Dr. Don Krupp and Dr. Larry Mullins at ! NASA's Marshall Space Flight Center for notes and instruction in ! use and conventions with quaternions. - A. S. Hodel @end deftypefn ! quaternion -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{b}, @var{c}, @var{d}] =} quaternion (w) ! @deftypefnx {Function File} {[@var{vv}, @var{theta}] =} quaternion (w) ! @deftypefnx {Function File} {@var{w} =} quaternion (@var{a}, @var{b}, @var{c}, @var{d}) ! @deftypefnx {Function File} {@var{w} =} quaternion (@var{vv}, @var{theta}) ! Construct or extract a quaternion ! @example ! w = a*i + b*j + c*k + d ! @end example ! ! @noindent ! from given data. @end deftypefn ! qtransv -*- texinfo -*- ! @deftypefn {Function File} {} qtransv (@var{v}, @var{q}) ! Transform the 3-D vector @var{v} by the unit quaternion @var{q}. ! Return a column vector. ! ! @example ! vi = (2*real(q)^2 - 1)*vb + 2*imag(q)*(imag(q)'*vb) ! + 2*real(q)*cross(imag(q),vb) ! @end example ! ! @noindent ! Where imag(q) is a column vector of length 3. @end deftypefn ! griddatan -*- texinfo -*- ! @deftypefn {Function File} {@var{yi} =} griddatan (@var{x}, @var{y}, @var{xi}, @var{method}, @var{options}) ! ! Generate a regular mesh from irregular data using interpolation. ! The function is defined by @code{@var{y} = f (@var{x})}. ! The interpolation points are all @var{xi}. ! ! The interpolation method can be @code{"nearest"} or @code{"linear"}. ! If method is omitted it defaults to @code{"linear"}. ! @seealso{griddata, delaunayn} @end deftypefn ! delaunay3 -*- texinfo -*- ! @deftypefn {Function File} {@var{T} =} delaunay3 (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {@var{T} =} delaunay3 (@var{x}, @var{y}, @var{z}, @var{opt}) ! A matrix of size [n, 4] is returned. Each row contains a ! set of tetrahedron which are ! described by the indices to the data point vectors (x,y,z). ! ! A fourth optional argument, which must be a string or cell array of strings, ! contains extra options passed to the underlying qhull command. See the ! documentation for the Qhull library for details. ! @seealso{delaunay,delaunayn} @end deftypefn ! griddata3 -*- texinfo -*- ! @deftypefn {Function File} {@var{vi} =} griddata3 (@var{x}, @var{y}, @var{z}, @var{v} @var{xi}, @var{yi}, @var{zi}, @var{method}, @var{options}) ! ! Generate a regular mesh from irregular data using interpolation. ! The function is defined by @code{@var{y} = f (@var{x},@var{y},@var{z})}. ! The interpolation points are all @var{xi}. ! ! The interpolation method can be @code{"nearest"} or @code{"linear"}. ! If method is omitted it defaults to @code{"linear"}. ! @seealso{griddata, delaunayn} @end deftypefn ! voronoi -*- texinfo -*- ! @deftypefn {Function File} {} voronoi (@var{x}, @var{y}) ! @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle") ! @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle", @var{options}) ! @deftypefnx {Function File} {[@var{vx}, @var{vy}] =} voronoi (@dots{}) ! plots voronoi diagram of points @code{(@var{x}, @var{y})}. ! The voronoi facets with points at infinity are not drawn. ! [@var{vx}, @var{vy}] = voronoi(...) returns the vertices instead plotting the ! diagram. plot (@var{vx}, @var{vy}) shows the voronoi diagram. ! A fourth optional argument, which must be a string, contains extra options ! passed to the underlying qhull command. See the documentation for the ! Qhull library for details. ! ! @example ! @group ! x = rand (10, 1); ! y = rand (size (x)); ! h = convhull (x, y); ! [vx, vy] = voronoi (x, y); ! plot (vx, vy, "-b", x, y, "o", x(h), y(h), "-g") ! legend ("", "points", "hull"); ! @end group ! @end example ! ! @seealso{voronoin, delaunay, convhull} @end deftypefn ! dsearch -*- texinfo -*- ! @deftypefn {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}) ! @deftypefnx {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}, @var{s}) ! Returns the index @var{idx} or the closest point in @code{@var{x}, @var{y})} ! to the elements @code{[@var{xi}(:), @var{yi}(:)]}. The variable @var{s} is ! accepted but ignored for compatibility. ! @seealso{dsearchn, tsearch} @end deftypefn ! delaunayn -*- texinfo -*- ! @deftypefn {Function File} {@var{T} =} delaunayn (@var{P}) ! @deftypefnx {Function File} {@var{T} =} delaunayn (@var{P}, @var{opt}) ! Form the Delaunay triangulation for a set of points. ! The Delaunay triangulation is a tessellation of the convex hull of the ! points such that no n-sphere defined by the n-triangles contains ! any other points from the set. ! The input matrix @var{P} of size @code{[n, dim]} contains @var{n} ! points in a space of dimension dim. The return matrix @var{T} has the ! size @code{[m, dim+1]}. It contains for each row a set of indices to ! the points, which describes a simplex of dimension dim. For example, ! a 2d simplex is a triangle and 3d simplex is a tetrahedron. ! Extra options for the underlying Qhull command can be specified by the ! second argument. This argument is a cell array of strings. The default ! options depend on the dimension of the input: ! ! @itemize ! @item 2D and 3D: @var{opt} = @code{@{"Qt", "Qbb", "Qc"@}} ! @item 4D and higher: @var{opt} = @code{@{"Qt", "Qbb", "Qc", "Qz"@}} ! @end itemize ! ! If @var{opt} is [], then the default arguments are used. If @var{opt} ! is @code{@{"@w{}"@}}, then none of the default arguments are used by Qhull. ! See the Qhull documentation for the available options. ! ! All options can also be specified as single string, for example ! @code{"Qt Qbb Qc Qz"}. @end deftypefn ! tsearchn -*- texinfo -*- ! @deftypefn {Function File} {[@var{idx}, @var{p}] =} tsearchn (@var{x}, @var{t}, @var{xi}) ! Searches for the enclosing Delaunay convex hull. For @code{@var{t} = ! delaunayn (@var{x})}, finds the index in @var{t} containing the ! points @var{xi}. For points outside the convex hull, @var{idx} is NaN. ! If requested @code{tsearchn} also returns the barycentric coordinates @var{p} ! of the enclosing triangles. ! @seealso{delaunay, delaunayn} @end deftypefn ! convhull -*- texinfo -*- ! @deftypefn {Function File} {@var{H} =} convhull (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{H} =} convhull (@var{x}, @var{y}, @var{opt}) ! Returns the index vector to the points of the enclosing convex hull. The ! data points are defined by the x and y vectors. ! ! A third optional argument, which must be a string, contains extra options ! passed to the underlying qhull command. See the documentation for the ! Qhull library for details. ! ! @seealso{delaunay, convhulln} @end deftypefn ! voronoin -*- texinfo -*- ! @deftypefn {Function File} {[@var{C}, @var{F}] =} voronoin (@var{pts}) ! @deftypefnx {Function File} {[@var{C}, @var{F}] =} voronoin (@var{pts}, @var{options}) ! computes n- dimensional voronoi facets. The input matrix @var{pts} ! of size [n, dim] contains n points of dimension dim. ! @var{C} contains the points of the voronoi facets. The list @var{F} ! contains for each facet the indices of the voronoi points. ! A second optional argument, which must be a string, contains extra options ! passed to the underlying qhull command. See the documentation for the ! Qhull library for details. ! @seealso{voronoin, delaunay, convhull} @end deftypefn ! inpolygon -*- texinfo -*- ! @deftypefn {Function File} {[@var{in}, @var{on}] = } inpolygon (@var{x}, @var{y}, @var{xv}, @var{xy}) ! ! For a polygon defined by @code{(@var{xv}, @var{yv})} points, determine ! if the points @code{(@var{x}, @var{y})} are inside or outside the polygon. ! The variables @var{x}, @var{y}, must have the same dimension. The optional ! output @var{on} gives the points that are on the polygon. ! @end deftypefn ! griddata -*- texinfo -*- ! @deftypefn {Function File} {@var{zi} =} griddata (@var{x}, @var{y}, @var{z}, @var{xi}, @var{yi}, @var{method}) ! @deftypefnx {Function File} {[@var{xi}, @var{yi}, @var{zi}] =} griddata (@var{x}, @var{y}, @var{z}, @var{xi}, @var{yi}, @var{method}) ! ! Generate a regular mesh from irregular data using interpolation. ! The function is defined by @code{@var{z} = f (@var{x}, @var{y})}. ! The interpolation points are all @code{(@var{xi}, @var{yi})}. If ! @var{xi}, @var{yi} are vectors then they are made into a 2D mesh. ! ! The interpolation method can be @code{"nearest"}, @code{"cubic"} or ! @code{"linear"}. If method is omitted it defaults to @code{"linear"}. ! @seealso{delaunay} @end deftypefn ! trimesh -*- texinfo -*- ! @deftypefn {Function File} {} trimesh (@var{tri}, @var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {@var{h} = } trimesh (@dots{}) ! Plot a triangular mesh in 3D. The variable @var{tri} is the triangular ! meshing of the points @code{(@var{x}, @var{y})} which is returned ! from @code{delaunay}. The variable @var{z} is value at the point ! @code{(@var{x}, @var{y})}. The output argument @var{h} is the graphic ! handle to the plot. ! @seealso{triplot, delaunay3} @end deftypefn ! dsearchn -*- texinfo -*- ! @deftypefn {Function File} {@var{idx} =} dsearchn (@var{x}, @var{tri}, @var{xi}) ! @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{tri}, @var{xi}, @var{outval}) ! @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{xi}) ! @deftypefnx {Function File} {[@var{idx}, @var{d}] =} dsearchn (@dots{}) ! Returns the index @var{idx} or the closest point in @var{x} to the elements ! @var{xi}. If @var{outval} is supplied, then the values of @var{xi} that are ! not contained within one of the simplicies @var{tri} are set to ! @var{outval}. Generally, @var{tri} is returned from @code{delaunayn ! (@var{x})}. ! @seealso{dsearch, tsearch} @end deftypefn ! triplot -*- texinfo -*- ! @deftypefn {Function File} {} triplot (@var{tri}, @var{x}, @var{y}) ! @deftypefnx {Function File} {} triplot (@var{tri}, @var{x}, @var{y}, @var{linespec}) ! @deftypefnx {Function File} {@var{h} = } triplot (@dots{}) ! Plot a triangular mesh in 2D. The variable @var{tri} is the triangular ! meshing of the points @code{(@var{x}, @var{y})} which is returned from ! @code{delaunay}. If given, the @var{linespec} determines the properties ! to use for the lines. The output argument @var{h} is the graphic handle ! to the plot. ! @seealso{plot, trimesh, delaunay} @end deftypefn ! delaunay -*- texinfo -*- ! @deftypefn {Function File} {@var{tri}=} delaunay (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{tri}=} delaunay (@var{x}, @var{y}, @var{opt}) ! The return matrix of size [n, 3] contains a set triangles which are ! described by the indices to the data point x and y vector. ! The triangulation satisfies the Delaunay circumcircle criterion. ! No other data point is in the circumcircle of the defining triangle. ! A third optional argument, which must be a string, contains extra options ! passed to the underlying qhull command. See the documentation for the ! Qhull library for details. ! @example ! @group ! x = rand (1, 10); ! y = rand (size (x)); ! T = delaunay (x, y); ! X = [x(T(:,1)); x(T(:,2)); x(T(:,3)); x(T(:,1))]; ! Y = [y(T(:,1)); y(T(:,2)); y(T(:,3)); y(T(:,1))]; ! axis ([0,1,0,1]); ! plot (X, Y, "b", x, y, "r*"); ! @end group ! @end example ! @seealso{voronoi, delaunay3, delaunayn} @end deftypefn ! __plt2mm__ ! Undocumented internal function. ! grid -*- texinfo -*- ! @deftypefn {Function File} {} grid (@var{arg}) ! @deftypefnx {Function File} {} grid ("minor", @var{arg2}) ! @deftypefnx {Function File} {} grid (@var{hax}, @dots{}) ! Force the display of a grid on the plot. ! The argument may be either @code{"on"}, or @code{"off"}. ! If it is omitted, the current grid state is toggled. ! If @var{arg} is @code{"minor"} then the minor grid is toggled. When ! using a minor grid a second argument @var{arg2} is allowed, which can ! be either @code{"on"} or @code{"off"} to explicitly set the state of ! the minor grid. ! ! If the first argument is an axis handle, @var{hax}, operate on the ! specified axis object. ! @seealso{plot} @end deftypefn ! semilogx -*- texinfo -*- ! @deftypefn {Function File} {} semilogx (@var{args}) ! Produce a two-dimensional plot using a log scale for the @var{x} ! axis. See the description of @code{plot} for a description of the ! arguments that @code{semilogx} will accept. ! @seealso{plot, semilogy, loglog} @end deftypefn ! surface -*- texinfo -*- ! @deftypefn {Function File} {} surface (@var{x}, @var{y}, @var{z}, @var{c}) ! @deftypefnx {Function File} {} surface (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {} surface (@var{z}, @var{c}) ! @deftypefnx {Function File} {} surface (@var{z}) ! @deftypefnx {Function File} {} surface (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} surface (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} = } surface (@dots{}) ! Plot a surface graphic object given matrices @var{x}, and @var{y} from ! @code{meshgrid} and a matrix @var{z} corresponding to the @var{x} and ! @var{y} coordinates of the surface. If @var{x} and @var{y} are vectors, ! then a typical vertex is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, ! columns of @var{z} correspond to different @var{x} values and rows of ! @var{z} correspond to different @var{y} values. If @var{x} and @var{y} ! are missing, they are constructed from size of the matrix @var{z}. ! Any additional properties passed are assigned the the surface.. ! @seealso{surf, mesh, patch, line} @end deftypefn ! title -*- texinfo -*- ! @deftypefn {Function File} {} title (@var{title}) ! Create a title object and return a handle to it. @end deftypefn ! ellipsoid -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} ellipsoid (@var{xc},@var{yc}, @var{zc}, @var{xr}, @var{yr}, @var{zr}, @var{n}) ! @deftypefnx {Function File} {} ellipsoid (@var{h}, @dots{}) ! Generate three matrices in @code{meshgrid} format that define an ! ellipsoid. Called with no return arguments, @code{ellipsoid} calls ! directly @code{surf (@var{x}, @var{y}, @var{z})}. If an axes handle ! is passed as the first argument, the the surface is plotted to this ! set of axes. ! @seealso{sphere} @end deftypefn ! isfigure -*- texinfo -*- ! @deftypefn {Function File} {} isfigure (@var{h}) ! Return true if @var{h} is a graphics handle that contains a figure ! object and false otherwise. @end deftypefn ! findobj -*- texinfo -*- ! @deftypefn {Function File} {@var{h} =} findobj () ! @deftypefnx {Function File} {@var{h} =} findobj (@var{propName}, @var{propValue}) ! @deftypefnx {Function File} {@var{h} =} findobj ('-property', @var{propName}) ! @deftypefnx {Function File} {@var{h} =} findobj ('-regexp', @var{propName},, @var{pattern}) ! @deftypefnx {Function File} {@var{h} =} findobj ('flat', @dots{}) ! @deftypefnx {Function File} {@var{h} =} findobj (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} findobj (@var{h}, '-depth', @var{d}, @dots{}) ! Find object with specified property values. The simplest form is @example ! findobj (@var{propName}, @var{propValue}) @end example @noindent ! which returns all of the handles to the objects with the name ! @var{propName} and the name @var{propValue}. The search can be limited ! to a particular object or set of objects and their descendants by ! passing a handle or set of handles @var{h} as the first argument to ! @code{findobj}. ! The depth of hierarchy of objects to which to search to can be limited ! with the '-depth' argument. To limit the number depth of the hierarchy ! to search to @var{d} generations of children, and example is @example ! findobj (@var{h}, '-depth', @var{d}, @var{propName}, @var{propValue}) @end example ! Specifying a depth @var{d} of 0, limits the search to the set of object ! passed in @var{h}. A depth @var{d} of 0 is equivalent to the '-flat' ! argument. ! A specified logical operator may be applied to the pairs of @var{propName} ! and @var{propValue}. The supported logical operators are '-and', '-or', ! '-xor', '-not'. ! The objects may also be matched by comparing a regular expression to the ! property values, where property values that match @code{regexp ! (@var{propValue}, @var{pattern})} are returned. Finally, objects may be ! matched by property name only, using the '-property' option. ! @seealso{get, set} @end deftypefn ! loglogerr -*- texinfo -*- ! @deftypefn {Function File} {} loglogerr (@var{args}) ! Produce two-dimensional plots on double logarithm axis with ! errorbars. Many different combinations of arguments are possible. ! The most used form is ! @example ! loglogerr (@var{x}, @var{y}, @var{ey}, @var{fmt}) @end example ! @noindent ! which produces a double logarithm plot of @var{y} versus @var{x} ! with errors in the @var{y}-scale defined by @var{ey} and the plot ! format defined by @var{fmt}. See errorbar for available formats and ! additional information. ! @seealso{errorbar, semilogxerr, semilogyerr} @end deftypefn ! __default_plot_options__ ! Undocumented internal function. ! stem -*- texinfo -*- ! @deftypefn {Function File} {@var{h} =} stem (@var{x}, @var{y}, @var{linespec}) ! Plot a stem graph and return the handles of the line and marker ! objects used to draw the stems. The default color is @code{"r"} ! (red). The default line style is @code{"-"} and the default marker is ! @code{"o"}. ! For example, ! @example ! x = 1:10; ! stem (x); ! @end example ! @noindent ! plots 10 stems with heights from 1 to 10; ! @example ! x = 1:10; ! y = ones (1, length (x))*2.*x; ! stem (x, y); ! @end example ! @noindent ! plots 10 stems with heights from 2 to 20; ! @example ! x = 1:10; ! y = ones (size (x))*2.*x; ! h = stem (x, y, "b"); ! @end example ! @noindent ! plots 10 bars with heights from 2 to 20 ! (the color is blue, and @var{h} is a 2-by-10 array of handles in ! which the first row holds the line handles and ! the second row holds the marker handles); @example ! x = 1:10; ! y = ones (size (x))*2.*x; ! h = stem (x, y, "-.k"); @end example + @noindent + plots 10 stems with heights from 2 to 20 + (the color is black, line style is @code{"-."}, and @var{h} is a 2-by-10 + array of handles in which the first row holds the line handles and + the second row holds the marker handles); + @example + x = 1:10; + y = ones (size (x))*2.*x; + h = stem (x, y, "-.k."); + @end example @noindent ! plots 10 stems with heights from 2 to 20 ! (the color is black, line style is @code{"-."} and the marker style ! is @code{"."}, and @var{h} is a 2-by-10 array of handles in which the ! first row holds the line handles and the second row holds the marker ! handles); @example ! x = 1:10; ! y = ones (size (x))*2.*x; ! h = stem (x, y, "fill"); @end example ! @noindent ! plots 10 stems with heights from 2 to 20 ! (the color is rgb-triple defined, the line style is @code{"-"}, ! the marker style is @code{"o"}, and @var{h} is a 2-by-10 array of ! handles in which the first row holds the line handles and the second ! row holds the marker handles). ! Color definitions with rgb-triples are not valid! ! @seealso{bar, barh, plot} @end deftypefn ! orient -*- texinfo -*- ! @deftypefn {Function File} {} orient (@var{orientation}) ! Set the default print orientation. Valid values for ! @var{orientation} include @code{"landscape"} and @code{"portrait"}. ! If called with no arguments, return the default print orientation. @end deftypefn ! __plt2__ ! Undocumented internal function. ! barh -*- texinfo -*- ! @deftypefn {Function File} {} barh (@var{x}, @var{y}) ! @deftypefnx {Function File} {} barh (@var{y}) ! @deftypefnx {Function File} {} barh (@var{x}, @var{y}, @var{w}) ! @deftypefnx {Function File} {} barh (@var{x}, @var{y}, @var{w}, @var{style}) ! @deftypefnx {Function File} {@var{h} =} barh (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} barh (@var{h}, @dots{}) ! Produce a horizontal bar graph from two vectors of x-y data. ! If only one argument is given, it is taken as a vector of y-values ! and the x coordinates are taken to be the indices of the elements. ! The default width of 0.8 for the bars can be changed using @var{w}. ! If @var{y} is a matrix, then each column of @var{y} is taken to be a ! separate bar graph plotted on the same graph. By default the columns ! are plotted side-by-side. This behavior can be changed by the @var{style} ! argument, which can take the values @code{"grouped"} (the default), ! or @code{"stacked"}. ! The optional return value @var{h} provides a handle to the patch object. ! Whereas the option input handle @var{h} allows an axis handle to be passed. ! Properties of the patch graphics object can be changed using ! @var{prop}, @var{val} pairs. ! @seealso{bar, plot} ! @end deftypefn ! ylim ! -*- texinfo -*- ! @deftypefn {Function File} {@var{xl} =} ylim () ! @deftypefnx {Function File} {} ylim (@var{xl}) ! @deftypefnx {Function File} {@var{m} =} ylim ('mode') ! @deftypefnx {Function File} {} ylim (@var{m}) ! @deftypefnx {Function File} {} ylim (@var{h}, @dots{}) ! Get or set the limits of the y axis of the current plot. Called without ! argumenst @code{ylim] returns the y axis limits of the current plot. ! If passed a two element vector @var{xl}, the limits of the y axis are set ! to this value. ! The current mode for calculation of the y axis can be returned with a ! call @code{ylim ('mode')}, and can be either 'auto' or 'manual'. The ! current plotting mode can be set by passing either 'auto' or 'manual' ! as the argument. ! If passed an handle as the first argument, then operate on this handle ! rather than the current axes handle. ! @seealso{xlim, zlim, set, get, gca} @end deftypefn ! __plt__ ! Undocumented internal function. ! scatter3 -*- texinfo -*- ! @deftypefn {Function File} {} scatter3 (@var{x}, @var{y}, @var{s}, @var{c}) ! @deftypefnx {Function File} {} scatter3 (@dots{}, 'filled') ! @deftypefnx {Function File} {} scatter3 (@dots{}, @var{style}) ! @deftypefnx {Function File} {} scatter3 (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} scatter3 (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} scatter3 (@dots{}) ! Plot a scatter plot of the data in 3D. A marker is plotted at each point ! defined by the points in the vectors @var{x}, @var{y} and @var{z}. The size ! of the markers used is determined by @var{s}, which can be a scalar or ! a vector of the same length of @var{x}, @var{y} and @var{z}. If @var{s} is ! not given or is an empty matrix, then the default value of 8 points is used. ! The color of the markers is determined by @var{c}, which can be a string ! defining a fixed color, a 3 element vector giving the red, green and blue ! components of the color, a vector of the same length as @var{x} that gives ! a scaled index into the current colormap, or a @var{n}-by-3 matrix defining ! the colors of each of the markers individually. ! The marker to use can be changed with the @var{style} argument, that is a ! string defining a marker in the same manner as the @code{plot} command. ! If the argument 'filled' is given then the markers as filled. All ! additional arguments are passed to the underlying patch command. ! The optional return value @var{h} provides a handle to the patch object @example @group ! [x, y, z] = peaks (20); ! scatter3 (x(:), y(:), z(:), [], z(:)); @end group @end example ! @seealso{plot, patch, scatter} @end deftypefn ! __bar__ ! Undocumented internal function. ! patch -*- texinfo -*- ! @deftypefn {Function File} {} patch () ! @deftypefnx {Function File} {} patch (@var{x}, @var{y}, @var{c}) ! @deftypefnx {Function File} {} patch (@var{x}, @var{y}, @var{c}, @var{opts}) ! @deftypefnx {Function File} {} patch ('Faces', @var{f}, 'Vertices', @var{v}, @dots{}) ! @deftypefnx {Function File} {} patch (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} patch (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} = } patch (@dots{}) ! Create patch object from @var{x} and @var{y} with color @var{c} and ! insert in the current axes object. Return handle to patch object. ! For a uniform colored patch, @var{c} can be given as an RGB vector, ! scalar value referring to the current colormap, or string value (for ! example, "r" or "red"). @end deftypefn ! __stem__ ! Undocumented internal function ! __gnuplot_version__ ! Undocumented internal function. ! view -*- texinfo -*- ! @deftypefn {Function File} {} view (@var{azimuth}, @var{elevation}) ! @deftypefnx {Function File} {} view (@var{dims}) ! @deftypefnx {Function File} {[@var{azimuth}, @var{elevation}] =} view () ! Set or get the viewpoint for the current axes. @end deftypefn ! gca -*- texinfo -*- ! @deftypefn {Function File} {} gca () ! Return a handle to the current axis object. If no axis object ! exists, create one and return its handle. The handle may then be ! used to examine or set properties of the axes. For example, @example @group ! ax = gca (); ! set (ax, "position", [0.5, 0.5, 0.5, 0.5]); @end group @end example ! @noindent ! creates an empty axes object, then changes its location and size in ! the figure window. ! @seealso{get, set} @end deftypefn ! semilogxerr -*- texinfo -*- ! @deftypefn {Function File} {} semilogxerr (@var{args}) ! Produce two-dimensional plots on a semilogarithm axis with errorbars. ! Many different combinations of arguments are possible. The most used ! form is @example ! semilogxerr (@var{x}, @var{y}, @var{ey}, @var{fmt}) @end example ! @noindent ! which produces a semi-logarithm plot of @var{y} versus @var{x} ! with errors in the @var{y}-scale defined by @var{ey} and the plot ! format defined by @var{fmt}. See errorbar for available formats and ! additional information. ! @seealso{errorbar, loglogerr semilogyerr} @end deftypefn ! semilogyerr -*- texinfo -*- ! @deftypefn {Function File} {} semilogyerr (@var{args}) ! Produce two-dimensional plots on a semilogarithm axis with errorbars. ! Many different combinations of arguments are possible. The most used ! form is @example ! semilogyerr (@var{x}, @var{y}, @var{ey}, @var{fmt}) @end example @noindent ! which produces a semi-logarithm plot of @var{y} versus @var{x} ! with errors in the @var{y}-scale defined by @var{ey} and the plot ! format defined by @var{fmt}. See errorbar for available formats and ! additional information. ! @seealso{errorbar, loglogerr semilogxerr} @end deftypefn ! sphere -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} sphere (@var{n}) ! @deftypefnx {Function File} {} sphere (@var{h}, @dots{}) ! Generates three matrices in @code{meshgrid} format, such that ! @code{surf (@var{x}, @var{y}, @var{z})} generates a unit sphere. ! The matrices of @code{@var{n}+1}-by-@code{@var{n}+1}. If @var{n} is ! omitted then a default value of 20 is assumed. ! Called with no return arguments, @code{sphere} call directly ! @code{surf (@var{x}, @var{y}, @var{z})}. If an axes handle is passed ! as the first argument, the the surface is plotted to this set of axes. ! @seealso{peaks} @end deftypefn ! xlabel -*- texinfo -*- ! @deftypefn {Function File} {} xlabel (@var{string}) ! @deftypefnx {Function File} {} ylabel (@var{string}) ! @deftypefnx {Function File} {} zlabel (@var{string}) ! @deftypefnx {Function File} {} xlabel (@var{h}, @var{string}) ! Specify x, y, and z axis labels for the current figure. If @var{h} is ! specified then label the axis defined by @var{h}. ! @seealso{plot, semilogx, semilogy, loglog, polar, mesh, contour, ! bar, stairs, ylabel, title} @end deftypefn ! meshz -*- texinfo -*- ! @deftypefn {Function File} {} meshz (@var{x}, @var{y}, @var{z}) ! Plot a curtain mesh given matrices @var{x}, and @var{y} from ! @code{meshgrid} and a matrix @var{z} corresponding to the @var{x} and ! @var{y} coordinates of the mesh. If @var{x} and @var{y} are vectors, ! then a typical vertex is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, ! columns of @var{z} correspond to different @var{x} values and rows of ! @var{z} correspond to different @var{y} values. ! @seealso{meshgrid, mesh, contour} ! @end deftypefn ! __quiver__ ! Undocumented internal function ! hidden ! -*- texinfo -*- ! @deftypefn {Function File} {} hidden (@var{mode}) ! @deftypefnx {Function File} {} hidden () ! Manipulation the mesh hidden line removal. Called with no argument ! the hidden line removal is toggled. The argument @var{mode} can be either ! 'on' or 'off' and the set of the hidden line removal is set accordingly. ! @seealso{mesh, meshc, surf} ! @end deftypefn ! shg ! -*- texinfo -*- ! @deftypefn {Function File} {} shg ! Show the graph window. Currently, this is the same as executing ! @code{drawnow}. ! @seealso{drawnow, figure} ! @end deftypefn ! __plt2ss__ ! Undocumented internal function. ! __plt2sv__ ! Undocumented internal function. ! gcf ! -*- texinfo -*- ! @deftypefn {Function File} {} gcf () ! Return the current figure handle. If a figure does not exist, create ! one and return its handle. The handle may then be used to examine or ! set properties of the figure. For example, @example ! @group ! fplot (@@sin, [-10, 10]); ! fig = gcf (); ! set (fig, "visible", "off"); ! @end group @end example @noindent ! plots a sine wave, finds the handle of the current figure, and then ! makes that figure invisible. Setting the visible property of the ! figure to @code{"on"} will cause it to be displayed again. ! @seealso{get, set} @end deftypefn ! __patch__ ! Undocumented internal function. ! bar -*- texinfo -*- ! @deftypefn {Function File} {} bar (@var{x}, @var{y}) ! @deftypefnx {Function File} {} bar (@var{y}) ! @deftypefnx {Function File} {} bar (@var{x}, @var{y}, @var{w}) ! @deftypefnx {Function File} {} bar (@var{x}, @var{y}, @var{w}, @var{style}) ! @deftypefnx {Function File} {@var{h} =} bar (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} bar (@var{h}, @dots{}) ! Produce a bar graph from two vectors of x-y data. ! If only one argument is given, it is taken as a vector of y-values ! and the x coordinates are taken to be the indices of the elements. ! The default width of 0.8 for the bars can be changed using @var{w}. ! If @var{y} is a matrix, then each column of @var{y} is taken to be a ! separate bar graph plotted on the same graph. By default the columns ! are plotted side-by-side. This behavior can be changed by the @var{style} ! argument, which can take the values @code{"grouped"} (the default), ! or @code{"stacked"}. ! The optional return value @var{h} provides a handle to the patch object. ! Whereas the option input handle @var{h} allows an axis handle to be passed. ! Properties of the patch graphics object can be changed using ! @var{prop}, @var{val} pairs. ! ! @seealso{barh, plot} @end deftypefn ! pie -*- texinfo -*- ! @deftypefn {Function File} {} pie (@var{y}) ! @deftypefnx {Function File} {} pie (@var{y}, @var{explode}) ! @deftypefnx {Function File} {} pie (@dots{}, @var{labels}) ! @deftypefnx {Function File} {} pie (@var{h}, @dots{}); ! @deftypefnx {Function File} {@var{h} =} pie (@dots{}); ! Produce a pie chart. ! Called with a single vector argument, produces a pie chart of the ! elements in @var{x}, with the size of the slice determined by percentage ! size of the values of @var{x}. ! The variable @var{explode} is a vector of the same length as @var{x} that ! if non zero 'explodes' the slice from the pie chart. ! ! If given @var{labels} is a cell array of strings of the same length as ! @var{x}, giving the labels of each of the slices of the pie chart. ! ! The optional return value @var{h} provides a handle to the patch object. ! ! @seealso{bar, stem} @end deftypefn ! surfc -*- texinfo -*- ! @deftypefn {Function File} {} surfc (@var{x}, @var{y}, @var{z}) ! Plot a surface and contour given matrices @var{x}, and @var{y} from ! @code{meshgrid} and a matrix @var{z} corresponding to the @var{x} and ! @var{y} coordinates of the mesh. If @var{x} and @var{y} are vectors, ! then a typical vertex is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, ! columns of @var{z} correspond to different @var{x} values and rows of ! @var{z} correspond to different @var{y} values. ! @seealso{meshgrid, surf, contour} @end deftypefn ! fplot -*- texinfo -*- ! @deftypefn {Function File} {} fplot (@var{fn}, @var{limits}) ! @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{tol}) ! @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{n}) ! @deftypefnx {Function File} {} fplot (@dots{}, @var{fmt}) ! Plot a function @var{fn}, within the defined limits. @var{fn} ! an be either a string, a function handle or an inline function. ! The limits of the plot are given by @var{limits} of the form ! @code{[@var{xlo}, @var{xhi}]} or @code{[@var{xlo}, @var{xhi}, ! @var{ylo}, @var{yhi}]}. @var{tol} is the default tolerance to use for the ! plot, and if @var{tol} is an integer it is assumed that it defines the ! number points to use in the plot. The @var{fmt} argument is passed ! to the plot command. ! ! @example ! fplot ("cos", [0, 2*pi]) ! fplot ("[cos(x), sin(x)]", [0, 2*pi]) ! @end example ! @seealso{plot} @end deftypefn ! ylabel -*- texinfo -*- ! @deftypefn {Function File} {} ylabel (@var{string}) ! @deftypefnx {Function File} {} ylabel (@var{h}, @var{string}) ! See xlabel. @end deftypefn ! sombrero -*- texinfo -*- ! @deftypefn {Function File} {} sombrero (@var{n}) ! Produce the familiar three-dimensional sombrero plot using @var{n} ! grid lines. If @var{n} is omitted, a value of 41 is assumed. ! The function plotted is ! @example ! z = sin (sqrt (x^2 + y^2)) / (sqrt (x^2 + y^2)) ! @end example ! @seealso{surf, meshgrid, mesh} @end deftypefn ! pcolor -*- texinfo -*- ! @deftypefn {Function File} {} pcolor (@var{x}, @var{y}, @var{c}) ! @deftypefnx {Function File} {} pcolor (@var{c}) ! Density plot for given matrices @var{x}, and @var{y} from @code{meshgrid} and ! a matrix @var{c} corresponding to the @var{x} and @var{y} coordinates of ! the mesh's vertices. If @var{x} and @var{y} are vectors, then a typical vertex ! is (@var{x}(j), @var{y}(i), @var{c}(i,j)). Thus, columns of @var{c} ! correspond to different @var{x} values and rows of @var{c} correspond ! to different @var{y} values. ! The @code{colormap} is scaled to the extents of @var{c}. ! Limits may be placed on the color axis by the ! command @code{caxis}, or by setting the @code{clim} property of the ! parent axis. ! The face color of each cell of the mesh is determined by interpolating ! the values of @var{c} for the cell's vertices. Contrast this with ! @code{imagesc} which renders one cell for each element of @var{c}. ! ! @code{shading} modifies an attribute determining the manner by which the ! face color of each cell is interpolated from the values of @var{c}, ! and the visibility of the cells' edges. By default the attribute is ! "faceted", which renders a single color for each cell's face with the edge ! visible. ! ! @var{h} is the handle to the surface object. ! ! @seealso{caxis, contour, meshgrid, imagesc, shading} @end deftypefn ! surfnorm -*- texinfo -*- ! @deftypefn {Function File} {} surfnorm (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {} surfnorm (@var{z}) ! @deftypefnx {Function File} {[@var{nx}, @var{ny}, @var{nz}] =} surfnorm (@dots{}) ! @deftypefnx {Function File} {} surfnorm (@var{h}, @dots{}) ! Find the vectors normal to a meshgridded surface. The meshed gridded ! surface is defined by @var{x}, @var{y}, and @var{z}. If @var{x} and ! @var{y} are not defined, then it is assumed that they are given by @example ! [@var{x}, @var{y}] = meshgrid (1:size(@var{z}, 1), ! 1:size(@var{z}, 2)); @end example ! If no return arguments are requested, a surface plot with the normal ! vectors to the surface is plotted. Otherwise the componets of the normal ! vectors at the mesh gridded points are returned in @var{nx}, @var{ny}, ! and @var{nz}. ! The normal vectors are calculated by taking the cross product of the ! diagonals of eash of teh quadrilaterals in the meshgrid to find the ! normal vectors of the centers of these quadrilaterals. The four nearest ! normal vectors to the meshgrid points are then averaged to obtain the ! normal to the surface at the meshgridded points. ! An example of the use of @code{surfnorm} is @example ! surfnorm (peaks (25)); @end example ! @seealso{surf, quiver3} @end deftypefn ! text -*- texinfo -*- ! @deftypefn {Function File} {@var{h} =} text (@var{x}, @var{y}, @var{label}) ! @deftypefnx {Function File} {@var{h} =} text (@var{x}, @var{y}, @var{z}, @var{label}) ! @deftypefnx {Function File} {@var{h} =} text (@var{x}, @var{y}, @var{label}, @var{p1}, @var{v1}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} text (@var{x}, @var{y}, @var{z}, @var{label}, @var{p1}, @var{v1}, @dots{}) ! Create a text object with text @var{label} at position @var{x}, ! @var{y}, @var{z} on the current axes. Property-value pairs following ! @var{label} may be used to specify the appearance of the text. @end deftypefn ! drawnow -*- texinfo -*- ! @deftypefn {Function File} {} drawnow () ! Update and display the current graphics. + Octave automatically calls drawnow just before printing a prompt, + when @code{sleep} or @code{pause} is called, or while waiting for + command-line input. @end deftypefn ! plotyy -*- texinfo -*- ! @deftypefn {Function File} {} plotyy (@var{x1}, @var{y1}, @var{x2}, @var{y2}) ! @deftypefnx {Function File} {} plotyy (@dots{}, @var{fun}) ! @deftypefnx {Function File} {} plotyy (@dots{}, @var{fun1}, @var{fun2}) ! @deftypefnx {Function File} {} plotyy (@var{h}, @dots{}) ! @deftypefnx {Function File} {[@var{ax}, @var{h1}, @var{h2}] =} plotyy (@dots{}) ! Plots two sets of data with independent y-axes. The arguments @var{x1} and ! @var{y1} define the arguments for the first plot and @var{x1} and @var{y2} ! for the second. ! By default the arguments are evaluated with ! @code{feval (@@plot, @var{x}, @var{y})}. However the type of plot can be ! modified with the @var{fun} argument, in which case the plots are ! generated by @code{feval (@var{fun}, @var{x}, @var{y})}. @var{fun} can be ! a function handle, an inline function or a string of a function name. ! The function to use for each of the plots can be independently defined ! with @var{fun1} and @var{fun2}. ! ! If given, @var{h} defines the principal axis in which to plot the @var{x1} ! and @var{y1} data. The return value @var{ax} is a two element vector with ! the axis handles of the two plots. @var{h1} and @var{h2} are handles to ! the objects generated by the plot commands. @example @group ! x = 0:0.1:2*pi; ! y1 = sin (x); ! y2 = exp (x - 1); ! ax = plotyy (x, y1, x - 1, y2, @@plot, @@semilogy); ! xlabel ("X"); ! ylabel (ax(1), "Axis 1"); ! ylabel (ax(2), "Axis 2"); @end group @end example @end deftypefn ! rose -*- texinfo -*- ! @deftypefn {Function File} {} rose (@var{th}, @var{r}) ! @deftypefnx {Function File} {} rose (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} compass (@dots{}) ! @deftypefnx {Function File} {[@var{r}, @var{th}] =} compass (@dots{}) ! Plot an angular histogram. With one vector argument @var{th}, plots the ! histogram with 20 angular bins. If @var{th} is a matrix, then each column ! of @var{th} produces a separate histogram. ! If @var{r} is given and is a scalar, then the histogram is produced with ! @var{r} bins. If @var{r} is a vector, then the center of each bin are ! defined by the values of @var{r}. ! The optional return value @var{h} provides a list of handles to the ! the parts of the vector field (body, arrow and marker). ! If two output arguments are requested, then rather than plotting the ! histogram, the polar vectors necessary to plot the histogram are ! returned. ! axis ! -*- texinfo -*- ! @deftypefn {Function File} {} axis (@var{limits}) ! Set axis limits for plots. ! The argument @var{limits} should be a 2, 4, or 6 element vector. The ! first and second elements specify the lower and upper limits for the x ! axis. The third and fourth specify the limits for the y axis, and the ! fifth and sixth specify the limits for the z axis. ! Without any arguments, @code{axis} turns autoscaling on. ! With one output argument, @code{x=axis} returns the current axes ! The vector argument specifying limits is optional, and additional ! string arguments may be used to specify various axis properties. For ! example, ! @example ! axis ([1, 2, 3, 4], "square"); ! @end example ! @noindent ! forces a square aspect ratio, and @example ! axis ("labely", "tic"); @end example ! @noindent ! turns tic marks on for all axes and tic mark labels on for the y-axis ! only. ! @noindent ! The following options control the aspect ratio of the axes. ! @table @code ! @item "square" ! Force a square aspect ratio. ! @item "equal" ! Force x distance to equal y-distance. ! @item "normal" ! Restore the balance. ! @end table ! @noindent ! The following options control the way axis limits are interpreted. @table @code ! @item "auto" ! Set the specified axes to have nice limits around the data ! or all if no axes are specified. ! @item "manual" ! Fix the current axes limits. ! @item "tight" ! Fix axes to the limits of the data (not implemented). @end table ! @noindent ! The option @code{"image"} is equivalent to @code{"tight"} and ! @code{"equal"}. ! @noindent ! The following options affect the appearance of tic marks. ! @table @code ! @item "on" ! Turn tic marks and labels on for all axes. ! @item "off" ! Turn tic marks off for all axes. ! @item "tic[xyz]" ! Turn tic marks on for all axes, or turn them on for the ! specified axes and off for the remainder. ! @item "label[xyz]" ! Turn tic labels on for all axes, or turn them on for the ! specified axes and off for the remainder. ! @item "nolabel" ! Turn tic labels off for all axes. ! @end table ! Note, if there are no tic marks for an axis, there can be no labels. ! @noindent ! The following options affect the direction of increasing values on ! the axes. ! @table @code ! @item "ij" ! Reverse y-axis, so lower values are nearer the top. ! @item "xy" ! Restore y-axis, so higher values are nearer the top. ! @end table ! ! If an axes handle is passed as the first argument, then operate on ! this axes rather than the current axes. @end deftypefn ! __plt_get_axis_arg__ ! Undocumented internal function. ! subplot -*- texinfo -*- ! @deftypefn {Function File} {} subplot (@var{rows}, @var{cols}, @var{index}) ! @deftypefnx {Function File} {} subplot (@var{rcn}) ! Set up a plot grid with @var{cols} by @var{rows} subwindows and plot ! in location given by @var{index}. ! If only one argument is supplied, then it must be a three digit value ! specifying the location in digits 1 (rows) and 2 (columns) and the plot ! index in digit 3. ! ! The plot index runs row-wise. First all the columns in a row are filled ! and then the next row is filled. + For example, a plot with 2 by 3 grid will have plot indices running as + follows: @iftex @tex ! \vskip 10pt ! \hfil\vbox{\offinterlineskip\hrule ! \halign{\vrule#&&\qquad\hfil#\hfil\qquad\vrule\cr ! height13pt&1&2&3\cr height12pt&&&\cr\noalign{\hrule} ! height13pt&4&5&6\cr height12pt&&&\cr\noalign{\hrule}}} ! \hfil ! \vskip 10pt @end tex @end iftex @ifinfo ! @display @group ! @example ! ! +-----+-----+-----+ ! | 1 | 2 | 3 | ! +-----+-----+-----+ ! | 4 | 5 | 6 | ! +-----+-----+-----+ @end example + @end group + @end display @end ifinfo ! @seealso{plot} @end deftypefn ! __axis_label__ ! Undocumented internal function. ! contourc -*- texinfo -*- ! @deftypefn {Function File} {[@var{c}, @var{lev}] =} contourc (@var{x}, @var{y}, @var{z}, @var{vn}) ! Compute isolines (contour lines) of the matrix @var{z}. ! Parameters @var{x}, @var{y} and @var{vn} are optional. ! The return value @var{lev} is a vector of the contour levels. ! The return value @var{c} is a 2 by @var{n} matrix containing the ! contour lines in the following format @example ! @var{c} = [lev1, x1, x2, ..., levn, x1, x2, ... ! len1, y1, y2, ..., lenn, y1, y2, ...] ! @end example ! @noindent ! in which contour line @var{n} has a level (height) of @var{levn} and ! length of @var{lenn}. ! If @var{x} and @var{y} are omitted they are taken as the row/column ! index of @var{z}. @var{vn} is either a scalar denoting the number of lines ! to compute or a vector containing the values of the lines. If only one ! value is wanted, set @code{@var{vn} = [val, val]}; ! If @var{vn} is omitted it defaults to 10. + For example, + @example @group ! x = 0:2; ! y = x; ! z = x' * y; ! contourc (x, y, z, 2:3) ! @result{} 2.0000 2.0000 1.0000 3.0000 1.5000 2.0000 ! 2.0000 1.0000 2.0000 2.0000 2.0000 1.5000 @end group @end example + @seealso{contour} @end deftypefn ! __plt2vv__ ! Undocumented internal function. ! plot3 -*- texinfo -*- ! @deftypefn {Function File} {} plot3 (@var{args}) ! Produce three-dimensional plots. Many different combinations of ! arguments are possible. The simplest form is ! @example ! plot3 (@var{x}, @var{y}, @var{z}) ! @end example ! @noindent ! in which the arguments are taken to be the vertices of the points to ! be plotted in three dimensions. If all arguments are vectors of the ! same length, then a single continuous line is drawn. If all arguments ! are matrices, then each column of the matrices is treated as a ! separate line. No attempt is made to transpose the arguments to make ! the number of rows match. ! If only two arguments are given, as @example ! plot3 (@var{x}, @var{c}) @end example @noindent ! the real and imaginary parts of the second argument are used ! as the @var{y} and @var{z} coordinates, respectively. ! If only one argument is given, as @example ! plot3 (@var{c}) @end example @noindent ! the real and imaginary parts of the argument are used as the @var{y} ! and @var{z} values, and they are plotted versus their index. ! ! Arguments may also be given in groups of three as @example ! plot3 (@var{x1}, @var{y1}, @var{z1}, @var{x2}, @var{y2}, @var{z2}, @dots{}) @end example ! @noindent ! in which each set of three arguments is treated as a separate line or ! set of lines in three dimensions. ! To plot multiple one- or two-argument groups, separate each group ! with an empty format string, as @example ! plot3 (@var{x1}, @var{c1}, "", @var{c2}, "", @dots{}) @end example ! An example of the use of @code{plot3} is @example @group ! z = [0:0.05:5]; ! plot3 (cos(2*pi*z), sin(2*pi*z), z, ";helix;"); ! plot3 (z, exp(2i*pi*z), ";complex sinusoid;"); @end group @end example ! @seealso{plot} @end deftypefn ! ribbon -*- texinfo -*- ! @deftypefn {Function File} ribbon (@var{x}, @var{y}, @var{width}) ! @deftypefnx {Function File} ribbon (@var{y}) ! @deftypefnx {Function File} @var{h} = ribbon (@dots{}) ! Plot a ribbon plot for the columns of @var{y} vs. @var{x}. The ! optional parameter @var{width} specifies the width of a single ribbon ! (default is 0.75). If @var{x} is omitted, a vector containing the ! row numbers is assumed (1:rows(Y)). If requested, return a vector ! @var{h} of the handles to the surface objects. ! @seealso{gca, colorbar} @end deftypefn ! __go_draw_figure__ ! Undocumented internal function. ! pareto -*- texinfo -*- ! @deftypefn {Function File} {} pareto (@var{x}) ! @deftypefnx {Function File} {} pareto (@var{x}, @var{y}) ! @deftypefnx {Function File} {} pareto (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} pareto (@dots{}) ! Draw a Pareto chart, also called ABC chart. A Pareto chart is a bar graph ! used to arrange information in such a way that priorities for process ! improvement can be established. It organizes and displays information ! to show the relative importance of data. The chart is similar to the ! histogram or bar chart, except that the bars are arranged in decreasing ! order from left to right along the abscissa. ! The fundamental idea (Pareto principle) behind the use of Pareto ! diagrams is that the majority of an effect is due to a small subset of the ! causes, so for quality improvement the first few (as presented on the ! diagram) contributing causes to a problem usually account for the majority ! of the result. Thus, targeting these "major causes" for elimination ! results in the most cost-effective improvement scheme. ! The data are passed as @var{x} and the abscissa as @var{y}. If @var{y} is ! absent, then the abscissa are assumed to be @code{1 : length (@var{x})}. ! @var{y} can be a string array, a cell array of strings or a numerical ! vector. ! An example of the use of @code{pareto} is @example ! @group ! Cheese = @{"Cheddar", "Swiss", "Camembert", "Munster", "Stilton", ... ! "Blue"@}; ! Sold = [105, 30, 70, 10, 15, 20]; ! pareto(Sold, Cheese); ! @end group @end example @end deftypefn ! legend -*- texinfo -*- ! @deftypefn {Function File} {} legend (@var{st1}, @var{st2}, @dots{}) ! @deftypefnx {Function File} {} legend (@var{st1}, @var{st2}, @dots{}, "location", @var{pos}) ! @deftypefnx {Function File} {} legend (@var{matstr}) ! @deftypefnx {Function File} {} legend (@var{matstr}, "location", @var{pos}) ! @deftypefnx {Function File} {} legend (@var{cell}) ! @deftypefnx {Function File} {} legend (@var{cell}, "location", @var{pos}) ! @deftypefnx {Function File} {} legend ('@var{func}') ! Display a legend for the current axes using the specified strings ! as labels. Legend entries may be specified as individual character ! string arguments, a character array, or a cell array of character ! strings. Legend works on line graphs, bar graphs, etc. A plot must ! exist before legend is called. ! The optional parameter @var{pos} specifies the location of the legend ! as follows: ! ! @multitable @columnfractions 0.06 0.14 0.80 ! @item @tab north @tab ! center top ! @item @tab south @tab ! center bottom ! @item @tab east @tab ! right center ! @item @tab west @tab ! left center ! @item @tab northeast @tab ! right top (default) ! @item @tab northwest @tab ! left top ! @item @tab southeast @tab ! right bottom ! @item @tab southwest @tab ! left bottom ! @item ! @item @tab outside @tab ! can be appended to any location string ! @end multitable ! ! Some specific functions are directly available using @var{func}: ! ! @table @asis ! @item "show" ! Show legends from the plot ! @item "hide" ! @itemx "off" ! Hide legends from the plot ! @item "boxon" ! Draw a box around legends ! @item "boxoff" ! Withdraw the box around legends ! @item "left" ! Text is to the left of the keys ! @item "right" ! Text is to the right of the keys ! @end table @end deftypefn ! mesh -*- texinfo -*- ! @deftypefn {Function File} {} mesh (@var{x}, @var{y}, @var{z}) ! Plot a mesh given matrices @var{x}, and @var{y} from @code{meshgrid} and ! a matrix @var{z} corresponding to the @var{x} and @var{y} coordinates of ! the mesh. If @var{x} and @var{y} are vectors, then a typical vertex ! is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, columns of @var{z} ! correspond to different @var{x} values and rows of @var{z} correspond ! to different @var{y} values. ! @seealso{meshgrid, contour} @end deftypefn ! peaks -*- texinfo -*- ! @deftypefn {Function File} {} peaks () ! @deftypefnx {Function File} {} peaks (@var{n}) ! @deftypefnx {Function File} {} peaks (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{z} =} peaks (@dots{}) ! @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} peaks (@dots{}) ! Generate a function with lots of local maxima and minima. The function ! has the form @iftex @tex ! $f(x,y) = 3 (1 - x) ^ 2 e ^ {\left(-x^2 - (y+1)^2\right)} - 10 \left({x \over 5} - x^3 - y^5)\right) - {1 \over 3} e^{\left(-(x+1)^2 - y^2\right)}$ @end tex @end iftex @ifnottex ! @verbatim ! f(x,y) = 3*(1-x)^2*exp(-x^2 - (y+1)^2) ... ! - 10*(x/5 - x^3 - y^5)*exp(-x^2-y^2) ... ! - 1/3*exp(-(x+1)^2 - y^2) ! @end verbatim @end ifnottex ! Called without a return argument, @code{peaks} plots the surface of the ! above function using @code{mesh}. If @var{n} is a scalar, the @code{peaks} ! returns the values of the above function on a @var{n}-by-@var{n} mesh over ! the range @code{[-3,3]}. The default value for @var{n} is 49. ! If @var{n} is a vector, then it represents the @var{x} and @var{y} values ! of the grid on which to calculate the above function. The @var{x} and ! @var{y} values can be specified separately. ! @seealso{surf, mesh, meshgrid} ! @end deftypefn ! contour ! -*- texinfo -*- ! @deftypefn {Function File} {} contour (@var{z}) ! @deftypefnx {Function File} {} contour (@var{z}, @var{vn}) ! @deftypefnx {Function File} {} contour (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {} contour (@var{x}, @var{y}, @var{z}, @var{vn}) ! @deftypefnx {Function File} {} contour (@dots{}, @var{style}) ! @deftypefnx {Function File} {} contour (@var{h}, @dots{}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contour (@dots{}) ! Plot level curves (contour lines) of the matrix @var{z}, using the ! contour matrix @var{c} computed by @code{contourc} from the same ! arguments; see the latter for their interpretation. The set of ! contour levels, @var{c}, is only returned if requested. For example: @example ! @group ! x = 0:2; ! y = x; ! z = x' * y; ! contour (x, y, z, 2:3) ! @end group @end example ! The style to use for the plot can be defined with a line style @var{style} ! in a similar manner to the line styles used with the @code{plot} command. ! Any markers defined by @var{style} are ignored. ! ! The optional input and output argument @var{h} allows an axis handle to ! be passed to @code{contour} and the handles to the contour objects to be ! returned. ! @seealso{contourc, patch, plot} @end deftypefn ! quiver3 -*- texinfo -*- ! @deftypefn {Function File} {} quiver3 (@var{u}, @var{v}, @var{w}) ! @deftypefnx {Function File} {} quiver3 (@var{x}, @var{y}, @var{z}, @var{u}, @var{v}, @var{w}) ! @deftypefnx {Function File} {} quiver3 (@dots{}, @var{s}) ! @deftypefnx {Function File} {} quiver3 (@dots{}, @var{style}) ! @deftypefnx {Function File} {} quiver3 (@dots{}, 'filled') ! @deftypefnx {Function File} {} quiver3 (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} quiver3 (@dots{}) ! Plot the @code{(@var{u}, @var{v}, @var{w})} components of a vector field in ! an @code{(@var{x}, @var{y}), @var{z}} meshgrid. If the grid is uniform, you ! can specify @var{x}, @var{y} @var{z} as vectors. ! ! If @var{x}, @var{y} and @var{z} are undefined they are assumed to be ! @code{(1:@var{m}, 1:@var{n}, 1:@var{p})} where @code{[@var{m}, @var{n}] = ! size(@var{u})} and @code{@var{p} = max (size (@var{w}))}. ! ! The variable @var{s} is a scalar defining a scaling factor to use for ! the arrows of the field relative to the mesh spacing. A value of 0 ! disables all scaling. The default value is 1. ! ! The style to use for the plot can be defined with a line style @var{style} ! in a similar manner to the line styles used with the @code{plot} command. ! If a marker is specified then markers at the grid points of the vectors are ! printed rather than arrows. If the argument 'filled' is given then the ! markers as filled. ! ! The optional return value @var{h} provides a list of handles to the ! the parts of the vector field (body, arrow and marker). ! ! @example ! @group ! [x, y, z] = peaks (25); ! surf (x, y, z); ! hold on; ! [u, v, w] = surfnorm (x, y, z / 10); ! quiver3 (x, y, z, u, v, w); ! @end group ! @end example ! ! @seealso{plot} @end deftypefn ! clf -*- texinfo -*- ! @deftypefn {Function File} {} clf () ! @deftypefnx {Function File} {} clf ("reset") ! @deftypefnx {Function File} {} clf (@var{hfig}) ! @deftypefnx {Function File} {} clf (@var{hfig}, "reset") ! @deftypefnx {Function File} {@var{hfig} =} clf (@dots{}) ! Delete the children of the current figure with visible handles. ! If @var{hfig} is specified and is an figure object handle, operate on it ! instead of the current figure. If the optional argument @code{"reset"} ! is specified, also delete the figure's children with hidden handles. ! @seealso{cla, close, delete} ! @end deftypefn ! __errcomm__ ! Undocumented internal function. ! line -*- texinfo -*- ! @deftypefn {Function File} {} line () ! @deftypefnx {Function File} {} line (@var{x}, @var{y}) ! @deftypefnx {Function File} {} line (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {} line (@var{x}, @var{y}, @var{z}, @var{property}, @var{value}, @dots{}) ! Create line object from @var{x} and @var{y} and insert in current ! axes object. Return a handle (or vector of handles) to the line ! objects created. ! Multiple property-value pairs may be specified for the line, but they ! must appear in pairs. @end deftypefn ! __next_line_color__ ! Undocumented internal function. ! caxis -*- texinfo -*- ! @deftypefn {Function File} {} caxis (@var{limits}) ! @deftypefnx {Function File} {} caxis (@var{h}, @dots{}) ! Set color axis limits for plots. ! The argument @var{limits} should be a 2 element vector specifying the ! lower and upper limits to assign to the first and last value in the ! colormap. Values outside this range are clamped to the first and last ! colormap entries. ! If @var{limits} is 'auto', then automatic colormap scaling is applied, ! whereas if @var{limits} is 'manual' the colormap scaling is set to manual. ! Called without any arguments to current color axis limits are returned. ! If an axes handle is passed as the first argument, then operate on ! this axes rather than the current axes. @end deftypefn ! quiver -*- texinfo -*- ! @deftypefn {Function File} {} quiver (@var{u}, @var{v}) ! @deftypefnx {Function File} {} quiver (@var{x}, @var{y}, @var{u}, @var{v}) ! @deftypefnx {Function File} {} quiver (@dots{}, @var{s}) ! @deftypefnx {Function File} {} quiver (@dots{}, @var{style}) ! @deftypefnx {Function File} {} quiver (@dots{}, 'filled') ! @deftypefnx {Function File} {} quiver (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} quiver (@dots{}) ! Plot the @code{(@var{u}, @var{v})} components of a vector field in ! an @code{(@var{x}, @var{y})} meshgrid. If the grid is uniform, you can ! specify @var{x} and @var{y} as vectors. ! If @var{x} and @var{y} are undefined they are assumed to be ! @code{(1:@var{m}, 1:@var{n})} where @code{[@var{m}, @var{n}] = ! size(@var{u})}. ! The variable @var{s} is a scalar defining a scaling factor to use for ! the arrows of the field relative to the mesh spacing. A value of 0 ! disables all scaling. The default value is 1. ! The style to use for the plot can be defined with a line style @var{style} ! in a similar manner to the line styles used with the @code{plot} command. ! If a marker is specified then markers at the grid points of the vectors are ! printed rather than arrows. If the argument 'filled' is given then the ! markers as filled. ! ! The optional return value @var{h} provides a list of handles to the ! the parts of the vector field (body, arrow and marker). @example @group ! [x, y] = meshgrid (1:2:20); ! quiver (x, y, sin (2*pi*x/10), sin (2*pi*y/10)); @end group @end example ! @seealso{plot} @end deftypefn ! plot -*- texinfo -*- ! @deftypefn {Function File} {} plot (@var{y}) ! @deftypefnx {Function File} {} plot (@var{x}, @var{y}) ! @deftypefnx {Function File} {} plot (@var{x}, @var{y}, @var{property}, @var{value}, @dots{}) ! @deftypefnx {Function File} {} plot (@var{x}, @var{y}, @var{fmt}) ! @deftypefnx {Function File} {} plot (@var{h}, @dots{}) ! Produces two-dimensional plots. Many different combinations of ! arguments are possible. The simplest form is ! @example ! plot (@var{y}) ! @end example ! @noindent ! where the argument is taken as the set of @var{y} coordinates and the ! @var{x} coordinates are taken to be the indices of the elements, ! starting with 1. ! To save a plot, in one of several image formats such as PostScript ! or PNG, use the @code{print} command. ! If more than one argument is given, they are interpreted as ! @example ! plot (@var{y}, @var{property}, @var{value}, @dots{}) ! @end example ! @noindent ! or @example ! plot (@var{x}, @var{y}, @var{property}, @var{value}, @dots{}) @end example ! @noindent ! or @example ! plot (@var{x}, @var{y}, @var{fmt}, @dots{}) @end example ! @noindent ! and so on. Any number of argument sets may appear. The @var{x} and ! @var{y} values are interpreted as follows: ! @itemize @bullet ! @item ! If a single data argument is supplied, it is taken as the set of @var{y} ! coordinates and the @var{x} coordinates are taken to be the indices of ! the elements, starting with 1. ! @item ! If the @var{x} is a vector and @var{y} is a matrix, then ! the columns (or rows) of @var{y} are plotted versus @var{x}. ! (using whichever combination matches, with columns tried first.) ! @item ! If the @var{x} is a matrix and @var{y} is a vector, ! @var{y} is plotted versus the columns (or rows) of @var{x}. ! (using whichever combination matches, with columns tried first.) ! @item ! If both arguments are vectors, the elements of @var{y} are plotted versus ! the elements of @var{x}. ! ! @item ! If both arguments are matrices, the columns of @var{y} are plotted ! versus the columns of @var{x}. In this case, both matrices must have ! the same number of rows and columns and no attempt is made to transpose ! the arguments to make the number of rows match. ! ! If both arguments are scalars, a single point is plotted. ! @end itemize ! ! Multiple property-value pairs may be specified, but they must appear ! in pairs. These arguments are applied to the lines drawn by ! @code{plot}. ! ! If the @var{fmt} argument is supplied, it is interpreted as ! follows. If @var{fmt} is missing, the default gnuplot line style ! is assumed. ! ! @table @samp ! @item - ! Set lines plot style (default). ! ! @item . ! Set dots plot style. ! ! @item L ! Set steps plot style. ! ! @item @var{n} ! Interpreted as the plot color if @var{n} is an integer in the range 1 to ! 6. ! ! @item @var{nm} ! If @var{nm} is a two digit integer and @var{m} is an integer in the ! range 1 to 6, @var{m} is interpreted as the point style. This is only ! valid in combination with the @code{@@} or @code{-@@} specifiers. ! ! @item @var{c} ! If @var{c} is one of @code{"k"} (black), @code{"r"} (red), @code{"g"} ! (green), @code{"b"} (blue), @code{"m"} (magenta), @code{"c"} (cyan), ! or @code{"w"} (white), it is interpreted as the line plot color. ! ! @item ";title;" ! Here @code{"title"} is the label for the key. ! ! @item + ! @itemx * ! @itemx o ! @itemx x ! @itemx ^ ! Used in combination with the points or linespoints styles, set the point ! style. ! @end table ! ! The @var{fmt} argument may also be used to assign key titles. ! To do so, include the desired title between semi-colons after the ! formatting sequence described above, e.g. "+3;Key Title;" ! Note that the last semi-colon is required and will generate an error if ! it is left out. ! ! Here are some plot examples: ! ! @example ! plot (x, y, "@@12", x, y2, x, y3, "4", x, y4, "+") ! @end example ! ! This command will plot @code{y} with points of type 2 (displayed as ! @samp{+}) and color 1 (red), @code{y2} with lines, @code{y3} with lines of ! color 4 (magenta) and @code{y4} with points displayed as @samp{+}. ! ! @example ! plot (b, "*", "markersize", 3) ! @end example ! ! This command will plot the data in the variable @code{b}, ! with points displayed as @samp{*} with a marker size of 3. ! ! @example ! t = 0:0.1:6.3; ! plot (t, cos(t), "-;cos(t);", t, sin(t), "+3;sin(t);"); ! @end example ! ! This will plot the cosine and sine functions and label them accordingly ! in the key. ! ! If the first argument is an axis handle, then plot into these axes, ! rather than the current axis handle returned by @code{gca}. ! @seealso{semilogx, semilogy, loglog, polar, mesh, contour, bar, ! stairs, errorbar, xlabel, ylabel, title, print} @end deftypefn ! scatter -*- texinfo -*- ! @deftypefn {Function File} {} scatter (@var{x}, @var{y}, @var{s}, @var{c}) ! @deftypefnx {Function File} {} scatter (@dots{}, 'filled') ! @deftypefnx {Function File} {} scatter (@dots{}, @var{style}) ! @deftypefnx {Function File} {} scatter (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} scatter (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} scatter (@dots{}) ! Plot a scatter plot of the data. A marker is ploted at each point ! defined by the points in the vectors @var{x} and @var{y}. The size of ! the markers used is determined by the @var{s}, which can be a scalar, ! a vector of the same length of @var{x} and @var{y}. If @var{s} is not ! given or is an empty matrix, then the default value of 8 points is used. ! The color of the markers is determined by @var{c}, which can be a string ! defining a fixed color, a 3 element vector giving the red, green and blue ! components of the color, a vector of the same length as @var{x} that gives ! a scaled index into the current colormap, or a @var{n}-by-3 matrix defining ! the colors of each of the markers individually. ! The marker to use can be changed with the @var{style} argument, that is a ! string defining a marker in the same manner as the @code{plot} command. ! If the argument 'filled' is given then the markers as filled. All ! additional arguments are passed to the underlying patch command. ! ! The optional return value @var{h} provides a handle to the patch object ! ! @example ! @group ! x = randn (100, 1); ! y = randn (100, 1); ! scatter (x, y, [], sqrt(x.^2 + y.^2)); ! @end group ! @end example ! ! @seealso{plot, patch, scatter3} ! @end deftypefn ! __axes_limits__ ! Undocumented internal function. ! surf ! -*- texinfo -*- ! @deftypefn {Function File} {} surf (@var{x}, @var{y}, @var{z}) ! Plot a surface given matrices @var{x}, and @var{y} from @code{meshgrid} and ! a matrix @var{z} corresponding to the @var{x} and @var{y} coordinates of ! the mesh. If @var{x} and @var{y} are vectors, then a typical vertex ! is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, columns of @var{z} ! correspond to different @var{x} values and rows of @var{z} correspond ! to different @var{y} values. ! @seealso{mesh, surface} ! @end deftypefn ! __scatter__ ! Undocumented internal function. ! feather ! -*- texinfo -*- ! @deftypefn {Function File} {} feather (@var{u}, @var{v}) ! @deftypefnx {Function File} {} feather (@var{z}) ! @deftypefnx {Function File} {} feather (@dots{}, @var{style}) ! @deftypefnx {Function File} {} feather (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} feather (@dots{}) ! ! Plot the @code{(@var{u}, @var{v})} components of a vector field emanating ! from equidistant points on the x-axis. If a single complex argument ! @var{z} is given, then @code{@var{u} = real (@var{z})} and ! @code{@var{v} = imag (@var{z})}. The style to use for the plot can be defined with a line style @var{style} in a similar manner to the line styles used with the @code{plot} command. The optional return value @var{h} provides a list of handles to the the parts of the vector field (body, arrow and marker). @example @group ! phi = [0 : 15 : 360] * pi / 180; ! feather (sin (phi), cos (phi)) @end group @end example ! @seealso{plot, quiver, compass} @end deftypefn ! newplot -*- texinfo -*- ! @deftypefn {Function File} {} newplot () ! Prepare graphics engine to produce a new plot. This function should ! be called at the beginning of all high-level plotting functions. @end deftypefn ! __area__ ! Undocumented internal function. ! __plr2__ ! Undocumented internal function. ! polar -*- texinfo -*- ! @deftypefn {Function File} {} polar (@var{theta}, @var{rho}, @var{fmt}) ! Make a two-dimensional plot given the polar coordinates @var{theta} and ! @var{rho}. ! ! The optional third argument specifies the line type. ! @seealso{plot} @end deftypefn ! closereq -*- texinfo -*- ! @deftypefn {Function File} {} closereq () ! Close the current figure and delete all graphics objects associated ! with it. ! @seealso{close, delete} @end deftypefn ! area -*- texinfo -*- ! @deftypefn {Function File} {} area (@var{x}, @var{y}) ! @deftypefnx {Function File} {} area (@var{x}, @var{y}, @var{lvl}) ! @deftypefnx {Function File} {} area (@dots{}, @var{prop}, @var{val}, @dots{}) ! @deftypefnx {Function File} {} area (@var{y}, @dots{}) ! @deftypefnx {Function File} {} area (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} area (@dots{}) ! Area plot of cumulative sum of the columns of @var{y}. This shows the ! contributions of a value to a sum, and is functionally similar to ! @code{plot (@var{x}, cumsum (@var{y}, 2))}, except that the area under ! the curve is shaded. ! If the @var{x} argument is omitted it is assumed to be given by ! @code{1 : rows (@var{y})}. A value @var{lvl} can be defined that determines ! where the base level of the shading under the curve should be defined. ! Additional arguments to the @code{area} function are passed to the ! @code{patch}. The optional return value @var{h} provides a handle to ! the list of patch objects. ! @seealso{plot, patch} @end deftypefn ! xlim -*- texinfo -*- ! @deftypefn {Function File} {@var{xl} =} xlim () ! @deftypefnx {Function File} {} xlim (@var{xl}) ! @deftypefnx {Function File} {@var{m} =} xlim ('mode') ! @deftypefnx {Function File} {} xlim (@var{m}) ! @deftypefnx {Function File} {} xlim (@var{h}, @dots{}) ! Get or set the limits of the x axis of the current plot. Called without ! argumenst @code{xlim] returns the x axis limits of the current plot. ! If passed a two element vector @var{xl}, the limits of the x axis are set ! to this value. ! The current mode for calculation of the x axis can be returned with a ! call @code{xlim ('mode')}, and can be either 'auto' or 'manual'. The ! current plotting mode can be set by passing either 'auto' or 'manual' ! as the argument. ! If passed an handle as the first argument, then operate on this handle ! rather than the current axes handle. ! @seealso{ylim, zlim, set, get, gca} @end deftypefn ! __go_draw_axes__ ! Undocumented internal function. ! ancestor -*- texinfo -*- ! @deftypefn {Function File} {@var{parent} =} ancestor (@var{h}, @var{type}) ! @deftypefnx {Function File} {@var{parent} =} ancestor (@var{h}, @var{type}, 'toplevel') ! Return the first ancestor of handle object @var{h} whose type matches ! @var{type}, where @var{type} is a character string. If @var{type} is a ! cell array of strings, return the first parent whose type matches ! any of the given type strings. ! ! If the handle object @var{h} is of type @var{type}, return @var{h}. ! ! If @code{"toplevel"} is given as a 3rd argument, return the highest ! parent in the object hierarchy that matches the condition, instead ! of the first (nearest) one. ! @seealso{get, set} @end deftypefn ! spinmap -*- texinfo -*- ! @deftypefn {Function File} spinmap (@var{t}, @var{inc}) ! Cycle the colormap for @var{t} seconds with an increment ! of @var{inc}. Both parameters are optional. The default cycle time ! is 5 seconds and the default increment is 2. ! A higher value of @var{inc} causes a faster cycle through the ! colormap. ! @seealso{gca, colorbar} @end deftypefn ! __pltopt__ ! Undocumented internal function. ! __errplot__ ! Undocumented internal function. ! ishold -*- texinfo -*- ! @deftypefn {Function File} {} ishold ! Return true if the next line will be added to the current plot, or ! false if the plot device will be cleared before drawing the next line. @end deftypefn ! __bars__ Undocumented internal function. ! semilogy -*- texinfo -*- ! @deftypefn {Function File} {} semilogy (@var{args}) ! Produce a two-dimensional plot using a log scale for the @var{y} ! axis. See the description of @code{plot} for a description of the ! arguments that @code{semilogy} will accept. ! @seealso{plot, semilogx, loglog} @end deftypefn ! figure -*- texinfo -*- ! @deftypefn {Function File} {} figure (@var{n}) ! @deftypefnx {Function File} {} figure (@var{n}, @var{property}, @var{value}, @dots{}) ! Set the current plot window to plot window @var{n}. If no arguments are ! specified, the next available window number is chosen. ! Multiple property-value pairs may be specified for the figure, but they ! must appear in pairs. @end deftypefn ! stem3 -*- texinfo -*- ! @deftypefn {Function File} {@var{h} =} stem3 (@var{x}, @var{y}, @var{z}, @var{linespec}) ! Plot a three-dimensional stem graph and return the handles of the line ! and marker objects used to draw the stems. The default color is @code{"r"} ! (red). The default line style is @code{"-"} and the default marker is ! @code{"o"}. + For example, @example ! theta = 0:0.2:6; ! stem3 (cos (theta), sin (theta), theta) @end example @noindent ! plots 31 stems with heights from 0 to 6 lying on a circle. Color ! definitions with rgb-triples are not valid! ! @seealso{bar, barh, stem, plot} @end deftypefn ! __go_close_all__ ! Undocumented internal function. ! zlabel -*- texinfo -*- ! @deftypefn {Function File} {} zlabel (@var{string}) ! @deftypefnx {Function File} {} zlabel (@var{h}, @var{string}) ! See xlabel. @end deftypefn ! __contour__ Undocumented internal function. ! print -*- texinfo -*- ! @deftypefn {Function File} {} print (@var{filename}, @var{options}) ! Print a graph, or save it to a file ! @var{filename} defines the file name of the output file. If no ! filename is specified, output is sent to the printer. @var{options}: @table @code *************** *** 6332,6359 **** The filename and options can be given in any order. @end deftypefn ! __pltopt1__ ! Undocumented internal function. ! replot -*- texinfo -*- ! @deftypefn {Function File} {} replot () ! Refresh the plot window. @end deftypefn ! __plt2vm__ ! Undocumented internal function. ! sphere -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} sphere (@var{n}) ! @deftypefnx {Function File} {} sphere (@var{h}, @dots{}) ! Generates three matrices in @code{meshgrid} format, such that ! @code{surf (@var{x}, @var{y}, @var{z})} generates a unit sphere. ! The matrices of @code{@var{n}+1}-by-@code{@var{n}+1}. If @var{n} is ! omitted then a default value of 20 is assumed. ! Called with no return arguments, @code{sphere} call directly ! @code{surf (@var{x}, @var{y}, @var{z})}. If an axes handle is passed ! as the first argument, the the surface is plotted to this set of axes. ! @seealso{peaks} @end deftypefn hist -*- texinfo -*- --- 5070,5195 ---- The filename and options can be given in any order. @end deftypefn ! fill -*- texinfo -*- ! @deftypefn {Function File} {} fill (@var{x}, @var{y}, @var{c}) ! @deftypefnx {Function File} {} fill (@var{x1}, @var{y1}, @var{c1}, @var{x2}, @var{y2}, @var{c2}) ! @deftypefnx {Function File} {} fill (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} fill (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} = } fill (@dots{}) ! Create one or more filled patch objects, returning a patch object for each. @end deftypefn ! cylinder -*- texinfo -*- ! @deftypefn {Function File} {} cylinder ! @deftypefnx {Function File} {} cylinder (@var{r}) ! @deftypefnx {Function File} {} cylinder (@var{r}, @var{n}) ! @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} cylinder (@dots{}) ! @deftypefnx {Function File} {} cylinder (@var{ax}, @dots{}) ! Generates three matrices in @code{meshgrid} format, such that ! @code{surf (@var{x}, @var{y}, @var{z})} generates a unit cylinder. ! The matrices are of size @code{@var{n}+1}-by-@code{@var{n}+1}. ! @var{r} is a vector containing the radius along the z-axis. ! If @var{n} or @var{r} are omitted then default values of 20 or [1 1] ! are assumed. ! Called with no return arguments, @code{cylinder} calls directly ! @code{surf (@var{x}, @var{y}, @var{z})}. If an axes handle @var{ax} ! is passed as the first argument, the surface is plotted to this set ! of axes. ! ! Examples: ! @example ! disp ("plotting a cone") ! [x, y, z] = cylinder (10:-1:0,50); ! surf (x, y, z); ! @end example ! @seealso{sphere} ! @end deftypefn ! meshc ! -*- texinfo -*- ! @deftypefn {Function File} {} meshc (@var{x}, @var{y}, @var{z}) ! Plot a mesh and contour given matrices @var{x}, and @var{y} from ! @code{meshgrid} and a matrix @var{z} corresponding to the @var{x} and ! @var{y} coordinates of the mesh. If @var{x} and @var{y} are vectors, ! then a typical vertex is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, ! columns of @var{z} correspond to different @var{x} values and rows of ! @var{z} correspond to different @var{y} values. ! @seealso{meshgrid, mesh, contour} ! @end deftypefn ! box ! -*- texinfo -*- ! @deftypefn {Function File} {} box (@var{arg}) ! @deftypefnx {Function File} {} box (@var{h}, @dots{}) ! Control the display of a border around the plot. ! The argument may be either @code{"on"} or @code{"off"}. If it is ! omitted, the current box state is toggled. ! @seealso{grid} ! @end deftypefn ! compass ! -*- texinfo -*- ! @deftypefn {Function File} {} compass (@var{u}, @var{v}) ! @deftypefnx {Function File} {} compass (@var{z}) ! @deftypefnx {Function File} {} compass (@dots{}, @var{style}) ! @deftypefnx {Function File} {} compass (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} compass (@dots{}) ! ! Plot the @code{(@var{u}, @var{v})} components of a vector field emanating ! from the origin of a polar polt. If a single complex argument @var{z} is ! given, then @code{@var{u} = real (@var{z})} and @code{@var{v} = imag ! (@var{z})}. ! ! The style to use for the plot can be defined with a line style @var{style} ! in a similar manner to the line styles used with the @code{plot} command. ! ! The optional return value @var{h} provides a list of handles to the ! the parts of the vector field (body, arrow and marker). ! ! @example ! @group ! a = toeplitz([1;randn(9,1)],[1,randn(1,9)]); ! compass (eig (a)) ! @end group ! @end example ! ! @seealso{plot, polar, quiver, feather} ! @end deftypefn ! loglog ! -*- texinfo -*- ! @deftypefn {Function File} {} loglog (@var{args}) ! Produce a two-dimensional plot using log scales for both axes. See ! the description of @code{plot} for a description of the arguments ! that @code{loglog} will accept. ! @seealso{plot, semilogx, semilogy} ! @end deftypefn ! meshgrid ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{xx}, @var{yy}, @var{zz}] =} meshgrid (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {[@var{xx}, @var{yy}] =} meshgrid (@var{x}, @var{y}) ! @deftypefnx {Function File} {[@var{xx}, @var{yy}] =} meshgrid (@var{x}) ! Given vectors of @var{x} and @var{y} and @var{z} coordinates, and ! returning 3 arguments, return three dimensional arrays corresponding ! to the @var{x}, @var{y}, and @var{z} coordinates of a mesh. When ! returning only 2 arguments, return matrices corresponding to the ! @var{x} and @var{y} coordinates of a mesh. The rows of @var{xx} are ! copies of @var{x}, and the columns of @var{yy} are copies of @var{y}. ! If @var{y} is omitted, then it is assumed to be the same as @var{x}, ! and @var{z} is assumed the same as @var{y}. ! @seealso{mesh, contour} ! @end deftypefn ! ndgrid ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{y1}, @var{y2}, @dots{}, @var{y}n] =} ndgrid (@var{x1}, @var{x2}, @dots{}, @var{x}n) ! @deftypefnx {Function File} {[@var{y1}, @var{y2}, @dots{}, @var{y}n] =} ndgrid (@var{x}) ! Given n vectors @var{x1}, @dots{} @var{x}n, @code{ndgrid} returns ! n arrays of dimension n. The elements of the ith output argument ! contains the elements of the vector @var{x}i repeated over all ! dimensions different from the ith dimension. Calling ndgrid with ! only one input argument @var{x} is equivalent of calling ndgrid with ! all n input arguments equal to @var{x}: ! ! [@var{y1}, @var{y2}, @dots{}, @var{y}n] = ndgrid (@var{x}, @dots{}, @var{x}) ! @seealso{meshgrid} @end deftypefn hist -*- texinfo -*- *************** *** 6362,6368 **** With one vector input argument, plot a histogram of the values with 10 bins. The range of the histogram bins is determined by the range ! of the data. Given a second scalar argument, use that as the number of bins. --- 5198,5205 ---- With one vector input argument, plot a histogram of the values with 10 bins. The range of the histogram bins is determined by the range ! of the data. With one matrix input argument, plot a hystogram where ! each bin contains a bar per input column. Given a second scalar argument, use that as the number of bins. *************** *** 6379,6592 **** that @code{bar (@var{xx}, @var{nn})} will plot the histogram. @seealso{bar} @end deftypefn ! __errcomm__ ! Undocumented internal function. ! hold -*- texinfo -*- ! @deftypefn {Function File} {} hold @var{args} ! Tell Octave to `hold' the current data on the plot when executing ! subsequent plotting commands. This allows you to execute a series of ! plot commands and have all the lines end up on the same figure. The ! default is for each new plot command to clear the plot device first. ! For example, the command @example ! hold on @end example @noindent ! turns the hold state on. An argument of @code{"off"} turns the hold ! state off, and @code{hold} with no arguments toggles the current hold ! state. ! @end deftypefn ! __axes_limits__ ! Undocumented internal function. ! __default_plot_options__ ! Undocumented internal function. ! loglogerr ! -*- texinfo -*- ! @deftypefn {Function File} {} loglogerr (@var{args}) ! Produce two-dimensional plots on double logarithm axis with ! errorbars. Many different combinations of arguments are possible. ! The most used form is @example ! loglogerr (@var{x}, @var{y}, @var{ey}, @var{fmt}) @end example @noindent ! which produces a double logarithm plot of @var{y} versus @var{x} ! with errors in the @var{y}-scale defined by @var{ey} and the plot ! format defined by @var{fmt}. See errorbar for available formats and ! additional information. ! @seealso{errorbar, semilogxerr, semilogyerr} ! @end deftypefn ! area ! -*- texinfo -*- ! @deftypefn {Function File} {} area (@var{x}, @var{y}) ! @deftypefnx {Function File} {} area (@var{x}, @var{y}, @var{lvl}) ! @deftypefnx {Function File} {} area (@dots{}, @var{prop}, @var{val}, @dots{}) ! @deftypefnx {Function File} {} area (@var{y}, @dots{}) ! @deftypefnx {Function File} {} area (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} area (@dots{}) ! Area plot of cummulative sum of the columns of @var{y}. This shows the ! contributions of a value to a sum, and is functionally similar to ! @code{plot (@var{x}, cumsum (@var{y}, 2))}, except that the area under ! the curve is shaded. ! ! If the @var{x} argument is ommitted it is assumed to be given by ! @code{1 : rows (@var{y})}. A value @var{lvl} can be defined that determines ! where the base level of the shading under the curve should be defined. ! Additional arguments to the @code{area} function are passed to the ! @code{patch}. The optional return value @var{h} provides a handle to ! the list of patch objects. ! @seealso{plot, patch} ! @end deftypefn ! quiver3 ! -*- texinfo -*- ! @deftypefn {Function File} {} quiver3 (@var{u}, @var{v}, @var{w}) ! @deftypefnx {Function File} {} quiver3 (@var{x}, @var{y}, @var{z}, @var{u}, @var{v}, @var{w}) ! @deftypefnx {Function File} {} quiver3 (@dots{}, @var{s}) ! @deftypefnx {Function File} {} quiver3 (@dots{}, @var{style}) ! @deftypefnx {Function File} {} quiver3 (@dots{}, 'filled') ! @deftypefnx {Function File} {} quiver3 (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} quiver3 (@dots{}) ! Plot the @code{(@var{u}, @var{v}, @var{w})} components of a vector field in ! an @code{(@var{x}, @var{y}), @var{z}} meshgrid. If the grid is uniform, you ! can specify @var{x}, @var{y} @var{z} as vectors. ! If @var{x}, @var{y} and @var{z} are undefined they are assumed to be ! @code{(1:@var{m}, 1:@var{n}, 1:@var{p})} where @code{[@var{m}, @var{n}] = ! size(@var{u})} and @code{@var{p} = max (size (@var{w}))}. ! The variable @var{s} is a scalar defining a scaling factor to use for ! the arrows of the field relative to the mesh spacing. A value of 0 ! disables all scaling. The default value is 1. ! ! The style to use for the plot can be defined with a line style @var{style} ! in a similar manner to the line styles used with the @code{plot} command. ! If a marker is specified then markers at the grid points of the vectors are ! printed rather than arrows. If the argument 'filled' is given then the ! markers as filled. ! The optional return value @var{h} provides a list of handles to the ! the parts of the vector field (body, arrow and marker). ! @example ! @group ! [x, y, z] = peaks (25); ! surf (x, y, z); ! hold on; ! [u, v, w] = surfnorm (x, y, z / 10); ! quiver3 (x, y, z, u, v, w); ! @end group ! @end example ! @seealso{plot} ! @end deftypefn ! text ! -*- texinfo -*- ! @deftypefn {Function File} {@var{h} =} text (@var{x}, @var{y}, @var{label}) ! @deftypefnx {Function File} {@var{h} =} text (@var{x}, @var{y}, @var{z}, @var{label}) ! @deftypefnx {Function File} {@var{h} =} text (@var{x}, @var{y}, @var{label}, @var{p1}, @var{v1}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} text (@var{x}, @var{y}, @var{z}, @var{label}, @var{p1}, @var{v1}, @dots{}) ! Create a text object with text @var{label} at position @var{x}, ! @var{y}, @var{z} on the current axes. Property-value pairs following ! @var{label} may be used to specify the appearance of the text. ! @end deftypefn ! surface ! -*- texinfo -*- ! @deftypefn {Function File} {} surface (@var{x}, @var{y}, @var{z}, @var{c}) ! @deftypefnx {Function File} {} surface (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {} surface (@var{z}, @var{c}) ! @deftypefnx {Function File} {} surface (@var{z}) ! @deftypefnx {Function File} {} surface (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} surface (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} = } surface (@dots{}) ! Plot a surface graphic object given matrices @var{x}, and @var{y} from ! @code{meshgrid} and a matrix @var{z} corresponding to the @var{x} and ! @var{y} coordinates of the surface. If @var{x} and @var{y} are vectors, ! then a typical vertex is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, ! columns of @var{z} correspond to different @var{x} values and rows of ! @var{z} correspond to different @var{y} values. If @var{x} and @var{y} ! are missing, they are constructed from size of the matrix @var{z}. ! Any additional properties passed are assigned the the surface.. ! @seealso{surf, mesh, patch, line} ! @end deftypefn ! __plt2ss__ ! Undocumented internal function. ! orient ! -*- texinfo -*- ! @deftypefn {Function File} {} orient (@var{orientation}) ! Set the default print orientation. Valid values for ! @var{orientation} include @code{"landscape"} and @code{"portrait"}. ! If called with no arguments, return the default print orientation. ! @end deftypefn ! polar ! -*- texinfo -*- ! @deftypefn {Function File} {} polar (@var{theta}, @var{rho}, @var{fmt}) ! Make a two-dimensional plot given the polar coordinates @var{theta} and ! @var{rho}. ! The optional third argument specifies the line type. ! @seealso{plot} ! @end deftypefn ! ylim ! -*- texinfo -*- ! @deftypefn {Function File} {@var{xl} =} ylim () ! @deftypefnx {Function File} {} ylim (@var{xl}) ! @deftypefnx {Function File} {@var{m} =} ylim ('mode') ! @deftypefnx {Function File} {} ylim (@var{m}) ! @deftypefnx {Function File} {} ylim (@var{h}, @dots{}) ! Get or set the limits of the y axis of the current plot. Called without ! argumenst @code{ylim] returns the y axis limits of the current plot. ! If passed a two element vector @var{xl}, the limits of the y axis are set ! to this value. ! The current mode for calculation of the y axis can be returned with a ! call @code{ylim ('mode')}, and can be either 'auto' or 'manual'. The ! current plotting mode can be set by passing either 'auto' or 'manual' ! as the argument. ! If passed an handle as the first argument, then operate on this handle ! rather than the current axes handle. ! @seealso{xlim, zlim, set, get, gca} ! @end deftypefn ! sombrero ! -*- texinfo -*- ! @deftypefn {Function File} {} sombrero (@var{n}) ! Produce the familiar three-dimensional sombrero plot using @var{n} ! grid lines. If @var{n} is omitted, a value of 41 is assumed. ! The function plotted is @example ! z = sin (sqrt (x^2 + y^2)) / (sqrt (x^2 + y^2)) @end example - @seealso{surf, meshgrid, mesh} - @end deftypefn - caxis - -*- texinfo -*- - @deftypefn {Function File} {} caxis (@var{limits}) - @deftypefnx {Function File} {} caxis (@var{h}, @dots{}) - Set color axis limits for plots. - - The argument @var{limits} should be a 2 element vector specifying the - lower and upper limits to assign to the first and last value in the - colormap. Values outside this range are clamped to the first and last - colormap entries. ! If @var{limits} is 'auto', then automatic colormap scaling is applied, ! whereas if @var{limits} is 'manual' the colormap scaling is set to manual. ! Called without any arguments to current color axis limits are returned. ! If an axes handle is passed as the first argument, then operate on ! this axes rather than the current axes. @end deftypefn zlim -*- texinfo -*- @deftypefn {Function File} {@var{xl} =} zlim () --- 5216,5313 ---- that @code{bar (@var{xx}, @var{nn})} will plot the histogram. @seealso{bar} @end deftypefn ! errorbar -*- texinfo -*- ! @deftypefn {Function File} {} errorbar (@var{args}) ! This function produces two-dimensional plots with errorbars. Many ! different combinations of arguments are possible. The simplest form is @example ! errorbar (@var{y}, @var{ey}) @end example @noindent ! where the first argument is taken as the set of @var{y} coordinates ! and the second argument @var{ey} is taken as the errors of the ! @var{y} values. @var{x} coordinates are taken to be the indices ! of the elements, starting with 1. ! ! If more than two arguments are given, they are interpreted as @example ! errorbar (@var{x}, @var{y}, @dots{}, @var{fmt}, @dots{}) @end example @noindent ! where after @var{x} and @var{y} there can be up to four error ! parameters such as @var{ey}, @var{ex}, @var{ly}, @var{uy} etc., ! depending on the plot type. Any number of argument sets may appear, ! as long as they are separated with a format string @var{fmt}. ! If @var{y} is a matrix, @var{x} and error parameters must also be matrices ! having same dimensions. The columns of @var{y} are plotted versus the ! corresponding columns of @var{x} and errorbars are drawn from ! the corresponding columns of error parameters. ! If @var{fmt} is missing, yerrorbars ("~") plot style is assumed. ! If the @var{fmt} argument is supplied, it is interpreted as in ! normal plots. In addition the following plot styles are supported by ! errorbar: ! @table @samp ! @item ~ ! Set yerrorbars plot style (default). ! @item > ! Set xerrorbars plot style. ! @item ~> ! Set xyerrorbars plot style. ! @item # ! Set boxes plot style. ! @item #~ ! Set boxerrorbars plot style. ! @item #~> ! Set boxxyerrorbars plot style. ! @end table ! Examples: ! @example ! errorbar (@var{x}, @var{y}, @var{ex}, ">") ! @end example ! produces an xerrorbar plot of @var{y} versus @var{x} with @var{x} ! errorbars drawn from @var{x}-@var{ex} to @var{x}+@var{ex}. @example ! errorbar (@var{x}, @var{y1}, @var{ey}, "~", ! @var{x}, @var{y2}, @var{ly}, @var{uy}) @end example ! produces yerrorbar plots with @var{y1} and @var{y2} versus @var{x}. ! Errorbars for @var{y1} are drawn from @var{y1}-@var{ey} to ! @var{y1}+@var{ey}, errorbars for @var{y2} from @var{y2}-@var{ly} to ! @var{y2}+@var{uy}. ! @example ! errorbar (@var{x}, @var{y}, @var{lx}, @var{ux}, ! @var{ly}, @var{uy}, "~>") ! @end example ! produces an xyerrorbar plot of @var{y} versus @var{x} in which ! @var{x} errorbars are drawn from @var{x}-@var{lx} to @var{x}+@var{ux} ! and @var{y} errorbars from @var{y}-@var{ly} to @var{y}+@var{uy}. ! @seealso{semilogxerr, semilogyerr, loglogerr} @end deftypefn + __plt2mv__ + Undocumented internal function. + __plt2vs__ + Undocumented internal function. zlim -*- texinfo -*- @deftypefn {Function File} {@var{xl} =} zlim () *************** *** 6608,8310 **** rather than the current axes handle. @seealso{xlim, ylim, set, get, gca} @end deftypefn ! ellipsoid ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} ellipsoid (@var{xc},@var{yc}, @var{zc}, @var{xr}, @var{yr}, @var{zr}, @var{n}) ! @deftypefnx {Function File} {} ellipsoid (@var{h}, @dots{}) ! Generate three matrices in @code{meshgrid} format that define an ! ellipsoid. Called with no return arguments, @code{ellipsoid} calls ! directly @code{surf (@var{x}, @var{y}, @var{z})}. If an axes handle ! is passed as the first argument, the the surface is plotted to this ! set of axes. ! @seealso{sphere} ! @end deftypefn ! xlabel ! -*- texinfo -*- ! @deftypefn {Function File} {} xlabel (@var{string}) ! @deftypefnx {Function File} {} ylabel (@var{string}) ! @deftypefnx {Function File} {} zlabel (@var{string}) ! @deftypefnx {Function File} {} xlabel (@var{h}, @var{string}) ! Specify x, y, and z axis labels for the current figure. If @var{h} is ! specified then label the axis defined by @var{h}. ! @seealso{plot, semilogx, semilogy, loglog, polar, mesh, contour, ! bar, stairs, ylabel, title} ! @end deftypefn ! __go_close_all__ ! Undocumented internal function. ! ribbon -*- texinfo -*- ! @deftypefn {Function File} ribbon (@var{x}, @var{y}, @var{width}) ! @deftypefnx {Function File} ribbon (@var{y}) ! @deftypefnx {Function File} @var{h} = ribbon (@dots{}) ! Plot a ribbon plot for the columns of @var{y} vs. @var{x}. The ! optional parameter @var{width} specifies the width of a single ribbon ! (default is 0.75). If @var{x} is omitted, a vector containing the ! row numbers is assumed (1:rows(Y)). If requested, return a vector ! @var{h} of the handles to the surface objects. ! @seealso{gca, colorbar} @end deftypefn ! __plt2vv__ ! Undocumented internal function. ! barh -*- texinfo -*- ! @deftypefn {Function File} {} barh (@var{x}, @var{y}) ! @deftypefnx {Function File} {} barh (@var{y}) ! @deftypefnx {Function File} {} barh (@var{x}, @var{y}, @var{w}) ! @deftypefnx {Function File} {} barh (@var{x}, @var{y}, @var{w}, @var{style}) ! @deftypefnx {Function File} {@var{h} =} barh (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} barh (@var{h}, @dots{}) ! Produce a horizontal bar graph from two vectors of x-y data. If only one argument is given, it is taken as a vector of y-values and the x coordinates are taken to be the indices of the elements. ! The default width of 0.8 for the bars can be changed using @var{w}. ! If @var{y} is a matrix, then each column of @var{y} is taken to be a ! separate bar graph plotted on the same graph. By default the columns ! are plotted side-by-side. This behavior can be changed by the @var{style} ! argument, which can take the values @code{"grouped"} (the default), ! or @code{"stacked"}. ! The optional return value @var{h} provides a handle to the patch object. ! Whereas the option input handle @var{h} allows an axis handle to be passed. ! Properties of the patch graphics object can be changed using ! @var{prop}, @var{val} pairs. ! @seealso{bar, plot} @end deftypefn ! hidden -*- texinfo -*- ! @deftypefn {Function File} {} hidden (@var{mode}) ! @deftypefnx {Function File} {} hidden () ! Manipulation the mesh hidden line removal. Called with no argument ! the hidden line removal is toggled. The argument @var{mode} can be either ! 'on' or 'off' and the set of the hidden line removal is set accordingly. ! @seealso{mesh, meshc, surf} @end deftypefn ! errorbar -*- texinfo -*- ! @deftypefn {Function File} {} errorbar (@var{args}) ! This function produces two-dimensional plots with errorbars. Many ! different combinations of arguments are possible. The simplest form is ! ! @example ! errorbar (@var{y}, @var{ey}) ! @end example ! ! @noindent ! where the first argument is taken as the set of @var{y} coordinates ! and the second argument @var{ey} is taken as the errors of the ! @var{y} values. @var{x} coordinates are taken to be the indices ! of the elements, starting with 1. ! ! If more than two arguments are given, they are interpreted as ! ! @example ! errorbar (@var{x}, @var{y}, @dots{}, @var{fmt}, @dots{}) ! @end example ! ! @noindent ! where after @var{x} and @var{y} there can be up to four error ! parameters such as @var{ey}, @var{ex}, @var{ly}, @var{uy} etc., ! depending on the plot type. Any number of argument sets may appear, ! as long as they are separated with a format string @var{fmt}. ! ! If @var{y} is a matrix, @var{x} and error parameters must also be matrices ! having same dimensions. The columns of @var{y} are plotted versus the ! corresponding columns of @var{x} and errorbars are drawn from ! the corresponding columns of error parameters. ! ! If @var{fmt} is missing, yerrorbars ("~") plot style is assumed. ! ! If the @var{fmt} argument is supplied, it is interpreted as in ! normal plots. In addition the following plot styles are supported by ! errorbar: ! ! @table @samp ! @item ~ ! Set yerrorbars plot style (default). ! @item > ! Set xerrorbars plot style. ! @item ~> ! Set xyerrorbars plot style. ! @item # ! Set boxes plot style. ! @item #~ ! Set boxerrorbars plot style. ! @item #~> ! Set boxxyerrorbars plot style. @end table ! Examples: ! @example ! errorbar (@var{x}, @var{y}, @var{ex}, ">") ! @end example ! produces an xerrorbar plot of @var{y} versus @var{x} with @var{x} ! errorbars drawn from @var{x}-@var{ex} to @var{x}+@var{ex}. ! @example ! errorbar (@var{x}, @var{y1}, @var{ey}, "~", ! @var{x}, @var{y2}, @var{ly}, @var{uy}) ! @end example ! produces yerrorbar plots with @var{y1} and @var{y2} versus @var{x}. ! Errorbars for @var{y1} are drawn from @var{y1}-@var{ey} to ! @var{y1}+@var{ey}, errorbars for @var{y2} from @var{y2}-@var{ly} to ! @var{y2}+@var{uy}. @example ! errorbar (@var{x}, @var{y}, @var{lx}, @var{ux}, ! @var{ly}, @var{uy}, "~>") @end example ! ! produces an xyerrorbar plot of @var{y} versus @var{x} in which ! @var{x} errorbars are drawn from @var{x}-@var{lx} to @var{x}+@var{ux} ! and @var{y} errorbars from @var{y}-@var{ly} to @var{y}+@var{uy}. ! @seealso{semilogxerr, semilogyerr, loglogerr} @end deftypefn ! contour -*- texinfo -*- ! @deftypefn {Function File} {} contour (@var{z}) ! @deftypefnx {Function File} {} contour (@var{z}, @var{vn}) ! @deftypefnx {Function File} {} contour (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {} contour (@var{x}, @var{y}, @var{z}, @var{vn}) ! @deftypefnx {Function File} {} contour (@dots{}, @var{style}) ! @deftypefnx {Function File} {} contour (@var{h}, @dots{}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contour (@dots{}) ! Plot level curves (contour lines) of the matrix @var{z}, using the ! contour matrix @var{c} computed by @code{contourc} from the same ! arguments; see the latter for their interpretation. The set of ! contour levels, @var{c}, is only returned if requested. For example: @example ! @group ! x = 0:2; ! y = x; ! z = x' * y; ! contour (x, y, z, 2:3) ! @end group @end example ! The style to use for the plot can be defined with a line style @var{style} ! in a similar manner to the line styles used with the @code{plot} command. ! Any markers defined by @var{style} are ignored. ! ! The optional input and output argument @var{h} allows an axis handle to ! be passed to @code{contour} and the handles to the contour objects to be ! returned. ! @seealso{contourc, patch, plot} ! @end deftypefn ! title ! -*- texinfo -*- ! @deftypefn {Function File} {} title (@var{title}) ! Create a title object and return a handle to it. @end deftypefn ! bar -*- texinfo -*- ! @deftypefn {Function File} {} bar (@var{x}, @var{y}) ! @deftypefnx {Function File} {} bar (@var{y}) ! @deftypefnx {Function File} {} bar (@var{x}, @var{y}, @var{w}) ! @deftypefnx {Function File} {} bar (@var{x}, @var{y}, @var{w}, @var{style}) ! @deftypefnx {Function File} {@var{h} =} bar (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} bar (@var{h}, @dots{}) ! Produce a bar graph from two vectors of x-y data. ! If only one argument is given, it is taken as a vector of y-values ! and the x coordinates are taken to be the indices of the elements. ! The default width of 0.8 for the bars can be changed using @var{w}. ! If @var{y} is a matrix, then each column of @var{y} is taken to be a ! separate bar graph plotted on the same graph. By default the columns ! are plotted side-by-side. This behavior can be changed by the @var{style} ! argument, which can take the values @code{"grouped"} (the default), ! or @code{"stacked"}. ! ! The optional return value @var{h} provides a handle to the patch object. ! Whereas the option input handle @var{h} allows an axis handle to be passed. ! Properties of the patch graphics object can be changed using ! @var{prop}, @var{val} pairs. ! @seealso{barh, plot} ! @end deftypefn ! semilogyerr ! -*- texinfo -*- ! @deftypefn {Function File} {} semilogyerr (@var{args}) ! Produce two-dimensional plots on a semilogarithm axis with errorbars. ! Many different combinations of arguments are possible. The most used ! form is @example ! semilogyerr (@var{x}, @var{y}, @var{ey}, @var{fmt}) @end example ! @noindent ! which produces a semi-logarithm plot of @var{y} versus @var{x} ! with errors in the @var{y}-scale defined by @var{ey} and the plot ! format defined by @var{fmt}. See errorbar for available formats and ! additional information. ! @seealso{errorbar, loglogerr semilogxerr} @end deftypefn ! semilogxerr -*- texinfo -*- ! @deftypefn {Function File} {} semilogxerr (@var{args}) ! Produce two-dimensional plots on a semilogarithm axis with errorbars. ! Many different combinations of arguments are possible. The most used ! form is ! @example ! semilogxerr (@var{x}, @var{y}, @var{ey}, @var{fmt}) ! @end example ! @noindent ! which produces a semi-logarithm plot of @var{y} versus @var{x} ! with errors in the @var{y}-scale defined by @var{ey} and the plot ! format defined by @var{fmt}. See errorbar for available formats and ! additional information. ! @seealso{errorbar, loglogerr semilogyerr} @end deftypefn ! pareto -*- texinfo -*- ! @deftypefn {Function File} {} pareto (@var{x}) ! @deftypefnx {Function File} {} pareto (@var{x}, @var{y}) ! @deftypefnx {Function File} {} pareto (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} pareto (@dots{}) ! Draw a Pareto chart, also called ABC chart. A Pareto chart is a bar graph ! used to arrange information in such a way that priorities for process ! improvement can be established. It organizes and displays information ! to show the relative importance of data. The chart is similar to the ! histogram or bar chart, except that the bars are arranged in decreasing ! order from left to right along the abscissa. ! ! The fundamental idea (Pareto principle) behind the use of Pareto ! diagrams is that the majority of an effect is due to a small subset of the ! causes, so for quality improvement the first few (as presented on the ! diagram) contributing causes to a problem usually account for the majority ! of the result. Thus, targeting these "major causes" for elimination ! results in the most cost-effective improvement scheme. ! The data are passed as @var{x} and the abscissa as @var{y}. If @var{y} is ! absent, then the abscissa are assumed to be @code{1 : length (@var{x})}. ! @var{y} can be a string array, a cell array of strings or a numerical ! vector. ! An example of the use of @code{pareto} is ! @example ! @group ! Cheese = @{"Cheddar", "Swiss", "Camembert", "Munster", "Stilton", ... ! "Blue"@}; ! Sold = [105, 30, 70, 10, 15, 20]; ! pareto(Sold, Cheese); ! @end group ! @end example @end deftypefn ! __bars__ ! Undocumented internal function. ! stem -*- texinfo -*- ! @deftypefn {Function File} {@var{h} =} stem (@var{x}, @var{y}, @var{linespec}) ! Plot a stem graph and return the handles of the line and marker ! objects used to draw the stems. The default color is @code{"r"} ! (red). The default line style is @code{"-"} and the default marker is ! @code{"o"}. ! For example, ! @example ! x = 1:10; ! stem (x); ! @end example ! @noindent ! plots 10 stems with heights from 1 to 10; @example ! x = 1:10; ! y = ones (1, length (x))*2.*x; ! stem (x, y); @end example @noindent ! plots 10 stems with heights from 2 to 20; @example ! x = 1:10; ! y = ones (size (x))*2.*x; ! h = stem (x, y, "b"); @end example @noindent ! plots 10 bars with heights from 2 to 20 ! (the color is blue, and @var{h} is a 2-by-10 array of handles in ! which the first row holds the line handles and ! the second row holds the marker handles); @example ! x = 1:10; ! y = ones (size (x))*2.*x; ! h = stem (x, y, "-.k"); @end example @noindent ! plots 10 stems with heights from 2 to 20 ! (the color is black, line style is @code{"-."}, and @var{h} is a 2-by-10 ! array of handles in which the first row holds the line handles and ! the second row holds the marker handles); @example ! x = 1:10; ! y = ones (size (x))*2.*x; ! h = stem (x, y, "-.k."); @end example @noindent ! plots 10 stems with heights from 2 to 20 ! (the color is black, line style is @code{"-."} and the marker style ! is @code{"."}, and @var{h} is a 2-by-10 array of handles in which the ! first row holds the line handles and the second row holds the marker ! handles); @example ! x = 1:10; ! y = ones (size (x))*2.*x; ! h = stem (x, y, "fill"); @end example @noindent ! plots 10 stems with heights from 2 to 20 ! (the color is rgb-triple defined, the line style is @code{"-"}, ! the marker style is @code{"o"}, and @var{h} is a 2-by-10 array of ! handles in which the first row holds the line handles and the second ! row holds the marker handles). ! Color definitions with rgb-triples are not valid! ! @seealso{bar, barh, plot} ! @end deftypefn ! stem3 ! -*- texinfo -*- ! @deftypefn {Function File} {@var{h} =} stem3 (@var{x}, @var{y}, @var{z}, @var{linespec}) ! Plot a three-dimensional stem graph and return the handles of the line ! and marker objects used to draw the stems. The default color is @code{"r"} ! (red). The default line style is @code{"-"} and the default marker is ! @code{"o"}. For example, @example ! theta = 0:0.2:6; ! stem3 (cos (theta), sin (theta), theta) @end example @noindent ! plots 31 stems with heights from 0 to 6 lying on a circle. Color ! definitions with rgb-triples are not valid! ! @seealso{bar, barh, stem, plot} ! @end deftypefn ! __plt2mv__ ! Undocumented internal function. ! __errplot__ ! Undocumented internal function. ! closereq ! -*- texinfo -*- ! @deftypefn {Function File} {} closereq () ! Close the current figure and delete all graphics objects associated ! with it. ! @seealso{close, delete} ! @end deftypefn ! __plt2vs__ ! Undocumented internal function. ! findobj ! -*- texinfo -*- ! @deftypefn {Function File} {@var{h} =} findobj () ! @deftypefnx {Function File} {@var{h} =} findobj (@var{propName}, @var{propValue}) ! @deftypefnx {Function File} {@var{h} =} findobj ('-property', @var{propName}) ! @deftypefnx {Function File} {@var{h} =} findobj ('-regexp', @var{propName},, @var{pattern}) ! @deftypefnx {Function File} {@var{h} =} findobj ('flat', @dots{}) ! @deftypefnx {Function File} {@var{h} =} findobj (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} findobj (@var{h}, '-depth', @var{d}, @dots{}) ! Find object with specified property values. The simplest form is @example ! findobj (@var{propName}, @var{propValue}) @end example @noindent ! which returns all of the handles to the objects with the name ! @var{propName} and the name @var{propValue}. The search can be limited ! to a particular object or set of objects and their descendants by ! passing a handle or set of handles @var{h} as the first argument to ! @code{findobj}. ! The depth of hierarchy of objects to which to search to can be limited ! with the '-depth' argument. To limit the number depth of the hierarchy ! to search to @var{d} generations of children, and example is @example ! findobj (@var{h}, '-depth', @var{d}, @var{propName}, @var{propValue}) @end example ! Specifying a depth @var{d} of 0, limits the search to the set of object ! passed in @var{h}. A depth @var{d} of 0 is equivalent to the '-flat' ! argument. ! A specified logical operator may be applied to the pairs of @var{propName} ! and @var{propValue}. The supported logical operators are '-and', '-or', ! '-xor', '-not'. ! The objects may also be matched by comparing a regular expression to the ! property values, where property values that match @code{regexp ! (@var{propValue}, @var{pattern})} are returned. Finally, objects may be ! matched by property name only, using the '-property' option. ! @seealso{get, set} ! @end deftypefn ! __plr1__ ! Undocumented internal function. ! __plt2sv__ ! Undocumented internal function. ! ishold ! -*- texinfo -*- ! @deftypefn {Function File} {} ishold ! Return true if the next line will be added to the current plot, or ! false if the plot device will be cleared before drawing the next line. ! @end deftypefn ! ylabel ! -*- texinfo -*- ! @deftypefn {Function File} {} ylabel (@var{string}) ! @deftypefnx {Function File} {} ylabel (@var{h}, @var{string}) ! See xlabel. ! @end deftypefn ! grid ! -*- texinfo -*- ! @deftypefn {Function File} {} grid (@var{arg}) ! @deftypefnx {Function File} {} grid ("minor", @var{arg2}) ! Force the display of a grid on the plot. ! The argument may be either @code{"on"} or @code{"off"}. If it is ! omitted, the current grid state is toggled. ! If @var{arg} is @code{"minor"} then the minor grid is toggled. When ! using a minor grid a second argument @var{arg2} is allowed, which can ! be either @code{"on"} or @code{"off"} to explicitly set the state of ! the minor grid. ! @seealso{plot} ! @end deftypefn ! ancestor ! -*- texinfo -*- ! @deftypefn {Function File} {@var{parent} =} ancestor (@var{h}, @var{type}) ! @deftypefnx {Function File} {@var{parent} =} ancestor (@var{h}, @var{type}, 'toplevel') ! Return the first ancestor of handle object @var{h} whose type matches ! @var{type}, where @var{type} is a character string. If @var{type} is a ! cell array of strings, return the first parent whose type matches ! any of the given type strings. ! If the handle object @var{h} is of type @var{type}, return @var{h}. ! If @code{"toplevel"} is given as a 3rd argument, return the highest ! parent in the object hierarchy that matches the condition, instead ! of the first (nearest) one. ! @seealso{get, set} ! @end deftypefn ! meshgrid ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{xx}, @var{yy}, @var{zz}] =} meshgrid (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {[@var{xx}, @var{yy}] =} meshgrid (@var{x}, @var{y}) ! @deftypefnx {Function File} {[@var{xx}, @var{yy}] =} meshgrid (@var{x}) ! Given vectors of @var{x} and @var{y} and @var{z} coordinates, and ! returning 3 arguments, return three dimensional arrays corresponding ! to the @var{x}, @var{y}, and @var{z} coordinates of a mesh. When ! returning only 2 arguments, return matrices corresponding to the ! @var{x} and @var{y} coordinates of a mesh. The rows of @var{xx} are ! copies of @var{x}, and the columns of @var{yy} are copies of @var{y}. ! If @var{y} is omitted, then it is assumed to be the same as @var{x}, ! and @var{z} is assumed the same as @var{y}. ! @seealso{mesh, contour} ! @end deftypefn ! slice ! -*- texinfo -*- ! @deftypefn {Function File} {} slice (@var{x}, @var{y}, @var{z}, @var{v}, @var{sx}, @var{sy}, @var{sz}) ! @deftypefnx {Function File} {} slice (@var{x}, @var{y}, @var{z}, @var{v}, @var{xi}, @var{yi}, @var{zi}) ! @deftypefnx {Function File} {} slice (@var{v}, @var{sx}, @var{sy}, @var{sz}) ! @deftypefnx {Function File} {} slice (@var{v}, @var{xi}, @var{yi}, @var{zi}) ! @deftypefnx {Function File} {@var{h} =} slice (@dots{}) ! @deftypefnx {Function File} {@var{h} =} slice (@dots{}, @var{method}) ! Plot slices of 3D data/scalar fields. Each element of the 3-dimensional ! array @var{v} represents a scalar value at a location given by the ! parameters @var{x}, @var{y}, and @var{z}. The parameters @var{x}, ! @var{x}, and @var{z} are either 3-dimensional arrays of the same size ! as the array @var{v} in the "meshgrid" format or vectors. The ! parameters @var{xi}, etc respect a similar format to @var{x}, etc, ! and they represent the points at which the array @var{vi} is ! interpolated using interp3. The vectors @var{sx}, @var{sy}, and ! @var{sz} contain points of orthogonal slices of the respective axes. ! If @var{x}, @var{y}, @var{z} are omitted, they are assumed to be ! @code{x = 1:size (@var{v}, 2)}, @code{y = 1:size (@var{v}, 1)} and ! @code{z = 1:size (@var{v}, 3)}. ! @var{Method} is one of: ! @table @code ! @item "nearest" ! Return the nearest neighbour. ! @item "linear" ! Linear interpolation from nearest neighbours. ! @item "cubic" ! Cubic interpolation from four nearest neighbours (not implemented yet). ! @item "spline" ! Cubic spline interpolation---smooth first and second derivatives ! throughout the curve. @end table - The default method is @code{"linear"}. - The optional return value @var{h} is a vector of handles to the - surface graphic objects. - - Examples: @example ! [x, y, z] = meshgrid (linspace (-8, 8, 32)); ! v = sin (sqrt (x.^2 + y.^2 + z.^2)) ./ (sqrt (x.^2 + y.^2 + z.^2)); ! slice (x, y, z, v, [], 0, []); ! [xi, yi] = meshgrid (linspace (-7, 7)); ! zi = xi + yi; ! slice (x, y, z, v, xi, yi, zi); @end example ! @seealso{interp3, surface, pcolor} @end deftypefn ! __bar__ ! Undocumented internal function. ! contourf -*- texinfo -*- ! @deftypefn {Function File} {[@var{c}, @var{h}] =} contourf (@var{x}, @var{y}, @var{z}, @var{lvl}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{x}, @var{y}, @var{z}, @var{n}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{z}, @var{n}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{z}, @var{lvl}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{z}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{ax}, @dots{}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@dots{}, @var{"property"}, @var{val}) ! Compute and plot filled contours of the matrix @var{z}. ! Parameters @var{x}, @var{y} and @var{n} or @var{lvl} are optional. ! The return value @var{c} is a 2xn matrix containing the contour lines ! as described in the help to the contourc function. ! The return value @var{h} is handle-vector to the patch objects creating ! the filled contours. ! If @var{x} and @var{y} are ommited they are taken as the row/column ! index of @var{z}. @var{n} is a scalar denoting the number of lines ! to compute. Alternatively @var{lvl} is a vector containing the ! contour levels. If only one value (e.g. lvl0) is wanted, set ! @var{lvl} to [lvl0, lvl0]. If both @var{n} or @var{lvl} are omitted ! a default value of 10 contour level is assumed. ! If provided, the filled contours are added to the axes object ! @var{ax} instead of the current axis. ! The following example plots filled contours of the @code{peaks} ! function. ! @example ! [x, y, z] = peaks (50); ! contourf (x, y, z, -7:9) ! @end example ! @seealso{contour, contourc, patch} ! @end deftypefn ! gca ! -*- texinfo -*- ! @deftypefn {Function File} {} gca () ! Return a handle to the current axis object. If no axis object ! exists, create one and return its handle. The handle may then be ! used to examine or set properties of the axes. For example, ! @example ! @group ! ax = gca (); ! set (ax, "position", [0.5, 0.5, 0.5, 0.5]); ! @end group ! @end example ! @noindent ! creates an empty axes object, then changes its location and size in ! the figure window. ! @seealso{get, set} @end deftypefn ! __go_draw_figure__ ! Undocumented internal function. ! patch -*- texinfo -*- ! @deftypefn {Function File} {} patch () ! @deftypefnx {Function File} {} patch (@var{x}, @var{y}, @var{c}) ! @deftypefnx {Function File} {} patch (@var{x}, @var{y}, @var{c}, @var{opts}) ! @deftypefnx {Function File} {} patch ('Faces', @var{f}, 'Vertices', @var{v}, @dots{}) ! @deftypefnx {Function File} {} patch (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} patch (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} = } patch (@dots{}) ! Create patch object from @var{x} and @var{y} with color @var{c} and ! insert in the current axes object. Return handle to patch object. ! ! For a uniform colored patch, @var{c} can be given as an RGB vector, ! scalar value referring to the current colormap, or string value (for ! example, "r" or "red"). @end deftypefn ! scatter3 -*- texinfo -*- ! @deftypefn {Function File} {} scatter3 (@var{x}, @var{y}, @var{s}, @var{c}) ! @deftypefnx {Function File} {} scatter3 (@dots{}, 'filled') ! @deftypefnx {Function File} {} scatter3 (@dots{}, @var{style}) ! @deftypefnx {Function File} {} scatter3 (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} scatter3 (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} scatter3 (@dots{}) ! Plot a scatter plot of the data in 3D. A marker is plotted at each point ! defined by the points in the vectors @var{x}, @var{y} and @var{z}. The size ! of the markers used is determined by @var{s}, which can be a scalar or ! a vector of the same length of @var{x}, @var{y} and @var{z}. If @var{s} is ! not given or is an empty matrix, then the default value of 8 points is used. ! The color of the markers is determined by @var{c}, which can be a string ! defining a fixed color, a 3 element vector giving the red, green and blue ! components of the color, a vector of the same length as @var{x} that gives ! a scaled index into the current colormap, or a @var{n}-by-3 matrix defining ! the colors of each of the markers individually. ! The marker to use can be changed with the @var{style} argument, that is a ! string defining a marker in the same manner as the @code{plot} command. ! If the argument 'filled' is given then the markers as filled. All ! additional arguments are passed to the underlying patch command. ! The optional return value @var{h} provides a handle to the patch object @example @group ! [x, y, z] = peaks (20); ! scatter3 (x(:), y(:), z(:), [], z(:)); @end group @end example ! @seealso{plot, patch, scatter} @end deftypefn ! figure -*- texinfo -*- ! @deftypefn {Function File} {} figure (@var{n}) ! @deftypefnx {Function File} {} figure (@var{n}, @var{property}, @var{value}, @dots{}) ! Set the current plot window to plot window @var{n}. If no arguments are ! specified, the next available window number is chosen. ! ! Multiple property-value pairs may be specified for the figure, but they ! must appear in pairs. @end deftypefn ! __plr2__ ! Undocumented internal function. ! plot -*- texinfo -*- ! @deftypefn {Function File} {} plot (@var{y}) ! @deftypefnx {Function File} {} plot (@var{x}, @var{y}) ! @deftypefnx {Function File} {} plot (@var{x}, @var{y}, @var{property}, @var{value}, @dots{}) ! @deftypefnx {Function File} {} plot (@var{x}, @var{y}, @var{fmt}) ! @deftypefnx {Function File} {} plot (@var{h}, @dots{}) ! Produces two-dimensional plots. Many different combinations of ! arguments are possible. The simplest form is ! ! @example ! plot (@var{y}) ! @end example ! ! @noindent ! where the argument is taken as the set of @var{y} coordinates and the ! @var{x} coordinates are taken to be the indices of the elements, ! starting with 1. ! ! To save a plot, in one of several image formats such as PostScript ! or PNG, use the @code{print} command. ! ! If more than one argument is given, they are interpreted as ! ! @example ! plot (@var{y}, @var{property}, @var{value}, @dots{}) ! @end example ! ! @noindent ! or ! ! @example ! plot (@var{x}, @var{y}, @var{property}, @var{value}, @dots{}) ! @end example ! ! @noindent ! or @example ! plot (@var{x}, @var{y}, @var{fmt}, @dots{}) @end example @noindent ! and so on. Any number of argument sets may appear. The @var{x} and ! @var{y} values are interpreted as follows: ! ! @itemize @bullet ! @item ! If a single data argument is supplied, it is taken as the set of @var{y} ! coordinates and the @var{x} coordinates are taken to be the indices of ! the elements, starting with 1. ! ! @item ! If the @var{x} is a vector and @var{y} is a matrix, then ! the columns (or rows) of @var{y} are plotted versus @var{x}. ! (using whichever combination matches, with columns tried first.) ! ! @item ! If the @var{x} is a matrix and @var{y} is a vector, ! @var{y} is plotted versus the columns (or rows) of @var{x}. ! (using whichever combination matches, with columns tried first.) ! ! @item ! If both arguments are vectors, the elements of @var{y} are plotted versus ! the elements of @var{x}. ! @item ! If both arguments are matrices, the columns of @var{y} are plotted ! versus the columns of @var{x}. In this case, both matrices must have ! the same number of rows and columns and no attempt is made to transpose ! the arguments to make the number of rows match. ! If both arguments are scalars, a single point is plotted. ! @end itemize ! Multiple property-value pairs may be specified, but they must appear ! in pairs. These arguments are applied to the lines drawn by ! @code{plot}. ! If the @var{fmt} argument is supplied, it is interpreted as ! follows. If @var{fmt} is missing, the default gnuplot line style ! is assumed. @table @samp ! @item - ! Set lines plot style (default). ! ! @item . ! Set dots plot style. ! @item L ! Set steps plot style. ! @item @var{n} ! Interpreted as the plot color if @var{n} is an integer in the range 1 to ! 6. ! @item @var{nm} ! If @var{nm} is a two digit integer and @var{m} is an integer in the ! range 1 to 6, @var{m} is interpreted as the point style. This is only ! valid in combination with the @code{@@} or @code{-@@} specifiers. ! @item @var{c} ! If @var{c} is one of @code{"k"} (black), @code{"r"} (red), @code{"g"} ! (green), @code{"b"} (blue), @code{"m"} (magenta), @code{"c"} (cyan), ! or @code{"w"} (white), it is interpreted as the line plot color. ! @item ";title;" ! Here @code{"title"} is the label for the key. ! @item + ! @itemx * ! @itemx o ! @itemx x ! @itemx ^ ! Used in combination with the points or linespoints styles, set the point ! style. ! @end table ! The @var{fmt} argument may also be used to assign key titles. ! To do so, include the desired title between semi-colons after the ! formatting sequence described above, e.g. "+3;Key Title;" ! Note that the last semi-colon is required and will generate an error if ! it is left out. ! Here are some plot examples: ! @example ! plot (x, y, "@@12", x, y2, x, y3, "4", x, y4, "+") ! @end example ! This command will plot @code{y} with points of type 2 (displayed as ! @samp{+}) and color 1 (red), @code{y2} with lines, @code{y3} with lines of ! color 4 (magenta) and @code{y4} with points displayed as @samp{+}. ! @example ! plot (b, "*", "markersize", 3) ! @end example ! This command will plot the data in the variable @code{b}, ! with points displayed as @samp{*} with a marker size of 3. @example ! t = 0:0.1:6.3; ! plot (t, cos(t), "-;cos(t);", t, sin(t), "+3;sin(t);"); @end example ! This will plot the cosine and sine functions and label them accordingly ! in the key. ! ! If the first argument is an axis handle, then plot into these axes, ! rather than the current axis handle returned by @code{gca}. ! @seealso{semilogx, semilogy, loglog, polar, mesh, contour, bar, ! stairs, errorbar, xlabel, ylabel, title, print} @end deftypefn ! peaks -*- texinfo -*- ! @deftypefn {Function File} {} peaks () ! @deftypefnx {Function File} {} peaks (@var{n}) ! @deftypefnx {Function File} {} peaks (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{z} =} peaks (@dots{}) ! @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} peaks (@dots{}) ! Generate a function with lots of local maxima and minima. The function ! has the form ! ! @iftex ! @tex ! $f(x,y) = 3 (1 - x) ^ 2 e ^ {\left(-x^2 - (y+1)^2\right)} - 10 \left({x \over 5} - x^3 - y^5)\right) - {1 \over 3} e^{\left(-(x+1)^2 - y^2\right)}$ ! @end tex ! @end iftex ! @ifnottex ! @verbatim ! f(x,y) = 3*(1-x)^2*exp(-x^2 - (y+1)^2) ... ! - 10*(x/5 - x^3 - y^5)*exp(-x^2-y^2) ... ! - 1/3*exp(-(x+1)^2 - y^2) ! @end verbatim ! @end ifnottex ! Called without a return argument, @code{peaks} plots the surface of the ! above function using @code{mesh}. If @var{n} is a scalar, the @code{peaks} ! returns the values of the above function on a @var{n}-by-@var{n} mesh over ! the range @code{[-3,3]}. The default value for @var{n} is 49. ! If @var{n} is a vector, then it represents the @var{x} and @var{y} values ! of the grid on which to calculate the above function. The @var{x} and ! @var{y} values can be specified separately. ! @seealso{surf, mesh, meshgrid} @end deftypefn ! __plt__ ! Undocumented internal function. ! surfnorm -*- texinfo -*- ! @deftypefn {Function File} {} surfnorm (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {} surfnorm (@var{z}) ! @deftypefnx {Function File} {[@var{nx}, @var{ny}, @var{nz}] =} surfnorm (@dots{}) ! @deftypefnx {Function File} {} surfnorm (@var{h}, @dots{}) ! Find the vectors normal to a meshgridded surface. The meshed gridded ! surface is defined by @var{x}, @var{y}, and @var{z}. If @var{x} and ! @var{y} are not defined, then it is assumed that they are given by @example ! [@var{x}, @var{y}] = meshgrid (1:size(@var{z}, 1), ! 1:size(@var{z}, 2)); @end example ! If no return arguments are requested, a surface plot with the normal ! vectors to the surface is plotted. Otherwise the componets of the normal ! vectors at the mesh gridded points are returned in @var{nx}, @var{ny}, ! and @var{nz}. ! ! The normal vectors are calculated by taking the cross product of the ! diagonals of eash of teh quadrilaterals in the meshgrid to find the ! normal vectors of the centers of these quadrilaterals. The four nearest ! normal vectors to the meshgrid points are then averaged to obtain the ! normal to the surface at the meshgridded points. ! ! An example of the use of @code{surfnorm} is @example ! surfnorm (peaks (25)); @end example ! @seealso{surf, quiver3} @end deftypefn ! semilogy -*- texinfo -*- ! @deftypefn {Function File} {} semilogy (@var{args}) ! Produce a two-dimensional plot using a log scale for the @var{y} ! axis. See the description of @code{plot} for a description of the ! arguments that @code{semilogy} will accept. ! @seealso{plot, semilogx, loglog} @end deftypefn ! __line__ ! Undocumented internal function. ! feather -*- texinfo -*- ! @deftypefn {Function File} {} feather (@var{u}, @var{v}) ! @deftypefnx {Function File} {} feather (@var{z}) ! @deftypefnx {Function File} {} feather (@dots{}, @var{style}) ! @deftypefnx {Function File} {} feather (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} feather (@dots{}) ! ! Plot the @code{(@var{u}, @var{v})} components of a vector field emanating ! from equidistant points on the x-axis. If a single complex argument ! @var{z} is given, then @code{@var{u} = real (@var{z})} and ! @code{@var{v} = imag (@var{z})}. ! ! The style to use for the plot can be defined with a line style @var{style} ! in a similar manner to the line styles used with the @code{plot} command. ! ! The optional return value @var{h} provides a list of handles to the ! the parts of the vector field (body, arrow and marker). @example @group ! phi = [0 : 15 : 360] * pi / 180; ! feather (sin (phi), cos (phi)) @end group @end example ! @seealso{plot, quiver, compass} ! @end deftypefn ! drawnow ! -*- texinfo -*- ! @deftypefn {Function File} {} drawnow () ! Update and display the current graphics. ! Octave automatically calls drawnow just before printing a prompt, ! when @code{sleep} or @code{pause} is called, or while waiting for ! command-line input. @end deftypefn ! __next_line_color__ ! Undocumented internal function. ! shg -*- texinfo -*- ! @deftypefn {Function File} {} shg ! Show the graph window. Currently, this is the same as executing ! @code{drawnow}. ! @seealso{drawnow, figure} @end deftypefn ! axes -*- texinfo -*- ! @deftypefn {Function File} {} axes () ! @deftypefnx {Function File} {} axes (@var{property}, @var{value}, @dots{}) ! @deftypefnx {Function File} {} axes (@var{h}) ! Create an axes object and return a handle to it. @end deftypefn ! contour3 -*- texinfo -*- ! @deftypefn {Function File} {} contour3 (@var{z}) ! @deftypefnx {Function File} {} contour3 (@var{z}, @var{vn}) ! @deftypefnx {Function File} {} contour3 (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {} contour3 (@var{x}, @var{y}, @var{z}, @var{vn}) ! @deftypefnx {Function File} {} contour3 (@dots{}, @var{style}) ! @deftypefnx {Function File} {} contour3 (@var{h}, @dots{}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contour3 (@dots{}) ! Plot level curves (contour lines) of the matrix @var{z}, using the ! contour matrix @var{c} computed by @code{contourc} from the same ! arguments; see the latter for their interpretation. The contours are ! ploted at the Z level corresponding to their contour. The set of ! contour levels, @var{c}, is only returned if requested. For example: ! ! @example ! @group ! contour3 (peaks (19)); ! hold on ! surface (peaks (19), 'FaceColor', 'none', 'EdgeColor', 'black') ! colormap hot ! @end group ! @end example ! ! The style to use for the plot can be defined with a line style @var{style} ! in a similar manner to the line styles used with the @code{plot} command. ! Any markers defined by @var{style} are ignored. ! The optional input and output argument @var{h} allows an axis handle to ! be passed to @code{contour} and the handles to the contour objects to be ! returned. ! @seealso{contourc, patch, plot} @end deftypefn ! contourc -*- texinfo -*- ! @deftypefn {Function File} {[@var{c}, @var{lev}] =} contourc (@var{x}, @var{y}, @var{z}, @var{vn}) ! Compute isolines (countour lines) of the matrix @var{z}. ! Parameters @var{x}, @var{y} and @var{vn} are optional. ! ! The return value @var{lev} is a vector of the contour levels. ! The return value @var{c} is a 2 by @var{n} matrix containing the ! contour lines in the following format ! ! @example ! @var{c} = [lev1, x1, x2, ..., levn, x1, x2, ... ! len1, y1, y2, ..., lenn, y1, y2, ...] ! @end example ! ! @noindent ! in which contour line @var{n} has a level (height) of @var{levn} and ! length of @var{lenn}. ! ! If @var{x} and @var{y} are omitted they are taken as the row/column ! index of @var{z}. @var{vn} is either a scalar denoting the number of lines ! to compute or a vector containing the values of the lines. If only one ! value is wanted, set @code{@var{vn} = [val, val]}; ! If @var{vn} is omitted it defaults to 10. ! ! For example, ! @example ! @group ! x = 0:2; ! y = x; ! z = x' * y; ! contourc (x, y, z, 2:3) ! @result{} 2.0000 2.0000 1.0000 3.0000 1.5000 2.0000 ! 2.0000 1.0000 2.0000 2.0000 2.0000 1.5000 ! ! @end group ! @end example ! @seealso{contour} @end deftypefn ! spinmap -*- texinfo -*- ! @deftypefn {Function File} spinmap (@var{t}, @var{inc}) ! Cycle the colormap for @var{t} seconds with an increment ! of @var{inc}. Both parameters are optional. The default cycle time ! is 5 seconds and the default increment is 2. ! ! A higher value of @var{inc} causes a faster cycle through the ! colormap. ! @seealso{gca, colorbar} @end deftypefn ! rose -*- texinfo -*- ! @deftypefn {Function File} {} rose (@var{th}, @var{r}) ! @deftypefnx {Function File} {} rose (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} compass (@dots{}) ! @deftypefnx {Function File} {[@var{r}, @var{th}] =} compass (@dots{}) ! ! Plot an angular histogram. With one vector argument @var{th}, plots the ! histogram with 20 angular bins. If @var{th} is a matrix, then each column ! of @var{th} produces a separate histogram. ! ! If @var{r} is given and is a scalar, then the histogram is produced with ! @var{r} bins. If @var{r} is a vector, then the center of each bin are ! defined by the values of @var{r}. ! ! The optional return value @var{h} provides a list of handles to the ! the parts of the vector field (body, arrow and marker). ! ! If two output arguments are requested, then rather than plotting the ! histogram, the polar vectors necessary to plot the histogram are ! returned. ! surfc -*- texinfo -*- ! @deftypefn {Function File} {} surfc (@var{x}, @var{y}, @var{z}) ! Plot a surface and contour given matrices @var{x}, and @var{y} from ! @code{meshgrid} and a matrix @var{z} corresponding to the @var{x} and ! @var{y} coordinates of the mesh. If @var{x} and @var{y} are vectors, ! then a typical vertex is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, ! columns of @var{z} correspond to different @var{x} values and rows of ! @var{z} correspond to different @var{y} values. ! @seealso{meshgrid, surf, contour} @end deftypefn ! surf -*- texinfo -*- ! @deftypefn {Function File} {} surf (@var{x}, @var{y}, @var{z}) ! Plot a surface given matrices @var{x}, and @var{y} from @code{meshgrid} and ! a matrix @var{z} corresponding to the @var{x} and @var{y} coordinates of ! the mesh. If @var{x} and @var{y} are vectors, then a typical vertex ! is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, columns of @var{z} ! correspond to different @var{x} values and rows of @var{z} correspond ! to different @var{y} values. ! @seealso{mesh, surface} @end deftypefn ! fill -*- texinfo -*- ! @deftypefn {Function File} {} fill (@var{x}, @var{y}, @var{c}) ! @deftypefnx {Function File} {} fill (@var{x1}, @var{y1}, @var{c1}, @var{x2}, @var{y2}, @var{c2}) ! @deftypefnx {Function File} {} fill (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} fill (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} = } fill (@dots{}) ! Create one or more filled patch objects, returning a patch object for each. @end deftypefn ! compass -*- texinfo -*- ! @deftypefn {Function File} {} compass (@var{u}, @var{v}) ! @deftypefnx {Function File} {} compass (@var{z}) ! @deftypefnx {Function File} {} compass (@dots{}, @var{style}) ! @deftypefnx {Function File} {} compass (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} compass (@dots{}) ! ! Plot the @code{(@var{u}, @var{v})} components of a vector field emanating ! from the origin of a polar polt. If a single complex argument @var{z} is ! given, then @code{@var{u} = real (@var{z})} and @code{@var{v} = imag ! (@var{z})}. ! ! The style to use for the plot can be defined with a line style @var{style} ! in a similar manner to the line styles used with the @code{plot} command. ! ! The optional return value @var{h} provides a list of handles to the ! the parts of the vector field (body, arrow and marker). @example @group ! a = toeplitz([1;randn(9,1)],[1,randn(1,9)]); ! compass (eig (a)) @end group @end example ! @seealso{plot, polar, quiver, feather} @end deftypefn ! __plt1__ ! Undocumented internal function. ! axis -*- texinfo -*- ! @deftypefn {Function File} {} axis (@var{limits}) ! Set axis limits for plots. ! ! The argument @var{limits} should be a 2, 4, or 6 element vector. The ! first and second elements specify the lower and upper limits for the x ! axis. The third and fourth specify the limits for the y axis, and the ! fifth and sixth specify the limits for the z axis. ! ! Without any arguments, @code{axis} turns autoscaling on. ! ! With one output argument, @code{x=axis} returns the current axes ! ! The vector argument specifying limits is optional, and additional ! string arguments may be used to specify various axis properties. For ! example, @example ! axis ([1, 2, 3, 4], "square"); @end example ! @noindent ! forces a square aspect ratio, and @example ! axis ("labely", "tic"); @end example ! @noindent ! turns tic marks on for all axes and tic mark labels on for the y-axis ! only. ! ! @noindent ! The following options control the aspect ratio of the axes. ! ! @table @code ! @item "square" ! Force a square aspect ratio. ! @item "equal" ! Force x distance to equal y-distance. ! @item "normal" ! Restore the balance. ! @end table ! ! @noindent ! The following options control the way axis limits are interpreted. ! ! @table @code ! @item "auto" ! Set the specified axes to have nice limits around the data ! or all if no axes are specified. ! @item "manual" ! Fix the current axes limits. ! @item "tight" ! Fix axes to the limits of the data (not implemented). ! @end table ! ! @noindent ! The option @code{"image"} is equivalent to @code{"tight"} and ! @code{"equal"}. ! ! @noindent ! The following options affect the appearance of tic marks. ! ! @table @code ! @item "on" ! Turn tic marks and labels on for all axes. ! @item "off" ! Turn tic marks off for all axes. ! @item "tic[xyz]" ! Turn tic marks on for all axes, or turn them on for the ! specified axes and off for the remainder. ! @item "label[xyz]" ! Turn tic labels on for all axes, or turn them on for the ! specified axes and off for the remainder. ! @item "nolabel" ! Turn tic labels off for all axes. ! @end table ! Note, if there are no tic marks for an axis, there can be no labels. ! ! @noindent ! The following options affect the direction of increasing values on ! the axes. ! ! @table @code ! @item "ij" ! Reverse y-axis, so lower values are nearer the top. ! @item "xy" ! Restore y-axis, so higher values are nearer the top. ! @end table ! ! If an axes handle is passed as the first argument, then operate on ! this axes rather than the current axes. @end deftypefn ! view -*- texinfo -*- ! @deftypefn {Function File} {} view (@var{azimuth}, @var{elevation}) ! @deftypefnx {Function File} {} view (@var{dims}) ! @deftypefnx {Function File} {[@var{azimuth}, @var{elevation}] =} view () ! Set or get the viewpoint for the current axes. @end deftypefn ! __plt2__ ! Undocumented internal function. ! shading -*- texinfo -*- ! @deftypefn {Function File} {} shading (@var{type}) ! @deftypefnx {Function File} {} shading (@var{ax}, @dots{}) ! Set the shading of surface or patch graphic objects. Valid arguments ! for @var{type} are ! ! @table @code ! @item "flat" ! Single colored patches with invisible edges. ! ! @item "faceted" ! Single colored patches with visible edges. ! ! @item "interp" ! Color between patch vertices are interpolated and the patch edges are ! invisible. ! @end table ! ! If @var{ax} is given the shading is applied to axis @var{ax} instead ! of the current axis. @end deftypefn ! xlim -*- texinfo -*- ! @deftypefn {Function File} {@var{xl} =} xlim () ! @deftypefnx {Function File} {} xlim (@var{xl}) ! @deftypefnx {Function File} {@var{m} =} xlim ('mode') ! @deftypefnx {Function File} {} xlim (@var{m}) ! @deftypefnx {Function File} {} xlim (@var{h}, @dots{}) ! Get or set the limits of the x axis of the current plot. Called without ! argumenst @code{xlim] returns the x axis limits of the current plot. ! If passed a two element vector @var{xl}, the limits of the x axis are set ! to this value. ! ! The current mode for calculation of the x axis can be returned with a ! call @code{xlim ('mode')}, and can be either 'auto' or 'manual'. The ! current plotting mode can be set by passing either 'auto' or 'manual' ! as the argument. ! ! If passed an handle as the first argument, then operate on this handle ! rather than the current axes handle. ! @seealso{ylim, zlim, set, get, gca} @end deftypefn ! __gnuplot_version__ ! Undocumented internal function. ! line -*- texinfo -*- ! @deftypefn {Function File} {} line () ! @deftypefnx {Function File} {} line (@var{x}, @var{y}) ! @deftypefnx {Function File} {} line (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {} line (@var{x}, @var{y}, @var{z}, @var{property}, @var{value}, @dots{}) ! Create line object from @var{x} and @var{y} and insert in current ! axes object. Return a handle (or vector of handles) to the line ! objects created. ! Multiple property-value pairs may be specified for the line, but they ! must appear in pairs. @end deftypefn ! cylinder -*- texinfo -*- ! @deftypefn {Function File} {} cylinder ! @deftypefnx {Function File} {} cylinder (@var{r}) ! @deftypefnx {Function File} {} cylinder (@var{r}, @var{n}) ! @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} cylinder (@dots{}) ! @deftypefnx {Function File} {} cylinder (@var{ax}, @dots{}) ! Generates three matrices in @code{meshgrid} format, such that ! @code{surf (@var{x}, @var{y}, @var{z})} generates a unit cylinder. ! The matrices are of size @code{@var{n}+1}-by-@code{@var{n}+1}. ! @var{r} is a vector containing the radius along the z-axis. ! If @var{n} or @var{r} are omitted then default values of 20 or [1 1] ! are assumed. ! ! Called with no return arguments, @code{cylinder} calls directly ! @code{surf (@var{x}, @var{y}, @var{z})}. If an axes handle @var{ax} ! is passed as the first argument, the surface is plotted to this set ! of axes. - Examples: @example ! disp ("plotting a cone") ! [x, y, z] = cylinder (10:-1:0,50); ! surf (x, y, z); @end example ! @seealso{sphere} @end deftypefn ! newplot -*- texinfo -*- ! @deftypefn {Function File} {} newplot () ! Prepare graphics engine to produce a new plot. This function should ! be called at the beginning of all high-level plotting functions. @end deftypefn ! meshz -*- texinfo -*- ! @deftypefn {Function File} {} meshz (@var{x}, @var{y}, @var{z}) ! Plot a curtain mesh given matrices @var{x}, and @var{y} from ! @code{meshgrid} and a matrix @var{z} corresponding to the @var{x} and ! @var{y} coordinates of the mesh. If @var{x} and @var{y} are vectors, ! then a typical vertex is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, ! columns of @var{z} correspond to different @var{x} values and rows of ! @var{z} correspond to different @var{y} values. ! @seealso{meshgrid, mesh, contour} @end deftypefn ! __contour__ ! Undocumented internal function. ! semilogx -*- texinfo -*- ! @deftypefn {Function File} {} semilogx (@var{args}) ! Produce a two-dimensional plot using a log scale for the @var{x} ! axis. See the description of @code{plot} for a description of the ! arguments that @code{semilogx} will accept. ! @seealso{plot, semilogy, loglog} @end deftypefn ! __scatter__ ! Undocumented internal function. ! __plt_get_axis_arg__ ! Undocumented internal function. ! subplot -*- texinfo -*- ! @deftypefn {Function File} {} subplot (@var{rows}, @var{cols}, @var{index}) ! @deftypefnx {Function File} {} subplot (@var{rcn}) ! Set up a plot grid with @var{cols} by @var{rows} subwindows and plot ! in location given by @var{index}. ! If only one argument is supplied, then it must be a three digit value ! specifying the location in digits 1 (rows) and 2 (columns) and the plot ! index in digit 3. ! ! The plot index runs row-wise. First all the columns in a row are filled ! and then the next row is filled. ! ! For example, a plot with 2 by 3 grid will have plot indices running as ! follows: ! @iftex ! @tex ! \vskip 10pt ! \hfil\vbox{\offinterlineskip\hrule ! \halign{\vrule#&&\qquad\hfil#\hfil\qquad\vrule\cr ! height13pt&1&2&3\cr height12pt&&&\cr\noalign{\hrule} ! height13pt&4&5&6\cr height12pt&&&\cr\noalign{\hrule}}} ! \hfil ! \vskip 10pt ! @end tex ! @end iftex ! @ifinfo ! @display ! @group ! @example ! +-----+-----+-----+ ! | 1 | 2 | 3 | ! +-----+-----+-----+ ! | 4 | 5 | 6 | ! +-----+-----+-----+ ! @end example ! @end group ! @end display ! @end ifinfo ! @seealso{plot} @end deftypefn ! scatter -*- texinfo -*- ! @deftypefn {Function File} {} scatter (@var{x}, @var{y}, @var{s}, @var{c}) ! @deftypefnx {Function File} {} scatter (@dots{}, 'filled') ! @deftypefnx {Function File} {} scatter (@dots{}, @var{style}) ! @deftypefnx {Function File} {} scatter (@dots{}, @var{prop}, @var{val}) ! @deftypefnx {Function File} {} scatter (@var{h}, @dots{}) ! @deftypefnx {Function File} {@var{h} =} scatter (@dots{}) ! Plot a scatter plot of the data. A marker is ploted at each point ! defined by the points in the vectors @var{x} and @var{y}. The size of ! the markers used is determined by the @var{s}, which can be a scalar, ! a vector of the same length of @var{x} and @var{y}. If @var{s} is not ! given or is an empty matrix, then the default value of 8 points is used. ! The color of the markers is determined by @var{c}, which can be a string ! defining a fixed color, a 3 element vector giving the red, green and blue ! components of the color, a vector of the same length as @var{x} that gives ! a scaled index into the current colormap, or a @var{n}-by-3 matrix defining ! the colors of each of the markers individually. ! The marker to use can be changed with the @var{style} argument, that is a ! string defining a marker in the same manner as the @code{plot} command. ! If the argument 'filled' is given then the markers as filled. All ! additional arguments are passed to the underlying patch command. ! The optional return value @var{h} provides a handle to the patch object ! @example ! @group ! x = randn (100, 1); ! y = randn (100, 1); ! scatter (x, y, [], sqrt(x.^2 + y.^2)); ! @end group ! @end example ! @seealso{plot, patch, scatter3} ! @end deftypefn ! fplot ! -*- texinfo -*- ! @deftypefn {Function File} {} fplot (@var{fn}, @var{limits}) ! @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{tol}) ! @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{n}) ! @deftypefnx {Function File} {} fplot (@dots{}, @var{fmt}) ! Plot a function @var{fn}, within the defined limits. @var{fn} ! an be either a string, a function handle or an inline function. ! The limits of the plot are given by @var{limits} of the form ! @code{[@var{xlo}, @var{xhi}]} or @code{[@var{xlo}, @var{xhi}, ! @var{ylo}, @var{yhi}]}. @var{tol} is the default tolerance to use for the ! plot, and if @var{tol} is an integer it is assumed that it defines the ! number points to use in the plot. The @var{fmt} argument is passed ! to the plot command. @example ! fplot ("cos", [0, 2*pi]) ! fplot ("[cos(x), sin(x)]", [0, 2*pi]) @end example - @seealso{plot} - @end deftypefn - pcolor - -*- texinfo -*- - @deftypefn {Function File} {} pcolor (@var{x}, @var{y}, @var{c}) - @deftypefnx {Function File} {} pcolor (@var{c}) - Density plot for given matrices @var{x}, and @var{y} from @code{meshgrid} and - a matrix @var{c} corresponding to the @var{x} and @var{y} coordinates of - the mesh's vertices. If @var{x} and @var{y} are vectors, then a typical vertex - is (@var{x}(j), @var{y}(i), @var{c}(i,j)). Thus, columns of @var{c} - correspond to different @var{x} values and rows of @var{c} correspond - to different @var{y} values. ! The @code{colormap} is scaled to the extents of @var{c}. ! Limits may be placed on the color axis by the ! command @code{caxis}, or by setting the @code{clim} property of the ! parent axis. ! The face color of each cell of the mesh is determined by interpolating ! the values of @var{c} for the cell's vertices. Contrast this with ! @code{imagesc} which renders one cell for each element of @var{c}. ! @code{shading} modifies an attribute determining the manner by which the ! face color of each cell is interpolated from the values of @var{c}, ! and the visibility of the cells' edges. By default the attribute is ! "faceted", which renders a single color for each cell's face with the edge ! visible. ! @var{h} is the handle to the surface object. ! @seealso{caxis, contour, meshgrid, imagesc, shading} ! @end deftypefn ! close ! -*- texinfo -*- ! @deftypefn {Command} {} close ! @deftypefnx {Command} {} close (@var{n}) ! @deftypefnx {Command} {} close all ! @deftypefnx {Command} {} close all hidden ! Close figure window(s) by calling the function specified by the ! @code{"closerequestfcn"} property for each figure. By default, the ! function @code{closereq} is used. ! @seealso{closereq} @end deftypefn ! plot3 -*- texinfo -*- ! @deftypefn {Function File} {} plot3 (@var{args}) ! Produce three-dimensional plots. Many different combinations of ! arguments are possible. The simplest form is @example ! plot3 (@var{x}, @var{y}, @var{z}) @end example - @noindent ! in which the arguments are taken to be the vertices of the points to ! be plotted in three dimensions. If all arguments are vectors of the ! same length, then a single continuous line is drawn. If all arguments ! are matrices, then each column of the matrices is treated as a ! separate line. No attempt is made to transpose the arguments to make ! the number of rows match. ! If only two arguments are given, as ! @example ! plot3 (@var{x}, @var{c}) ! @end example ! @noindent ! the real and imaginary parts of the second argument are used ! as the @var{y} and @var{z} coordinates, respectively. ! If only one argument is given, as ! @example ! plot3 (@var{c}) ! @end example ! @noindent ! the real and imaginary parts of the argument are used as the @var{y} ! and @var{z} values, and they are plotted versus their index. ! Arguments may also be given in groups of three as @example ! plot3 (@var{x1}, @var{y1}, @var{z1}, @var{x2}, @var{y2}, @var{z2}, @dots{}) @end example - @noindent ! in which each set of three arguments is treated as a separate line or ! set of lines in three dimensions. ! ! To plot multiple one- or two-argument groups, separate each group ! with an empty format string, as @example ! plot3 (@var{x1}, @var{c1}, "", @var{c2}, "", @dots{}) @end example ! An example of the use of @code{plot3} is @example ! @group ! z = [0:0.05:5]; ! plot3 (cos(2*pi*z), sin(2*pi*z), z, ";helix;"); ! plot3 (z, exp(2i*pi*z), ";complex sinusoid;"); ! @end group @end example ! @seealso{plot} ! @end deftypefn ! __stem__ ! Undocumented internal function ! mesh ! -*- texinfo -*- ! @deftypefn {Function File} {} mesh (@var{x}, @var{y}, @var{z}) ! Plot a mesh given matrices @var{x}, and @var{y} from @code{meshgrid} and ! a matrix @var{z} corresponding to the @var{x} and @var{y} coordinates of ! the mesh. If @var{x} and @var{y} are vectors, then a typical vertex ! is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, columns of @var{z} ! correspond to different @var{x} values and rows of @var{z} correspond ! to different @var{y} values. ! @seealso{meshgrid, contour} ! @end deftypefn ! __quiver__ ! Undocumented internal function ! fileattrib ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{status}, @var{msg}, @var{msgid}] =} fileattrib (@var{file}) ! Return information about @var{file}. ! If successful, @var{status} is 1, with @var{result} containing a ! structure with the following fields: ! @table @code ! @item Name ! Full name of @var{file}. ! @item archive ! True if @var{file} is an archive (Windows). ! @item system ! True if @var{file} is a system file (Windows). ! @item hidden ! True if @var{file} is a hidden file (Windows). ! @item directory ! True if @var{file} is a directory. ! @item UserRead ! @itemx GroupRead ! @itemx OtherRead ! True if the user (group; other users) has read permission for ! @var{file}. ! @item UserWrite ! @itemx GroupWrite ! @itemx OtherWrite ! True if the user (group; other users) has write permission for ! @var{file}. ! @item UserExecute ! @itemx GroupExecute ! @itemx OtherExecute ! True if the user (group; other users) has execute permission for ! @var{file}. ! @end table ! If an attribute does not apply (i.e., archive on a Unix system) then ! the field is set to NaN. ! With no input arguments, return information about the current ! directory. ! If @var{file} contains globbing characters, return information about ! all the matching files. ! @seealso{glob} @end deftypefn ! ispc -*- texinfo -*- ! @deftypefn {Function File} {} ispc () ! Return 1 if Octave is running on a Windows system and 0 otherwise. ! @seealso{ismac, isunix} @end deftypefn ! copyfile -*- texinfo -*- ! @deftypefn {Function File} {[@var{status}, @var{msg}, @var{msgid}] =} copyfile (@var{f1}, @var{f2}, @var{force}) ! Copy the file @var{f1} to the new name @var{f2}. The name @var{f1} ! may contain globbing patterns. If @var{f1} expands to multiple file ! names, @var{f2} must be a directory. If @var{force} is given and equals ! the string "f" the copy operation will be forced. - If successful, @var{status} is 1, with @var{msg} and @var{msgid} empty\n\ - character strings. Otherwise, @var{status} is 0, @var{msg} contains a\n\ - system-dependent error message, and @var{msgid} contains a unique\n\ - message identifier.\n\ - @seealso{glob, movefile} @end deftypefn ! ls -*- texinfo -*- ! @deffn {Command} ls options ! List directory contents. For example, @example ! ls -l ! @print{} total 12 ! @print{} -rw-r--r-- 1 jwe users 4488 Aug 19 04:02 foo.m ! @print{} -rw-r--r-- 1 jwe users 1315 Aug 17 23:14 bar.m @end example ! ! The @code{dir} and @code{ls} commands are implemented by calling your ! system's directory listing command, so the available options may vary ! from system to system. ! @seealso{dir, stat, readdir, glob, filesep, ls_command} ! @end deffn ! dos -*- texinfo -*- ! @deftypefn {Function File} {[@var{status}, @var{text}] =} dos (@var{command}) ! @deftypefnx {Function File} {[@var{status}, @var{text}] =} dos (@var{command}, "-echo") ! Execute a system command if running under a Windows-like operating ! system, otherwise do nothing. Return the exit status of the program ! in @var{status} and any output sent to the standard output in ! @var{text}. If the optional second argument @code{"-echo"} is given, ! then also send the output from the command to the standard output. ! @seealso{unix, isunix, ispc, system} @end deftypefn ! movefile -*- texinfo -*- ! @deftypefn {Function File} {[@var{status}, @var{msg}, @var{msgid}] =} movefile (@var{f1}, @var{f2}) ! Move the file @var{f1} to the new name @var{f2}. The name @var{f1} ! may contain globbing patterns. If @var{f1} expands to multiple file ! names, @var{f2} must be a directory. ! If successful, @var{status} is 1, with @var{msg} and @var{msgid} empty\n\ ! character strings. Otherwise, @var{status} is 0, @var{msg} contains a\n\ ! system-dependent error message, and @var{msgid} contains a unique\n\ ! message identifier.\n\ ! @seealso{glob} @end deftypefn ! bincoeff -*- texinfo -*- ! @deftypefn {Mapping Function} {} bincoeff (@var{n}, @var{k}) ! Return the binomial coefficient of @var{n} and @var{k}, defined as @iftex @tex $$ ! {n \choose k} = {n (n-1) (n-2) \cdots (n-k+1) \over k!} $$ @end tex @end iftex --- 5329,6996 ---- rather than the current axes handle. @seealso{xlim, ylim, set, get, gca} @end deftypefn ! contour3 -*- texinfo -*- ! @deftypefn {Function File} {} contour3 (@var{z}) ! @deftypefnx {Function File} {} contour3 (@var{z}, @var{vn}) ! @deftypefnx {Function File} {} contour3 (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {} contour3 (@var{x}, @var{y}, @var{z}, @var{vn}) ! @deftypefnx {Function File} {} contour3 (@dots{}, @var{style}) ! @deftypefnx {Function File} {} contour3 (@var{h}, @dots{}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contour3 (@dots{}) ! Plot level curves (contour lines) of the matrix @var{z}, using the ! contour matrix @var{c} computed by @code{contourc} from the same ! arguments; see the latter for their interpretation. The contours are ! ploted at the Z level corresponding to their contour. The set of ! contour levels, @var{c}, is only returned if requested. For example: ! ! @example ! @group ! contour3 (peaks (19)); ! hold on ! surface (peaks (19), 'FaceColor', 'none', 'EdgeColor', 'black') ! colormap hot ! @end group ! @end example ! ! The style to use for the plot can be defined with a line style @var{style} ! in a similar manner to the line styles used with the @code{plot} command. ! Any markers defined by @var{style} are ignored. ! ! The optional input and output argument @var{h} allows an axis handle to ! be passed to @code{contour} and the handles to the contour objects to be ! returned. ! @seealso{contourc, patch, plot} @end deftypefn ! stairs -*- texinfo -*- ! @deftypefn {Function File} {} stairs (@var{x}, @var{y}) ! Produce a stairstep plot. The arguments may be vectors or matrices. If only one argument is given, it is taken as a vector of y-values and the x coordinates are taken to be the indices of the elements. ! If two output arguments are specified, the data are generated but ! not plotted. For example, ! @example ! stairs (x, y); ! @end example ! @noindent ! and ! @example ! @group ! [xs, ys] = stairs (x, y); ! plot (xs, ys); ! @end group ! @end example ! ! @noindent ! are equivalent. ! @seealso{plot, semilogx, semilogy, loglog, polar, mesh, contour, ! bar, xlabel, ylabel, title} @end deftypefn ! __pltopt1__ ! Undocumented internal function. ! close -*- texinfo -*- ! @deftypefn {Command} {} close ! @deftypefnx {Command} {} close (@var{n}) ! @deftypefnx {Command} {} close all ! @deftypefnx {Command} {} close all hidden ! Close figure window(s) by calling the function specified by the ! @code{"closerequestfcn"} property for each figure. By default, the ! function @code{closereq} is used. ! @seealso{closereq} @end deftypefn ! axes -*- texinfo -*- ! @deftypefn {Function File} {} axes () ! @deftypefnx {Function File} {} axes (@var{property}, @var{value}, @dots{}) ! @deftypefnx {Function File} {} axes (@var{h}) ! Create an axes object and return a handle to it. ! @end deftypefn ! colorbar ! -*- texinfo -*- ! @deftypefn {Function File} {} colorbar (@var{s}) ! @deftypefnx {Function File} {} colorbar ('peer', @var{h}, @dots{}) ! Adds a colorbar to the current axes. Valid values for @var{s} are ! @table @asis ! @item 'EastOutside' ! Place the colorbar outside the plot to the right. This is the default. ! @item 'East' ! Place the colorbar inside the plot to the right. ! @item 'WestOutside' ! Place the colorbar outside the plot to the left. ! @item 'West' ! Place the colorbar inside the plot to the left. ! @item 'NorthOutside' ! Place the colorbar above the plot. ! @item 'North' ! Place the colorbar at the top of the plot. ! @item 'SouthOutside' ! Place the colorbar under the plot. ! @item 'South' ! Place the colorbar at the bottom of the plot. ! @item 'Off', 'None' ! Remove any existing colorbar from the plot. ! @end table ! If the argument 'peer' is given, then the following argument is treated ! as the axes handle on which to add the colorbar. ! @end deftypefn ! shading ! -*- texinfo -*- ! @deftypefn {Function File} {} shading (@var{type}) ! @deftypefnx {Function File} {} shading (@var{ax}, @dots{}) ! Set the shading of surface or patch graphic objects. Valid arguments ! for @var{type} are ! @table @code ! @item "flat" ! Single colored patches with invisible edges. ! @item "faceted" ! Single colored patches with visible edges. ! @item "interp" ! Color between patch vertices are interpolated and the patch edges are ! invisible. @end table ! If @var{ax} is given the shading is applied to axis @var{ax} instead ! of the current axis. ! @end deftypefn ! contourf ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{c}, @var{h}] =} contourf (@var{x}, @var{y}, @var{z}, @var{lvl}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{x}, @var{y}, @var{z}, @var{n}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{x}, @var{y}, @var{z}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{z}, @var{n}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{z}, @var{lvl}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{z}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{ax}, @dots{}) ! @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@dots{}, @var{"property"}, @var{val}) ! Compute and plot filled contours of the matrix @var{z}. ! Parameters @var{x}, @var{y} and @var{n} or @var{lvl} are optional. ! The return value @var{c} is a 2xn matrix containing the contour lines ! as described in the help to the contourc function. ! The return value @var{h} is handle-vector to the patch objects creating ! the filled contours. ! If @var{x} and @var{y} are ommited they are taken as the row/column ! index of @var{z}. @var{n} is a scalar denoting the number of lines ! to compute. Alternatively @var{lvl} is a vector containing the ! contour levels. If only one value (e.g. lvl0) is wanted, set ! @var{lvl} to [lvl0, lvl0]. If both @var{n} or @var{lvl} are omitted ! a default value of 10 contour level is assumed. ! If provided, the filled contours are added to the axes object ! @var{ax} instead of the current axis. + The following example plots filled contours of the @code{peaks} + function. @example ! [x, y, z] = peaks (50); ! contourf (x, y, z, -7:9) @end example ! @seealso{contour, contourc, patch} @end deftypefn ! __plr1__ ! Undocumented internal function. ! __plt2vm__ ! Undocumented internal function. ! __line__ ! Undocumented internal function. ! replot -*- texinfo -*- ! @deftypefn {Function File} {} replot () ! Refresh the plot window. ! @end deftypefn ! __plt1__ ! Undocumented internal function. ! hold ! -*- texinfo -*- ! @deftypefn {Function File} {} hold @var{args} ! Tell Octave to `hold' the current data on the plot when executing ! subsequent plotting commands. This allows you to execute a series of ! plot commands and have all the lines end up on the same figure. The ! default is for each new plot command to clear the plot device first. ! For example, the command @example ! hold on @end example ! @noindent ! turns the hold state on. An argument of @code{"off"} turns the hold ! state off, and @code{hold} with no arguments toggles the current hold ! state. @end deftypefn ! slice -*- texinfo -*- ! @deftypefn {Function File} {} slice (@var{x}, @var{y}, @var{z}, @var{v}, @var{sx}, @var{sy}, @var{sz}) ! @deftypefnx {Function File} {} slice (@var{x}, @var{y}, @var{z}, @var{v}, @var{xi}, @var{yi}, @var{zi}) ! @deftypefnx {Function File} {} slice (@var{v}, @var{sx}, @var{sy}, @var{sz}) ! @deftypefnx {Function File} {} slice (@var{v}, @var{xi}, @var{yi}, @var{zi}) ! @deftypefnx {Function File} {@var{h} =} slice (@dots{}) ! @deftypefnx {Function File} {@var{h} =} slice (@dots{}, @var{method}) ! Plot slices of 3D data/scalar fields. Each element of the 3-dimensional ! array @var{v} represents a scalar value at a location given by the ! parameters @var{x}, @var{y}, and @var{z}. The parameters @var{x}, ! @var{x}, and @var{z} are either 3-dimensional arrays of the same size ! as the array @var{v} in the "meshgrid" format or vectors. The ! parameters @var{xi}, etc respect a similar format to @var{x}, etc, ! and they represent the points at which the array @var{vi} is ! interpolated using interp3. The vectors @var{sx}, @var{sy}, and ! @var{sz} contain points of orthogonal slices of the respective axes. ! If @var{x}, @var{y}, @var{z} are omitted, they are assumed to be ! @code{x = 1:size (@var{v}, 2)}, @code{y = 1:size (@var{v}, 1)} and ! @code{z = 1:size (@var{v}, 3)}. ! @var{Method} is one of: ! @table @code ! @item "nearest" ! Return the nearest neighbour. ! @item "linear" ! Linear interpolation from nearest neighbours. ! @item "cubic" ! Cubic interpolation from four nearest neighbours (not implemented yet). ! @item "spline" ! Cubic spline interpolation---smooth first and second derivatives ! throughout the curve. ! @end table ! The default method is @code{"linear"}. ! The optional return value @var{h} is a vector of handles to the ! surface graphic objects. + Examples: @example ! [x, y, z] = meshgrid (linspace (-8, 8, 32)); ! v = sin (sqrt (x.^2 + y.^2 + z.^2)) ./ (sqrt (x.^2 + y.^2 + z.^2)); ! slice (x, y, z, v, [], 0, []); ! [xi, yi] = meshgrid (linspace (-7, 7)); ! zi = xi + yi; ! slice (x, y, z, v, xi, yi, zi); @end example + @seealso{interp3, surface, pcolor} + @end deftypefn + unpack + -*- texinfo -*- + @deftypefn {Function File} {@var{files} =} unpack (@var{file}, @var{dir}) + @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}, @var{filetype}) + Unpack the archive @var{file} based on its extension to the directory + @var{dir}. If @var{file} is a cellstr, then all files will be + handled individually. If @var{dir} is not specified, it defaults to + the current directory. It returns a list of @var{files} + unpacked. If a directory is in the file list, then the + @var{filetype} to unpack must also be specified. ! The @var{files} includes the entire path to the output files. ! @seealso{bzip2,bunzip2,tar,untar,gzip,gunzip,zip,unzip} @end deftypefn ! orderfields -*- texinfo -*- ! @deftypefn {Function File} {[@var{t}, @var{p}] =} orderfields (@var{s1}, @var{s2}) ! Return a struct with fields arranged alphabetically or as specified ! by @var{s2} and a corresponding permutation vector. ! Given one struct, arrange field names in @var{s1} alphabetically. ! Given two structs, arrange field names in @var{s1} as they appear ! in @var{s2}. The second argument may also specify the order in ! a permutation vector or a cell array of strings. ! ! @seealso{getfield, rmfield, isfield, isstruct, fieldnames, struct} @end deftypefn ! movefile -*- texinfo -*- ! @deftypefn {Function File} {[@var{status}, @var{msg}, @var{msgid}] =} movefile (@var{f1}, @var{f2}) ! Move the file @var{f1} to the new name @var{f2}. The name @var{f1} ! may contain globbing patterns. If @var{f1} expands to multiple file ! names, @var{f2} must be a directory. ! If successful, @var{status} is 1, with @var{msg} and @var{msgid} empty\n\ ! character strings. Otherwise, @var{status} is 0, @var{msg} contains a\n\ ! system-dependent error message, and @var{msgid} contains a unique\n\ ! message identifier.\n\ ! @seealso{glob} ! @end deftypefn ! tempname ! -*- texinfo -*- ! @deftypefn {Function File} {filename = } tempname () ! This function is an alias for @code{tmpnam}. ! @end deftypefn ! unzip ! -*- texinfo -*- ! @deftypefn {Function File} {} unzip (@var{zipfile}, @var{dir}) ! Unpack the ZIP archive @var{zipfile} to the directory @var{dir}. ! If @var{dir} is not specified, it defaults to the current directory. ! @seealso{unpack, bzip2, bunzip2, tar, untar, gzip, gunzip, zip} ! @end deftypefn ! ispc ! -*- texinfo -*- ! @deftypefn {Function File} {} ispc () ! Return 1 if Octave is running on a Windows system and 0 otherwise. ! @seealso{ismac, isunix} ! @end deftypefn ! tar ! -*- texinfo -*- ! @deftypefn {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}, @var{root}) ! Pack @var{files} @var{files} into the TAR archive @var{tarfile}. The ! list of files must be a string or a cell array of strings. ! The optional argument @var{root} changes the relative path of @var{files} ! from the current directory. ! If an output argument is requested the entries in the archive are ! returned in a cell array. ! @seealso{untar, gzip, gunzip, zip, unzip} @end deftypefn ! warning_ids -*- texinfo -*- ! @table @code ! @item Octave:array-to-scalar ! If the @code{Octave:array-to-scalar} warning is enabled, Octave will ! warn when an implicit conversion from an array to a scalar value is ! attempted. By default, the @code{Octave:array-to-scalar} warning is ! disabled. ! @item Octave:array-to-vector ! If the @code{Octave:array-to-vector} warning is enabled, Octave will ! warn when an implicit conversion from an array to a vector value is ! attempted. By default, the @code{Octave:array-to-vector} warning is ! disabled. ! ! @item Octave:assign-as-truth-value ! If the @code{Octave:assign-as-truth-value} warning is ! enabled, a warning is issued for statements like @example ! if (s = t) ! ... @end example + @noindent ! since such statements are not common, and it is likely that the intent ! was to write @example ! if (s == t) ! ... @end example + @noindent ! instead. ! ! There are times when it is useful to write code that contains ! assignments within the condition of a @code{while} or @code{if} ! statement. For example, statements like @example ! while (c = getc()) ! ... @end example + @noindent ! are common in C programming. ! ! It is possible to avoid all warnings about such statements by ! disabling the @code{Octave:assign-as-truth-value} warning, ! but that may also let real errors like @example ! if (x = 1) # intended to test (x == 1)! ! ... @end example + @noindent ! slip by. ! ! In such cases, it is possible suppress errors for specific statements by ! writing them with an extra set of parentheses. For example, writing the ! previous example as @example ! while ((c = getc())) ! ... @end example + @noindent ! will prevent the warning from being printed for this statement, while ! allowing Octave to warn about other assignments used in conditional ! contexts. ! By default, the @code{Octave:assign-as-truth-value} warning is enabled. ! ! @item Octave:associativity-change ! If the @code{Octave:associativity-change} warning is ! enabled, Octave will warn about possible changes in the meaning of ! some code due to changes in associativity for some operators. ! Associativity changes have typically been made for @sc{Matlab} ! compatibility. By default, the @code{Octave:associativity-change} ! warning is enabled. ! ! @item Octave:divide-by-zero ! If the @code{Octave:divide-by-zero} warning is enabled, a ! warning is issued when Octave encounters a division by zero. By ! default, the @code{Octave:divide-by-zero} warning is enabled. + @item Octave:empty-list-elements + If the @code{Octave:empty-list-elements} warning is enabled, a + warning is issued when an empty matrix is found in a matrix list. For example, + @example ! a = [1, [], 3, [], 5] @end example @noindent ! By default, the @code{Octave:empty-list-elements} warning is enabled. ! ! @item Octave:fortran-indexing ! If the @code{Octave:fortran-indexing} warning is enabled, a warning is ! printed for expressions which select elements of a two-dimensional matrix ! using a single index. By default, the @code{Octave:fortran-indexing} ! warning is disabled. ! ! @item Octave:function-name-clash ! If the @code{Octave:function-name-clash} warning is enabled, a ! warning is issued when Octave finds that the name of a function ! defined in a function file differs from the name of the file. (If ! the names disagree, the name declared inside the file is ignored.) ! By default, the @code{Octave:function-name-clash} warning is enabled. ! ! @item Octave:future-time-stamp ! If the @code{Octave:future-time-stamp} warning is enabled, Octave ! will print a warning if it finds a function file with a time stamp ! that is in the future. By default, the ! @code{Octave:future-time-stamp} warning is enabled. ! ! @item Octave:imag-to-real ! If the @code{Octave:imag-to-real} warning is enabled, a warning is ! printed for implicit conversions of complex numbers to real numbers. ! By default, the @code{Octave:imag-to-real} warning is disabled. ! ! @item Octave:matlab-incompatible ! Print warnings for Octave language features that may cause ! compatibility problems with @sc{Matlab}. ! ! @item Octave:missing-semicolon ! If the @code{Octave:missing-semicolon} warning is enabled, Octave ! will warn when statements in function definitions don't end in ! semicolons. By default the @code{Octave:missing-semicolon} warning ! is disabled. ! ! @item Octave:neg-dim-as-zero ! If the @code{Octave:neg-dim-as-zero} warning is enabled, print a warning ! for expressions like @example ! eye (-1) @end example @noindent ! By default, the @code{Octave:neg-dim-as-zero} warning is disabled. ! @item Octave:num-to-str ! If the @code{Octave:num-to-str} warning is enable, a warning is ! printed for implicit conversions of numbers to their ASCII character ! equivalents when strings are constructed using a mixture of strings and ! numbers in matrix notation. For example, @example ! @group ! [ "f", 111, 111 ] ! @result{} "foo" ! @end group @end example + elicits a warning if the @code{Octave:num-to-str} warning is + enabled. By default, the @code{Octave:num-to-str} warning is enabled. ! @item Octave:precedence-change ! If the @code{Octave:precedence-change} warning is enabled, Octave ! will warn about possible changes in the meaning of some code due to ! changes in precedence for some operators. Precedence changes have ! typically been made for @sc{Matlab} compatibility. By default, the ! @code{Octave:precedence-change} warning is enabled. ! @item Octave:reload-forces-clear ! If several functions have been loaded from the same file, Octave must ! clear all the functions before any one of them can be reloaded. If ! the @code{Octave:reload-forces-clear} warning is enabled, Octave will ! warn you when this happens, and print a list of the additional ! functions that it is forced to clear. By default, the ! @code{Octave:reload-forces-clear} warning is enabled. ! @item Octave:resize-on-range-error ! If the @code{Octave:resize-on-range-error} warning is enabled, print a ! warning when a matrix is resized by an indexed assignment with ! indices outside the current bounds. By default, the ! @code{Octave:resize-on-range-error} warning is disabled. ! @item Octave:separator-insert ! Print warning if commas or semicolons might be inserted ! automatically in literal matrices. ! @item Octave:single-quote-string ! Print warning if a single quote character is used to introduce a ! string constant. ! @item Octave:str-to-num ! If the @code{Octave:str-to-num} warning is enabled, a warning is printed ! for implicit conversions of strings to their numeric ASCII equivalents. ! For example, ! @example ! @group ! "abc" + 0 ! @result{} 97 98 99 ! @end group ! @end example ! elicits a warning if the @code{Octave:str-to-num} warning is enabled. ! By default, the @code{Octave:str-to-num} warning is disabled. ! @item Octave:string-concat ! If the @code{Octave:string-concat} warning is enabled, print a ! warning when concatenating a mixture of double and single quoted strings. ! By default, the @code{Octave:string-concat} warning is disabled. ! @item Octave:undefined-return-values ! If the @code{Octave:undefined-return-values} warning is disabled, ! print a warning if a function does not define all the values in ! the return list which are expected. By default, the ! @code{Octave:undefined-return-values} warning is enabled. ! @item Octave:variable-switch-label ! If the @code{Octave:variable-switch-label} warning is enabled, Octave ! will print a warning if a switch label is not a constant or constant ! expression. By default, the @code{Octave:variable-switch-label} ! warning is disabled. @end table + dir + -*- texinfo -*- + @deftypefn {Function File} {} dir (@var{directory}) + @deftypefnx {Function File} {[@var{list}] =} dir (@var{directory}) + Display file listing for directory @var{directory}. If a return + value is requested, return a structure array with the fields @example ! @group ! name ! bytes ! date ! isdir ! statinfo ! @end group @end example ! ! @noindent ! in which @code{statinfo} is the structure returned from @code{stat}. ! ! If @var{directory} is not a directory, return information about the ! named @var{filename}. @var{directory} may be a list of directories ! specified either by name or with wildcard characters (like * and ?) ! which will be expanded with glob. ! ! Note that for symbolic links, @code{dir} returns information about ! the file that a symbolic link points to instead of the link itself. ! However, if the link points to a nonexistent file, @code{dir} returns ! information about the link. ! @seealso{ls, stat, lstat, readdir, glob, filesep} @end deftypefn ! license -*- texinfo -*- ! @deftypefn {Function File} {} license ! Display the license of Octave. ! @deftypefnx {Function File} {} license ("inuse") ! Display a list of packages currently being used. ! @deftypefnx {Function File} {@var{retval} =} license ("inuse") ! Return a structure containing the fields @code{feature} and @code{user}. ! @deftypefnx {Function File} {@var{retval} =} license ("test", @var{feature}) ! Return 1 if a license exists for the product identified by the string ! @var{feature} and 0 otherwise. The argument @var{feature} is case ! insensitive and only the first 27 characters are checked. ! @deftypefnx {Function File} {} license ("test", @var{feature}, @var{toggle}) ! Enable or disable license testing for @var{feature}, depending on ! @var{toggle}, which may be one of: ! @table @samp ! @item "enable" ! Future tests for the specified license of @var{feature} are conducted ! as usual. ! @item "disable" ! Future tests for the specified license of @var{feature} return 0. ! @end table ! @deftypefnx {Function File} {@var{retval} =} license ("checkout", @var{feature}) ! Check out a license for @var{feature}, returning 1 on success and 0 ! on failure. ! This function is provided for compatibility with @sc{Matlab}. ! @seealso{ver, version} @end deftypefn ! xor -*- texinfo -*- ! @deftypefn {Mapping Function} {} xor (@var{x}, @var{y}) ! Return the `exclusive or' of the entries of @var{x} and @var{y}. ! For boolean expressions @var{x} and @var{y}, ! @code{xor (@var{x}, @var{y})} is true if and only if @var{x} or @var{y} ! is true, but not if both @var{x} and @var{y} are true. @end deftypefn ! menu -*- texinfo -*- ! @deftypefn {Function File} {} menu (@var{title}, @var{opt1}, @dots{}) ! Print a title string followed by a series of options. Each option will ! be printed along with a number. The return value is the number of the ! option selected by the user. This function is useful for interactive ! programs. There is no limit to the number of options that may be passed ! in, but it may be confusing to present more than will fit easily on one ! screen. ! @seealso{disp, printf, input} ! @end deftypefn ! compare_versions ! -*- texinfo -*- ! @deftypefn {Function File} {} compare_versions (@var{v1}, @var{v2}, @var{operator}) ! Compares to version strings using the given @var{operator}. ! This function assumes that versions @var{v1} and @var{v2} are ! arbitrarily long strings made of numeric and period characters ! possibly followed by an arbitrary string (e.g. "1.2.3", "0.3", ! "0.1.2+", or "1.2.3.4-test1"). ! The version is first split into the numeric and the character parts ! then the parts are padded to be the same length (i.e. "1.1" would be ! padded to be like "1.1.0" when being compared with "1.1.1", and ! separately, the character parts of the strings are padded with ! nulls). ! The operator can be any logical operator from the set ! @itemize @bullet ! @item ! "==" ! equal ! @item ! "<" ! less than ! @item ! "<=" ! less than or equal to ! @item ! ">" ! greater than ! @item ! ">=" ! greater than or equal to ! @item ! "!=" ! not equal ! @item ! "~=" ! not equal ! @end itemize ! ! Note that version "1.1-test2" would compare as greater than ! "1.1-test10". Also, since the numeric part is compared first, "a" ! compares less than "1a" because the second string starts with a ! numeric part even though double("a") is greater than double("1"). ! @end deftypefn ! bincoeff ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} bincoeff (@var{n}, @var{k}) ! Return the binomial coefficient of @var{n} and @var{k}, defined as ! @iftex ! @tex ! $$ ! {n \choose k} = {n (n-1) (n-2) \cdots (n-k+1) \over k!} ! $$ ! @end tex ! @end iftex ! @ifinfo @example @group ! / \ ! | n | n (n-1) (n-2) ... (n-k+1) ! | | = ------------------------- ! | k | k! ! \ / @end group @end example + @end ifinfo ! For example, ! ! @example ! @group ! bincoeff (5, 2) ! @result{} 10 ! @end group ! @end example @end deftypefn ! delete -*- texinfo -*- ! @deftypefn {Function File} {} delete (@var{file}) ! @deftypefnx {Function File} {} delete (@var{h}) ! Delete the named file or figure handle. @end deftypefn ! ans -*- texinfo -*- ! @defvr {Automatic Variable} ans ! The most recently computed result that was not ! explicitly assigned to a variable. For example, after the expression @example ! 3^2 + 4^2 @end example @noindent ! is evaluated, the value returned by @code{ans} is 25. ! @end defvr ! list_primes ! -*- texinfo -*- ! @deftypefn {Function File} {} list_primes (@var{n}) ! List the first @var{n} primes. If @var{n} is unspecified, the first ! 30 primes are listed. ! The algorithm used is from page 218 of the ! @iftex ! @tex ! {\TeX}book. ! @end tex ! @end iftex ! @ifinfo ! TeXbook. ! @end ifinfo ! @end deftypefn ! comma ! -*- texinfo -*- ! @deffn {Operator} , ! Array index, function argument, or command separator. ! @seealso{semicolon} ! @end deffn ! mkoctfile ! -*- texinfo -*- ! @deftypefn {Function File} {} mkoctfile [-options] file @dots{} ! The @code{mkoctfile} function compiles source code written in C, ! C++, or Fortran. Depending on the options used with @code{mkoctfile}, the ! compiled code can be called within Octave or can be used as a stand-alone ! application. ! @code{mkoctfile} can be called from the shell prompt or from the Octave ! prompt. ! @code{mkoctfile} accepts the following options, all of which are optional ! except for the file name of the code you wish to compile: @table @samp ! @item -I DIR ! Add the include directory DIR to compile commands. ! @item -D DEF ! Add the definition DEF to the compiler call. ! @item -l LIB ! Add the library LIB to the link command. ! ! @item -L DIR ! Add the library directory DIR to the link command. ! @item -M ! @itemx --depend ! Generate dependency files (.d) for C and C++ source files. ! ! @item -c ! Compile but do not link. ! @item -g ! Enable debugging options for compilers. ! @item -o FILE ! @itemx --output FILE ! Output file name. Default extension is .oct ! (or .mex if --mex is specified) unless linking ! a stand-alone executable. ! @item -p VAR ! @itemx --print VAR ! Print the configuration variable VAR. Recognized variables are: ! @example ! ALL_CFLAGS FFTW_LIBS ! ALL_CXXFLAGS FLIBS ! ALL_FFLAGS FPICFLAG ! ALL_LDFLAGS INCFLAGS ! BLAS_LIBS LDFLAGS ! CC LD_CXX ! CFLAGS LD_STATIC_FLAG ! CPICFLAG LFLAGS ! CPPFLAGS LIBCRUFT ! CXX LIBOCTAVE ! CXXFLAGS LIBOCTINTERP ! CXXPICFLAG LIBREADLINE ! DEPEND_EXTRA_SED_PATTERN LIBS ! DEPEND_FLAGS OCTAVE_LIBS ! DL_LD RDYNAMIC_FLAG ! DL_LDFLAGS RLD_FLAG ! F2C SED ! F2CFLAGS XTRA_CFLAGS ! F77 XTRA_CXXFLAGS ! FFLAGS ! @end example ! @item --link-stand-alone ! Link a stand-alone executable file. ! @item --mex ! Assume we are creating a MEX file. Set the default output extension ! to ".mex". ! @item -s ! @itemx --strip ! Strip the output file. ! @item -v ! @itemx --verbose ! Echo commands as they are executed. ! @item file ! The file to compile or link. Recognised file types are @example ! .c C source ! .cc C++ source ! .C C++ source ! .cpp C++ source ! .f Fortran source ! .F Fortran source ! .o object file @end example ! @end table @end deftypefn ! dump_prefs -*- texinfo -*- ! @deftypefn {Function File} {} dump_prefs (@var{file}) ! Have Octave dump all the current user preference variables to ! @var{file} in a format that can be parsed by Octave later. If ! @var{file} is omitted, the listing is printed to stdout. ! @end deftypefn ! untar ! -*- texinfo -*- ! @deftypefn {Function File} {} untar (@var{tarfile}, @var{dir}) ! Unpack the TAR archive @var{tarfile} to the directory @var{dir}. ! If @var{dir} is not specified, it defaults to the current directory. ! @seealso{unpack, bzip2, bunzip2, tar, gzip, gunzip, zip, unzip} ! @end deftypefn ! fullfile ! -*- texinfo -*- ! @deftypefn {Function File} {@var{filename} =} fullfile (@var{dir1}, @var{dir2}, @dots{}, @var{file}) ! Return a complete filename constructed from the given components. ! @seealso{fileparts} ! @end deftypefn ! fileattrib ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{status}, @var{msg}, @var{msgid}] =} fileattrib (@var{file}) ! Return information about @var{file}. ! If successful, @var{status} is 1, with @var{result} containing a ! structure with the following fields: ! @table @code ! @item Name ! Full name of @var{file}. ! @item archive ! True if @var{file} is an archive (Windows). ! @item system ! True if @var{file} is a system file (Windows). ! @item hidden ! True if @var{file} is a hidden file (Windows). ! @item directory ! True if @var{file} is a directory. ! @item UserRead ! @itemx GroupRead ! @itemx OtherRead ! True if the user (group; other users) has read permission for ! @var{file}. ! @item UserWrite ! @itemx GroupWrite ! @itemx OtherWrite ! True if the user (group; other users) has write permission for ! @var{file}. ! @item UserExecute ! @itemx GroupExecute ! @itemx OtherExecute ! True if the user (group; other users) has execute permission for ! @var{file}. ! @end table ! If an attribute does not apply (i.e., archive on a Unix system) then ! the field is set to NaN. ! ! With no input arguments, return information about the current ! directory. ! ! If @var{file} contains globbing characters, return information about ! all the matching files. ! @seealso{glob} @end deftypefn ! setfield -*- texinfo -*- ! @deftypefn {Function File} {[@var{k1}, @dots{}, @var{v1}] =} setfield (@var{s}, @var{k1}, @var{v1}, @dots{}) ! Set field members in a structure. @example ! @group ! oo(1,1).f0= 1; ! oo = setfield(oo,@{1,2@},'fd',@{3@},'b', 6); ! oo(1,2).fd(3).b == 6 ! @result{} ans = 1 ! @end group @end example ! Note that this function could be written @example ! i1= @{1,2@}; i2= 'fd'; i3= @{3@}; i4= 'b'; ! oo( i1@{:@} ).( i2 )( i3@{:@} ).( i4 ) == 6; @end example ! @seealso{getfield, rmfield, isfield, isstruct, fieldnames, struct} @end deftypefn ! what -*- texinfo -*- ! @deftypefn {Command} {} what ! @deftypefnx {Command} {} what @var{dir} ! @deftypefnx {Function File} {w =} what (@var{dir}) ! List the Octave specific files in a directory. If the variable @var{dir} ! is given then check that directory rather than the current directory. If ! a return argument is requested, the files found are returned in the ! structure @var{w}. ! @seealso{which} @end deftypefn ! computer -*- texinfo -*- ! @deftypefn {Function File} {[@var{c}, @var{maxsize}, @var{endian}] =} computer () ! Print or return a string of the form @var{cpu}-@var{vendor}-@var{os} ! that identifies the kind of computer Octave is running on. If invoked ! with an output argument, the value is returned instead of printed. For ! example, @example @group ! computer () ! @print{} i586-pc-linux-gnu ! ! x = computer () ! @result{} x = "i586-pc-linux-gnu" @end group @end example ! If two output arguments are requested, also return the maximum number ! of elements for an array. ! If three output arguments are requested, also return the byte order ! of the current system as a character (@code{"B"} for big-endian or ! @code{"L"} for little-endian). @end deftypefn ! ls_command -*- texinfo -*- ! @deftypefn {Function File} {[@var{old_cmd} =} ls_command (@var{cmd}) ! Set or return the shell command used by Octave's @code{ls} command. ! The value of @var{cmd} must be a character string. ! With no arguments, simply return the previous value. ! @seealso{ls} @end deftypefn ! flops -*- texinfo -*- ! @deftypefn {Function File} {} flops () ! This function is provided for @sc{Matlab} compatibility, but it doesn't ! actually do anything. @end deftypefn ! copyfile -*- texinfo -*- ! @deftypefn {Function File} {[@var{status}, @var{msg}, @var{msgid}] =} copyfile (@var{f1}, @var{f2}, @var{force}) ! Copy the file @var{f1} to the new name @var{f2}. The name @var{f1} ! may contain globbing patterns. If @var{f1} expands to multiple file ! names, @var{f2} must be a directory. If @var{force} is given and equals ! the string "f" the copy operation will be forced. ! If successful, @var{status} is 1, with @var{msg} and @var{msgid} empty\n\ ! character strings. Otherwise, @var{status} is 0, @var{msg} contains a\n\ ! system-dependent error message, and @var{msgid} contains a unique\n\ ! message identifier.\n\ ! @seealso{glob, movefile} @end deftypefn ! zip -*- texinfo -*- ! @deftypefn {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}) ! @deftypefnx {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}, @var{rootdir}) ! Compress the list of files and/or directories specified in @var{files} ! into the archive @var{zipfiles} in the same directory. If @var{rootdir} ! is defined the @var{files} is located relative to @var{rootdir} rather ! than the current directory ! @seealso{unzip,tar} @end deftypefn ! tempdir -*- texinfo -*- ! @deftypefn {Function File} {@var{dir} =} tempdir () ! Return the name of the system's directory for temporary files. @end deftypefn ! semicolon -*- texinfo -*- ! @deffn {Operator} ; ! Array row or command separator. ! @seealso{comma} ! @end deffn ! pack -*- texinfo -*- ! @deftypefn {Function File} {} pack () ! This function is provided for compatibility with @sc{Matlab}, but it ! doesn't actually do anything. @end deftypefn ! version -*- texinfo -*- ! @deftypefn {Function File} {} version () ! Return Octave's version number as a string. This is also the value of ! the built-in variable @code{OCTAVE_VERSION}. @end deftypefn ! cast -*- texinfo -*- ! @deftypefn {Function File} {} cast (@var{val}, @var{type}) ! Convert @var{val} to data type @var{type}. ! @seealso{int8, uint8, int16, uint16, int32, uint32, int64, uint64, double} @end deftypefn ! bunzip2 -*- texinfo -*- ! @deftypefn {Function File} {} bunzip2 (@var{bzfile}, @var{dir}) ! Unpack the bzip2 archive @var{bzfile} to the directory @var{dir}. If ! @var{dir} is not specified, it defaults to the current directory. ! @seealso{unpack, bzip2, tar, untar, gzip, gunzip, zip, unzip} ! @end deftypefn ! bug_report ! -*- texinfo -*- ! @deftypefn {Function File} {} bug_report () ! Have Octave create a bug report template file, invoke your favorite ! editor, and submit the report to the bug-octave mailing list when ! you are finished editing. ! @end deftypefn ! isunix ! -*- texinfo -*- ! @deftypefn {Function File} {} isunix () ! Return 1 if Octave is running on a Unix-like system and 0 otherwise. ! @seealso{ismac, ispc} ! @end deftypefn ! getfield ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{v1}, @dots{}] =} getfield (@var{s}, @var{key}, @dots{}) ! Extract fields from a structure. For example @example @group ! ss(1,2).fd(3).b=5; ! getfield (ss, @{1,2@}, "fd", @{3@}, "b") ! @result{} ans = 5 @end group @end example ! Note that the function call in the previous example is equivalent to ! the expression ! ! @example ! i1= @{1,2@}; i2= "fd"; i3= @{3@}; i4= "b"; ! ss(i1@{:@}).(i2)(i3@{:@}).(i4) ! @end example ! @seealso{setfield, rmfield, isfield, isstruct, fieldnames, struct} @end deftypefn ! ver -*- texinfo -*- ! @deftypefn {Function File} {} ver () ! Display a header containing the current Octave version ! number, license string and operating system. ! @seealso{license, version} ! @end deftypefn ! news ! -*- texinfo -*- ! @deftypefn {Function File} {} news () ! Display the current NEWS file for Octave. ! @end deftypefn ! gzip ! -*- texinfo -*- ! @deftypefn {Function File} {@var{entries} =} gzip (@var{files}) ! @deftypefnx {Function File} {@var{entries} =} gzip (@var{files}, @var{outdir}) ! Compress the list of files and/or directories specified in @var{files}. ! Each file is compressed separately and a new file with a '.gz' extension ! is created. The original file is not touched. If @var{rootdir} is defined ! the compressed versions of the files are placed in this directory. ! @seealso{gunzip, zip, tar} ! @end deftypefn ! parseparams ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{reg}, @var{prop}] =} parseparams (@var{params}) ! Return in @var{reg} the cell elements of @var{param} up to the first ! string element and in @var{prop} all remaining elements beginning ! with the first string element. For example @example ! @group ! [reg, prop] = parseparams (@{1, 2, "linewidth", 10@}) ! reg = ! @{ ! [1,1] = 1 ! [1,2] = 2 ! @} ! prop = ! @{ ! [1,1] = linewidth ! [1,2] = 10 ! @} ! @end group @end example ! The parseparams function may be used to separate 'regular' ! arguments and additional arguments given as property/value pairs of ! the @var{varargin} cell array. ! @seealso{varargin} ! @end deftypefn ! ls ! -*- texinfo -*- ! @deffn {Command} ls options ! List directory contents. For example, @example ! ls -l ! @print{} total 12 ! @print{} -rw-r--r-- 1 jwe users 4488 Aug 19 04:02 foo.m ! @print{} -rw-r--r-- 1 jwe users 1315 Aug 17 23:14 bar.m @end example ! The @code{dir} and @code{ls} commands are implemented by calling your ! system's directory listing command, so the available options may vary ! from system to system. ! @seealso{dir, stat, readdir, glob, filesep, ls_command} ! @end deffn ! ismac ! -*- texinfo -*- ! @deftypefn {Function File} {} ismac () ! Return 1 if Octave is running on a Mac OS X system and 0 otherwise. ! @seealso{ispc, isunix} @end deftypefn ! unix -*- texinfo -*- ! @deftypefn {Function File} {[@var{status}, @var{text}]} unix (@var{command}) ! @deftypefnx {Function File} {[@var{status}, @var{text}]} unix (@var{command}, "-echo") ! Execute a system command if running under a Unix-like operating ! system, otherwise do nothing. Return the exit status of the program ! in @var{status} and any output sent to the standard output in ! @var{text}. If the optional second argument @code{"-echo"} is given, ! then also send the output from the command to the standard output. ! @seealso{isunix, ispc, system} @end deftypefn ! inputname -*- texinfo -*- ! @deftypefn {Function File} {} inputname (@var{n}) ! Return the text defining @var{n}-th input to the function. @end deftypefn ! fileparts -*- texinfo -*- ! @deftypefn {Function File} {[@var{dir}, @var{name}, @var{ext}, @var{ver}] =} fileparts (@var{filename}) ! Return the directory, name, extension, and version components of ! @var{filename}. ! @seealso{fullfile} @end deftypefn ! single -*- texinfo -*- ! @deftypefn {Function File} {} single (@var{val}) ! Convert the numeric value @var{val} to single precision. ! @strong{Note}: this function currently returns its argument converted ! to double precision because Octave does not yet have a single-precision ! numeric data type. @end deftypefn ! substruct -*- texinfo -*- ! @deftypefn {Function File} {} substruct (@var{type}, @var{subs}, @dots{}) ! Create a subscript structure for use with @code{subsref} or ! @code{subsasgn}. ! @seealso{subsref, subsasgn} ! @end deftypefn ! swapbytes ! -*- texinfo -*- ! @deftypefn {Function File} {} swapbytes (@var{x}) ! Swaps the byte order on values, converting from little endian to big ! endian and visa-versa. For example @example ! @group ! swapbytes (uint16 (1:4)) ! @result{} [ 256 512 768 1024] ! @end group @end example ! ! @seealso{typecast, cast} @end deftypefn ! mexext -*- texinfo -*- ! @deftypefn {Function File} {} mexext () ! Return the filename extension used for MEX files. @end deftypefn ! paren -*- texinfo -*- ! @deffn {Operator} ( ! @deffnx {Operator} ) ! Array index or function argument delimeter. ! @end deffn ! dos ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{status}, @var{text}] =} dos (@var{command}) ! @deftypefnx {Function File} {[@var{status}, @var{text}] =} dos (@var{command}, "-echo") ! Execute a system command if running under a Windows-like operating ! system, otherwise do nothing. Return the exit status of the program ! in @var{status} and any output sent to the standard output in ! @var{text}. If the optional second argument @code{"-echo"} is given, ! then also send the output from the command to the standard output. ! @seealso{unix, isunix, ispc, system} @end deftypefn ! run -*- texinfo -*- ! @deftypefn {Function File} {} run (@var{f}) ! @deftypefnx {Command} {} run @var{f} ! Run scripts in the current workspace that are not necessarily on the ! path. If @var{f} is the script to run, including its path, then @code{run} ! change the directory to the directory where @var{f} is found. @code{run} ! then executes the script, and returns to the original directory. ! @seealso{system} @end deftypefn ! texas_lotto -*- texinfo -*- ! @deftypefn {Function File} {} texas_lotto () ! Pick 6 unique numbers between 1 and 50 that are guaranteed to win ! the Texas Lotto. ! @seealso{rand} ! @end deftypefn ! mex ! -*- texinfo -*- ! @deftypefn {Function File} {} mex [options] file @dots{} ! Compile source code written in C, C++, or Fortran, to a MEX file. ! This is equivalent to @code{mkoctfile --mex [options] file}. ! @seealso{mkoctfile} ! @end deftypefn ! gunzip ! -*- texinfo -*- ! @deftypefn {Function File} {} gunzip (@var{gzfile}, @var{dir}) ! Unpack the gzip archive @var{gzfile} to the directory @var{dir}. If ! @var{dir} is not specified, it defaults to the current directory. If ! the @var{gzfile} is a directory, all files in the directory will be ! recursively gunzipped. ! @seealso{unpack, bzip2, bunzip2, tar, untar, gzip, gunzip, zip, unzip} ! @end deftypefn ! doc ! -*- texinfo -*- ! @deftypefn {Command} doc @var{function_name} ! Display documentation for the function @var{function_name} ! directly from an on-line version of ! the printed manual, using the GNU Info browser. If invoked without ! any arguments, the manual is shown from the beginning. ! For example, the command @kbd{doc rand} starts the GNU Info browser ! at this node in the on-line version of the manual. ! Once the GNU Info browser is running, help for using it is available ! using the command @kbd{C-h}. ! @seealso{help} @end deftypefn ! edit -*- texinfo -*- ! @deftypefn {Command} edit @var{name} ! @deftypefnx {Command} edit @var{field} @var{value} ! @deftypefnx {Command} @var{value} = edit get @var{field} ! Edit the named function, or change editor settings. ! If @code{edit} is called with the name of a file or function as ! its argument it will be opened in a text editor. ! @itemize @bullet ! @item ! If the function @var{name} is available in a file on your path and ! that file is modifiable, then it will be edited in place. If it ! is a system function, then it will first be copied to the directory ! @code{HOME} (see further down) and then edited. ! @item ! If @var{name} is the name of a function defined in the interpreter but ! not in an m-file, then an m-file will be created in @code{HOME} ! to contain that function along with its current definition. ! @item ! If @code{name.cc} is specified, then it will search for @code{name.cc} ! in the path and try to modify it, otherwise it will create a new ! @file{.cc} file in @code{HOME}. If @var{name} happens to be an ! m-file or interpreter defined function, then the text of that ! function will be inserted into the .cc file as a comment. ! @item ! If @var{name.ext} is on your path then it will be editted, otherwise ! the editor will be started with @file{HOME/name.ext} as the ! filename. If @file{name.ext} is not modifiable, it will be copied to ! @code{HOME} before editing. ! @strong{WARNING!} You may need to clear name before the new definition ! is available. If you are editing a .cc file, you will need ! to mkoctfile @file{name.cc} before the definition will be available. ! @end itemize ! ! If @code{edit} is called with @var{field} and @var{value} variables, ! the value of the control field @var{field} will be @var{value}. ! If an output argument is requested and the first argument is @code{get} ! then @code{edit} will return the value of the control field @var{field}. ! The following control fields are used: ! ! @table @samp ! @item editor ! This is the editor to use to modify the functions. By default it uses ! Octave's @code{EDITOR} built-in function, which comes from ! @code{getenv("EDITOR")} and defaults to @code{emacs}. Use @code{%s} ! In place of the function name. For example, ! @table @samp ! @item [EDITOR, " %s"] ! Use the editor which Octave uses for @code{bug_report}. ! @item "xedit %s &" ! pop up simple X11 editor in a separate window ! @item "gnudoit -q \"(find-file \\\"%s\\\")\"" ! Send it to current Emacs; must have @code{(gnuserv-start)} in @file{.emacs}. ! @end table + On cygwin, you will need to convert the cygwin path to a windows + path if you are using a native Windows editor. For example @example ! '"C:/Program Files/Good Editor/Editor.exe" "$(cygpath -wa %s)"' @end example ! @item home ! This is the location of user local m-files. Be be sure it is in your ! path. The default is @file{~/octave}. ! @item author ! This is the name to put after the "## Author:" field of new functions. ! By default it guesses from the @code{gecos} field of password database. ! @item email ! This is the e-mail address to list after the name in the author field. ! By default it guesses @code{<$LOGNAME@@$HOSTNAME>}, and if @code{$HOSTNAME} ! is not defined it uses @code{uname -n}. You probably want to override this. ! Be sure to use @code{} as your format. ! @item license ! @table @samp ! @item gpl ! GNU General Public License (default). ! @item bsd ! BSD-style license without advertising clause. ! @item pd ! Public domain. ! @item "text" ! Your own default copyright and license. ! @end table ! @item mode ! This value determines whether the editor should be started in async mode ! or sync mode. Set it to "async" to start the editor in async mode. The ! default is "sync" (see also "system"). ! ! Unless you specify @samp{pd}, edit will prepend the copyright statement ! with "Copyright (C) yyyy Function Author". ! @end table @end deftypefn ! pkg -*- texinfo -*- ! @deftypefn {Command} pkg @var{command} @var{pkg_name} ! @deftypefnx {Command} pkg @var{command} @var{option} @var{pkg_name} ! This command interacts with the package manager. Different actions will ! be taken depending on the value of @var{command}. + @table @samp + @item install + Install named packages. For example, @example ! pkg install image-1.0.0.tar.gz @end example @noindent ! installs the package found in the file @code{image-1.0.0.tar.gz}. ! The @var{option} variable can contain options that affect the manner ! in which a package is installed. These options can be one or more of ! @table @code ! @item -nodeps ! The package manager will disable the dependency checking. That way it ! is possible to install a package even if it depends on another package ! that's not installed on the system. @strong{Use this option with care.} ! @item -noauto ! The package manager will not automatically load the installed package ! when starting Octave, even if the package requests that it is. ! @item -auto ! The package manager will automatically load the installed package when ! starting Octave, even if the package requests that it isn't. ! @item -local ! A local installation is forced, even if the user has system privileges. ! @item -global ! A global installation is forced, even if the user doesn't normally have ! system privileges ! @item -verbose ! The package manager will print the output of all of the commands that are ! performed. ! @end table + @item uninstall + Uninstall named packages. For example, @example ! pkg uninstall image @end example @noindent ! removes the @code{image} package from the system. If another installed ! package depends on the @code{image} package an error will be issued. ! The package can be uninstalled anyway by using the @code{-nodeps} option. ! @item load ! Add named packages to the path. After loading a package it is ! possible to use the functions provided by the package. For example, ! @example ! pkg load image ! @end example ! @noindent ! adds the @code{image} package to the path. It is possible to load all ! installed packages at once with the command ! @example ! pkg load all ! @end example ! @item unload ! Removes named packages from the path. After unloading a package it is ! no longer possible to use the functions provided by the package. ! This command behaves like the @code{load} command. ! @item list ! Show a list of the currently installed packages. By requesting one or two ! output argument it is possible to get a list of the currently installed ! packages. For example, ! @example ! installed_packages = pkg list; ! @end example ! @noindent ! returns a cell array containing a structure for each installed package. ! The command ! @example ! [@var{user_packages}, @var{system_packages}] = pkg list ! @end example ! @noindent ! splits the list of installed packages into those who are installed by ! the current user, and those installed by the system administrator. ! @item describe ! Show a short description of the named installed packages, with the option ! '-verbose' also list functions provided by the package, e.g.: ! @example ! pkg describe -verbose all ! @end example ! @noindent ! will describe all installed packages and the functions they provide. ! If one output is requested a cell of structure containing the ! description and list of functions of each package is returned as ! output rather than printed on screen: ! @example ! desc = pkg ("describe", "secs1d", "image") ! @end example ! @noindent ! If any of the requested packages is not installed, pkg returns an ! error, unless a second output is requested: ! @example ! [ desc, flag] = pkg ("describe", "secs1d", "image") ! @end example ! @noindent ! @var{flag} will take one of the values "Not installed", "Loaded" or ! "Not loaded" for each of the named packages. ! @item prefix ! Set the installation prefix directory. For example, ! @example ! pkg prefix ~/my_octave_packages ! @end example ! @noindent ! sets the installation prefix to @code{~/my_octave_packages}. ! Packages will be installed in this directory. + It is possible to get the current installation prefix by requesting an + output argument. For example, @example ! p = pkg prefix @end example ! The location in which to install the architecture dependent files can be ! independent specified with an addition argument. For example @example ! pkg prefix ~/my_octave_packages ~/my_octave_packages_for_my_pc @end example ! @item local_list ! Set the file in which to look for information on the locally ! installed packages. Locally installed packages are those that are ! typically available only to the current user. For example ! @example ! pkg local_list ~/.octave_packages ! @end example ! It is possible to get the current value of local_list with the following ! @example ! pkg local_list ! @end example ! @item global_list ! Set the file in which to look for, for information on the globally ! installed packages. Globally installed packages are those that are ! typically available to all users. For example ! @example ! pkg global_list /usr/share/octave/octave_packages ! @end example ! It is possible to get the current value of global_list with the following ! @example ! pkg global_list ! @end example ! @item rebuild ! Rebuilds the package database from the installed directories. This can ! be used in cases where for some reason the package database is corrupted. ! It can also take the @code{-auto} and @code{-noauto} options to allow the ! autolaoding state of a package to be changed. For example ! @example ! pkg rebuild -noauto image ! @end example ! will remove the autoloading status of the image package. ! @item build ! Builds a binary form of a package or packages. The binary file produced ! will itself be an Octave package that can be installed normally with ! @code{pkg}. The form of the command to build a binary package is ! @example ! pkg build builddir image-1.0.0.tar.gz @dots{} ! @end example ! @noindent ! where @code{buiddir} is the name of a directory where the temporary ! installation will be produced and the binary packages will be found. ! The options @code{-verbose} and @code{-nodeps} are respected, while ! the other options are ignored. ! @end table @end deftypefn ! beep -*- texinfo -*- ! @deftypefn {Function File} {} beep () ! Produce a beep from the speaker (or visual bell). ! @seealso{puts, fputs, printf, fprintf} @end deftypefn ! magic -*- texinfo -*- ! @deftypefn {Function File} {} magic (@var{n}) ! ! Create an @var{n}-by-@var{n} magic square. Note that @code{magic ! (@var{2})} is undefined since there is no 2-by-2 magic square. @end deftypefn ! hankel -*- texinfo -*- ! @deftypefn {Function File} {} hankel (@var{c}, @var{r}) ! Return the Hankel matrix constructed given the first column @var{c}, and ! (optionally) the last row @var{r}. If the last element of @var{c} is ! not the same as the first element of @var{r}, the last element of ! @var{c} is used. If the second argument is omitted, it is assumed to ! be a vector of zeros with the same size as @var{c}. ! ! A Hankel matrix formed from an m-vector @var{c}, and an n-vector ! @var{r}, has the elements ! @iftex ! @tex ! $$ ! H (i, j) = \cases{c_{i+j-1},&$i+j-1\le m$;\cr r_{i+j-m},&otherwise.\cr} ! $$ ! @end tex ! @end iftex ! @ifinfo @example ! @group ! H(i,j) = c(i+j-1), i+j-1 <= m; ! H(i,j) = r(i+j-m), otherwise ! @end group @end example ! @end ifinfo ! @seealso{vander, sylvester_matrix, hilb, invhilb, toeplitz} ! @end deftypefn ! hilb -*- texinfo -*- ! @deftypefn {Function File} {} hilb (@var{n}) ! Return the Hilbert matrix of order @var{n}. The ! @iftex ! @tex ! $i,\,j$ ! @end tex ! @end iftex ! @ifinfo ! i, j ! @end ifinfo ! element of a Hilbert matrix is defined as ! @iftex ! @tex ! $$ ! H (i, j) = {1 \over (i + j - 1)} ! $$ ! @end tex ! @end iftex ! @ifinfo ! ! @example ! H (i, j) = 1 / (i + j - 1) ! @end example ! @end ifinfo ! @seealso{hankel, vander, sylvester_matrix, invhilb, toeplitz} @end deftypefn ! pascal -*- texinfo -*- ! @deftypefn {Function File} {} pascal (@var{n}, @var{t}) ! Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}. ! @var{t} defaults to 0. Return lower triangular Cholesky factor of ! the Pascal matrix if @code{@var{t} = 1}. This matrix is its own ! inverse, that is @code{pascal (@var{n}, 1) ^ 2 == eye (@var{n})}. ! If @code{@var{t} = 2}, return a transposed and permuted version of ! @code{pascal (@var{n}, 1)}, which is the cube-root of the identity ! matrix. That is @code{pascal (@var{n}, 2) ^ 3 == eye (@var{n})}. ! ! @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz ! hadamard, wilkinson, compan, rosser} @end deftypefn ! vander -*- texinfo -*- ! @deftypefn {Function File} {} vander (@var{c}) ! Return the Vandermonde matrix whose next to last column is @var{c}. ! ! A Vandermonde matrix has the form: @iftex @tex $$ ! \left[\matrix{c_1^{n-1} & \cdots & c_1^2 & c_1 & 1 \cr ! c_2^{n-1} & \cdots & c_2^2 & c_2 & 1 \cr ! \vdots & \ddots & \vdots & \vdots & \vdots \cr ! c_n^{n-1} & \cdots & c_n^2 & c_n & 1 }\right] $$ @end tex @end iftex *************** *** 8312,14078 **** @example @group ! / \ ! | n | n (n-1) (n-2) ... (n-k+1) ! | | = ------------------------- ! | k | k! ! \ / @end group @end example @end ifinfo ! For example, ! @example ! @group ! bincoeff (5, 2) ! @result{} 10 ! @end group ! @end example @end deftypefn ! news -*- texinfo -*- ! @deftypefn {Function File} {} news () ! Display the current NEWS file for Octave. @end deftypefn ! getfield -*- texinfo -*- ! @deftypefn {Function File} {[@var{v1}, @dots{}] =} getfield (@var{s}, @var{key}, @dots{}) ! Extract fields from a structure. For example ! @example - @group - ss(1,2).fd(3).b=5; - getfield (ss, @{1,2@}, "fd", @{3@}, "b") - @result{} ans = 5 - @end group - @end example ! Note that the function call in the previous example is equivalent to ! the expression @example ! i1= @{1,2@}; i2= "fd"; i3= @{3@}; i4= "b"; ! ss(i1@{:@}).(i2)(i3@{:@}).(i4) @end example ! @seealso{setfield, rmfield, isfield, isstruct, fieldnames, struct} @end deftypefn ! warning_ids -*- texinfo -*- ! @table @code ! @item Octave:array-to-scalar ! If the @code{Octave:array-to-scalar} warning is enabled, Octave will ! warn when an implicit conversion from an array to a scalar value is ! attempted. By default, the @code{Octave:array-to-scalar} warning is ! disabled. ! ! @item Octave:array-to-vector ! If the @code{Octave:array-to-vector} warning is enabled, Octave will ! warn when an implicit conversion from an array to a vector value is ! attempted. By default, the @code{Octave:array-to-vector} warning is ! disabled. ! @item Octave:assign-as-truth-value ! If the @code{Octave:assign-as-truth-value} warning is ! enabled, a warning is issued for statements like ! @example ! if (s = t) ! ... ! @end example ! @noindent ! since such statements are not common, and it is likely that the intent ! was to write ! @example ! if (s == t) ! ... ! @end example ! @noindent ! instead. ! There are times when it is useful to write code that contains ! assignments within the condition of a @code{while} or @code{if} ! statement. For example, statements like @example ! while (c = getc()) ! ... @end example ! @noindent ! are common in C programming. ! It is possible to avoid all warnings about such statements by ! disabling the @code{Octave:assign-as-truth-value} warning, ! but that may also let real errors like @example ! if (x = 1) # intended to test (x == 1)! ! ... @end example ! @noindent ! slip by. ! ! In such cases, it is possible suppress errors for specific statements by ! writing them with an extra set of parentheses. For example, writing the ! previous example as ! @example ! while ((c = getc())) ! ... ! @end example ! @noindent ! will prevent the warning from being printed for this statement, while ! allowing Octave to warn about other assignments used in conditional ! contexts. ! By default, the @code{Octave:assign-as-truth-value} warning is enabled. ! @item Octave:associativity-change ! If the @code{Octave:associativity-change} warning is ! enabled, Octave will warn about possible changes in the meaning of ! some code due to changes in associativity for some operators. ! Associativity changes have typically been made for @sc{Matlab} ! compatibility. By default, the @code{Octave:associativity-change} ! warning is enabled. ! @item Octave:divide-by-zero ! If the @code{Octave:divide-by-zero} warning is enabled, a ! warning is issued when Octave encounters a division by zero. By ! default, the @code{Octave:divide-by-zero} warning is enabled. ! @item Octave:empty-list-elements ! If the @code{Octave:empty-list-elements} warning is enabled, a ! warning is issued when an empty matrix is found in a matrix list. ! For example, @example ! a = [1, [], 3, [], 5] @end example @noindent ! By default, the @code{Octave:empty-list-elements} warning is enabled. ! ! @item Octave:fortran-indexing ! If the @code{Octave:fortran-indexing} warning is enabled, a warning is ! printed for expressions which select elements of a two-dimensional matrix ! using a single index. By default, the @code{Octave:fortran-indexing} ! warning is disabled. ! @item Octave:function-name-clash ! If the @code{Octave:function-name-clash} warning is enabled, a ! warning is issued when Octave finds that the name of a function ! defined in a function file differs from the name of the file. (If ! the names disagree, the name declared inside the file is ignored.) ! By default, the @code{Octave:function-name-clash} warning is enabled. ! @item Octave:future-time-stamp ! If the @code{Octave:future-time-stamp} warning is enabled, Octave ! will print a warning if it finds a function file with a time stamp ! that is in the future. By default, the ! @code{Octave:future-time-stamp} warning is enabled. ! @item Octave:imag-to-real ! If the @code{Octave:imag-to-real} warning is enabled, a warning is ! printed for implicit conversions of complex numbers to real numbers. ! By default, the @code{Octave:imag-to-real} warning is disabled. ! @item Octave:matlab-incompatible ! Print warnings for Octave language features that may cause ! compatibility problems with @sc{Matlab}. ! @item Octave:missing-semicolon ! If the @code{Octave:missing-semicolon} warning is enabled, Octave ! will warn when statements in function definitions don't end in ! semicolons. By default the @code{Octave:missing-semicolon} warning ! is disabled. ! @item Octave:neg-dim-as-zero ! If the @code{Octave:neg-dim-as-zero} warning is enabled, print a warning ! for expressions like @example ! eye (-1) @end example @noindent ! By default, the @code{Octave:neg-dim-as-zero} warning is disabled. ! @item Octave:num-to-str ! If the @code{Octave:num-to-str} warning is enable, a warning is ! printed for implicit conversions of numbers to their ASCII character ! equivalents when strings are constructed using a mixture of strings and ! numbers in matrix notation. For example, ! @example ! @group ! [ "f", 111, 111 ] ! @result{} "foo" ! @end group ! @end example ! elicits a warning if the @code{Octave:num-to-str} warning is ! enabled. By default, the @code{Octave:num-to-str} warning is enabled. ! @item Octave:precedence-change ! If the @code{Octave:precedence-change} warning is enabled, Octave ! will warn about possible changes in the meaning of some code due to ! changes in precedence for some operators. Precedence changes have ! typically been made for @sc{Matlab} compatibility. By default, the ! @code{Octave:precedence-change} warning is enabled. ! @item Octave:reload-forces-clear ! If several functions have been loaded from the same file, Octave must ! clear all the functions before any one of them can be reloaded. If ! the @code{Octave:reload-forces-clear} warning is enabled, Octave will ! warn you when this happens, and print a list of the additional ! functions that it is forced to clear. By default, the ! @code{Octave:reload-forces-clear} warning is enabled. ! @item Octave:resize-on-range-error ! If the @code{Octave:resize-on-range-error} warning is enabled, print a ! warning when a matrix is resized by an indexed assignment with ! indices outside the current bounds. By default, the ! @code{Octave:resize-on-range-error} warning is disabled. ! @item Octave:separator-insert ! Print warning if commas or semicolons might be inserted ! automatically in literal matrices. ! @item Octave:single-quote-string ! Print warning if a signle quote character is used to introduce a ! string constant. - @item Octave:str-to-num - If the @code{Octave:str-to-num} warning is enabled, a warning is printed - for implicit conversions of strings to their numeric ASCII equivalents. - For example, @example @group ! "abc" + 0 ! @result{} 97 98 99 @end group @end example - elicits a warning if the @code{Octave:str-to-num} warning is enabled. - By default, the @code{Octave:str-to-num} warning is disabled. ! @item Octave:string-concat ! If the @code{Octave:string-concat} warning is enabled, print a ! warning when concatenating a mixture of double and single quoted strings. ! By default, the @code{Octave:string-concat} warning is disabled. ! @item Octave:undefined-return-values ! If the @code{Octave:undefined-return-values} warning is disabled, ! print a warning if a function does not define all the values in ! the return list which are expected. By default, the ! @code{Octave:undefined-return-values} warning is enabled. ! @item Octave:variable-switch-label ! If the @code{Octave:variable-switch-label} warning is enabled, Octave ! will print a warning if a switch label is not a constant or constant ! expression. By default, the @code{Octave:variable-switch-label} ! warning is disabled. @end table ! ans -*- texinfo -*- ! @defvr {Automatic Variable} ans ! The most recently computed result that was not ! explicitly assigned to a variable. For example, after the expression @example ! 3^2 + 4^2 @end example @noindent ! is evaluated, the value returned by @code{ans} is 25. ! @end defvr ! list_primes ! -*- texinfo -*- ! @deftypefn {Function File} {} list_primes (@var{n}) ! List the first @var{n} primes. If @var{n} is unspecified, the first ! 30 primes are listed. ! ! The algorithm used is from page 218 of the ! @iftex ! @tex ! {\TeX}book. ! @end tex ! @end iftex ! @ifinfo ! TeXbook. ! @end ifinfo @end deftypefn ! gunzip -*- texinfo -*- ! @deftypefn {Function File} {} gunzip (@var{gzfile}, @var{dir}) ! Unpack the gzip archive @var{gzfile} to the directory @var{dir}. If ! @var{dir} is not specified, it defaults to the current directory. If ! the @var{gzfile} is a directory, all files in the directory will be ! recursively gunzipped. ! @seealso{unpack, bzip2, bunzip2, tar, untar, gzip, gunzip, zip, unzip} @end deftypefn ! edit -*- texinfo -*- ! @deftypefn {Command} edit @var{name} ! @deftypefnx {Command} edit @var{field} @var{value} ! @deftypefnx {Command} @var{value} = edit get @var{field} ! Edit the named function, or change editor settings. ! ! If @code{edit} is called with the name of a file or function as ! its argument it will be opened in a text editor. ! ! @itemize @bullet ! @item ! If the function @var{name} is available in a file on your path and ! that file is modifiable, then it will be edited in place. If it ! is a system function, then it will first be copied to the directory ! @code{HOME} (see further down) and then edited. ! ! @item ! If @var{name} is the name of a function defined in the interpreter but ! not in an m-file, then an m-file will be created in @code{HOME} ! to contain that function along with its current definition. ! ! @item ! If @code{name.cc} is specified, then it will search for @code{name.cc} ! in the path and try to modify it, otherwise it will create a new ! @file{.cc} file in @code{HOME}. If @var{name} happens to be an ! m-file or interpreter defined function, then the text of that ! function will be inserted into the .cc file as a comment. ! ! @item ! If @var{name.ext} is on your path then it will be editted, otherwise ! the editor will be started with @file{HOME/name.ext} as the ! filename. If @file{name.ext} is not modifiable, it will be copied to ! @code{HOME} before editing. ! ! @strong{WARNING!} You may need to clear name before the new definition ! is available. If you are editing a .cc file, you will need ! to mkoctfile @file{name.cc} before the definition will be available. ! @end itemize ! ! If @code{edit} is called with @var{field} and @var{value} variables, ! the value of the control field @var{field} will be @var{value}. ! If an output argument is requested and the first argument is @code{get} ! then @code{edit} will return the value of the control field @var{field}. ! The following control fields are used: ! @table @samp ! @item editor ! This is the editor to use to modify the functions. By default it uses ! Octave's @code{EDITOR} built-in function, which comes from ! @code{getenv("EDITOR")} and defaults to @code{emacs}. Use @code{%s} ! In place of the function name. For example, ! @table @samp ! @item [EDITOR, " %s"] ! Use the editor which Octave uses for @code{bug_report}. ! @item "xedit %s &" ! pop up simple X11 editor in a separate window ! @item "gnudoit -q \"(find-file \\\"%s\\\")\"" ! Send it to current Emacs; must have @code{(gnuserv-start)} in @file{.emacs}. ! @end table - On cygwin, you will need to convert the cygwin path to a windows - path if you are using a native Windows editor. For example @example ! '"C:/Program Files/Good Editor/Editor.exe" "$(cygpath -wa %s)"' @end example - - @item home - This is the location of user local m-files. Be be sure it is in your - path. The default is @file{~/octave}. - - @item author - This is the name to put after the "## Author:" field of new functions. - By default it guesses from the @code{gecos} field of password database. - - @item email - This is the e-mail address to list after the name in the author field. - By default it guesses @code{<$LOGNAME@@$HOSTNAME>}, and if @code{$HOSTNAME} - is not defined it uses @code{uname -n}. You probably want to override this. - Be sure to use @code{} as your format. - - @item license - @table @samp - @item gpl - GNU General Public License (default). - @item bsd - BSD-style license without advertising clause. - @item pd - Public domain. - @item "text" - Your own default copyright and license. - @end table - - @item mode - This value determines whether the editor should be started in async mode - or sync mode. Set it to "async" to start the editor in async mode. The - default is "sync" (see also "system"). - - Unless you specify @samp{pd}, edit will prepend the copyright statement - with "Copyright (C) yyyy Function Author". - @end table @end deftypefn ! doc -*- texinfo -*- ! @deftypefn {Command} doc @var{function_name} ! Display documentation for the function @var{function_name} ! directly from an on-line version of ! the printed manual, using the GNU Info browser. If invoked without ! any arguments, the manual is shown from the beginning. ! For example, the command @kbd{doc rand} starts the GNU Info browser ! at this node in the on-line version of the manual. ! Once the GNU Info browser is running, help for using it is available ! using the command @kbd{C-h}. ! @seealso{help} @end deftypefn ! dir -*- texinfo -*- ! @deftypefn {Function File} {} dir (@var{directory}) ! @deftypefnx {Function File} {[@var{list}] =} dir (@var{directory}) ! Display file listing for directory @var{directory}. If a return ! value is requested, return a structure array with the fields @example ! @group ! name ! bytes ! date ! isdir ! statinfo ! @end group @end example - - @noindent - in which @code{statinfo} is the structure returned from @code{stat}. - - If @var{directory} is not a directory, return information about the - named @var{filename}. @var{directory} may be a list of directories - specified either by name or with wildcard characters (like * and ?) - which will be expanded with glob. - - Note that for symbolic links, @code{dir} returns information about - the file that a symbolic link points to instead of the link itself. - However, if the link points to a nonexistent file, @code{dir} returns - information about the link. - @seealso{ls, stat, lstat, readdir, glob, filesep} @end deftypefn ! fullfile -*- texinfo -*- ! @deftypefn {Function File} {@var{filename} =} fullfile (@var{dir1}, @var{dir2}, @dots{}, @var{file}) ! Return a complete filename constructed from the given components. ! @seealso{fileparts} @end deftypefn ! setfield -*- texinfo -*- ! @deftypefn {Function File} {[@var{k1}, @dots{}, @var{v1}] =} setfield (@var{s}, @var{k1}, @var{v1}, @dots{}) ! Set field members in a structure. @example ! @group ! oo(1,1).f0= 1; ! oo = setfield(oo,@{1,2@},'fd',@{3@},'b', 6); ! oo(1,2).fd(3).b == 6 ! @result{} ans = 1 ! @end group @end example ! Note that this function could be written ! @example ! i1= @{1,2@}; i2= 'fd'; i3= @{3@}; i4= 'b'; ! oo( i1@{:@} ).( i2 )( i3@{:@} ).( i4 ) == 6; ! @end example ! @seealso{getfield, rmfield, isfield, isstruct, fieldnames, struct} @end deftypefn ! tempname -*- texinfo -*- ! @deftypefn {Function File} {filename = } tempname () ! This function is an alias for @code{tmpnam}. @end deftypefn ! substruct -*- texinfo -*- ! @deftypefn {Function File} {} substruct (@var{type}, @var{subs}, @dots{}) ! Create a subscript structure for use with @code{subsref} or ! @code{subsasgn}. ! @seealso{subsref, subsasgn} @end deftypefn ! run -*- texinfo -*- ! @deftypefn {Function File} {} run (@var{f}) ! @deftypefnx {Command} {} run @var{f} ! Run scripts in the current workspace that are not necessarily on the ! path. If @var{f} is the script to run, including its path, then @code{run} ! change the directory to the directory where @var{f} is found. @code{run} ! then executes the script, and returns to the original directory. ! @seealso{system} @end deftypefn ! bunzip2 -*- texinfo -*- ! @deftypefn {Function File} {} bunzip2 (@var{bzfile}, @var{dir}) ! Unpack the bzip2 archive @var{bzfile} to the directory @var{dir}. If ! @var{dir} is not specified, it defaults to the current directory. ! @seealso{unpack, bzip2, tar, untar, gzip, gunzip, zip, unzip} ! @end deftypefn ! bug_report ! -*- texinfo -*- ! @deftypefn {Function File} {} bug_report () ! Have Octave create a bug report template file, invoke your favorite ! editor, and submit the report to the bug-octave mailing list when ! you are finished editing. ! @end deftypefn ! delete ! -*- texinfo -*- ! @deftypefn {Function File} {} delete (@var{file}) ! @deftypefnx {Function File} {} delete (@var{h}) ! Delete the named file or figure handle. ! @end deftypefn ! ismac ! -*- texinfo -*- ! @deftypefn {Function File} {} ismac () ! Return 1 if Octave is running on a Mac OS X system and 0 otherwise. ! @seealso{ispc, isunix} ! @end deftypefn ! isunix ! -*- texinfo -*- ! @deftypefn {Function File} {} isunix () ! Return 1 if Octave is running on a Unix-like system and 0 otherwise. ! @seealso{ismac, ispc} ! @end deftypefn ! cast ! -*- texinfo -*- ! @deftypefn {Function File} {} cast (@var{val}, @var{type}) ! Convert @var{val} to data type @var{type}. ! @seealso{int8, uint8, int16, uint16, int32, uint32, int64, uint64, double} @end deftypefn ! computer -*- texinfo -*- ! @deftypefn {Function File} {[@var{c}, @var{maxsize}, @var{endian}] =} computer () ! Print or return a string of the form @var{cpu}-@var{vendor}-@var{os} ! that identifies the kind of computer Octave is running on. If invoked ! with an output argument, the value is returned instead of printed. For ! example, @example @group ! computer () ! @print{} i586-pc-linux-gnu ! ! x = computer () ! @result{} x = "i586-pc-linux-gnu" @end group @end example ! If two output arguments are requested, also return the maximum number ! of elements for an array. ! ! If three output arguments are requested, also return the byte order ! of the current system as a character (@code{"B"} for big-endian or ! @code{"L"} for little-endian). @end deftypefn ! compare_versions -*- texinfo -*- ! @deftypefn {Function File} {} compare_versions (@var{v1}, @var{v2}, @var{operator}) ! Compares to version strings using the given @var{operator}. ! ! This function assumes that versions @var{v1} and @var{v2} are ! arbitrarily long strings made of numeric and period characters ! possibly followed by an arbitrary string (e.g. "1.2.3", "0.3", ! "0.1.2+", or "1.2.3.4-test1"). ! ! The version is first split into the numeric and the character parts ! then the parts are padded to be the same length (i.e. "1.1" would be ! padded to be like "1.1.0" when being compared with "1.1.1", and ! separately, the character parts of the strings are padded with ! nulls). ! The operator can be any logical operator from the set ! @itemize @bullet ! @item ! "==" ! equal ! @item ! "<" ! less than ! @item ! "<=" ! less than or equal to ! @item ! ">" ! greater than ! @item ! ">=" ! greater than or equal to ! @item ! "!=" ! not equal ! @item ! "~=" ! not equal ! @end itemize ! Note that version "1.1-test2" would compare as greater than ! "1.1-test10". Also, since the numeric part is compared first, "a" ! compares less than "1a" because the second string starts with a ! numeric part even though double("a") is greater than double("1"). ! @end deftypefn ! parseparams ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{reg}, @var{prop}] =} parseparams (@var{params}) ! Return in @var{reg} the cell elements of @var{param} up to the first ! string element and in @var{prop} all remaining elements beginning ! with the first string element. For example @example ! @group ! [reg, prop] = parseparams (@{1, 2, "linewidth", 10@}) ! reg = ! @{ ! [1,1] = 1 ! [1,2] = 2 ! @} ! prop = ! @{ ! [1,1] = linewidth ! [1,2] = 10 ! @} ! @end group @end example ! ! The parseparams function may be used to separate 'regular' ! arguments and additional arguments given as property/value pairs of ! the @var{varargin} cell array. ! @seealso{varargin} @end deftypefn ! dump_prefs -*- texinfo -*- ! @deftypefn {Function File} {} dump_prefs (@var{file}) ! Have Octave dump all the current user preference variables to ! @var{file} in a format that can be parsed by Octave later. If ! @var{file} is omitted, the listing is printed to stdout. @end deftypefn ! ls_command -*- texinfo -*- ! @deftypefn {Function File} {[@var{old_cmd} =} ls_command (@var{cmd}) ! Set or return the shell command used by Octave's @code{ls} command. ! The value of @var{cmd} must be a character string. ! With no arguments, simply return the previous value. ! @seealso{ls} @end deftypefn ! orderfields -*- texinfo -*- ! @deftypefn {Function File} {[@var{t}, @var{p}] =} orderfields (@var{s1}, @var{s2}) ! Return a struct with fields arranged alphabetically or as specified ! by @var{s2} and a corresponding permutation vector. ! Given one struct, arrange field names in @var{s1} alphabetically. ! Given two structs, arrange field names in @var{s1} as they appear ! in @var{s2}. The second argument may also specify the order in ! a permutation vector or a cell array of strings. - @seealso{getfield, rmfield, isfield, isstruct, fieldnames, struct} @end deftypefn ! ver -*- texinfo -*- ! @deftypefn {Function File} {} ver () ! Display a header containing the current Octave version ! number, license string and operating system. ! @seealso{license, version} @end deftypefn ! swapbytes -*- texinfo -*- ! @deftypefn {Function File} {} swapbytes (@var{x}) ! Swaps the byte order on values, converting from little endian to big ! endian and visa-versa. For example @example ! @group ! swapbytes (uint16 (1:4)) ! @result{} [ 256 512 768 1024] ! @end group @end example ! @seealso{typecast, cast} ! @end deftypefn ! unzip ! -*- texinfo -*- ! @deftypefn {Function File} {} unzip (@var{zipfile}, @var{dir}) ! Unpack the ZIP archive @var{zipfile} to the directory @var{dir}. ! If @var{dir} is not specified, it defaults to the current directory. ! @seealso{unpack, bzip2, bunzip2, tar, untar, gzip, gunzip, zip} ! @end deftypefn ! menu ! -*- texinfo -*- ! @deftypefn {Function File} {} menu (@var{title}, @var{opt1}, @dots{}) ! Print a title string followed by a series of options. Each option will ! be printed along with a number. The return value is the number of the ! option selected by the user. This function is useful for interactive ! programs. There is no limit to the number of options that may be passed ! in, but it may be confusing to present more than will fit easily on one ! screen. ! @seealso{disp, printf, input} ! @end deftypefn ! fileparts ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{dir}, @var{name}, @var{ext}, @var{ver}] =} fileparts (@var{filename}) ! Return the directory, name, extension, and version components of ! @var{filename}. ! @seealso{fullfile} @end deftypefn ! mkoctfile -*- texinfo -*- ! @deftypefn {Function File} {} mkoctfile [-options] file @dots{} ! ! The @code{mkoctfile} function compiles source code written in C, ! C++, or Fortran. Depending on the options used with @code{mkoctfile}, the ! compiled code can be called within Octave or can be used as a stand-alone ! application. ! @code{mkoctfile} can be called from the shell prompt or from the Octave ! prompt. ! @code{mkoctfile} accepts the following options, all of which are optional ! except for the file name of the code you wish to compile: ! @table @samp ! @item -I DIR ! Add the include directory DIR to compile commands. ! @item -D DEF ! Add the definition DEF to the compiler call. ! @item -l LIB ! Add the library LIB to the link command. ! ! @item -L DIR ! Add the library directory DIR to the link command. ! @item -M ! @itemx --depend ! Generate dependency files (.d) for C and C++ source files. ! ! @item -c ! Compile but do not link. ! @item -g ! Enable debugging options for compilers. ! @item -o FILE ! @itemx --output FILE ! Output file name. Default extension is .oct ! (or .mex if --mex is specified) unless linking ! a stand-alone executable. ! @item -p VAR ! @itemx --print VAR ! Print the configuration variable VAR. Recognized variables are: ! @example ! ALL_CFLAGS FFTW_LIBS ! ALL_CXXFLAGS FLIBS ! ALL_FFLAGS FPICFLAG ! ALL_LDFLAGS INCFLAGS ! BLAS_LIBS LDFLAGS ! CC LD_CXX ! CFLAGS LD_STATIC_FLAG ! CPICFLAG LFLAGS ! CPPFLAGS LIBCRUFT ! CXX LIBOCTAVE ! CXXFLAGS LIBOCTINTERP ! CXXPICFLAG LIBREADLINE ! DEPEND_EXTRA_SED_PATTERN LIBS ! DEPEND_FLAGS OCTAVE_LIBS ! DL_LD RDYNAMIC_FLAG ! DL_LDFLAGS RLD_FLAG ! F2C SED ! F2CFLAGS XTRA_CFLAGS ! F77 XTRA_CXXFLAGS ! FFLAGS ! @end example ! @item --link-stand-alone ! Link a stand-alone executable file. ! @item --mex ! Assume we are creating a MEX file. Set the default output extension ! to ".mex". ! @item -s ! @itemx --strip ! Strip the output file. ! @item -v ! @itemx --verbose ! Echo commands as they are executed. ! @item file ! The file to compile or link. Recognised file types are @example ! .c C source ! .cc C++ source ! .C C++ source ! .cpp C++ source ! .f Fortran source ! .F Fortran source ! .o object file ! @end example ! @end table ! @end deftypefn ! inputname ! -*- texinfo -*- ! @deftypefn {Function File} {} inputname (@var{n}) ! Return the text defining @var{n}-th input to the function. @end deftypefn ! untar -*- texinfo -*- ! @deftypefn {Function File} {} untar (@var{tarfile}, @var{dir}) ! Unpack the TAR archive @var{tarfile} to the directory @var{dir}. ! If @var{dir} is not specified, it defaults to the current directory. ! @seealso{unpack, bzip2, bunzip2, tar, gzip, gunzip, zip, unzip} @end deftypefn ! mex -*- texinfo -*- ! @deftypefn {Function File} {} mex [options] file @dots{} ! Compile source code written in C, C++, or Fortran, to a MEX file. ! This is equivalent to @code{mkoctfile --mex [options] file}. ! @seealso{mkoctfile} @end deftypefn ! tar -*- texinfo -*- ! @deftypefn {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}, @var{root}) ! Pack @var{files} @var{files} into the TAR archive @var{tarfile}. The ! list of files must be a string or a cell array of strings. ! The optional argument @var{root} changes the relative path of @var{files} ! from the current directory. ! If an output argument is requested the entries in the archive are ! returned in a cell array. ! @seealso{untar, gzip, gunzip, zip, unzip} @end deftypefn ! flops -*- texinfo -*- ! @deftypefn {Function File} {} flops () ! This function is provided for @sc{Matlab} compatibility, but it doesn't ! actually do anything. @end deftypefn ! comma -*- texinfo -*- ! @deffn {Operator} , ! Array index, function argument, or command separator. ! @seealso{semicolon} ! @end deffn ! zip ! -*- texinfo -*- ! @deftypefn {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}) ! @deftypefnx {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}, @var{rootdir}) ! Compress the list of files and/or directories specified in @var{files} ! into the archive @var{zipfiles} in the same directory. If @var{rootdir} ! is defined the @var{files} is located relative to @var{rootdir} rather ! than the current directory ! @seealso{unzip,tar} ! @end deftypefn ! unix ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{status}, @var{text}]} unix (@var{command}) ! @deftypefnx {Function File} {[@var{status}, @var{text}]} unix (@var{command}, "-echo") ! Execute a system command if running under a Unix-like operating ! system, otherwise do nothing. Return the exit status of the program ! in @var{status} and any output sent to the standard output in ! @var{text}. If the optional second argument @code{"-echo"} is given, ! then also send the output from the command to the standard output. ! @seealso{isunix, ispc, system} ! @end deftypefn ! license ! -*- texinfo -*- ! @deftypefn {Function File} {} license ! Display the license of Octave. ! ! @deftypefnx {Function File} {} license ("inuse") ! Display a list of packages currently being used. ! ! @deftypefnx {Function File} {@var{retval} =} license ("inuse") ! Return a structure containing the fields @code{feature} and @code{user}. ! ! @deftypefnx {Function File} {@var{retval} =} license ("test", @var{feature}) ! Return 1 if a license exists for the product identified by the string ! @var{feature} and 0 otherwise. The argument @var{feature} is case ! insensitive and only the first 27 characters are checked. ! ! @deftypefnx {Function File} {} license ("test", @var{feature}, @var{toggle}) ! Enable or disable license testing for @var{feature}, depending on ! @var{toggle}, which may be one of: ! @table @samp ! @item "enable" ! Future tests for the specified license of @var{feature} are conducted ! as usual. ! @item "disable" ! Future tests for the specified license of @var{feature} return 0. ! @end table ! @deftypefnx {Function File} {@var{retval} =} license ("checkout", @var{feature}) ! Check out a license for @var{feature}, returning 1 on success and 0 ! on failure. ! This function is provided for compatibility with @sc{Matlab}. ! @seealso{ver, version} ! @end deftypefn ! gzip ! -*- texinfo -*- ! @deftypefn {Function File} {@var{entries} =} gzip (@var{files}) ! @deftypefnx {Function File} {@var{entries} =} gzip (@var{files}, @var{outdir}) ! Compress the list of files and/or directories specified in @var{files}. ! Each file is compressed separately and a new file with a '.gz' extension ! is created. The original file is not touched. If @var{rootdir} is defined ! the compressed versions of the files are placed in this directory. ! @seealso{gunzip, zip, tar} ! @end deftypefn ! tempdir ! -*- texinfo -*- ! @deftypefn {Function File} {@var{dir} =} tempdir () ! Return the name of the system's directory for temporary files. @end deftypefn ! unpack -*- texinfo -*- ! @deftypefn {Function File} {@var{files} =} unpack (@var{file}, @var{dir}) ! @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}, @var{filetype}) ! Unpack the archive @var{file} based on its extension to the directory ! @var{dir}. If @var{file} is a cellstr, then all files will be ! handled individually. If @var{dir} is not specified, it defaults to ! the current directory. It returns a list of @var{files} ! unpacked. If a directory is in the file list, then the ! @var{filetype} to unpack must also be specified. ! ! The @var{files} includes the entire path to the output files. ! @seealso{bzip2,bunzip2,tar,untar,gzip,gunzip,zip,unzip} @end deftypefn ! version -*- texinfo -*- ! @deftypefn {Function File} {} version () ! Return Octave's version number as a string. This is also the value of ! the built-in variable @code{OCTAVE_VERSION}. @end deftypefn ! mexext -*- texinfo -*- ! @deftypefn {Function File} {} mexext () ! Return the filename extension used for MEX files. @end deftypefn ! single -*- texinfo -*- ! @deftypefn {Function File} {} single (@var{val}) ! Convert the numeric value @var{val} to single precision. ! @strong{Note}: this function currently returns its argument converted ! to double precision because Octave does not yet have a single-precision ! numeric data type. @end deftypefn ! paren ! -*- texinfo -*- ! @deffn {Operator} ( ! @deffnx {Operator} ) ! Array index or function argument delimeter. ! @end deffn ! semicolon ! -*- texinfo -*- ! @deffn {Operator} ; ! Array row or command separator. ! @seealso{comma} ! @end deffn ! what -*- texinfo -*- ! @deftypefn {Command} {} what ! @deftypefnx {Command} {} what @var{dir} ! @deftypefnx {Function File} {w =} what (@var{dir}) ! List the Octave specific files in a directory. If the variable @var{dir} ! is given then check that directory rather than the current directory. If ! a return argument is requested, the files found are returned in the ! structure @var{w}. ! @seealso{which} @end deftypefn ! pack -*- texinfo -*- ! @deftypefn {Function File} {} pack () ! This function is provided for compatibility with @sc{Matlab}, but it ! doesn't actually do anything. @end deftypefn ! xor -*- texinfo -*- ! @deftypefn {Mapping Function} {} xor (@var{x}, @var{y}) ! Return the `exclusive or' of the entries of @var{x} and @var{y}. ! For boolean expressions @var{x} and @var{y}, ! @code{xor (@var{x}, @var{y})} is true if and only if @var{x} or @var{y} ! is true, but not if both @var{x} and @var{y} are true. @end deftypefn ! texas_lotto -*- texinfo -*- ! @deftypefn {Function File} {} texas_lotto () ! Pick 6 unique numbers between 1 and 50 that are guaranteed to win ! the Texas Lotto. ! @seealso{rand} @end deftypefn ! pkg -*- texinfo -*- ! @deftypefn {Command} pkg @var{command} @var{pkg_name} ! @deftypefnx {Command} pkg @var{command} @var{option} @var{pkg_name} ! This command interacts with the package manager. Different actions will ! be taken depending on the value of @var{command}. ! @table @samp ! @item install ! Install named packages. For example, @example ! pkg install image-1.0.0.tar.gz @end example ! @noindent ! installs the package found in the file @code{image-1.0.0.tar.gz}. ! ! The @var{option} variable can contain options that affect the manner ! in which a package is installed. These options can be one or more of ! @table @code ! @item -nodeps ! The package manager will disable the dependency checking. That way it ! is possible to install a package even if it depends on another package ! that's not installed on the system. @strong{Use this option with care.} ! ! @item -noauto ! The package manager will not automatically load the installed package ! when starting Octave, even if the package requests that it is. ! ! @item -auto ! The package manager will automatically load the installed package when ! starting Octave, even if the package requests that it isn't. ! ! @item -local ! A local installation is forced, even if the user has system privileges. ! ! @item -global ! A global installation is forced, even if the user doesn't normally have ! system privileges ! ! @item -verbose ! The package manager will print the output of all of the commands that are ! performed. ! @end table ! ! @item uninstall ! Uninstall named packages. For example, ! @example ! pkg uninstall image ! @end example ! @noindent ! removes the @code{image} package from the system. If another installed ! package depends on the @code{image} package an error will be issued. ! The package can be uninstalled anyway by using the @code{-nodeps} option. ! @item load ! Add named packages to the path. After loading a package it is ! possible to use the functions provided by the package. For example, ! @example ! pkg load image ! @end example ! @noindent ! adds the @code{image} package to the path. It is possible to load all ! installed packages at once with the command ! @example ! pkg load all ! @end example ! @item unload ! Removes named packages from the path. After unloading a package it is ! no longer possible to use the functions provided by the package. ! This command behaves like the @code{load} command. ! @item list ! Show a list of the currently installed packages. By requesting one or two ! output argument it is possible to get a list of the currently installed ! packages. For example, ! @example ! installed_packages = pkg list; ! @end example ! @noindent ! returns a cell array containing a structure for each installed package. ! The command ! @example ! [@var{user_packages}, @var{system_packages}] = pkg list ! @end example ! @noindent ! splits the list of installed packages into those who are installed by ! the current user, and those installed by the system administrator. ! @item describe ! Show a short description of the named installed packages, with the option ! '-verbose' also list functions provided by the package, e.g.: ! @example ! pkg describe -verbose all ! @end example ! @noindent ! will describe all installed packages and the functions they provide. ! If one output is requested a cell of structure containing the ! description and list of functions of each package is returned as ! output rather than printed on screen: ! @example ! desc = pkg ("describe", "secs1d", "image") ! @end example ! @noindent ! If any of the requested packages is not installed, pkg returns an ! error, unless a second output is requested: ! @example ! [ desc, flag] = pkg ("describe", "secs1d", "image") ! @end example ! @noindent ! @var{flag} will take one of the values "Not installed", "Loaded" or ! "Not loaded" for each of the named packages. ! @item prefix ! Set the installation prefix directory. For example, ! @example ! pkg prefix ~/my_octave_packages ! @end example ! @noindent ! sets the installation prefix to @code{~/my_octave_packages}. ! Packages will be installed in this directory. ! ! It is possible to get the current installation prefix by requesting an ! output argument. For example, ! @example ! p = pkg prefix ! @end example ! ! The location in which to install the architecture dependent files can be ! independent specified with an addition argument. For example ! ! @example ! pkg prefix ~/my_octave_packages ~/my_octave_packages_for_my_pc ! @end example ! @item local_list ! Set the file in which to look for information on the locally ! installed packages. Locally installed packages are those that are ! typically available only to the current user. For example ! @example ! pkg local_list ~/.octave_packages ! @end example ! It is possible to get the current value of local_list with the following ! @example ! pkg local_list ! @end example ! @item global_list ! Set the file in which to look for, for information on the globally ! installed packages. Globally installed packages are those that are ! typically available to all users. For example ! @example ! pkg global_list /usr/share/octave/octave_packages ! @end example ! It is possible to get the current value of global_list with the following ! @example ! pkg global_list ! @end example ! @item rebuild ! Rebuilds the package database from the installed directories. This can ! be used in cases where for some reason the package database is corrupted. ! It can also take the @code{-auto} and @code{-noauto} options to allow the ! autolaoding state of a package to be changed. For example ! ! @example ! pkg rebuild -noauto image ! @end example ! ! will remove the autoloading status of the image package. ! @item build ! Builds a binary form of a package or packages. The binary file produced ! will itself be an Octave package that can be installed normally with ! @code{pkg}. The form of the command to build a binary package is @example ! pkg build builddir image-1.0.0.tar.gz @dots{} @end example ! @noindent ! where @code{buiddir} is the name of a directory where the temporary ! installation will be produced and the binary packages will be found. ! The options @code{-verbose} and @code{-nodeps} are respected, while ! the other options are ignored. ! @end table ! @end deftypefn ! hadamard ! -*- texinfo -*- ! @deftypefn {Function File} {} hadamard (@var{n}) ! Construct a Hadamard matrix @var{Hn} of size @var{n}-by-@var{n}. The ! size @var{n} must be of the form @code{2 ^ @var{k} * @var{p}} in which ! @var{p} is one of 1, 12, 20 or 28. The returned matrix is normalized, ! meaning @code{Hn(:,1) == 1} and @code{H(1,:) == 1}. ! ! Some of the properties of Hadamard matrices are: ! ! @itemize @bullet ! @item ! @code{kron (@var{Hm}, @var{Hn})} is a Hadamard matrix of size ! @var{m}-by-@var{n}. ! @item ! @code{Hn * Hn' == @var{n} * eye (@var{n})}. ! @item ! The rows of @var{Hn} are orthogonal. ! @item ! @code{det (@var{A}) <= det (@var{Hn})} for all @var{A} with ! @code{abs (@var{A} (@var{i}, @var{j})) <= 1}. ! @item ! Multiply any row or column by -1 and still have a Hadamard matrix. ! @end itemize ! ! @end deftypefn ! rosser ! -*- texinfo -*- ! @deftypefn {Function File} {} rosser () ! ! Returns the Rosser matrix. This is a difficult test case used to test ! eigenvalue algorithms. - @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz - hadamard, wilkinson, compan, pascal} - @end deftypefn - sylvester_matrix - -*- texinfo -*- - @deftypefn {Function File} {} sylvester_matrix (@var{k}) - Return the Sylvester matrix of order @iftex @tex ! $n = 2^k$. @end tex @end iftex ! @ifinfo ! n = 2^k. ! @end ifinfo ! @seealso{hankel, vander, hilb, invhilb, toeplitz} ! @end deftypefn ! vander ! -*- texinfo -*- ! @deftypefn {Function File} {} vander (@var{c}) ! Return the Vandermonde matrix whose next to last column is @var{c}. - A Vandermonde matrix has the form: @iftex @tex $$ ! \left[\matrix{c_1^{n-1} & \cdots & c_1^2 & c_1 & 1 \cr ! c_2^{n-1} & \cdots & c_2^2 & c_2 & 1 \cr ! \vdots & \ddots & \vdots & \vdots & \vdots \cr ! c_n^{n-1} & \cdots & c_n^2 & c_n & 1 }\right] $$ @end tex @end iftex ! @ifinfo ! @example @group ! c(1)^(n-1) ... c(1)^2 c(1) 1 ! c(2)^(n-1) ... c(2)^2 c(2) 1 ! . . . . . ! . . . . . ! . . . . . ! c(n)^(n-1) ... c(n)^2 c(n) 1 @end group @end example ! @end ifinfo ! @seealso{hankel, sylvester_matrix, hilb, invhilb, toeplitz} ! @end deftypefn ! invhilb ! -*- texinfo -*- ! @deftypefn {Function File} {} invhilb (@var{n}) ! Return the inverse of a Hilbert matrix of order @var{n}. This can be ! computed exactly using ! @tex ! $$\eqalign{ ! A_{ij} &= -1^{i+j} (i+j-1) ! \left( \matrix{n+i-1 \cr n-j } \right) ! \left( \matrix{n+j-1 \cr n-i } \right) ! \left( \matrix{i+j-2 \cr i-2 } \right)^2 \cr ! &= { p(i)p(j) \over (i+j-1) } ! }$$ ! where ! $$ ! p(k) = -1^k \left( \matrix{ k+n-1 \cr k-1 } \right) ! \left( \matrix{ n \cr k } \right) ! $$ ! @end tex ! @ifinfo ! @example ! (i+j) /n+i-1\ /n+j-1\ /i+j-2\ 2 ! A(i,j) = -1 (i+j-1)( )( ) ( ) ! \ n-j / \ n-i / \ i-2 / ! = p(i) p(j) / (i+j-1) ! @end example ! where ! @example ! k /k+n-1\ /n\ ! p(k) = -1 ( ) ( ) ! \ k-1 / \k/ ! @end example ! @end ifinfo ! The validity of this formula can easily be checked by expanding ! the binomial coefficients in both formulas as factorials. It can ! be derived more directly via the theory of Cauchy matrices: ! see J. W. Demmel, Applied Numerical Linear Algebra, page 92. ! Compare this with the numerical calculation of @code{inverse (hilb (n))}, ! which suffers from the ill-conditioning of the Hilbert matrix, and the ! finite precision of your computer's floating point arithmetic. ! @seealso{hankel, vander, sylvester_matrix, hilb, toeplitz} ! @end deftypefn ! hankel ! -*- texinfo -*- ! @deftypefn {Function File} {} hankel (@var{c}, @var{r}) ! Return the Hankel matrix constructed given the first column @var{c}, and ! (optionally) the last row @var{r}. If the last element of @var{c} is ! not the same as the first element of @var{r}, the last element of ! @var{c} is used. If the second argument is omitted, it is assumed to ! be a vector of zeros with the same size as @var{c}. ! A Hankel matrix formed from an m-vector @var{c}, and an n-vector ! @var{r}, has the elements ! @iftex ! @tex ! $$ ! H (i, j) = \cases{c_{i+j-1},&$i+j-1\le m$;\cr r_{i+j-m},&otherwise.\cr} ! $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! @group ! H(i,j) = c(i+j-1), i+j-1 <= m; ! H(i,j) = r(i+j-m), otherwise ! @end group ! @end example ! @end ifinfo ! @seealso{vander, sylvester_matrix, hilb, invhilb, toeplitz} ! @end deftypefn ! pascal ! -*- texinfo -*- ! @deftypefn {Function File} {} pascal (@var{n}, @var{t}) ! Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}. ! @var{t} defaults to 0. Return lower triangular Cholesky factor of ! the Pascal matrix if @code{@var{t} = 1}. This matrix is its own ! inverse, that is @code{pascal (@var{n}, 1) ^ 2 == eye (@var{n})}. ! If @code{@var{t} = 2}, return a transposed and permuted version of ! @code{pascal (@var{n}, 1)}, which is the cube-root of the identity ! matrix. That is @code{pascal (@var{n}, 2) ^ 3 == eye (@var{n})}. ! @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz ! hadamard, wilkinson, compan, rosser} ! @end deftypefn ! magic ! -*- texinfo -*- ! @deftypefn {Function File} {} magic (@var{n}) ! Create an @var{n}-by-@var{n} magic square. Note that @code{magic ! (@var{2})} is undefined since there is no 2-by-2 magic square. ! @end deftypefn ! toeplitz ! -*- texinfo -*- ! @deftypefn {Function File} {} toeplitz (@var{c}, @var{r}) ! Return the Toeplitz matrix constructed given the first column @var{c}, ! and (optionally) the first row @var{r}. If the first element of @var{c} ! is not the same as the first element of @var{r}, the first element of ! @var{c} is used. If the second argument is omitted, the first row is ! taken to be the same as the first column. ! A square Toeplitz matrix has the form: ! @iftex ! @tex ! $$ ! \left[\matrix{c_0 & r_1 & r_2 & \cdots & r_n\cr ! c_1 & c_0 & r_1 & \cdots & r_{n-1}\cr ! c_2 & c_1 & c_0 & \cdots & r_{n-2}\cr ! \vdots & \vdots & \vdots & \ddots & \vdots\cr ! c_n & c_{n-1} & c_{n-2} & \ldots & c_0}\right] ! $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! @group ! c(0) r(1) r(2) ... r(n) ! c(1) c(0) r(1) ... r(n-1) ! c(2) c(1) c(0) ... r(n-2) ! . , , . . ! . , , . . ! . , , . . ! c(n) c(n-1) c(n-2) ... c(0) ! @end group ! @end example ! @end ifinfo ! @seealso{hankel, vander, sylvester_matrix, hilb, invhilb} ! @end deftypefn ! wilkinson ! -*- texinfo -*- ! @deftypefn {Function File} {} wilkinson (@var{n}) ! Return the Wilkinson matrix of order @var{n}. ! @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz ! hadamard, rosser, compan, pascal} ! @end deftypefn ! hilb ! -*- texinfo -*- ! @deftypefn {Function File} {} hilb (@var{n}) ! Return the Hilbert matrix of order @var{n}. The ! @iftex ! @tex ! $i,\,j$ ! @end tex ! @end iftex ! @ifinfo ! i, j ! @end ifinfo ! element of a Hilbert matrix is defined as ! @iftex ! @tex ! $$ ! H (i, j) = {1 \over (i + j - 1)} ! $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! H (i, j) = 1 / (i + j - 1) ! @end example ! @end ifinfo ! @seealso{hankel, vander, sylvester_matrix, invhilb, toeplitz} ! @end deftypefn ! substr ! -*- texinfo -*- ! @deftypefn {Function File} {} substr (@var{s}, @var{offset}, @var{len}) ! Return the substring of @var{s} which starts at character number ! @var{offset} and is @var{len} characters long. ! If @var{offset} is negative, extraction starts that far from the end of ! the string. If @var{len} is omitted, the substring extends to the end ! of S. ! ! For example, ! ! @example ! substr ("This is a test string", 6, 9) ! @result{} "is a test" ! @end example ! ! This function is patterned after AWK. You can get the same result by ! @code{@var{s} (@var{offset} : (@var{offset} + @var{len} - 1))}. ! @end deftypefn ! strtrim ! -*- texinfo -*- ! @deftypefn {Function File} {} deblank (@var{s}) ! Remove leading and trailing blanks and nulls from @var{s}. If ! @var{s} is a matrix, @var{deblank} trims each row to the length of ! longest string. If @var{s} is a cell array, operate recursively on ! each element of the cell array. ! @end deftypefn ! dec2base ! -*- texinfo -*- ! @deftypefn {Function File} {} dec2base (@var{n}, @var{b}, @var{len}) ! Return a string of symbols in base @var{b} corresponding to ! the nonnegative integer @var{n}. ! @example ! dec2base (123, 3) ! @result{} "11120" ! @end example ! If @var{n} is a vector, return a string matrix with one row per value, ! padded with leading zeros to the width of the largest value. ! If @var{b} is a string then the characters of @var{b} are used as ! the symbols for the digits of @var{n}. Space (' ') may not be used ! as a symbol. ! @example ! dec2base (123, "aei") ! @result{} "eeeia" ! @end example ! The optional third argument, @var{len}, specifies the minimum ! number of digits in the result. ! @seealso{base2dec, dec2bin, bin2dec, hex2dec, dec2hex} ! @end deftypefn ! split ! -*- texinfo -*- ! @deftypefn {Function File} {} split (@var{s}, @var{t}, @var{n}) ! Divides the string @var{s} into pieces separated by @var{t}, returning ! the result in a string array (padded with blanks to form a valid ! matrix). If the optional input @var{n} is supplied, split @var{s} ! into at most @var{n} different pieces. ! For example, ! @example ! split ("Test string", "t") ! @result{} "Tes " ! " s " ! "ring" ! @end example ! @example ! split ("Test string", "t", 2) ! @result{} "Tes " ! " string" ! @end example ! @end deftypefn ! findstr ! -*- texinfo -*- ! @deftypefn {Function File} {} findstr (@var{s}, @var{t}, @var{overlap}) ! Return the vector of all positions in the longer of the two strings ! @var{s} and @var{t} where an occurrence of the shorter of the two starts. ! If the optional argument @var{overlap} is nonzero, the returned vector ! can include overlapping positions (this is the default). For example, ! @example ! findstr ("ababab", "a") ! @result{} [ 1, 3, 5 ] ! findstr ("abababa", "aba", 0) ! @result{} [ 1, 5 ] ! @end example ! @end deftypefn ! strcat ! -*- texinfo -*- ! @deftypefn {Function File} {} strcat (@var{s1}, @var{s2}, @dots{}) ! Return a string containing all the arguments concatenated. For example, ! @example ! @group ! s = [ "ab"; "cde" ]; ! strcat (s, s, s) ! @result{} "ab ab ab " ! "cdecdecde" ! @end group ! @end example ! @end deftypefn ! blanks ! -*- texinfo -*- ! @deftypefn {Function File} {} blanks (@var{n}) ! Return a string of @var{n} blanks. ! @seealso{repmat} ! @end deftypefn ! strcmpi ! -*- texinfo -*- ! @deftypefn {Function File} {} strcmpi (@var{s1}, @var{s2}) ! Ignoring case, return 1 if the character strings @var{s1} and @var{s2} ! are the same, and 0 otherwise. ! If either @var{s1} or @var{s2} is a cell array of strings, then an array ! of the same size is returned, containing the values described above for ! every member of the cell array. The other argument may also be a cell ! array of strings (of the same size or with only one element), char matrix ! or character string. ! @strong{Caution:} For compatibility with @sc{Matlab}, Octave's strcmpi ! function returns 1 if the character strings are equal, and 0 otherwise. ! This is just the opposite of the corresponding C library function. ! @seealso{strcmp, strncmp, strncmpi} ! @end deftypefn ! upper ! -*- texinfo -*- ! @deftypefn {Function File} {} upper (@var{s}) ! Transform all letters in the character string (or cell array of ! character strings) @var{s} to upper case. ! @seealso{lower, tolower, toupper} ! @end deftypefn ! strrep ! -*- texinfo -*- ! @deftypefn {Function File} {} strrep (@var{s}, @var{x}, @var{y}) ! Replaces all occurrences of the substring @var{x} of the string @var{s} ! with the string @var{y}. For example, ! @example ! strrep ("This is a test string", "is", "&%$") ! @result{} "Th&%$ &%$ a test string" ! @end example ! @end deftypefn ! rindex ! -*- texinfo -*- ! @deftypefn {Function File} {} rindex (@var{s}, @var{t}) ! Return the position of the last occurrence of the character string ! @var{t} in the character string @var{s}, or 0 if no occurrence is ! found. For example, ! @example ! rindex ("Teststring", "t") ! @result{} 6 ! @end example ! @strong{Caution:} This function does not work for arrays of ! character strings. ! @seealso{find, index} ! @end deftypefn ! index ! -*- texinfo -*- ! @deftypefn {Function File} {} index (@var{s}, @var{t}) ! @deftypefnx {Function File} {} index (@var{s}, @var{t}, @var{direction}) ! Return the position of the first occurrence of the string @var{t} in the ! string @var{s}, or 0 if no occurrence is found. For example, ! @example ! index ("Teststring", "t") ! @result{} 4 ! @end example ! If @var{direction} is @samp{"first"}, return the first element found. ! If @var{direction} is @samp{"last"}, return the last element found. ! The @code{rindex} function is equivalent to @code{index} with ! @var{direction} set to @samp{"last"}. ! @strong{Caution:} This function does not work for arrays of ! character strings. ! @seealso{find, rindex} @end deftypefn ! strjust -*- texinfo -*- ! @deftypefn {Function File} {} strjust (@var{s}, ["left"|"right"|"center"]) ! Shift the non-blank text of @var{s} to the left, right or center of ! the string. If @var{s} is a string array, justify each string in the ! array. Null characters are replaced by blanks. If no justification ! is specified, then all rows are right-justified. @end deftypefn ! dec2bin -*- texinfo -*- ! @deftypefn {Function File} {} dec2bin (@var{n}, @var{len}) ! Return a binary number corresponding the nonnegative decimal number ! @var{n}, as a string of ones and zeros. For example, @example ! dec2bin (14) ! @result{} "1110" @end example ! If @var{n} is a vector, returns a string matrix, one row per value, ! padded with leading zeros to the width of the largest value. ! ! The optional second argument, @var{len}, specifies the minimum ! number of digits in the result. ! @seealso{bin2dec, dec2base, base2dec, hex2dec, dec2hex} ! @end deftypefn ! bin2dec ! -*- texinfo -*- ! @deftypefn {Function File} {} bin2dec (@var{s}) ! Return the decimal number corresponding to the binary number stored ! in the string @var{s}. For example, @example ! bin2dec ("1110") ! @result{} 14 @end example ! If @var{s} is a string matrix, returns a column vector of converted ! numbers, one per row of @var{s}. Invalid rows evaluate to NaN. ! @seealso{dec2hex, base2dec, dec2base, hex2dec, dec2bin} @end deftypefn ! hex2dec -*- texinfo -*- ! @deftypefn {Function File} {} hex2dec (@var{s}) ! Return the integer corresponding to the hexadecimal number stored ! in the string @var{s}. For example, @example ! hex2dec ("12B") ! @result{} 299 ! hex2dec ("12b") ! @result{} 299 @end example ! If @var{s} is a string matrix, returns a column vector of converted ! numbers, one per row of @var{s}. Invalid rows evaluate to NaN. ! @seealso{dec2hex, base2dec, dec2base, bin2dec, dec2bin} ! @end deftypefn ! strvcat ! -*- texinfo -*- ! @deftypefn {Function File} {} strvcat (@var{s_1}, @dots{}, @var{s_n}) ! Return a matrix containing the strings (and cell-strings) ! @var{s_1}, @dots{}, @var{s_n} as ! its rows. Each string is padded with blanks in order to form a valid ! matrix. Unlike @var{str2mat}, empty strings are ignored. ! @seealso{strcat, str2mat} ! @end deftypefn ! base2dec ! -*- texinfo -*- ! @deftypefn {Function File} {} base2dec (@var{s}, @var{b}) ! Convert @var{s} from a string of digits of base @var{b} into an ! integer. @example ! base2dec ("11120", 3) ! @result{} 123 @end example ! If @var{s} is a matrix, returns a column vector with one value per ! row of @var{s}. If a row contains invalid symbols then the ! corresponding value will be NaN. Rows are right-justified before ! converting so that trailing spaces are ignored. ! If @var{b} is a string, the characters of @var{b} are used as the ! symbols for the digits of @var{s}. Space (' ') may not be used as a ! symbol. @example ! base2dec ("yyyzx", "xyz") ! @result{} 123 @end example - @seealso{dec2base, dec2bin, bin2dec, hex2dec, dec2hex} - @end deftypefn - lower - -*- texinfo -*- - @deftypefn {Function File} {} lower (@var{s}) - Transform all letters in the character string (or cell array of - character strings) @var{s} to lower case. - @seealso{upper, tolower, toupper} - @end deftypefn - str2mat - -*- texinfo -*- - @deftypefn {Function File} {} str2mat (@var{s_1}, @dots{}, @var{s_n}) - Return a matrix containing the strings @var{s_1}, @dots{}, @var{s_n} as - its rows. Each string is padded with blanks in order to form a valid - matrix. - - This function is modelled after @sc{Matlab}. In Octave, you can create - a matrix of strings by @code{[@var{s_1}; @dots{}; @var{s_n}]} even if - the strings are not all the same length. - @end deftypefn - strtok - -*- texinfo -*- - @deftypefn {Function File} {[@var{tok}, @var{rem}] =} strtok (@var{str}, @var{delim}) - - Find all characters up to but not including the first character which - is in the string delim. If @var{rem} is requested, it contains the - remainder of the string, starting at the first deliminator. Leading - delimiters are ignored. If @var{delim} is not specified, space is assumed. - - @end deftypefn - strtrunc - -*- texinfo -*- - @deftypefn {Function File} {} strtrunc (@var{s}, @var{n}) - Truncate the character string @var{s} to length @var{n}. If @var{s} - is a char matrix, then the number of columns are adjusted. - - If @var{s} is a cell array of strings, then the operation is performed - on its members and the new cell array is returned. - @end deftypefn - strmatch - -*- texinfo -*- - @deftypefn {Function File} {} strmatch (@var{s}, @var{a}, "exact") - Return indices of entries of @var{a} that match the string @var{s}. - The second argument @var{a} may be a string matrix or a cell array of - strings. If the third argument @code{"exact"} is not given, then - @var{s} only needs to match @var{a} up to the length of @var{s}. Nul - characters match blanks. Results are returned as a column vector. - @end deftypefn - mat2str - -*- texinfo -*- - @deftypefn {Function File} {@var{s} =} mat2str (@var{x}, @var{n}) - @deftypefnx {Function File} {@var{s} =} mat2str (@dots{}, 'class') ! Format real/complex numerical matrices as strings. This function ! returns values that are suitable for the use of the @code{eval} ! function. ! The precision of the values is given by @var{n}. If @var{n} is a ! scalar then both real and imaginary parts of the matrix are printed ! to the same precision. Otherwise @code{@var{n} (1)} defines the ! precision of the real part and @code{@var{n} (2)} defines the ! precision of the imaginary part. The default for @var{n} is 17. ! If the argument 'class' is given, then the class of @var{x} is ! included in the string in such a way that the eval will result in the ! construction of a matrix of the same class. @example ! @group ! mat2str( [ -1/3 + i/7; 1/3 - i/7 ], [4 2] ) ! @result{} '[-0.3333+0.14i;0.3333-0.14i]' ! mat2str( [ -1/3 +i/7; 1/3 -i/7 ], [4 2] ) ! @result{} '[-0.3333+0i,0+0.14i;0.3333+0i,-0-0.14i]' ! mat2str( int16([1 -1]), 'class') ! @result{} 'int16([1,-1])' ! @end group @end example ! @seealso{sprintf, int2str} ! @end deftypefn ! strfind ! -*- texinfo -*- ! @deftypefn {Function File} {@var{idx} =} strfind (@var{str}, @var{pattern}) ! @deftypefnx {Function File} {@var{idx} =} strfind (@var{cellstr}, @var{pattern}) ! Search for @var{pattern} in the string @var{str} and return the ! starting index of every such occurrence in the vector @var{idx}. ! If there is no such occurrence, or if @var{pattern} is longer ! than @var{str}, then @var{idx} is the empty array @code{[]}. ! ! If the cell array of strings @var{cellstr} is specified instead of the ! string @var{str}, then @var{idx} is a cell array of vectors, as specified ! above. ! @seealso{findstr, strmatch, strcmp, strncmp, strcmpi, strncmpi} ! @end deftypefn ! deblank ! -*- texinfo -*- ! @deftypefn {Function File} {} deblank (@var{s}) ! Remove trailing blanks and nulls from @var{s}. If @var{s} ! is a matrix, @var{deblank} trims each row to the length of longest ! string. If @var{s} is a cell array, operate recursively on each ! element of the cell array. ! @end deftypefn ! isletter ! -*- texinfo -*- ! @deftypefn {Function File} {} isletter (@var{s}) ! Returns true if @var{s} is a letter false otherwise. ! @seealso{isalpha} ! @end deftypefn ! str2double ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{num}, @var{status}, @var{strarray}] =} str2double (@var{str}, @var{cdelim}, @var{rdelim}, @var{ddelim}) ! Convert strings into numeric values. ! ! @code{str2double} can replace @code{str2num}, but avoids the use of ! @code{eval} on unknown data. ! ! @var{str} can be the form @samp{[+-]d[.]dd[[eE][+-]ddd]} in which ! @samp{d} can be any of digit from 0 to 9, and @samp{[]} indicate ! optional elements. ! ! @var{num} is the corresponding numeric value. If the conversion ! fails, status is -1 and @var{num} is NaN. ! ! @var{status} is 0 if the conversion was successful and -1 otherwise. ! ! @var{strarray} is a cell array of strings. ! ! Elements which are not defined or not valid return NaN and the ! @var{status} becomes -1. ! ! If @var{str} is a character array or a cell array of strings, then ! @var{num} and @var{status} return matrices of appropriate size. ! ! @var{str} can also contain multiple elements separated by row and ! column delimiters (@var{cdelim} and @var{rdelim}). ! ! The parameters @var{cdelim}, @var{rdelim}, and @var{ddelim} are ! optional column, row, and decimal delimiters. ! ! The default row-delimiters are newline, carriage return and semicolon ! (ASCII 10, 13 and 59). The default column-delimiters are tab, space ! and comma (ASCII 9, 32, and 44). The default decimal delimiter is ! @samp{.} (ASCII 46). ! ! @var{cdelim}, @var{rdelim}, and @var{ddelim} must contain only nul, ! newline, carriage return, semicolon, colon, slash, tab, space, comma, ! or @samp{()[]@{@}} (ASCII 0, 9, 10, 11, 12, 13, 14, 32, 33, 34, 40, ! 41, 44, 47, 58, 59, 91, 93, 123, 124, 125). ! Examples: @example ! str2double ("-.1e-5") ! @result{} -1.0000e-006 ! str2double (".314e1, 44.44e-1, .7; -1e+1") ! @result{} ! 3.1400 4.4440 0.7000 ! -10.0000 NaN NaN ! line = "200, 300, NaN, -inf, yes, no, 999, maybe, NaN"; ! [x, status] = str2double (line) ! @result{} x = ! 200 300 NaN -Inf NaN NaN 999 NaN NaN ! @result{} status = ! 0 0 0 0 -1 -1 0 -1 0 ! @end example ! @end deftypefn ! strncmpi ! -*- texinfo -*- ! @deftypefn {Function File} {} strncmpi (@var{s1}, @var{s2}, @var{n}) ! Ignoring case, return 1 if the first @var{n} characters of character ! strings @var{s1} and @var{s2} are the same, and 0 otherwise. ! If either @var{s1} or @var{s2} is a cell array of strings, then an array ! of the same size is returned, containing the values described above for ! every member of the cell array. The other argument may also be a cell ! array of strings (of the same size or with only one element), char matrix ! or character string. ! @strong{Caution:} For compatibility with @sc{Matlab}, Octave's strncmpi ! function returns 1 if the character strings are equal, and 0 otherwise. ! This is just the opposite of the corresponding C library function. ! @seealso{strcmp, strcmpi, strncmp} ! @end deftypefn ! dec2hex ! -*- texinfo -*- ! @deftypefn {Function File} {} dec2hex (@var{n}, @var{len}) ! Return the hexadecimal string corresponding to the nonnegative ! integer @var{n}. For example, @example ! dec2hex (2748) ! @result{} "ABC" @end example ! If @var{n} is a vector, returns a string matrix, one row per value, ! padded with leading zeros to the width of the largest value. ! The optional second argument, @var{len}, specifies the minimum ! number of digits in the result. ! @seealso{hex2dec, dec2base, base2dec, bin2dec, dec2bin} ! @end deftypefn ! str2num ! -*- texinfo -*- ! @deftypefn {Function File} {} str2num (@var{s}) ! Convert the string @var{s} to a number. ! @end deftypefn ! __fsolve_defopts__ ! Undocumented internal function. ! glpk ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{xopt}, @var{fmin}, @var{status}, @var{extra}] =} glpk (@var{c}, @var{a}, @var{b}, @var{lb}, @var{ub}, @var{ctype}, @var{vartype}, @var{sense}, @var{param}) ! Solve a linear program using the GNU GLPK library. Given three ! arguments, @code{glpk} solves the following standard LP: @iftex @tex $$ ! \min_x C^T x $$ @end tex @end iftex @ifnottex @example ! min C'*x @end example @end ifnottex ! subject to ! @iftex ! @tex ! $$ ! Ax = b \qquad x \geq 0 ! $$ ! @end tex ! @end iftex ! @ifnottex ! @example ! @group ! A*x = b ! x >= 0 ! @end group ! @end example ! @end ifnottex ! but may also solve problems of the form - @iftex - @tex - $$ - [ \min_x | \max_x ] C^T x - $$ - @end tex - @end iftex - @ifnottex @example ! [ min | max ] C'*x @end example - @end ifnottex ! subject to ! @iftex ! @tex ! $$ ! Ax [ = | \leq | \geq ] b \qquad LB \leq x \leq UB ! $$ ! @end tex ! @end iftex ! @ifnottex ! @example ! @group ! A*x [ "=" | "<=" | ">=" ] b ! x >= LB ! x <= UB ! @end group ! @end example ! @end ifnottex ! Input arguments: ! @table @var ! @item c ! A column array containing the objective function coefficients. ! @item a ! A matrix containing the constraints coefficients. ! @item b ! A column array containing the right-hand side value for each constraint ! in the constraint matrix. ! @item lb ! An array containing the lower bound on each of the variables. If ! @var{lb} is not supplied, the default lower bound for the variables is ! zero. ! @item ub ! An array containing the upper bound on each of the variables. If ! @var{ub} is not supplied, the default upper bound is assumed to be ! infinite. ! @item ctype ! An array of characters containing the sense of each constraint in the ! constraint matrix. Each element of the array may be one of the ! following values ! @table @code ! @item "F" ! A free (unbounded) constraint (the constraint is ignored). ! @item "U" ! An inequality constraint with an upper bound (@code{A(i,:)*x <= b(i)}). ! @item "S" ! An equality constraint (@code{A(i,:)*x = b(i)}). ! @item "L" ! An inequality with a lower bound (@code{A(i,:)*x >= b(i)}). ! @item "D" ! An inequality constraint with both upper and lower bounds ! (@code{A(i,:)*x >= -b(i)} @emph{and} (@code{A(i,:)*x <= b(i)}). @end table ! @item vartype ! A column array containing the types of the variables. ! @table @code ! @item "C" ! A continuous variable. ! @item "I" ! An integer variable. ! @end table ! @item sense ! If @var{sense} is 1, the problem is a minimization. If @var{sense} is ! -1, the problem is a maximization. The default value is 1. ! @item param ! A structure containing the following parameters used to define the ! behavior of solver. Missing elements in the structure take on default ! values, so you only need to set the elements that you wish to change ! from the default. ! Integer parameters: @table @code ! @item msglev (@code{LPX_K_MSGLEV}, default: 1) ! Level of messages output by solver routines: ! @table @asis ! @item 0 ! No output. ! @item 1 ! Error messages only. ! @item 2 ! Normal output . ! @item 3 ! Full output (includes informational messages). ! @end table ! @item scale (@code{LPX_K_SCALE}, default: 1) ! Scaling option: ! @table @asis ! @item 0 ! No scaling. ! @item 1 ! Equilibration scaling. ! @item 2 ! Geometric mean scaling, then equilibration scaling. ! @end table ! @item dual (@code{LPX_K_DUAL}, default: 0) ! Dual simplex option: ! @table @asis ! @item 0 ! Do not use the dual simplex. ! @item 1 ! If initial basic solution is dual feasible, use the dual simplex. ! @end table ! @item price (@code{LPX_K_PRICE}, default: 1) ! Pricing option (for both primal and dual simplex): ! @table @asis ! @item 0 ! Textbook pricing. ! @item 1 ! Steepest edge pricing. ! @end table ! ! @item round (@code{LPX_K_ROUND}, default: 0) ! Solution rounding option: ! @table @asis ! @item 0 ! Report all primal and dual values "as is". ! @item 1 ! Replace tiny primal and dual values by exact zero. ! @end table ! @item itlim (@code{LPX_K_ITLIM}, default: -1) ! Simplex iterations limit. If this value is positive, it is decreased by ! one each time when one simplex iteration has been performed, and ! reaching zero value signals the solver to stop the search. Negative ! value means no iterations limit. ! @item itcnt (@code{LPX_K_OUTFRQ}, default: 200) ! Output frequency, in iterations. This parameter specifies how ! frequently the solver sends information about the solution to the ! standard output. ! @item branch (@code{LPX_K_BRANCH}, default: 2) ! Branching heuristic option (for MIP only): ! @table @asis ! @item 0 ! Branch on the first variable. ! @item 1 ! Branch on the last variable. ! @item 2 ! Branch using a heuristic by Driebeck and Tomlin. ! @end table ! @item btrack (@code{LPX_K_BTRACK}, default: 2) ! Backtracking heuristic option (for MIP only): ! @table @asis ! @item 0 ! Depth first search. ! @item 1 ! Breadth first search. ! @item 2 ! Backtrack using the best projection heuristic. ! @end table ! @item presol (@code{LPX_K_PRESOL}, default: 1) ! If this flag is set, the routine lpx_simplex solves the problem using ! the built-in LP presolver. Otherwise the LP presolver is not used. - @item lpsolver (default: 1) - Select which solver to use. If the problem is a MIP problem this flag - will be ignored. - @table @asis - @item 1 - Revised simplex method. - @item 2 - Interior point method. - @end table - @item save (default: 0) - If this parameter is nonzero, save a copy of the problem in - CPLEX LP format to the file @file{"outpb.lp"}. There is currently no - way to change the name of the output file. @end table ! Real parameters: ! @table @code ! @item relax (@code{LPX_K_RELAX}, default: 0.07) ! Relaxation parameter used in the ratio test. If it is zero, the textbook ! ratio test is used. If it is non-zero (should be positive), Harris' ! two-pass ratio test is used. In the latter case on the first pass of the ! ratio test basic variables (in the case of primal simplex) or reduced ! costs of non-basic variables (in the case of dual simplex) are allowed ! to slightly violate their bounds, but not more than ! @code{relax*tolbnd} or @code{relax*toldj (thus, @code{relax} is a ! percentage of @code{tolbnd} or @code{toldj}}. ! @item tolbnd (@code{LPX_K_TOLBND}, default: 10e-7) ! Relative tolerance used to check if the current basic solution is primal ! feasible. It is not recommended that you change this parameter unless you ! have a detailed understanding of its purpose. ! @item toldj (@code{LPX_K_TOLDJ}, default: 10e-7) ! Absolute tolerance used to check if the current basic solution is dual ! feasible. It is not recommended that you change this parameter unless you ! have a detailed understanding of its purpose. ! @item tolpiv (@code{LPX_K_TOLPIV}, default: 10e-9) ! Relative tolerance used to choose eligible pivotal elements of the ! simplex table. It is not recommended that you change this parameter unless you ! have a detailed understanding of its purpose. ! @item objll (@code{LPX_K_OBJLL}, default: -DBL_MAX) ! Lower limit of the objective function. If on the phase II the objective ! function reaches this limit and continues decreasing, the solver stops ! the search. This parameter is used in the dual simplex method only. ! @item objul (@code{LPX_K_OBJUL}, default: +DBL_MAX) ! Upper limit of the objective function. If on the phase II the objective ! function reaches this limit and continues increasing, the solver stops ! the search. This parameter is used in the dual simplex only. ! @item tmlim (@code{LPX_K_TMLIM}, default: -1.0) ! Searching time limit, in seconds. If this value is positive, it is ! decreased each time when one simplex iteration has been performed by the ! amount of time spent for the iteration, and reaching zero value signals ! the solver to stop the search. Negative value means no time limit. ! @item outdly (@code{LPX_K_OUTDLY}, default: 0.0) ! Output delay, in seconds. This parameter specifies how long the solver ! should delay sending information about the solution to the standard ! output. Non-positive value means no delay. ! @item tolint (@code{LPX_K_TOLINT}, default: 10e-5) ! Relative tolerance used to check if the current basic solution is integer ! feasible. It is not recommended that you change this parameter unless ! you have a detailed understanding of its purpose. ! @item tolobj (@code{LPX_K_TOLOBJ}, default: 10e-7) ! Relative tolerance used to check if the value of the objective function ! is not better than in the best known integer feasible solution. It is ! not recommended that you change this parameter unless you have a ! detailed understanding of its purpose. ! @end table ! @end table ! Output values: ! @table @var ! @item xopt ! The optimizer (the value of the decision variables at the optimum). ! @item fopt ! The optimum value of the objective function. ! @item status ! Status of the optimization. ! Simplex Method: ! @table @asis ! @item 180 (@code{LPX_OPT}) ! Solution is optimal. ! @item 181 (@code{LPX_FEAS}) ! Solution is feasible. ! @item 182 (@code{LPX_INFEAS}) ! Solution is infeasible. ! @item 183 (@code{LPX_NOFEAS}) ! Problem has no feasible solution. ! @item 184 (@code{LPX_UNBND}) ! Problem has no unbounded solution. ! @item 185 (@code{LPX_UNDEF}) ! Solution status is undefined. ! @end table ! Interior Point Method: ! @table @asis ! @item 150 (@code{LPX_T_UNDEF}) ! The interior point method is undefined. ! @item 151 (@code{LPX_T_OPT}) ! The interior point method is optimal. ! @end table ! Mixed Integer Method: ! @table @asis ! @item 170 (@code{LPX_I_UNDEF}) ! The status is undefined. ! @item 171 (@code{LPX_I_OPT}) ! The solution is integer optimal. ! @item 172 (@code{LPX_I_FEAS}) ! Solution integer feasible but its optimality has not been proven ! @item 173 (@code{LPX_I_NOFEAS}) ! No integer feasible solution. ! @end table ! @noindent ! If an error occurs, @var{status} will contain one of the following ! codes: @table @asis ! @item 204 (@code{LPX_E_FAULT}) ! Unable to start the search. ! @item 205 (@code{LPX_E_OBJLL}) ! Objective function lower limit reached. ! @item 206 (@code{LPX_E_OBJUL}) ! Objective function upper limit reached. ! @item 207 (@code{LPX_E_ITLIM}) ! Iterations limit exhausted. ! @item 208 (@code{LPX_E_TMLIM}) ! Time limit exhausted. ! @item 209 (@code{LPX_E_NOFEAS}) ! No feasible solution. ! @item 210 (@code{LPX_E_INSTAB}) ! Numerical instability. ! @item 211 (@code{LPX_E_SING}) ! Problems with basis matrix. ! @item 212 (@code{LPX_E_NOCONV}) ! No convergence (interior). ! @item 213 (@code{LPX_E_NOPFS}) ! No primal feasible solution (LP presolver). ! @item 214 (@code{LPX_E_NODFS}) ! No dual feasible solution (LP presolver). ! @end table ! @item extra ! A data structure containing the following fields: ! @table @code ! @item lambda ! Dual variables. ! @item redcosts ! Reduced Costs. ! @item time ! Time (in seconds) used for solving LP/MIP problem. ! @item mem ! Memory (in bytes) used for solving LP/MIP problem (this is not ! available if the version of GLPK is 4.15 or later). ! @end table @end table ! Example: ! @example ! @group ! c = [10, 6, 4]'; ! a = [ 1, 1, 1; ! 10, 4, 5; ! 2, 2, 6]; ! b = [100, 600, 300]'; ! lb = [0, 0, 0]'; ! ub = []; ! ctype = "UUU"; ! vartype = "CCC"; ! s = -1; ! param.msglev = 1; ! param.itlim = 100; ! [xmin, fmin, status, extra] = ... ! glpk (c, a, b, lb, ub, ctype, vartype, s, param); ! @end group ! @end example @end deftypefn ! qp -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{obj}, @var{info}, @var{lambda}] =} qp (@var{x0}, @var{H}, @var{q}, @var{A}, @var{b}, @var{lb}, @var{ub}, @var{A_lb}, @var{A_in}, @var{A_ub}) ! Solve the quadratic program ! @iftex ! @tex ! $$ ! \min_x {1 \over 2} x^T H x + x^T q ! $$ ! @end tex ! @end iftex ! @ifnottex @example ! min 0.5 x'*H*x + x'*q ! x @end example ! @end ifnottex ! subject to ! @iftex ! @tex ! $$ ! Ax = b \qquad lb \leq x \leq ub \qquad A_{lb} \leq A_{in} \leq A_{ub} ! $$ ! @end tex ! @end iftex ! @ifnottex @example ! A*x = b ! lb <= x <= ub ! A_lb <= A_in*x <= A_ub @end example - @end ifnottex ! @noindent ! using a null-space active-set method. ! Any bound (@var{A}, @var{b}, @var{lb}, @var{ub}, @var{A_lb}, ! @var{A_ub}) may be set to the empty matrix (@code{[]}) if not ! present. If the initial guess is feasible the algorithm is faster. - The value @var{info} is a structure with the following fields: - @table @code - @item solveiter - The number of iterations required to find the solution. - @item info - An integer indicating the status of the solution, as follows: - @table @asis - @item 0 - The problem is feasible and convex. Global solution found. - @item 1 - The problem is not convex. Local solution found. - @item 2 - The problem is not convex and unbounded. - @item 3 - Maximum number of iterations reached. - @item 6 - The problem is infeasible. - @end table - @end table @end deftypefn ! sqp -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{obj}, @var{info}, @var{iter}, @var{nf}, @var{lambda}] =} sqp (@var{x}, @var{phi}, @var{g}, @var{h}) ! Solve the nonlinear program ! @iftex ! @tex ! $$ ! \min_x \phi (x) ! $$ ! @end tex ! @end iftex ! @ifnottex @example ! min phi (x) ! x @end example ! @end ifnottex ! subject to ! @iftex ! @tex ! $$ ! g(x) = 0 \qquad h(x) \geq 0 ! $$ ! @end tex ! @end iftex ! @ifnottex @example ! g(x) = 0 ! h(x) >= 0 @end example - @end ifnottex ! @noindent ! using a successive quadratic programming method. ! ! The first argument is the initial guess for the vector @var{x}. ! The second argument is a function handle pointing to the objective ! function. The objective function must be of the form @example ! y = phi (x) @end example ! @noindent ! in which @var{x} is a vector and @var{y} is a scalar. ! The second argument may also be a 2- or 3-element cell array of ! function handles. The first element should point to the objective ! function, the second should point to a function that computes the ! gradient of the objective function, and the third should point to a ! function to compute the hessian of the objective function. If the ! gradient function is not supplied, the gradient is computed by finite ! differences. If the hessian function is not supplied, a BFGS update ! formula is used to approximate the hessian. ! If supplied, the gradient function must be of the form @example ! g = gradient (x) @end example ! @noindent ! in which @var{x} is a vector and @var{g} is a vector. ! ! If supplied, the hessian function must be of the form @example ! h = hessian (x) @end example ! @noindent ! in which @var{x} is a vector and @var{h} is a matrix. ! The third and fourth arguments are function handles pointing to ! functions that compute the equality constraints and the inequality ! constraints, respectively. ! If your problem does not have equality (or inequality) constraints, ! you may pass an empty matrix for @var{cef} (or @var{cif}). ! If supplied, the equality and inequality constraint functions must be ! of the form @example ! r = f (x) @end example ! @noindent ! in which @var{x} is a vector and @var{r} is a vector. ! ! The third and fourth arguments may also be 2-element cell arrays of ! function handles. The first element should point to the constraint ! function and the second should point to a function that computes the ! gradient of the constraint function: - @iftex - @tex - $$ - \Bigg( {\partial f(x) \over \partial x_1}, - {\partial f(x) \over \partial x_2}, \ldots, - {\partial f(x) \over \partial x_N} \Bigg)^T - $$ - @end tex - @end iftex - @ifnottex @example ! [ d f(x) d f(x) d f(x) ] ! transpose ( [ ------ ----- ... ------ ] ) ! [ dx_1 dx_2 dx_N ] @end example - @end ifnottex ! Here is an example of calling @code{sqp}: @example ! function r = g (x) ! r = [ sumsq(x)-10; ! x(2)*x(3)-5*x(4)*x(5); ! x(1)^3+x(2)^3+1 ]; ! endfunction ! function obj = phi (x) ! obj = exp(prod(x)) - 0.5*(x(1)^3+x(2)^3+1)^2; ! endfunction ! x0 = [-1.8; 1.7; 1.9; -0.8; -0.8]; ! [x, obj, info, iter, nf, lambda] = sqp (x0, @@phi, @@g, []) ! x = ! ! -1.71714 ! 1.59571 ! 1.82725 ! -0.76364 ! -0.76364 ! ! obj = 0.053950 ! info = 101 ! iter = 8 ! nf = 10 ! lambda = ! ! -0.0401627 ! 0.0379578 ! -0.0052227 ! @end example ! The value returned in @var{info} may be one of the following: ! @table @asis ! @item 101 ! The algorithm terminated because the norm of the last step was less ! than @code{tol * norm (x))} (the value of tol is currently fixed at ! @code{sqrt (eps)}---edit @file{sqp.m} to modify this value. ! @item 102 ! The BFGS update failed. ! @item 103 ! The maximum number of iterations was reached (the maximum number of ! allowed iterations is currently fixed at 100---edit @file{sqp.m} to ! increase this value). ! @end table ! @seealso{qp} @end deftypefn ! glpkmex -*- texinfo -*- ! @deftypefn {Function File} {[@var{xopt}, @var{fmin}, @var{status}, @var{extra}] =} glpkmex (@var{sense}, @var{c}, @var{a}, @var{b}, @var{ctype}, @var{lb}, @var{ub}, @var{vartype}, @var{param}, @var{lpsolver}, @var{save_pb}) ! This function is provided for compatibility with the old @sc{Matlab} ! interface to the GNU GLPK library. For Octave code, you should use ! the @code{glpk} function instead. @end deftypefn ! optimset -*- texinfo -*- ! @deftypefn {Function File} {} optimset () ! @deftypefnx {Function File} {} optimset (@var{par}, @var{val}, @dots{}) ! @deftypefnx {Function File} {} optimset (@var{old}, @var{par}, @var{val}, @dots{}) ! @deftypefnx {Function File} {} optimset (@var{old}, @var{new}) ! Create options struct for optimization functions. @end deftypefn ! dlqg ! O B S O L E T E * * * D O N O T U S E! ! ! Use lqg instead. ! ! function [K,Q,P,Ee,Er] = dlqg(A,B,C,G,Sigw,Sigv,Q,R) ! function [K,Q,P,Ee,Er] = dlqg(Sys,Sigw,Sigv,Q,R) ! design a discrete-time linear quadratic gaussian optimal controller ! for the system ! x(k+1) = A x(k) + B u(k) + G w(k) [w]=N(0,[Sigw 0 ]) ! y(k) = C x(k) + v(k) [v] ( 0 Sigv ]) ! Outputs: ! K: system data structure format LQG optimal controller ! P: Solution of control (state feedback) algebraic Riccati equation ! Q: Solution of estimation algebraic Riccati equation ! Ee: estimator poles ! Es: controller poles ! inputs: ! A,B,C,G, or Sys: state space representation of system. ! Sigw, Sigv: covariance matrices of independent Gaussian noise processes ! (as above) ! Q, R: state, control weighting matrices for dlqr call respectively. ! See also: lqg, dlqe, dlqr ! swapcols -*- texinfo -*- ! @deftypefn {Function File} {} swapcols (inputs) ! @format ! function B = swapcols(A) ! permute columns of A into reverse order ! @end format @end deftypefn ! rotg ! function [c,s] = rotg(a,b) ! givens rotation calculation ! ! NOTE: Use [c,s] = givens(a,b) instead. ! swaprows -*- texinfo -*- ! @deftypefn {Function File} {} swaprows (inputs) ! @format ! function B = swaprows(A) ! permute rows of A into reverse order ! @end format @end deftypefn ! dezero -*- texinfo -*- ! @deftypefn {Functin File} {} dezero (@var{s}) ! Remove trailing blank entries and all zero entries from the string s. @end deftypefn ! packsys ! O B S O L E T E: use ss instead. ! function Asys = packsys(a,b,c[,d,dflg]) ! ! dflg: 0 for continuous time system, 1 for discrete-time system. ! ! defaults: ! D: 0 matrix of appropriate dimension. ! dflg: 0 (continuous time) ! ! Note: discrete-state sampling time is not included! ! unpacksys ! [a,b,c,d] = unpacksys(sys) ! Obsolete. Use sys2ss instead. ! minfo -*- texinfo -*- ! @deftypefn {Function File} {[@var{systype}, @var{nout}, @var{nin}, @var{ncstates}, @var{ndstates}] =} minfo (@var{inmat}) ! Determines the type of system matrix. @var{inmat} can be a varying, ! a system, a constant, and an empty matrix. ! ! @strong{Outputs} ! @table @var ! @item systype ! Can be one of: varying, system, constant, and empty. ! @item nout ! The number of outputs of the system. ! @item nin ! The number of inputs of the system. ! @item ncstates ! The number of continuous states of the system. ! @item ndstates ! The number of discrete states of the system. ! @end table @end deftypefn ! qzval -*- texinfo -*- ! @deftypefn {Function File} {} qzval (@var{a}, @var{b}) ! Compute generalized eigenvalues of the matrix pencil ! @ifinfo ! @example ! (A - lambda B). ! @end example ! @end ifinfo ! @iftex ! @tex ! $(A - \lambda B)$. ! @end tex ! @end iftex ! ! @var{a} and @var{b} must be real matrices. ! @code{qzval} is obsolete; use @code{qz} instead. ! @end deftypefn ! series ! Forms the series connection of two systems. ! Superseded by sysmult. Do not use this routine! ! used internally in zp2ss ! Type of input: Transfer functions ! Command: [num,den]=series(num1,den1,num2,den2) ! Forms the series representation of the two transfer functions. ! Type of input: State space systems ! Command: [a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2) ! Forms the series representation of the two state space system arguments. ! The series connected system will have the inputs of system 1 and the ! outputs of system 2. ! Type of input: system data structure ! Command: syst=series(syst1,syst2) ! Forms the series representation of the two mu system arguments. ! syschnames -*- texinfo -*- ! @deftypefn {Function File} {} syschnames (@var{sys}, @var{opt}, @var{list}, @var{names}) ! Superseded by @command{syssetsignals}. @end deftypefn ! zgsgiv -*- texinfo -*- ! @deftypefn {Function File} {[a, b] =} zgsgiv (@var{c}, @var{s}, @var{a}, @var{b}) ! Apply givens rotation c,s to row vectors @var{a}, @var{b}. ! No longer used in zero-balancing (__zgpbal__); kept for backward ! compatibility. @end deftypefn ! sortcom -*- texinfo -*- ! @deftypefn {Function File} {[@var{yy}, @var{idx}] =} sortcom (@var{xx}[, @var{opt}]) ! Sort a complex vector. ! ! @strong{Inputs} ! @table @var ! @item xx ! Complex vector ! @item opt ! sorting option: ! @table @code ! @item "re" ! Real part (default); ! @item "mag" ! By magnitude; ! @item "im" ! By imaginary part. ! @end table ! if @var{opt} is not chosen as @code{"im"}, then complex conjugate pairs are grouped together, ! @math{a - jb} followed by @math{a + jb}. ! @end table ! ! @strong{Outputs} ! @table @var ! @item yy ! Sorted values ! @item idx ! Permutation vector: @code{yy = xx(idx)} ! @end table @end deftypefn ! zgscal -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} zgscal (@var{f}, @var{z}, @var{n}, @var{m}, @var{p}) ! Generalized conjugate gradient iteration to ! solve zero-computation generalized eigenvalue problem balancing equation ! @math{fx=z}; called by @command{zgepbal}. @end deftypefn ! swap -*- texinfo -*- ! @deftypefn {Function File} {} swap (@var{inputs}) ! @format ! [a1,b1] = swap(a,b) ! interchange a and b ! @end format @end deftypefn ! zgfmul -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} zgfmul (@var{a}, @var{b}, @var{c}, @var{d}, @var{x}) ! Compute product of @var{zgep} incidence matrix @math{F} with vector @var{x}. ! Used by @command{zgepbal} (in @command{zgscal}) as part of generalized conjugate gradient ! iteration. @end deftypefn ! zginit -*- texinfo -*- ! @deftypefn {Function File} {@var{zz} =} zginit (@var{a}, @var{b}, @var{c}, @var{d}) ! Construct right hand side vector @var{zz} ! for the zero-computation generalized eigenvalue problem ! balancing procedure. Called by @command{zgepbal}. @end deftypefn ! strappend -*- texinfo -*- ! @deftypefn {Function File} {} strappend (@var{strlist}, @var{suffix}) ! Append string @var{suffix} to each string in the list @var{strlist}. @end deftypefn ! zgfslv -*- texinfo -*- ! @deftypefn {Function File} {} zgfslv (@var{n}, @var{m}, @var{p}, @var{b}) ! Solve system of equations for dense zgep problem. @end deftypefn ! zgshsr -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} zgshsr (@var{y}) ! Apply householder vector based on ! @iftex ! @tex ! $ e^m $ ! @end tex ! @end iftex ! @ifinfo ! @math{e^(m)} ! @end ifinfo ! to column vector @var{y}. ! Called by @command{zgfslv}. @end deftypefn ! run_cmd ! run_cmd: short script used in demos ! prints string cmd to the screen, then executes after a pause ! prompt -*- texinfo -*- ! @deftypefn {Function File} {} prompt (@var{str}) ! Prompt user to continue ! @strong{Input} ! @table @var ! @item str ! Input string. Its default value is: ! @example ! \n ---- Press a key to continue --- ! @end example ! @end table @end deftypefn ! zgrownorm -*- texinfo -*- ! @deftypefn {Function File} {[@var{nonz}, @var{zer}] =} zgrownorm (@var{mat}, @var{meps}) ! Return @var{nonz} = number of rows of @var{mat} whose two norm ! exceeds @var{meps}, and @var{zer} = number of rows of mat whose two ! norm is less than @var{meps}. @end deftypefn ! zgreduce -*- texinfo -*- ! @deftypefn {Function File} {} zgreduce (@var{sys}, @var{meps}) ! Implementation of procedure REDUCE in (Emami-Naeini and Van Dooren, ! Automatica, # 1982). @end deftypefn ! axis2dlim -*- texinfo -*- ! @deftypefn {Function File} {} axis2dlim (@var{axdata}) ! Determine axis limits for 2-D data (column vectors); leaves a 10% ! margin around the plots. ! Inserts margins of +/- 0.1 if data is one-dimensional ! (or a single point). ! ! @strong{Input} ! @table @var ! @item axdata ! @var{n} by 2 matrix of data [@var{x}, @var{y}]. ! @end table ! ! @strong{Output} ! @table @var ! @item axvec ! Vector of axis limits appropriate for call to @command{axis} function. ! @end table @end deftypefn ! __outlist__ ! Undocumented internal function. ! __zgpbal__ ! Undocumented internal function. ! gram -*- texinfo -*- ! @deftypefn {Function File} {} gram (@var{a}, @var{b}) ! Return controllability gramian @var{m} of the continuous time system ! @math{dx/dt = a x + b u}. ! @var{m} satisfies @math{a m + m a' + b b' = 0}. @end deftypefn ! bode_bounds -*- texinfo -*- ! @deftypefn {Function File} {[@var{wmin}, @var{wmax}] =} bode_bounds (@var{zer}, @var{pol}, @var{dflg}, @var{tsam}) ! Get default range of frequencies based on cutoff frequencies of system ! poles and zeros. ! Frequency range is the interval ! @iftex ! @tex ! $ [ 10^{w_{min}}, 10^{w_{max}} ] $ ! @end tex ! @end iftex ! @ifinfo ! [10^@var{wmin}, 10^@var{wmax}] ! @end ifinfo ! ! Used internally in @command{__freqresp__} (@command{bode}, @command{nyquist}) @end deftypefn ! rlocus -*- texinfo -*- ! @deftypefn {Function File} {[@var{rldata}, @var{k}] =} rlocus (@var{sys}[, @var{increment}, @var{min_k}, @var{max_k}]) ! Display root locus plot of the specified @acronym{SISO} system. @example ! @group ! ----- --- -------- ! --->| + |---|k|---->| SISO |-----------> ! ----- --- -------- | ! - ^ | ! |_____________________________| ! @end group @end example ! @strong{Inputs} ! @table @var ! @item sys ! system data structure ! @item min_k ! Minimum value of @var{k} ! @item max_k ! Maximum value of @var{k} ! @item increment ! The increment used in computing gain values ! @end table ! @strong{Outputs} ! Plots the root locus to the screen. ! @table @var ! @item rldata ! Data points plotted: in column 1 real values, in column 2 the imaginary values. ! @item k ! Gains for real axis break points. ! @end table @end deftypefn ! bode -*- texinfo -*- ! @deftypefn {Function File} {[@var{mag}, @var{phase}, @var{w}] =} bode (@var{sys}, @var{w}, @var{out_idx}, @var{in_idx}) ! If no output arguments are given: produce Bode plots of a system; otherwise, ! compute the frequency response of a system data structure ! ! @strong{Inputs} ! @table @var ! @item sys ! a system data structure (must be either purely continuous or discrete; ! see is_digital) ! @item w ! frequency values for evaluation. ! ! if @var{sys} is continuous, then bode evaluates @math{G(jw)} where ! @math{G(s)} is the system transfer function. ! ! if @var{sys} is discrete, then bode evaluates G(@code{exp}(jwT)), where ! @itemize @bullet ! @item @math{T} is the system sampling time ! @item @math{G(z)} is the system transfer function. ! @end itemize ! @strong{Default} the default frequency range is selected as follows: (These ! steps are @strong{not} performed if @var{w} is specified) ! @enumerate ! @item via routine __bodquist__, isolate all poles and zeros away from ! @var{w}=0 (@var{jw}=0 or @math{@code{exp}(jwT)}=1) and select the frequency ! range based on the breakpoint locations of the frequencies. ! @item if @var{sys} is discrete time, the frequency range is limited ! to @math{jwT} in ! @ifinfo ! [0,2 pi /T] ! @end ifinfo ! @iftex ! @tex ! $[0,2\pi/T]$ ! @end tex ! @end iftex ! @item A "smoothing" routine is used to ensure that the plot phase does ! not change excessively from point to point and that singular ! points (e.g., crossovers from +/- 180) are accurately shown. ! @end enumerate ! @item out_idx ! @itemx in_idx ! The names or indices of outputs and inputs to be used in the frequency ! response. See @code{sysprune}. ! @strong{Example} ! @example ! bode(sys,[],"y_3", @{"u_1","u_4"@}); ! @end example ! @end table ! @strong{Outputs} ! @table @var ! @item mag ! @itemx phase ! the magnitude and phase of the frequency response @math{G(jw)} or ! @math{G(@code{exp}(jwT))} at the selected frequency values. ! @item w ! the vector of frequency values used ! @end table - @enumerate - @item If no output arguments are given, e.g., @example ! bode(sys); ! @end example ! bode plots the results to the screen. Descriptive labels are ! automatically placed. ! Failure to include a concluding semicolon will yield some garbage ! being printed to the screen (@code{ans = []}). ! @item If the requested plot is for an @acronym{MIMO} system, mag is set to ! @math{||G(jw)||} or @math{||G(@code{exp}(jwT))||} ! and phase information is not computed. ! @end enumerate @end deftypefn ! lyap -*- texinfo -*- ! @deftypefn {Function File} {} lyap (@var{a}, @var{b}, @var{c}) ! @deftypefnx {Function File} {} lyap (@var{a}, @var{b}) ! Solve the Lyapunov (or Sylvester) equation via the Bartels-Stewart ! algorithm (Communications of the @acronym{ACM}, 1972). ! If @var{a}, @var{b}, and @var{c} are specified, then @code{lyap} returns ! the solution of the Sylvester equation ! @iftex ! @tex ! $$ A X + X B + C = 0 $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! a x + x b + c = 0 ! @end example ! @end ifinfo ! If only @code{(a, b)} are specified, then @command{lyap} returns the ! solution of the Lyapunov equation ! @iftex ! @tex ! $$ A^T X + X A + B = 0 $$ ! @end tex ! @end iftex ! @ifinfo @example ! a' x + x a + b = 0 @end example ! @end ifinfo ! If @var{b} is not square, then @code{lyap} returns the solution of either @iftex @tex ! $$ A^T X + X A + B^T B = 0 $$ @end tex @end iftex @ifinfo ! @example ! a' x + x a + b' b = 0 ! @end example @end ifinfo ! @noindent ! or ! @iftex ! @tex ! $$ A X + X A^T + B B^T = 0 $$ ! @end tex ! @end iftex ! @ifinfo @example ! a x + x a' + b b' = 0 @end example - @end ifinfo - @noindent - whichever is appropriate. ! Solves by using the Bartels-Stewart algorithm (1972). ! @end deftypefn ! dcgain ! -*- texinfo -*- ! @deftypefn {Function File} {} dcgain (@var{sys}, @var{tol}) ! Returns dc-gain matrix. If dc-gain is infinite ! an empty matrix is returned. ! The argument @var{tol} is an optional tolerance for the condition ! number of the @math{A} Matrix in @var{sys} (default @var{tol} = 1.0e-10) ! @end deftypefn ! place ! -*- texinfo -*- ! @deftypefn {Function File} {@var{K} =} place (@var{sys}, @var{p}) ! Computes the matrix @var{K} such that if the state ! is feedback with gain @var{K}, then the eigenvalues of the closed loop ! system (i.e. @math{A-BK}) are those specified in the vector @var{p}. ! Version: Beta (May-1997): If you have any comments, please let me know. ! (see the file place.m for my address) @end deftypefn ! nichols -*- texinfo -*- ! @deftypefn {Function File} {[@var{mag}, @var{phase}, @var{w}] =} nichols (@var{sys}, @var{w}, @var{outputs}, @var{inputs}) ! Produce Nichols plot of a system. ! ! @strong{Inputs} ! @table @var ! @item sys ! System data structure (must be either purely continuous or discrete; ! see @command{is_digital}). ! @item w ! Frequency values for evaluation. ! @itemize ! @item if sys is continuous, then nichols evaluates @math{G(jw)}. ! @item if sys is discrete, then nichols evaluates @math{G(exp(jwT))}, ! where @var{T}=@var{sys}. @var{tsam} is the system sampling time. ! @item the default frequency range is selected as follows (These ! steps are @strong{not} performed if @var{w} is specified): ! @enumerate ! @item via routine @command{__bodquist__}, isolate all poles and zeros away from ! @var{w}=0 (@math{jw=0} or @math{exp(jwT)=1}) and select the frequency range ! based on the breakpoint locations of the frequencies. ! @item if sys is discrete time, the frequency range is limited to jwT in ! @iftex ! @tex ! $ [0, 2p\pi] $. ! @end tex ! @end iftex ! @ifinfo ! [0,2p*pi]. ! @end ifinfo ! @item A ``smoothing'' routine is used to ensure that the plot phase does ! not change excessively from point to point and that singular points ! (e.g., crossovers from +/- 180) are accurately shown. ! @end enumerate ! @end itemize ! @item outputs ! @itemx inputs ! the names or indices of the output(s) and input(s) to be used in the ! frequency response; see @command{sysprune}. ! @end table ! @strong{Outputs} ! @table @var ! @item mag ! @itemx phase ! The magnitude and phase of the frequency response @math{G(jw)} or ! @math{G(exp(jwT))} at the selected frequency values. ! @item w ! The vector of frequency values used. ! @end table ! If no output arguments are given, @command{nichols} plots the results to the screen. ! Descriptive labels are automatically placed. See @command{xlabel}, ! @command{ylabel}, and @command{title}. ! ! Note: if the requested plot is for an @acronym{MIMO} system, @var{mag} is set to ! @iftex ! @tex ! $ \Vert G(jw) \Vert $ or $ \Vert G( {\rm exp}(jwT) \Vert $ ! @end tex ! @end iftex ! @ifinfo ! ||G(jw)|| or ||G(exp(jwT))|| ! @end ifinfo ! and phase information is not computed. @end deftypefn ! dkalman -*- texinfo -*- ! @deftypefn {Function File} {[@var{Lp}, @var{Lf}, @var{P}, @var{Z}] =} dkalman (@var{A}, @var{G}, @var{C}, @var{Qw}, @var{Rv}, @var{S}) ! Construct the linear quadratic estimator (Kalman predictor) for the ! discrete time system @iftex @tex $$ ! x_{k+1} = A x_k + B u_k + G w_k ! $$ ! $$ ! y_k = C x_k + D u_k + v_k $$ @end tex @end iftex @ifinfo @example ! x[k+1] = A x[k] + B u[k] + G w[k] ! y[k] = C x[k] + D u[k] + v[k] @end example - @end ifinfo ! where @var{w}, @var{v} are zero-mean gaussian noise processes with ! respective intensities @code{@var{Qw} = cov (@var{w}, @var{w})} and ! @code{@var{Rv} = cov (@var{v}, @var{v})}. ! If specified, @var{S} is @code{cov (@var{w}, @var{v})}. Otherwise ! @code{cov (@var{w}, @var{v}) = 0}. ! The observer structure is ! @iftex ! @tex ! $x_{k+1|k} = A x_{k|k-1} + B u_k + L_p (y_k - C x_{k|k-1} - D u_k)$ ! $x_{k|k} = x_{k|k} + L_f (y_k - C x_{k|k-1} - D u_k)$ ! @end tex ! @end iftex ! @ifinfo ! @example ! x[k+1|k] = A x[k|k-1] + B u[k] + LP (y[k] - C x[k|k-1] - D u[k]) ! x[k|k] = x[k|k-1] + LF (y[k] - C x[k|k-1] - D u[k]) ! @end example ! @end ifinfo ! @noindent ! The following values are returned: ! @table @var ! @item Lp ! The predictor gain, ! @iftex ! @tex ! $(A - L_p C)$. ! @end tex ! @end iftex ! @ifinfo ! (@var{A} - @var{Lp} @var{C}) ! @end ifinfo ! is stable. ! @item Lf ! The filter gain. ! @item P ! The Riccati solution. @iftex @tex ! $P = E \{(x - x_{n|n-1})(x - x_{n|n-1})'\}$ @end tex @end iftex - @ifinfo ! P = E [(x - x[n|n-1])(x - x[n|n-1])'] @end ifinfo ! ! @item Z ! The updated error covariance matrix. @iftex @tex ! $Z = E \{(x - x_{n|n})(x - x_{n|n})'\}$ @end tex @end iftex - @ifinfo ! Z = E [(x - x[n|n])(x - x[n|n])'] @end ifinfo ! @end table @end deftypefn ! tzero -*- texinfo -*- ! @deftypefn {Function File} {[@var{zer}, @var{gain}] =} tzero (@var{a}, @var{b}, @var{c}, @var{d}, @var{opt}) ! @deftypefnx {Function File} {[@var{zer}, @var{gain}] =} tzero (@var{sys}, @var{opt}) ! Compute transmission zeros of a continuous system: @iftex @tex ! $$ \dot x = Ax + Bu $$ ! $$ y = Cx + Du $$ @end tex @end iftex @ifinfo @example ! . ! x = Ax + Bu ! y = Cx + Du @end example @end ifinfo ! or of a discrete one: @iftex @tex ! $$ x_{k+1} = Ax_k + Bu_k $$ ! $$ y_k = Cx_k + Du_k $$ @end tex @end iftex @ifinfo @example ! x(k+1) = A x(k) + B u(k) ! y(k) = C x(k) + D u(k) @end example @end ifinfo ! @strong{Outputs} ! @table @var ! @item zer ! transmission zeros of the system ! @item gain ! leading coefficient (pole-zero form) of @acronym{SISO} transfer function ! returns gain=0 if system is multivariable ! @end table ! @strong{References} ! @enumerate ! @item Emami-Naeini and Van Dooren, Automatica, 1982. ! @item Hodel, @cite{Computation of Zeros with Balancing}, 1992 Lin. Alg. Appl. ! @end enumerate @end deftypefn ! freqchkw -*- texinfo -*- ! @deftypefn {Function File} {} freqchkw (@var{w}) ! Used by @command{__freqresp__} to check that input frequency vector @var{w} ! is valid. ! Returns boolean value. @end deftypefn ! __freqresp__ ! Undocumented internal function. ! step -*- texinfo -*- ! @deftypefn {Function File} {[@var{y}, @var{t}] =} step (@var{sys}, @var{inp}, @var{tstop}, @var{n}) ! Step response for a linear system. ! The system can be discrete or multivariable (or both). ! If no output arguments are specified, @code{step} ! produces a plot or the step response data for system @var{sys}. ! ! @strong{Inputs} ! @table @var ! @item sys ! System data structure. ! @item inp ! Index of input being excited ! @item tstop ! The argument @var{tstop} (scalar value) denotes the time when the ! simulation should end. ! @item n ! the number of data values. ! Both parameters @var{tstop} and @var{n} can be omitted and will be ! computed from the eigenvalues of the A Matrix. ! @end table ! @strong{Outputs} ! @table @var ! @item y ! Values of the step response. ! @item t ! Times of the step response. ! @end table ! When invoked with the output parameter @var{y} the plot is not displayed. ! @seealso{impulse} @end deftypefn ! dlqe -*- texinfo -*- ! @deftypefn {Function File} {[@var{l}, @var{m}, @var{p}, @var{e}] =} dlqe (@var{a}, @var{g}, @var{c}, @var{sigw}, @var{sigv}, @var{z}) ! Construct the linear quadratic estimator (Kalman filter) for the ! discrete time system @iftex @tex ! $$ ! x_{k+1} = A x_k + B u_k + G w_k ! $$ ! $$ ! y_k = C x_k + D u_k + v_k ! $$ @end tex @end iftex @ifinfo ! ! @example ! x[k+1] = A x[k] + B u[k] + G w[k] ! y[k] = C x[k] + D u[k] + v[k] ! @end example ! @end ifinfo ! where @var{w}, @var{v} are zero-mean gaussian noise processes with ! respective intensities @code{@var{sigw} = cov (@var{w}, @var{w})} and ! @code{@var{sigv} = cov (@var{v}, @var{v})}. ! ! If specified, @var{z} is @code{cov (@var{w}, @var{v})}. Otherwise ! @code{cov (@var{w}, @var{v}) = 0}. ! The observer structure is ! @iftex ! @tex ! $$ ! z_{k|k} = z_{k|k-1} + l (y_k - C z_{k|k-1} - D u_k) ! $$ ! $$ ! z_{k+1|k} = A z_{k|k} + B u_k ! $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! z[k|k] = z[k|k-1] + L (y[k] - C z[k|k-1] - D u[k]) ! z[k+1|k] = A z[k|k] + B u[k] ! @end example ! @end ifinfo ! @noindent ! The following values are returned: @table @var ! @item l ! The observer gain, @iftex @tex ! $(A - ALC)$. @end tex @end iftex @ifinfo ! (@var{a} - @var{a}@var{l}@var{c}). @end ifinfo ! is stable. ! ! @item m ! The Riccati equation solution. ! ! @item p ! The estimate error covariance after the measurement update. ! ! @item e ! The closed loop poles of @iftex @tex ! $(A - ALC)$. @end tex @end iftex @ifinfo ! (@var{a} - @var{a}@var{l}@var{c}). @end ifinfo @end table @end deftypefn ! obsv -*- texinfo -*- ! @deftypefn {Function File} {} obsv (@var{sys}, @var{c}) ! @deftypefnx {Function File} {} obsv (@var{a}, @var{c}) ! Build observability matrix: @iftex @tex ! $$ Q_b = \left[ \matrix{ C \cr ! CA \cr ! CA^2 \cr ! \vdots \cr ! CA^{n-1} } \right ] $$ @end tex @end iftex @ifinfo ! @example ! @group ! | C | ! | CA | ! Qb = | CA^2 | ! | ... | ! | CA^(n-1) | ! @end group ! @end example @end ifinfo ! of a system data structure or the pair (@var{a}, @var{c}). ! ! The numerical properties of @command{is_observable} ! are much better for observability tests. @end deftypefn ! dare -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} dare (@var{a}, @var{b}, @var{q}, @var{r}, @var{opt}) ! ! Return the solution, @var{x} of the discrete-time algebraic Riccati ! equation ! @iftex ! @tex ! $$ ! A^TXA - X + A^TXB (R + B^TXB)^{-1} B^TXA + Q = 0 ! $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! a' x a - x + a' x b (r + b' x b)^(-1) b' x a + q = 0 ! @end example ! @end ifinfo ! @noindent ! ! @strong{Inputs} ! @table @var ! @item a ! @var{n} by @var{n} matrix; ! ! @item b ! @var{n} by @var{m} matrix; ! ! @item q ! @var{n} by @var{n} matrix, symmetric positive semidefinite, or a @var{p} by @var{n} matrix, ! In the latter case @math{q:=q'*q} is used; ! ! @item r ! @var{m} by @var{m}, symmetric positive definite (invertible); ! ! @item opt ! (optional argument; default = @code{"B"}): ! String option passed to @code{balance} prior to ordered @var{QZ} decomposition. ! @end table ! ! @strong{Output} ! @table @var ! @item x ! solution of @acronym{DARE}. ! @end table ! ! @strong{Method} ! Generalized eigenvalue approach (Van Dooren; @acronym{SIAM} J. ! Sci. Stat. Comput., Vol 2) applied to the appropriate symplectic pencil. ! See also: Ran and Rodman, @cite{Stable Hermitian Solutions of Discrete ! Algebraic Riccati Equations}, Mathematics of Control, Signals and ! Systems, Vol 5, no 2 (1992), pp 165--194. ! @seealso{balance, are} ! @end deftypefn ! dlqr ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{k}, @var{p}, @var{e}] =} dlqr (@var{a}, @var{b}, @var{q}, @var{r}, @var{z}) ! Construct the linear quadratic regulator for the discrete time system @iftex @tex ! $$ ! x_{k+1} = A x_k + B u_k ! $$ @end tex @end iftex @ifinfo ! ! @example ! x[k+1] = A x[k] + B u[k] ! @end example ! @end ifinfo ! to minimize the cost functional @iftex @tex ! $$ ! J = \sum x^T Q x + u^T R u ! $$ @end tex @end iftex @ifinfo ! ! @example ! J = Sum (x' Q x + u' R u) ! @end example @end ifinfo ! ! @noindent ! @var{z} omitted or @iftex @tex ! $$ ! J = \sum x^T Q x + u^T R u + 2 x^T Z u ! $$ @end tex @end iftex @ifinfo ! ! @example ! J = Sum (x' Q x + u' R u + 2 x' Z u) ! @end example ! @end ifinfo ! @var{z} included. ! ! The following values are returned: @table @var @item k ! The state feedback gain, @iftex @tex ! $(A - B K)$ @end tex @end iftex @ifinfo ! (@var{a} - @var{b}@var{k}) @end ifinfo ! is stable. ! @item p ! The solution of algebraic Riccati equation. ! @item e ! The closed loop poles of @iftex @tex ! $(A - B K)$. @end tex @end iftex @ifinfo ! (@var{a} - @var{b}@var{k}). @end ifinfo ! @end table ! @end deftypefn ! controldemo ! -*- texinfo -*- ! @deftypefn {Function File} {} controldemo () ! Control Systems Toolbox demo. ! @seealso{Demo programs: bddemo, frdemo, analdemo, moddmeo, rldemo} @end deftypefn ! lqr -*- texinfo -*- ! @deftypefn {Function File} {[@var{k}, @var{p}, @var{e}] =} lqr (@var{a}, @var{b}, @var{q}, @var{r}, @var{z}) ! construct the linear quadratic regulator for the continuous time system @iftex @tex ! $$ ! {dx\over dt} = A x + B u ! $$ @end tex @end iftex @ifinfo ! @example ! dx ! -- = A x + B u ! dt ! @end example ! @end ifinfo ! to minimize the cost functional @iftex @tex ! $$ ! J = \int_0^\infty x^T Q x + u^T R u ! $$ @end tex @end iftex @ifinfo @example ! infinity ! / ! J = | x' Q x + u' R u ! / ! t=0 @end example @end ifinfo ! @noindent ! @var{z} omitted or @iftex @tex ! $$ ! J = \int_0^\infty x^T Q x + u^T R u + 2 x^T Z u ! $$ @end tex @end iftex @ifinfo - @example ! infinity ! / ! J = | x' Q x + u' R u + 2 x' Z u ! / ! t=0 @end example - @end ifinfo - @var{z} included. ! The following values are returned: @table @var ! @item k ! The state feedback gain, ! @iftex ! @tex ! $(A - B K)$ ! @end tex ! @end iftex ! @ifinfo ! (@var{a} - @var{b}@var{k}) ! @end ifinfo ! is stable and minimizes the cost functional ! @item p ! The stabilizing solution of appropriate algebraic Riccati equation. ! @item e ! The vector of the closed loop poles of @iftex @tex ! $(A - B K)$. @end tex @end iftex @ifinfo ! (@var{a} - @var{b}@var{k}). @end ifinfo @end table - - @strong{Reference} - Anderson and Moore, @cite{Optimal control: linear quadratic methods}, - Prentice-Hall, 1990, pp. 56--58. @end deftypefn ! lqe -*- texinfo -*- ! @deftypefn {Function File} {[@var{k}, @var{p}, @var{e}] =} lqe (@var{a}, @var{g}, @var{c}, @var{sigw}, @var{sigv}, @var{z}) ! Construct the linear quadratic estimator (Kalman filter) for the ! continuous time system ! @iftex ! @tex ! $$ ! {dx\over dt} = A x + G u ! $$ ! $$ ! y = C x + v ! $$ ! @end tex ! @end iftex ! @ifinfo ! ! @example ! dx ! -- = A x + G u ! dt ! ! y = C x + v ! @end example ! ! @end ifinfo ! where @var{w} and @var{v} are zero-mean gaussian noise processes with ! respective intensities ! @example ! sigw = cov (w, w) ! sigv = cov (v, v) @end example ! ! The optional argument @var{z} is the cross-covariance ! @code{cov (@var{w}, @var{v})}. If it is omitted, ! @code{cov (@var{w}, @var{v}) = 0} is assumed. ! ! Observer structure is @code{dz/dt = A z + B u + k (y - C z - D u)} ! ! The following values are returned: ! ! @table @var ! @item k ! The observer gain, @iftex @tex ! $(A - K C)$ @end tex @end iftex @ifinfo ! (@var{a} - @var{k}@var{c}) @end ifinfo ! is stable. ! ! @item p ! The solution of algebraic Riccati equation. ! @item e ! The vector of closed loop poles of @iftex @tex ! $(A - K C)$. @end tex @end iftex @ifinfo ! (@var{a} - @var{k}@var{c}). @end ifinfo ! @end table ! @end deftypefn ! impulse ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{y}, @var{t}] =} impulse (@var{sys}, @var{inp}, @var{tstop}, @var{n}) ! Impulse response for a linear system. ! The system can be discrete or multivariable (or both). ! If no output arguments are specified, @code{impulse} ! produces a plot or the impulse response data for system @var{sys}. ! ! @strong{Inputs} ! @table @var ! @item sys ! System data structure. ! @item inp ! Index of input being excited ! @item tstop ! The argument @var{tstop} (scalar value) denotes the time when the ! simulation should end. ! @item n ! the number of data values. ! ! Both parameters @var{tstop} and @var{n} can be omitted and will be ! computed from the eigenvalues of the A Matrix. ! @end table ! @strong{Outputs} ! @table @var ! @item y ! Values of the impulse response. ! @item t ! Times of the impulse response. ! @end table ! @seealso{step} @end deftypefn ! are -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} are (@var{a}, @var{b}, @var{c}, @var{opt}) ! Solve the Algebraic Riccati Equation @iftex @tex ! $$ ! A^TX + XA - XBX + C = 0 ! $$ @end tex @end iftex @ifinfo ! @example ! a' * x + x * a - x * b * x + c = 0 ! @end example @end ifinfo @strong{Inputs} - @noindent - for identically dimensioned square matrices @table @var ! @item a ! @var{n} by @var{n} matrix; ! @item b ! @var{n} by @var{n} matrix or @var{n} by @var{m} matrix; in the latter case ! @var{b} is replaced by @math{b:=b*b'}; ! @item c ! @var{n} by @var{n} matrix or @var{p} by @var{m} matrix; in the latter case ! @var{c} is replaced by @math{c:=c'*c}; ! @item opt ! (optional argument; default = @code{"B"}): ! String option passed to @code{balance} prior to ordered Schur decomposition. @end table ! ! @strong{Output} @table @var ! @item x ! solution of the @acronym{ARE}. @end table ! @strong{Method} ! Laub's Schur method (@acronym{IEEE} Transactions on ! Automatic Control, 1979) is applied to the appropriate Hamiltonian ! matrix. ! @seealso{balance, dare} @end deftypefn ! dlyap -*- texinfo -*- ! @deftypefn {Function File} {} dlyap (@var{a}, @var{b}) ! Solve the discrete-time Lyapunov equation ! ! @strong{Inputs} ! @table @var ! @item a ! @var{n} by @var{n} matrix; ! @item b ! Matrix: @var{n} by @var{n}, @var{n} by @var{m}, or @var{p} by @var{n}. ! @end table ! ! @strong{Output} ! @table @var ! @item x ! matrix satisfying appropriate discrete time Lyapunov equation. ! @end table ! ! Options: ! @itemize @bullet ! @item @var{b} is square: solve @iftex @tex ! $$ axa^T - x + b = 0 $$ @end tex @end iftex @ifinfo ! @code{a x a' - x + b = 0} @end ifinfo ! @item @var{b} is not square: @var{x} satisfies either @iftex @tex ! $$ axa^T - x + bb^T = 0 $$ @end tex @end iftex @ifinfo ! @example ! a x a' - x + b b' = 0 ! @end example @end ifinfo ! @noindent ! or @iftex @tex ! $$ a^Txa - x + b^Tb = 0, $$ @end tex @end iftex @ifinfo ! @example ! a' x a - x + b' b = 0, ! @end example @end ifinfo ! @noindent ! whichever is appropriate. ! @end itemize ! ! @strong{Method} ! Uses Schur decomposition method as in Kitagawa, ! @cite{An Algorithm for Solving the Matrix Equation @math{X = F X F' + S}}, ! International Journal of Control, Volume 25, Number 5, pages 745--753 ! (1977). ! Column-by-column solution method as suggested in ! Hammarling, @cite{Numerical Solution of the Stable, Non-Negative ! Definite Lyapunov Equation}, @acronym{IMA} Journal of Numerical Analysis, Volume ! 2, pages 303--323 (1982). ! @end deftypefn ! dgram ! -*- texinfo -*- ! @deftypefn {Function File} {} dgram (@var{a}, @var{b}) ! Return controllability gramian of discrete time system @iftex @tex ! $$ x_{k+1} = ax_k + bu_k $$ @end tex @end iftex @ifinfo ! @example ! x(k+1) = a x(k) + b u(k) ! @end example @end ifinfo ! @strong{Inputs} ! @table @var ! @item a ! @var{n} by @var{n} matrix ! @item b ! @var{n} by @var{m} matrix @end table ! @strong{Output} @table @var ! @item m ! @var{n} by @var{n} matrix, satisfies @iftex @tex ! $$ ama^T - m + bb^T = 0 $$ @end tex @end iftex @ifinfo ! @example ! a m a' - m + b*b' = 0 ! @end example @end ifinfo ! @end table ! @end deftypefn ! bddemo ! -*- texinfo -*- ! @deftypefn {Function File} {} bddemo (@var{inputs}) ! Octave Controls toolbox demo: Block Diagram Manipulations demo. ! @end deftypefn ! DEMOcontrol ! -*- texinfo -*- ! @deftypefn {Function File} {} DEMOcontrol ! Octave Control Systems Toolbox demo/tutorial program. The demo ! allows the user to select among several categories of @acronym{OCST} function: ! @example ! @group ! octave:1> DEMOcontrol ! Octave Controls System Toolbox Demo ! ! [ 1] System representation ! [ 2] Block diagram manipulations ! [ 3] Frequency response functions ! [ 4] State space analysis functions ! [ 5] Root locus functions ! [ 6] LQG/H2/Hinfinity functions ! [ 7] End ! @end group ! @end example ! Command examples are interactively run for users to observe the use ! of @acronym{OCST} functions. ! @seealso{Demo Programs: bddemo.m, frdemo.m, analdemo.m, ! moddmeo.m, rldemo.m} ! @end deftypefn ! __stepimp__ ! Undocumented internal function. ! damp ! -*- texinfo -*- ! @deftypefn {Function File} {} damp (@var{p}, @var{tsam}) ! Displays eigenvalues, natural frequencies and damping ratios ! of the eigenvalues of a matrix @var{p} or the @math{A} matrix of a ! system @var{p}, respectively. ! If @var{p} is a system, @var{tsam} must not be specified. ! If @var{p} is a matrix and @var{tsam} is specified, eigenvalues ! of @var{p} are assumed to be in @var{z}-domain. ! @seealso{eig} ! @end deftypefn ! __bodquist__ ! Undocumented internal function. ! pzmap ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{zer}, @var{pol}] =} pzmap (@var{sys}) ! Plots the zeros and poles of a system in the complex plane. ! ! @strong{Input} ! @table @var ! @item sys ! System data structure. ! @end table ! ! @strong{Outputs} ! @table @var ! @item pol ! @item zer ! if omitted, the poles and zeros are plotted on the screen. ! otherwise, @var{pol} and @var{zer} are returned as the ! system poles and zeros (see @command{sys2zp} for a preferable function call). ! @end table ! @end deftypefn ! ltifr ! -*- texinfo -*- ! @deftypefn {Function File} {@var{out} =} ltifr (@var{a}, @var{b}, @var{w}) ! @deftypefnx {Function File} {@var{out} =} ltifr (@var{sys}, @var{w}) ! Linear time invariant frequency response of single-input systems. ! ! @strong{Inputs} ! @table @var ! @item a ! @itemx b ! coefficient matrices of @math{dx/dt = A x + B u} ! @item sys ! system data structure ! @item w ! vector of frequencies ! @end table ! @strong{Output} ! @table @var ! @item out ! frequency response, that is: ! @end table @iftex @tex ! $$ G(j\omega) = (j\omega I-A)^{-1}B $$ @end tex @end iftex @ifinfo ! @example ! -1 ! G(s) = (jw I-A) B ! @end example @end ifinfo ! for complex frequencies @math{s = jw}. @end deftypefn ! nyquist -*- texinfo -*- ! @deftypefn {Function File} {[@var{realp}, @var{imagp}, @var{w}] =} nyquist (@var{sys}, @var{w}, @var{out_idx}, @var{in_idx}, @var{atol}) ! @deftypefnx {Function File} {} nyquist (@var{sys}, @var{w}, @var{out_idx}, @var{in_idx}, @var{atol}) ! Produce Nyquist plots of a system; if no output arguments are given, Nyquist ! plot is printed to the screen. ! ! Compute the frequency response of a system. ! ! @strong{Inputs} (pass as empty to get default values) ! @table @var ! @item sys ! system data structure (must be either purely continuous or discrete; ! see @code{is_digital}) ! @item w ! frequency values for evaluation. ! If sys is continuous, then bode evaluates @math{G(@var{jw})}; ! if sys is discrete, then bode evaluates @math{G(exp(@var{jwT}))}, ! where @var{T} is the system sampling time. ! @item default ! the default frequency range is selected as follows: (These ! steps are @strong{not} performed if @var{w} is specified) ! @enumerate ! @item via routine @command{__bodquist__}, isolate all poles and zeros away from ! @var{w}=0 (@var{jw}=0 or @math{exp(@var{jwT})=1}) and select the frequency ! range based on the breakpoint locations of the frequencies. ! @item if @var{sys} is discrete time, the frequency range is limited ! to @var{jwT} in ! @ifinfo ! [0,2p*pi] ! @end ifinfo @iftex @tex ! $ [ 0,2 p \pi ] $ @end tex ! @end iftex ! @item A ``smoothing'' routine is used to ensure that the plot phase does ! not change excessively from point to point and that singular ! points (e.g., crossovers from +/- 180) are accurately shown. ! @end enumerate ! @item atol ! for interactive nyquist plots: atol is a change-in-slope tolerance ! for the of asymptotes (default = 0; 1e-2 is a good choice). This allows ! the user to ``zoom in'' on portions of the Nyquist plot too small to be ! seen with large asymptotes. ! @end table ! @strong{Outputs} ! @table @var ! @item realp ! @itemx imagp ! the real and imaginary parts of the frequency response ! @math{G(jw)} or @math{G(exp(jwT))} at the selected frequency values. ! @item w ! the vector of frequency values used ! @end table ! ! If no output arguments are given, nyquist plots the results to the screen. ! If @var{atol} != 0 and asymptotes are detected then the user is asked ! interactively if they wish to zoom in (remove asymptotes) ! Descriptive labels are automatically placed. ! ! Note: if the requested plot is for an @acronym{MIMO} system, a warning message is ! presented; the returned information is of the magnitude @iftex @tex ! $ \Vert G(jw) \Vert $ or $ \Vert G( {\rm exp}(jwT) \Vert $ @end tex @end iftex @ifinfo ! ||G(jw)|| or ||G(exp(jwT))|| @end ifinfo ! only; phase information is not computed. ! @end deftypefn ! lqg ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{k}, @var{q1}, @var{p1}, @var{ee}, @var{er}] =} lqg (@var{sys}, @var{sigw}, @var{sigv}, @var{q}, @var{r}, @var{in_idx}) ! Design a linear-quadratic-gaussian optimal controller for the system ! @example ! dx/dt = A x + B u + G w [w]=N(0,[Sigw 0 ]) ! y = C x + v [v] ( 0 Sigv ]) ! @end example ! or ! @example ! x(k+1) = A x(k) + B u(k) + G w(k) [w]=N(0,[Sigw 0 ]) ! y(k) = C x(k) + v(k) [v] ( 0 Sigv ]) ! @end example @strong{Inputs} @table @var ! @item sys ! system data structure ! @item sigw ! @itemx sigv ! intensities of independent Gaussian noise processes (as above) ! @item q ! @itemx r ! state, control weighting respectively. Control @acronym{ARE} is ! @item in_idx ! names or indices of controlled inputs (see @command{sysidx}, @command{cellidx}) ! ! default: last dim(R) inputs are assumed to be controlled inputs, all ! others are assumed to be noise inputs. @end table @strong{Outputs} @table @var @item k ! system data structure format @acronym{LQG} optimal controller (Obtain A, B, C ! matrices with @command{sys2ss}, @command{sys2tf}, or @command{sys2zp} as ! appropriate). ! @item p1 ! Solution of control (state feedback) algebraic Riccati equation. ! @item q1 ! Solution of estimation algebraic Riccati equation. ! @item ee ! Estimator poles. ! @item es ! Controller poles. @end table - @seealso{h2syn, lqe, lqr} @end deftypefn ! lsim -*- texinfo -*- ! @deftypefn {Function File} {[@var{y}, @var{x}] =} lsim (@var{sys}, @var{u}, @var{t}, @var{x0}) ! Produce output for a linear simulation of a system; produces ! a plot for the output of the system, @var{sys}. ! ! @var{u} is an array that contains the system's inputs. Each row in @var{u} ! corresponds to a different time step. Each column in @var{u} corresponds to a ! different input. @var{t} is an array that contains the time index of the ! system; @var{t} should be regularly spaced. If initial conditions are required ! on the system, the @var{x0} vector should be added to the argument list. ! When the lsim function is invoked a plot is not displayed; ! however, the data is returned in @var{y} (system output) ! and @var{x} (system states). ! @end deftypefn ! frdemo ! -*- texinfo -*- ! @deftypefn {Function File} {} frdemo () ! Octave Control Toolbox demo: Frequency Response demo. ! @end deftypefn ! tzero2 ! -*- texinfo -*- ! @deftypefn {Function File} {@var{zr} =} tzero2 (@var{a}, @var{b}, @var{c}, @var{d}, @var{bal}) ! Compute the transmission zeros of @var{a}, @var{b}, @var{c}, @var{d}. ! @var{bal} = balancing option (see balance); default is @code{"B"}. - Needs to incorporate @command{mvzero} algorithm to isolate finite zeros; - use @command{tzero} instead. - @end deftypefn - rldemo - -*- texinfo -*- - @deftypefn {Function File} {} rldemo (@var{inputs}) - Octave Control toolbox demo: Root Locus demo. - @end deftypefn - ctrb - -*- texinfo -*- - @deftypefn {Function File} {} ctrb (@var{sys}, @var{b}) - @deftypefnx {Function File} {} ctrb (@var{a}, @var{b}) - Build controllability matrix: @iftex @tex ! $$ Q_s = [ B AB A^2B \ldots A^{n-1}B ] $$ @end tex @end iftex @ifinfo @example ! 2 n-1 ! Qs = [ B AB A B ... A B ] @end example @end ifinfo ! of a system data structure or the pair (@var{a}, @var{b}). ! @command{ctrb} forms the controllability matrix. ! The numerical properties of @command{is_controllable} ! are much better for controllability tests. ! @end deftypefn ! dre ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{tvals}, @var{plist}] =} dre (@var{sys}, @var{q}, @var{r}, @var{qf}, @var{t0}, @var{tf}, @var{ptol}, @var{maxits}) ! Solve the differential Riccati equation @ifinfo @example ! -d P/dt = A'P + P A - P B inv(R) B' P + Q ! P(tf) = Qf @end example @end ifinfo @iftex @tex ! $$ -{dP \over dt} = A^T P+PA-PBR^{-1}B^T P+Q $$ ! $$ P(t_f) = Q_f $$ @end tex @end iftex - for the @acronym{LTI} system sys. Solution of - standard @acronym{LTI} state feedback optimization @ifinfo ! @example ! min int(t0, tf) ( x' Q x + u' R u ) dt + x(tf)' Qf x(tf) ! @end example @end ifinfo @iftex @tex ! $$ \min \int_{t_0}^{t_f} x^T Q x + u^T R u dt + x(t_f)^T Q_f x(t_f) $$ @end tex @end iftex ! optimal input is @ifinfo @example ! u = - inv(R) B' P(t) x @end example @end ifinfo @iftex @tex ! $$ u = - R^{-1} B^T P(t) x $$ @end tex @end iftex ! @strong{Inputs} ! @table @var ! @item sys ! continuous time system data structure ! @item q ! state integral penalty ! @item r ! input integral penalty ! @item qf ! state terminal penalty ! @item t0 ! @itemx tf ! limits on the integral ! @item ptol ! tolerance (used to select time samples; see below); default = 0.1 ! @item maxits ! number of refinement iterations (default=10) ! @end table ! @strong{Outputs} ! @table @var ! @item tvals ! time values at which @var{p}(@var{t}) is computed ! @item plist ! list values of @var{p}(@var{t}); @var{plist} @{ @var{i} @} ! is @var{p}(@var{tvals}(@var{i})) ! @end table ! @var{tvals} is selected so that: @iftex @tex ! $$ \Vert plist_{i} - plist_{i-1} \Vert < ptol $$ @end tex @end iftex @ifinfo @example ! || Plist@{i@} - Plist@{i-1@} || < Ptol @end example @end ifinfo ! for every @var{i} between 2 and length(@var{tvals}). @end deftypefn ! analdemo -*- texinfo -*- ! @deftypefn {Function File} {} analdemo () ! Octave Controls toolbox demo: State Space analysis demo @end deftypefn ! sysscale -*- texinfo -*- ! @deftypefn {Function File} {@var{retsys} =} sysscale (@var{sys}, @var{outscale}, @var{inscale}, @var{outname}, @var{inname}) ! scale inputs/outputs of a system. ! @strong{Inputs} @table @var ! @item sys ! Structured system. ! @item outscale ! @itemx inscale ! Constant matrices of appropriate dimension. ! @item outname ! @itemx inname ! Lists of strings with the names of respectively outputs and inputs. @end table ! @strong{Output} ! @table @var ! @item retsys ! resulting open loop system: ! @smallexample ! ----------- ------- ----------- ! u --->| inscale |--->| sys |--->| outscale |---> y ! ----------- ------- ----------- ! @end smallexample ! @end table ! If the input names and output names (each a list of strings) ! are not given and the scaling matrices ! are not square, then default names will be given to the inputs and/or ! outputs. ! A warning message is printed if outscale attempts to add continuous ! system outputs to discrete system outputs; otherwise @var{yd} is ! set appropriately in the returned value of @var{sys}. ! @end deftypefn ! zpout -*- texinfo -*- ! @deftypefn {Function File} {} zpout (@var{zer}, @var{pol}, @var{k}, @var{x}) ! print formatted zero-pole form to the screen. ! @var{x} defaults to the string @code{"s"} ! @seealso{polyval, polyvalm, poly, roots, conv, deconv, residue, ! filter, polyderiv, polyinteg, polyout} @end deftypefn ! sysout -*- texinfo -*- ! @deftypefn {Function File} {} sysout (@var{sys}, @var{opt}) ! print out a system data structure in desired format ! @table @var ! @item sys ! system data structure ! @item opt ! Display option ! @table @code ! @item [] ! primary system form (default) ! @item "ss" ! state space form ! @item "tf" ! transfer function form ! @item "zp" ! zero-pole form ! @item "all" ! all of the above ! @end table ! @end table @end deftypefn ! __sysgroupn__ Undocumented internal function. ! is_signal_list -*- texinfo -*- ! @deftypefn {Function File} {} is_signal_list (@var{mylist}) ! Return true if @var{mylist} is a list of individual strings. @end deftypefn ! ugain -*- texinfo -*- ! @deftypefn {Function File} {} ugain (@var{n}) ! Creates a system with unity gain, no states. ! This trivial system is sometimes needed to create arbitrary ! complex systems from simple systems with @command{buildssic}. ! Watch out if you are forming sampled systems since @command{ugain} ! does not contain a sampling period. ! @seealso{hinfdemo, jet707} @end deftypefn ! d2c -*- texinfo -*- ! @deftypefn {Function File} {} d2c (@var{sys}, @var{tol}) ! @deftypefnx {Function File} {} d2c (@var{sys}, @var{opt}) ! Convert a discrete (sub)system into a purely continuous one. ! The sampling time used is @code{sysgettsam(@var{sys})}. ! @strong{Inputs} @table @var ! @item sys ! system data structure with discrete components ! @item tol ! Scalar value. ! Tolerance for convergence of default @code{"log"} option (see below) ! @item opt ! conversion option. Choose from: ! @table @code ! @item "log" ! (default) Conversion is performed via a matrix logarithm. ! Due to some problems with this computation, it is ! followed by a steepest descent algorithm to identify continuous time ! @var{a}, @var{b}, to get a better fit to the original data. ! ! If called as @code{d2c (@var{sys}, @var{tol})}, with @var{tol} ! positive scalar, the @code{"log"} option is used. The default value ! for @var{tol} is @code{1e-8}. ! @item "bi" ! Conversion is performed via bilinear transform ! @math{z = (1 + s T / 2)/(1 - s T / 2)} where @math{T} is the ! system sampling time (see @code{sysgettsam}). ! ! FIXME: bilinear option exits with an error if @var{sys} is not purely ! discrete ! @end table @end table @strong{Output} @table @var ! @item csys ! continuous time system (same dimensions and signal names as in @var{sys}). @end table @end deftypefn ! is_observable -*- texinfo -*- ! @deftypefn {Function File} {[@var{retval}, @var{u}] =} is_observable (@var{a}, @var{c}, @var{tol}) ! @deftypefnx {Function File} {[@var{retval}, @var{u}] =} is_observable (@var{sys}, @var{tol}) ! Logical check for system observability. ! ! Default: tol = @code{tol = 10*norm(a,'fro')*eps} ! ! Returns 1 if the system @var{sys} or the pair (@var{a}, @var{c}) is ! observable, 0 if not. ! See @command{is_controllable} for detailed description of arguments ! and default values. ! @seealso{size, rows, columns, length, ismatrix, isscalar, isvector} @end deftypefn ! sysdimensions -*- texinfo -*- ! @deftypefn {Function File} {[@var{n}, @var{nz}, @var{m}, @var{p}, @var{yd}] =} sysdimensions (@var{sys}, @var{opt}) ! return the number of states, inputs, and/or outputs in the system ! @var{sys}. @strong{Inputs} @table @var ! @item sys ! system data structure ! @item opt ! String indicating which dimensions are desired. Values: @table @code ! @item "all" ! (default) return all parameters as specified under Outputs below. ! ! @item "cst" ! return @var{n}= number of continuous states ! ! @item "dst" ! return @var{n}= number of discrete states ! ! @item "in" ! return @var{n}= number of inputs ! ! @item "out" ! return @var{n}= number of outputs @end table @end table @strong{Outputs} @table @var ! @item n ! number of continuous states (or individual requested dimension as specified ! by @var{opt}). ! @item nz ! number of discrete states ! @item m ! number of system inputs ! @item p ! number of system outputs ! @item yd ! binary vector; @var{yd}(@var{ii}) is nonzero if output @var{ii} is ! discrete. ! @math{yd(ii) = 0} if output @var{ii} is continuous @end table - @seealso{sysgetsignals, sysgettsam} @end deftypefn ! sysmult -*- texinfo -*- ! @deftypefn {Function File} {@var{sys} =} sysmult (@var{Asys}, @var{Bsys}) ! Compute @math{sys = Asys*Bsys} (series connection): ! @example ! @group ! u ---------- ---------- ! --->| Bsys |---->| Asys |---> ! ---------- ---------- ! @end group ! @end example ! A warning occurs if there is direct feed-through from an input ! or a continuous state of @var{Bsys}, through a discrete output ! of @var{Bsys}, to a continuous state or output in @var{Asys} ! (system data structure does not recognize discrete inputs). @end deftypefn ! tf2sys -*- texinfo -*- ! @deftypefn {Function File} {} tf2sys (@var{num}, @var{den}, @var{tsam}, @var{inname}, @var{outname}) ! Build system data structure from transfer function format data. ! ! @strong{Inputs} ! @table @var ! @item num ! @itemx den ! Coefficients of numerator/denominator polynomials. ! @item tsam ! Sampling interval; default: 0 (continuous time). ! @item inname ! @itemx outname ! Input/output signal names; may be a string or cell array with a single string ! entry. ! @end table ! ! @strong{Output} ! @table @var ! @item sys ! System data structure. ! @end table ! ! @strong{Example} ! @example ! octave:1> sys=tf2sys([2 1],[1 2 1],0.1); ! octave:2> sysout(sys) ! Input(s) ! 1: u_1 ! Output(s): ! 1: y_1 (discrete) ! Sampling interval: 0.1 ! transfer function form: ! 2*z^1 + 1 ! ----------------- ! 1*z^2 + 2*z^1 + 1 ! @end example @end deftypefn ! sysrepdemo -*- texinfo -*- ! @deftypefn {Function File} {} sysrepdemo ! Tutorial for the use of the system data structure functions. @end deftypefn ! cellidx -*- texinfo -*- ! @deftypefn {Function File} {[@var{idxvec}, @var{errmsg}] =} cellidx (@var{listvar}, @var{strlist}) ! Return indices of string entries in @var{listvar} that match strings ! in @var{strlist}. ! ! Both @var{listvar} and @var{strlist} may be passed as strings or ! string matrices. If they are passed as string matrices, each entry ! is processed by @code{deblank} prior to searching for the entries. ! The first output is the vector of indices in @var{listvar}. ! If @var{strlist} contains a string not in @var{listvar}, then ! an error message is returned in @var{errmsg}. If only one output ! argument is requested, then @var{cellidx} prints @var{errmsg} to the ! screen and exits with an error. @end deftypefn ! __sysconcat__ ! Undocumented internal function. ! sysidx -*- texinfo -*- ! @deftypefn {Function File} {} sysidx (@var{sys}, @var{sigtype}, @var{signamelist}) ! Return indices of signals with specified signal names ! inputs given a system data structure @var{sys}, a signal type to be ! selected @var{sigtype} (@code{"in"}, @code{"out"}, @code{"st"}), and ! a list of desired signal names @var{signamelist}. @end deftypefn ! ss2sys -*- texinfo -*- ! @deftypefn {Function File} {} ss2sys (@var{a}, @var{b}, @var{c}, @var{d}, @var{tsam}, @var{n}, @var{nz}, @var{stname}, @var{inname}, @var{outname}, @var{outlist}) ! Create system structure from state-space data. May be continuous, ! discrete, or mixed (sampled data) @strong{Inputs} @table @var @item a ! @itemx b ! @itemx c ! @itemx d ! usual state space matrices. ! ! default: @var{d} = zero matrix ! ! @item tsam ! sampling rate. Default: @math{tsam = 0} (continuous system) ! ! @item n ! @itemx nz ! number of continuous, discrete states in the system ! ! If @var{tsam} is 0, @math{n = @code{rows}(@var{a})}, @math{nz = 0}. ! ! If @var{tsam} is greater than zero, @math{n = 0}, ! @math{nz = @code{rows}(@var{a})} ! ! see below for system partitioning ! ! @item stname ! cell array of strings of state signal names ! ! default (@var{stname}=[] on input): @code{x_n} for continuous states, ! @code{xd_n} for discrete states ! ! @item inname ! cell array of strings of input signal names ! ! default (@var{inname} = [] on input): @code{u_n} ! @item outname ! cell array of strings of input signal names ! default (@var{outname} = [] on input): @code{y_n} ! @item outlist ! list of indices of outputs y that are sampled ! If @var{tsam} is 0, @math{outlist = []}. ! If @var{tsam} is greater than 0, @math{outlist = 1:@code{rows}(@var{c})}. @end table ! Unlike states, discrete/continuous outputs may appear in any order. ! ! @code{sys2ss} returns a vector @var{yd} where ! @var{yd}(@var{outlist}) = 1; all other entries of @var{yd} are 0. ! @strong{Outputs} ! @var{outsys} = system data structure ! @strong{System partitioning} ! Suppose for simplicity that outlist specified ! that the first several outputs were continuous and the remaining outputs ! were discrete. Then the system is partitioned as ! @example ! @group ! x = [ xc ] (n x 1) ! [ xd ] (nz x 1 discrete states) ! a = [ acc acd ] b = [ bc ] ! [ adc add ] [ bd ] ! c = [ ccc ccd ] d = [ dc ] ! [ cdc cdd ] [ dd ] ! (cdc = c(outlist,1:n), etc.) ! @end group ! @end example ! with dynamic equations: @ifinfo - @math{d/dt xc(t) = acc*xc(t) + acd*xd(k*tsam) + bc*u(t)} - - @math{xd((k+1)*tsam) = adc*xc(k*tsam) + add*xd(k*tsam) + bd*u(k*tsam)} ! @math{yc(t) = ccc*xc(t) + ccd*xd(k*tsam) + dc*u(t)} - @math{yd(k*tsam) = cdc*xc(k*tsam) + cdd*xd(k*tsam) + dd*u(k*tsam)} @end ifinfo @iftex @tex ! $$\eqalign{ ! {d \over dt} x_c(t) ! & = a_{cc} x_c(t) + a_{cd} x_d(k*t_{sam}) + bc*u(t) \cr ! x_d((k+1)*t_{sam}) ! & = a_{dc} x_c(k t_{sam}) + a_{dd} x_d(k t_{sam}) + b_d u(k t_{sam}) \cr ! y_c(t) ! & = c_{cc} x_c(t) + c_{cd} x_d(k t_{sam}) + d_c u(t) \cr ! y_d(k t_{sam}) ! & = c_{dc} x_c(k t_{sam}) + c_{dd} x_d(k t_{sam}) + d_d u(k t_{sam}) ! }$$ @end tex @end iftex - @strong{Signal partitions} @example ! @group ! | continuous | discrete | ! ---------------------------------------------------- ! states | stname(1:n,:) | stname((n+1):(n+nz),:) | ! ---------------------------------------------------- ! outputs | outname(cout,:) | outname(outlist,:) | ! ---------------------------------------------------- ! @end group @end example ! where @math{cout} is the list of in 1:@code{rows}(@var{p}) ! that are not contained in outlist. (Discrete/continuous outputs ! may be entered in any order desired by the user.) - @strong{Example} @example ! octave:1> a = [1 2 3; 4 5 6; 7 8 10]; ! octave:2> b = [0 0 ; 0 1 ; 1 0]; ! octave:3> c = eye (3); ! octave:4> sys = ss (a, b, c, [], 0, 3, 0, ! > @{"volts", "amps", "joules"@}); ! octave:5> sysout(sys); ! Input(s) ! 1: u_1 ! 2: u_2 ! Output(s): ! 1: y_1 ! 2: y_2 ! 3: y_3 ! state-space form: ! 3 continuous states, 0 discrete states ! State(s): ! 1: volts ! 2: amps ! 3: joules ! A matrix: 3 x 3 ! 1 2 3 ! 4 5 6 ! 7 8 10 ! B matrix: 3 x 2 ! 0 0 ! 0 1 ! 1 0 ! C matrix: 3 x 3 ! 1 0 0 ! 0 1 0 ! 0 0 1 ! D matrix: 3 x 3 ! 0 0 ! 0 0 ! 0 0 ! @end example ! Notice that the @math{D} matrix is constructed by default to the ! correct dimensions. Default input and output signals names were assigned ! since none were given. @end deftypefn ! __tf2sysl__ ! Undocumented internal function. ! is_sample -*- texinfo -*- ! @deftypefn {Function File} {} is_sample (@var{ts}) ! Return true if @var{ts} is a valid sampling time ! (real, scalar, > 0). @end deftypefn ! sys2zp -*- texinfo -*- ! @deftypefn {Function File} {[@var{zer}, @var{pol}, @var{k}, @var{tsam}, @var{inname}, @var{outname}] =} sys2zp (@var{sys}) ! Extract zero/pole/leading coefficient information from a system data ! structure. ! ! See @command{zp} for parameter descriptions. ! @strong{Example} @example ! octave:1> sys=ss([1 -2; -1.1,-2.1],[0;1],[1 1]); ! octave:2> [zer,pol,k] = sys2zp(sys) ! zer = 3.0000 ! pol = ! -2.6953 ! 1.5953 ! k = 1 @end example @end deftypefn ! __syscont_disc__ ! Undocumented internal function. ! __abcddims__ ! Undocumented internal function. ! syscont -*- texinfo -*- ! @deftypefn {Function File} {[@var{csys}, @var{acd}, @var{ccd}] =} syscont (@var{sys}) ! Extract the purely continuous subsystem of an input system. ! @strong{Input} @table @var @item sys ! system data structure. @end table @strong{Outputs} - @table @var - @item csys - is the purely continuous input/output connections of @var{sys} - @item acd - @itemx ccd - connections from discrete states to continuous states, - discrete states to continuous outputs, respectively. ! If no continuous path exists, @var{csys} will be empty. @end table @end deftypefn ! __sysdefstname__ ! Undocumented internal function. ! fir2sys -*- texinfo -*- ! @deftypefn {Function File} {} fir2sys (@var{num}, @var{tsam}, @var{inname}, @var{outname}) ! construct a system data structure from @acronym{FIR} description ! ! @strong{Inputs} ! @table @var ! @item num ! vector of coefficients @ifinfo ! [c0, c1, @dots{}, cn] @end ifinfo @iftex @tex ! $ [c_0, c_1, \ldots, c_n ]$ @end tex @end iftex - of the @acronym{SISO} @acronym{FIR} transfer function @ifinfo ! C(z) = c0 + c1*z^(-1) + c2*z^(-2) + @dots{} + cn*z^(-n) @end ifinfo @iftex @tex ! $$ C(z) = c_0 + c_1z^{-1} + c_2z^{-2} + \ldots + c_nz^{-n} $$ @end tex @end iftex ! @item tsam ! sampling time (default: 1) ! @item inname ! name of input signal; may be a string or a list with a single entry. ! @item outname ! name of output signal; may be a string or a list with a single entry. ! @end table - @strong{Output} @table @var ! @item sys ! system data structure ! @end table ! @strong{Example} ! @example ! octave:1> sys = fir2sys([1 -1 2 4],0.342,\ ! > "A/D input","filter output"); ! octave:2> sysout(sys) ! Input(s) ! 1: A/D input ! Output(s): ! 1: filter output (discrete) ! Sampling interval: 0.342 ! transfer function form: ! 1*z^3 - 1*z^2 + 2*z^1 + 4 ! ------------------------- ! 1*z^3 + 0*z^2 + 0*z^1 + 0 ! @end example @end deftypefn ! sysappend -*- texinfo -*- ! @deftypefn {Function File} {@var{sys} =} sysappend (@var{syst}, @var{b}, @var{c}, @var{d}, @var{outname}, @var{inname}, @var{yd}) ! appends new inputs and/or outputs to a system @strong{Inputs} @table @var ! @item syst ! system data structure @item b ! matrix to be appended to sys "B" matrix (empty if none) ! ! @item c ! matrix to be appended to sys "C" matrix (empty if none) ! ! @item d ! revised sys d matrix (can be passed as [] if the revised d is all zeros) ! @item outname ! list of names for new outputs ! @item inname ! list of names for new inputs ! @item yd ! binary vector; @math{yd(ii)=0} indicates a continuous output; ! @math{yd(ii)=1} indicates a discrete output. @end table ! @strong{Outputs} @table @var ! @item sys ! @example ! @group ! sys.b := [syst.b , b] ! sys.c := [syst.c ] ! [ c ] ! sys.d := [syst.d | D12 ] ! [ D21 | D22 ] ! @end group ! @end example ! where @math{D12}, @math{D21}, and @math{D22} are the appropriate dimensioned ! blocks of the input parameter @var{d}. ! @itemize @bullet ! @item The leading block @math{D11} of @var{d} is ignored. ! @item If @var{inname} and @var{outname} are not given as arguments, ! the new inputs and outputs are be assigned default names. ! @item @var{yd} is a binary vector of length rows(c) that indicates ! continuous/sampled outputs. Default value for @var{yd} is: ! @itemize @minus ! @item @var{sys} is continuous or mixed ! @var{yd} = @code{zeros(1,rows(c))} ! ! @item @var{sys} is discrete ! @var{yd} = @code{ones(1,rows(c))} ! @end itemize ! @end itemize @end table @end deftypefn ! sysdisc -*- texinfo -*- ! @deftypefn {Function File} {[@var{dsys}, @var{adc}, @var{cdc}] =} sysdisc (@var{sys}) ! @strong{Input} ! @table @var ! @item sys ! System data structure. ! @end table - @strong{Outputs} @table @var ! @item dsys ! Purely discrete portion of sys (returned empty if there is ! no purely discrete path from inputs to outputs). ! @item adc ! @itemx cdc ! Connections from continuous states to discrete states and discrete ! outputs, respectively. @end table @end deftypefn ! tf2ss -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{b}, @var{c}, @var{d}] =} tf2ss (@var{num}, @var{den}) ! Conversion from transfer function to state-space. ! The state space system: @iftex @tex ! $$ \dot x = Ax + Bu $$ ! $$ y = Cx + Du $$ @end tex @end iftex @ifinfo @example ! . ! x = Ax + Bu ! y = Cx + Du @end example @end ifinfo - is obtained from a transfer function: @iftex @tex ! $$ G(s) = { { \rm num }(s) \over { \rm den }(s) } $$ @end tex @end iftex @ifinfo @example ! num(s) ! G(s)=------- ! den(s) @end example @end ifinfo - - The vector @var{den} must contain only one row, whereas the vector - @var{num} may contain as many rows as there are outputs @var{y} of - the system. The state space system matrices obtained from this function - will be in controllable canonical form as described in @cite{Modern Control - Theory}, (Brogan, 1991). - @end deftypefn - abcddim - -*- texinfo -*- - @deftypefn {Function File} {[@var{n}, @var{m}, @var{p}] =} abcddim (@var{a}, @var{b}, @var{c}, @var{d}) - Check for compatibility of the dimensions of the matrices defining - the linear system @iftex @tex ! $[A, B, C, D]$ corresponding to ! $$ ! \eqalign{ ! {dx\over dt} &= A x + B u\cr ! y &= C x + D u} ! $$ @end tex @end iftex @ifinfo - [A, B, C, D] corresponding to - @example ! dx/dt = a x + b u ! y = c x + d u @end example - @end ifinfo ! or a similar discrete-time system. ! ! If the matrices are compatibly dimensioned, then @code{abcddim} returns ! @table @var ! @item n ! The number of system states. ! ! @item m ! The number of system inputs. ! ! @item p ! The number of system outputs. @end table ! Otherwise @code{abcddim} returns @var{n} = @var{m} = @var{p} = @minus{}1. ! ! Note: n = 0 (pure gain block) is returned without warning. ! @seealso{is_abcd} @end deftypefn ! sysconnect -*- texinfo -*- ! @deftypefn {Function File} {@var{clsys} =} sysconnect (@var{sys}, @var{out_idx}, @var{in_idx}, @var{order}, @var{tol}) ! Close the loop from specified outputs to respective specified inputs @strong{Inputs} @table @var ! @item sys ! System data structure. ! @item out_idx ! @itemx in_idx ! Names or indices of signals to connect (see @code{sysidx}). ! The output specified by @math{out_idx(ii)} is connected to the input ! specified by @math{in_idx(ii)}. ! @item order ! logical flag (default = 0) ! @table @code ! @item 0 ! Leave inputs and outputs in their original order. ! @item 1 ! Permute inputs and outputs to the order shown in the diagram below. ! @end table ! @item tol ! Tolerance for singularities in algebraic loops, default: 200@code{eps}. @end table - @strong{Outputs} @table @var ! @item clsys ! Resulting closed loop system. @end table ! @strong{Method} ! ! @code{sysconnect} internally permutes selected inputs, outputs as shown ! below, closes the loop, and then permutes inputs and outputs back to their ! original order ! @example ! @group ! -------------------- ! u_1 ----->| |----> y_1 ! | sys | ! old u_2 | | ! u_2* ---->(+)--->| |----->y_2 ! (in_idx) ^ -------------------- | (out_idx) ! | | ! ------------------------------- ! @end group ! @end example ! The input that has the summing junction added to it has an * added to ! the end of the input name. @end deftypefn ! is_controllable -*- texinfo -*- ! @deftypefn {Function File} {[@var{retval}, @var{u}] =} is_controllable (@var{sys}, @var{tol}) ! @deftypefnx {Function File} {[@var{retval}, @var{u}] =} is_controllable (@var{a}, @var{b}, @var{tol}) ! Logical check for system controllability. @strong{Inputs} @table @var @item sys ! system data structure ! @item a ! @itemx b ! @var{n} by @var{n}, @var{n} by @var{m} matrices, respectively ! @item tol ! optional roundoff parameter. Default value: @code{10*eps} ! @end table @strong{Outputs} @table @var ! @item retval ! Logical flag; returns true (1) if the system @var{sys} or the ! pair (@var{a}, @var{b}) is controllable, whichever was passed as input ! arguments. ! @item u ! @var{u} is an orthogonal basis of the controllable subspace. @end table ! @strong{Method} ! Controllability is determined by applying Arnoldi iteration with ! complete re-orthogonalization to obtain an orthogonal basis of the ! Krylov subspace ! @example ! span ([b,a*b,...,a^@{n-1@}*b]). ! @end example ! The Arnoldi iteration is executed with @code{krylov} if the system ! has a single input; otherwise a block Arnoldi iteration is performed ! with @code{krylovb}. ! @seealso{size, rows, columns, length, ismatrix, isscalar, isvector ! is_observable, is_stabilizable, is_detectable, krylov, krylovb} @end deftypefn ! listidx -*- texinfo -*- ! @deftypefn {Function File} {[@var{idxvec}, @var{errmsg}] =} listidx (@var{listvar}, @var{strlist}) ! Return indices of string entries in @var{listvar} that match strings ! in @var{strlist}. ! ! Both @var{listvar} and @var{strlist} may be passed as strings or ! string matrices. If they are passed as string matrices, each entry ! is processed by @code{deblank} prior to searching for the entries. ! ! The first output is the vector of indices in @var{listvar}. ! ! If @var{strlist} contains a string not in @var{listvar}, then ! an error message is returned in @var{errmsg}. If only one output ! argument is requested, then @var{listidx} prints @var{errmsg} to the ! screen and exits with an error. @end deftypefn ! sysdup -*- texinfo -*- ! @deftypefn {Function File} {@var{retsys} =} sysdup (@var{asys}, @var{out_idx}, @var{in_idx}) ! Duplicate specified input/output connections of a system ! @strong{Inputs} @table @var ! @item asys ! system data structure ! @item out_idx ! @itemx in_idx ! indices or names of desired signals (see @code{sigidx}). ! duplicates are made of @code{y(out_idx(ii))} and @code{u(in_idx(ii))}. @end table ! @strong{Output} @table @var ! @item retsys ! Resulting closed loop system: ! duplicated i/o names are appended with a @code{"+"} suffix. @end table - - @strong{Method} - - @code{sysdup} creates copies of selected inputs and outputs as - shown below. @var{u1}, @var{y1} is the set of original inputs/outputs, and - @var{u2}, @var{y2} is the set of duplicated inputs/outputs in the order - specified in @var{in_idx}, @var{out_idx}, respectively - @example - @group - ____________________ - u1 ----->| |----> y1 - | asys | - u2 ------>| |----->y2 - (in_idx) -------------------- (out_idx) - @end group - @end example @end deftypefn ! c2d -*- texinfo -*- ! @deftypefn {Function File} {} c2d (@var{sys}, @var{opt}, @var{t}) ! @deftypefnx {Function File} {} c2d (@var{sys}, @var{t}) ! ! Converts the system data structure describing: @iftex @tex ! $$ \dot x = A_cx + B_cu $$ @end tex @end iftex @ifinfo @example ! . ! x = Ac x + Bc u @end example @end ifinfo ! into a discrete time equivalent model: @iftex @tex ! $$ x_{n+1} = A_dx_n + B_du_n $$ @end tex @end iftex @ifinfo @example ! x[n+1] = Ad x[n] + Bd u[n] @end example @end ifinfo - via the matrix exponential or bilinear transform. ! @strong{Inputs} @table @var ! @item sys ! system data structure (may have both continuous time and discrete ! time subsystems) ! @item opt ! string argument; conversion option (optional argument; ! may be omitted as shown above) ! @table @code ! @item "ex" ! use the matrix exponential (default) ! @item "bi" ! use the bilinear transformation @iftex @tex ! $$ s = { 2(z-1) \over T(z+1) } $$ @end tex @end iftex @ifinfo @example ! 2(z-1) ! s = ----- ! T(z+1) @end example @end ifinfo - FIXME: This option exits with an error if @var{sys} is not purely - continuous. (The @code{ex} option can handle mixed systems.) - @item "matched" - Use the matched pole/zero equivalent transformation (currently only - works for purely continuous @acronym{SISO} systems). - @end table - @item t - sampling time; required if @var{sys} is purely continuous. - - @strong{Note} that if the second argument is not a string, @code{c2d()} - assumes that the second argument is @var{t} and performs - appropriate argument checks. - @end table ! @strong{Output} @table @var ! @item dsys ! Discrete time equivalent via zero-order hold, sample each @var{t} sec. @end table ! ! This function adds the suffix @code{_d} ! to the names of the new discrete states. @end deftypefn ! sysadd -*- texinfo -*- ! @deftypefn {Function File} {} sysadd (@var{gsys}, @var{hsys}) ! returns @var{sys} = @var{gsys} + @var{hsys}. ! @itemize @bullet ! @item Exits with ! an error if @var{gsys} and @var{hsys} are not compatibly dimensioned. ! @item Prints a warning message is system states have identical names; ! duplicate names are given a suffix to make them unique. ! @item @var{sys} input/output names are taken from @var{gsys}. ! @end itemize @example ! @group ! ________ ! ----| gsys |--- ! u | ---------- +| ! ----- (_)----> y ! | ________ +| ! ----| hsys |--- ! -------- ! @end group @end example ! @end deftypefn ! sys2tf ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{num}, @var{den}, @var{tsam}, @var{inname}, @var{outname}] =} sys2tf (@var{sys}) ! Extract transfer function data from a system data structure. ! ! See @command{tf} for parameter descriptions. ! ! @strong{Example} @example ! octave:1> sys=ss([1 -2; -1.1,-2.1],[0;1],[1 1]); ! octave:2> [num,den] = sys2tf(sys) ! num = 1.0000 -3.0000 ! den = 1.0000 1.1000 -4.3000 @end example - @end deftypefn - sysreorder - -*- texinfo -*- - @deftypefn {Function File} {@var{pv} =} sysreorder (@var{vlen}, @var{list}) @strong{Inputs} @table @var ! @item vlen ! Vector length. ! @item list ! A subset of @code{[1:vlen]}. ! @end table ! @strong{Output} ! @table @var ! @item pv ! A permutation vector to order elements of @code{[1:vlen]} in ! @code{list} to the end of a vector. @end table ! ! Used internally by @code{sysconnect} to permute vector elements to their ! desired locations. ! @end deftypefn ! zp2tf ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{num}, @var{den}] =} zp2tf (@var{zer}, @var{pol}, @var{k}) ! Converts zeros / poles to a transfer function. ! ! @strong{Inputs} @table @var ! @item zer ! @itemx pol ! Vectors of (possibly complex) poles and zeros of a transfer ! function. Complex values must appear in conjugate pairs. ! @item k ! Real scalar (leading coefficient). @end table @end deftypefn ! __sysdefioname__ ! Undocumented internal function. ! parallel -*- texinfo -*- ! @deftypefn {Function File} {@var{ksys} =} parallel (@var{asys}, @var{bsys}) ! Forms the parallel connection of two systems. ! @example @group ! -------------------- ! | -------- | ! u ----->|----> | asys |--->|----> y1 ! | | -------- | ! | | -------- | ! |--->|----> | bsys |--->|----> y2 ! | -------- | ! -------------------- ! ksys @end group @end example @end deftypefn ! sys2ss -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{b}, @var{c}, @var{d}, @var{tsam}, @var{n}, @var{nz}, @var{stname}, @var{inname}, @var{outname}, @var{yd}] =} sys2ss (@var{sys}) ! Extract state space representation from system data structure. ! ! @strong{Input} ! @table @var ! @item sys ! System data structure. ! @end table ! ! @strong{Outputs} ! @table @var ! @item a ! @itemx b ! @itemx c ! @itemx d ! State space matrices for @var{sys}. ! ! @item tsam ! Sampling time of @var{sys} (0 if continuous). ! ! @item n ! @itemx nz ! Number of continuous, discrete states (discrete states come ! last in state vector @var{x}). ! ! @item stname ! @itemx inname ! @itemx outname ! Signal names (lists of strings); names of states, ! inputs, and outputs, respectively. ! ! @item yd ! Binary vector; @var{yd}(@var{ii}) is 1 if output @var{y}(@var{ii}) ! is discrete (sampled); otherwise @var{yd}(@var{ii}) is 0. ! ! @end table ! A warning massage is printed if the system is a mixed ! continuous and discrete system. ! @strong{Example} @example ! octave:1> sys=tf2sys([1 2],[3 4 5]); ! octave:2> [a,b,c,d] = sys2ss(sys) ! a = ! 0.00000 1.00000 ! -1.66667 -1.33333 ! b = ! 0 ! 1 ! c = 0.66667 0.33333 ! d = 0 @end example @end deftypefn ! sysgroup -*- texinfo -*- ! @deftypefn {Function File} {@var{sys} =} sysgroup (@var{asys}, @var{bsys}) ! Combines two systems into a single system. @strong{Inputs} @table @var ! @item asys ! @itemx bsys ! System data structures. ! @end table ! @strong{Output} @table @var ! @item sys ! @math{sys = @r{block diag}(asys,bsys)} @end table ! @example ! @group ! __________________ ! | ________ | ! u1 ----->|--> | asys |--->|----> y1 ! | -------- | ! | ________ | ! u2 ----->|--> | bsys |--->|----> y2 ! | -------- | ! ------------------ ! Ksys ! @end group ! @end example ! The function also rearranges the internal state-space realization of @var{sys} ! so that the continuous states come first and the discrete states come last. ! If there are duplicate names, the second name has a unique suffix appended ! on to the end of the name. @end deftypefn ! tfout -*- texinfo -*- ! @deftypefn {Function File} {} tfout (@var{num}, @var{denom}, @var{x}) ! Print formatted transfer function @math{n(s)/d(s)} to the screen. ! @var{x} defaults to the string @code{"s"} ! @seealso{polyval, polyvalm, poly, roots, conv, deconv, residue, ! filter, polyderiv, polyinteg, polyout} @end deftypefn ! is_stable -*- texinfo -*- ! @deftypefn {Function File} {} is_stable (@var{a}, @var{tol}, @var{dflg}) ! @deftypefnx {Function File} {} is_stable (@var{sys}, @var{tol}) ! Returns 1 if the matrix @var{a} or the system @var{sys} ! is stable, or 0 if not. ! @strong{Inputs} ! @table @var ! @item tol ! is a roundoff parameter, set to 200*@code{eps} if omitted. ! @item dflg ! Digital system flag (not required for system data structure): ! @table @code ! @item @var{dflg} != 0 ! stable if eig(a) is in the unit circle ! @item @var{dflg} == 0 ! stable if eig(a) is in the open LHP (default) @end table @end table - @seealso{size, rows, columns, length, ismatrix, isscalar, isvector - is_observable, is_stabilizable, is_detectable, krylov, krylovb} - @end deftypefn - buildssic - -*- texinfo -*- - @deftypefn {Function File} {} buildssic (@var{clst}, @var{ulst}, @var{olst}, @var{ilst}, @var{s1}, @var{s2}, @var{s3}, @var{s4}, @var{s5}, @var{s6}, @var{s7}, @var{s8}) ! Form an arbitrary complex (open or closed loop) system in ! state-space form from several systems. @command{buildssic} can ! easily (despite its cryptic syntax) integrate transfer functions ! from a complex block diagram into a single system with one call. ! This function is especially useful for building open loop ! interconnections for @iftex @tex ! $ { \cal H }_\infty $ and $ { \cal H }_2 $ @end tex @end iftex @ifinfo ! H-infinity and H-2 @end ifinfo ! designs or for closing loops with these controllers. ! ! Although this function is general purpose, the use of @command{sysgroup} ! @command{sysmult}, @command{sysconnect} and the like is recommended for ! standard operations since they can handle mixed discrete and continuous ! systems and also the names of inputs, outputs, and states. ! The parameters consist of 4 lists that describe the connections ! outputs and inputs and up to 8 systems @var{s1}--@var{s8}. ! Format of the lists: @table @var ! @item clst ! connection list, describes the input signal of ! each system. The maximum number of rows of Clst is ! equal to the sum of all inputs of s1-s8. ! Example: ! @code{[1 2 -1; 2 1 0]} means that: new input 1 is old input 1 ! + output 2 - output 1, and new input 2 is old input 2 ! + output 1. The order of rows is arbitrary. ! @item ulst ! if not empty the old inputs in vector @var{ulst} will ! be appended to the outputs. You need this if you ! want to ``pull out'' the input of a system. Elements ! are input numbers of @var{s1}--@var{s8}. ! @item olst ! output list, specifies the outputs of the resulting ! systems. Elements are output numbers of @var{s1}--@var{s8}. ! The numbers are allowed to be negative and may ! appear in any order. An empty matrix means ! all outputs. ! @item ilst ! input list, specifies the inputs of the resulting ! systems. Elements are input numbers of @var{s1}--@var{s8}. ! The numbers are allowed to be negative and may ! appear in any order. An empty matrix means ! all inputs. ! @end table ! Example: Very simple closed loop system. ! @example ! @group ! w e +-----+ u +-----+ ! --->o--*-->| K |--*-->| G |--*---> y ! ^ | +-----+ | +-----+ | ! - | | | | ! | | +----------------> u ! | | | ! | +-------------------------|---> e ! | | ! +----------------------------+ ! @end group ! @end example ! The closed loop system @var{GW} can be obtained by @example ! GW = buildssic([1 2; 2 -1], 2, [1 2 3], 2, G, K); @end example @table @var ! @item clst ! 1st row: connect input 1 (@var{G}) with output 2 (@var{K}). ! ! 2nd row: connect input 2 (@var{K}) with negative output 1 (@var{G}). ! @item ulst ! Append input of 2 (@var{K}) to the number of outputs. ! @item olst ! Outputs are output of 1 (@var{G}), 2 (@var{K}) and ! appended output 3 (from @var{ulst}). ! @item ilst ! The only input is 2 (@var{K}). @end table ! Here is a real example: @example ! @group ! +----+ ! -------------------->| W1 |---> v1 ! z | +----+ ! ----|-------------+ ! | | ! | +---+ v +----+ ! *--->| G |--->O--*-->| W2 |---> v2 ! | +---+ | +----+ ! | | ! | v ! u y ! @end group @end example @iftex @tex ! $$ { \rm min } \Vert GW_{vz} \Vert _\infty $$ @end tex @end iftex @ifinfo @example ! min || GW || ! vz infty @end example @end ifinfo ! The closed loop system @var{GW} @iftex @tex ! from $ [z, u]^T $ to $ [v_1, v_2, y]^T $ @end tex @end iftex @ifinfo ! from [z, u]' to [v1, v2, y]' ! @end ifinfo ! can be obtained by (all @acronym{SISO} systems): @example ! GW = buildssic([1, 4; 2, 4; 3, 1], 3, [2, 3, 5], ! [3, 4], G, W1, W2, One); @end example ! where ``One'' is a unity gain (auxiliary) function with order 0. ! (e.g. @code{One = ugain(1);}) ! @end deftypefn ! sysgettsam ! -*- texinfo -*- ! @deftypefn {Function File} {} sysgettsam (@var{sys}) ! Return the sampling time of the system @var{sys}. ! @end deftypefn ! is_detectable ! -*- texinfo -*- ! @deftypefn {Function File} {@var{retval} =} is_detectable (@var{a}, @var{c}, @var{tol}, @var{dflg}) ! @deftypefnx {Function File} {@var{retval} =} is_detectable (@var{sys}, @var{tol}) ! Test for detectability (observability of unstable modes) of (@var{a}, @var{c}). ! ! Returns 1 if the system @var{a} or the pair (@var{a}, @var{c}) is ! detectable, 0 if not, and -1 if the system has unobservable modes at the ! imaginary axis (unit circle for discrete-time systems). ! ! @strong{See} @command{is_stabilizable} for detailed description of ! arguments and computational method. ! @seealso{is_stabilizable, size, rows, columns, length, ismatrix, ! isscalar, isvector} ! @end deftypefn ! sysupdate ! -*- texinfo -*- ! @deftypefn {Function File} {} sysupdate (@var{sys}, @var{opt}) ! Update the internal representation of a system. ! @strong{Inputs} ! @table @var ! @item sys: ! system data structure ! @item opt ! string: ! @table @code ! @item "tf" ! update transfer function form ! @item "zp" ! update zero-pole form ! @item "ss" ! update state space form ! @item "all" ! all of the above ! @end table ! @end table - @strong{Outputs} @table @var ! @item retsys ! Contains union of data in sys and requested data. ! If requested data in @var{sys} is already up to date then @var{retsys}=@var{sys}. ! @end table ! ! Conversion to @command{tf} or @command{zp} exits with an error if the system is ! mixed continuous/digital. ! @seealso{tf, ss, zp, sysout, sys2ss, sys2tf, sys2zp} ! @end deftypefn ! jet707 ! -*- texinfo -*- ! @deftypefn {Function File} {@var{sys} =} jet707 () ! Creates a linearized state-space model of a Boeing 707-321 aircraft ! at @var{v}=80 m/s @iftex @tex ! ($M = 0.26$, $G_{a0} = -3^{\circ}$, ${\alpha}_0 = 4^{\circ}$, ${\kappa}= 50^{\circ}$). @end tex @end iftex @ifinfo ! (@var{M} = 0.26, @var{Ga0} = -3 deg, @var{alpha0} = 4 deg, @var{kappa} = 50 deg). @end ifinfo ! System inputs: (1) thrust and (2) elevator angle. ! ! System outputs: (1) airspeed and (2) pitch angle. ! ! @strong{Reference}: R. Brockhaus: @cite{Flugregelung} (Flight ! Control), Springer, 1994. ! @seealso{ord2} ! @end deftypefn ! ss2zp ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{pol}, @var{zer}, @var{k}] =} ss2zp (@var{a}, @var{b}, @var{c}, @var{d}) ! Converts a state space representation to a set of poles and zeros; ! @var{k} is a gain associated with the zeros. ! ! Used internally in system data structure format manipulations. ! @end deftypefn ! sysmin ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{retsys}, @var{nc}, @var{no}] =} sysmin (@var{sys}, @var{flg}) ! Returns a minimal (or reduced order) system ! @strong{Inputs} ! @table @var ! @item sys ! System data structure ! @item flg ! When equal to 0 (default value), returns minimal system, ! in which state names are lost; when equal to 1, returns system ! with physical states removed that are either uncontrollable or ! unobservable (cannot reduce further without discarding physical ! meaning of states). ! @end table ! @strong{Outputs} ! @table @var ! @item retsys ! Returned system. ! @item nc ! Number of controllable states in the returned system. ! @item no ! Number of observable states in the returned system. ! @item cflg ! @code{is_controllable(retsys)}. ! @item oflg ! @code{is_observable(retsys)}. ! @end table ! @end deftypefn ! tf2zp ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{zer}, @var{pol}, @var{k}] =} tf2zp (@var{num}, @var{den}) ! Converts transfer functions to poles-and-zero representations. ! Returns the zeros and poles of the @acronym{SISO} system defined ! by @var{num}/@var{den}. ! @var{k} is a gain associated with the system zeros. ! @end deftypefn ! sysgettype ! -*- texinfo -*- ! @deftypefn {Function File} {} sysgettype (@var{sys}) ! return the initial system type of the system ! @strong{Input} ! @table @var ! @item sys ! System data structure. ! @end table ! @strong{Output} ! @table @var ! @item systype ! String indicating how the structure was initially ! constructed. Values: @code{"ss"}, @code{"zp"}, or @code{"tf"}. @end table - - @acronym{FIR} initialized systems return @code{systype="tf"}. - @end deftypefn - __syschnamesl__ - Undocumented internal function. - syschtsam - -*- texinfo -*- - @deftypefn {Function File} {} syschtsam (@var{sys}, @var{tsam}) - This function changes the sampling time (tsam) of the system. Exits with - an error if sys is purely continuous time. @end deftypefn ! syssub -*- texinfo -*- ! @deftypefn {Function File} {@var{sys} =} syssub (@var{Gsys}, @var{Hsys}) ! Return @math{sys = Gsys - Hsys}. ! @strong{Method} ! @var{Gsys} and @var{Hsys} are connected in parallel. ! The input vector is connected to both systems; the outputs are ! subtracted. Returned system names are those of @var{Gsys}. ! @example ! @group ! +--------+ ! +--->| Gsys |---+ ! | +--------+ | ! | +| ! u --+ (_)--> y ! | -| ! | +--------+ | ! +--->| Hsys |---+ ! +--------+ ! @end group ! @end example @end deftypefn tf -*- texinfo -*- --- 6998,13307 ---- @example @group ! c(1)^(n-1) ... c(1)^2 c(1) 1 ! c(2)^(n-1) ... c(2)^2 c(2) 1 ! . . . . . ! . . . . . ! . . . . . ! c(n)^(n-1) ... c(n)^2 c(n) 1 @end group @end example @end ifinfo + @seealso{hankel, sylvester_matrix, hilb, invhilb, toeplitz} + @end deftypefn + wilkinson + -*- texinfo -*- + @deftypefn {Function File} {} wilkinson (@var{n}) ! Return the Wilkinson matrix of order @var{n}. ! @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz ! hadamard, rosser, compan, pascal} @end deftypefn ! sylvester_matrix -*- texinfo -*- ! @deftypefn {Function File} {} sylvester_matrix (@var{k}) ! Return the Sylvester matrix of order ! @iftex ! @tex ! $n = 2^k$. ! @end tex ! @end iftex ! @ifinfo ! n = 2^k. ! @end ifinfo ! @seealso{hankel, vander, hilb, invhilb, toeplitz} @end deftypefn ! invhilb -*- texinfo -*- ! @deftypefn {Function File} {} invhilb (@var{n}) ! Return the inverse of a Hilbert matrix of order @var{n}. This can be ! computed exactly using ! @tex ! $$\eqalign{ ! A_{ij} &= -1^{i+j} (i+j-1) ! \left( \matrix{n+i-1 \cr n-j } \right) ! \left( \matrix{n+j-1 \cr n-i } \right) ! \left( \matrix{i+j-2 \cr i-2 } \right)^2 \cr ! &= { p(i)p(j) \over (i+j-1) } ! }$$ ! where ! $$ ! p(k) = -1^k \left( \matrix{ k+n-1 \cr k-1 } \right) ! \left( \matrix{ n \cr k } \right) ! $$ ! @end tex ! @ifinfo @example ! (i+j) /n+i-1\ /n+j-1\ /i+j-2\ 2 ! A(i,j) = -1 (i+j-1)( )( ) ( ) ! \ n-j / \ n-i / \ i-2 / ! ! = p(i) p(j) / (i+j-1) + @end example + where @example ! k /k+n-1\ /n\ ! p(k) = -1 ( ) ( ) ! \ k-1 / \k/ @end example ! @end ifinfo ! ! The validity of this formula can easily be checked by expanding ! the binomial coefficients in both formulas as factorials. It can ! be derived more directly via the theory of Cauchy matrices: ! see J. W. Demmel, Applied Numerical Linear Algebra, page 92. ! ! Compare this with the numerical calculation of @code{inverse (hilb (n))}, ! which suffers from the ill-conditioning of the Hilbert matrix, and the ! finite precision of your computer's floating point arithmetic. ! @seealso{hankel, vander, sylvester_matrix, hilb, toeplitz} @end deftypefn ! hadamard -*- texinfo -*- ! @deftypefn {Function File} {} hadamard (@var{n}) ! Construct a Hadamard matrix @var{Hn} of size @var{n}-by-@var{n}. The ! size @var{n} must be of the form @code{2 ^ @var{k} * @var{p}} in which ! @var{p} is one of 1, 12, 20 or 28. The returned matrix is normalized, ! meaning @code{Hn(:,1) == 1} and @code{H(1,:) == 1}. ! Some of the properties of Hadamard matrices are: ! @itemize @bullet ! @item ! @code{kron (@var{Hm}, @var{Hn})} is a Hadamard matrix of size ! @var{m}-by-@var{n}. ! @item ! @code{Hn * Hn' == @var{n} * eye (@var{n})}. ! @item ! The rows of @var{Hn} are orthogonal. ! @item ! @code{det (@var{A}) <= det (@var{Hn})} for all @var{A} with ! @code{abs (@var{A} (@var{i}, @var{j})) <= 1}. ! @item ! Multiply any row or column by -1 and still have a Hadamard matrix. ! @end itemize ! @end deftypefn ! rosser ! -*- texinfo -*- ! @deftypefn {Function File} {} rosser () ! Returns the Rosser matrix. This is a difficult test case used to test ! eigenvalue algorithms. ! @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz ! hadamard, wilkinson, compan, pascal} ! @end deftypefn ! toeplitz ! -*- texinfo -*- ! @deftypefn {Function File} {} toeplitz (@var{c}, @var{r}) ! Return the Toeplitz matrix constructed given the first column @var{c}, ! and (optionally) the first row @var{r}. If the first element of @var{c} ! is not the same as the first element of @var{r}, the first element of ! @var{c} is used. If the second argument is omitted, the first row is ! taken to be the same as the first column. ! A square Toeplitz matrix has the form: ! @iftex ! @tex ! $$ ! \left[\matrix{c_0 & r_1 & r_2 & \cdots & r_n\cr ! c_1 & c_0 & r_1 & \cdots & r_{n-1}\cr ! c_2 & c_1 & c_0 & \cdots & r_{n-2}\cr ! \vdots & \vdots & \vdots & \ddots & \vdots\cr ! c_n & c_{n-1} & c_{n-2} & \ldots & c_0}\right] ! $$ ! @end tex ! @end iftex ! @ifinfo @example ! @group ! c(0) r(1) r(2) ... r(n) ! c(1) c(0) r(1) ... r(n-1) ! c(2) c(1) c(0) ... r(n-2) ! . , , . . ! . , , . . ! . , , . . ! c(n) c(n-1) c(n-2) ... c(0) ! @end group @end example + @end ifinfo + @seealso{hankel, vander, sylvester_matrix, hilb, invhilb} + @end deftypefn + logm + -*- texinfo -*- + @deftypefn {Function File} {} logm (@var{a}) + Compute the matrix logarithm of the square matrix @var{a}. Note that + this is currently implemented in terms of an eigenvalue expansion and + needs to be improved to be more robust. + @end deftypefn + commutation_matrix + -*- texinfo -*- + @deftypefn {Function File} {} commutation_matrix (@var{m}, @var{n}) + Return the commutation matrix + @iftex + @tex + $K_{m,n}$ + @end tex + @end iftex + @ifinfo + K(m,n) + @end ifinfo + which is the unique + @iftex + @tex + $m n \times m n$ + @end tex + @end iftex + @ifinfo + @var{m}*@var{n} by @var{m}*@var{n} + @end ifinfo + matrix such that + @iftex + @tex + $K_{m,n} \cdot {\rm vec} (A) = {\rm vec} (A^T)$ + @end tex + @end iftex + @ifinfo + @math{K(m,n) * vec(A) = vec(A')} + @end ifinfo + for all + @iftex + @tex + $m\times n$ + @end tex + @end iftex + @ifinfo + @math{m} by @math{n} + @end ifinfo + matrices + @iftex + @tex + $A$. + @end tex + @end iftex + @ifinfo + @math{A}. + @end ifinfo ! If only one argument @var{m} is given, ! @iftex ! @tex ! $K_{m,m}$ ! @end tex ! @end iftex ! @ifinfo ! @math{K(m,m)} ! @end ifinfo ! is returned. ! See Magnus and Neudecker (1988), Matrix differential calculus with ! applications in statistics and econometrics. ! @end deftypefn ! dot ! -*- texinfo -*- ! @deftypefn {Function File} {} dot (@var{x}, @var{y}, @var{dim}) ! Computes the dot product of two vectors. If @var{x} and @var{y} ! are matrices, calculate the dot-product along the first ! non-singleton dimension. If the optional argument @var{dim} is ! given, calculate the dot-product along this dimension. ! @end deftypefn ! cross ! -*- texinfo -*- ! @deftypefn {Function File} {} cross (@var{x}, @var{y}, @var{dim}) ! Computes the vector cross product of the two 3-dimensional vectors ! @var{x} and @var{y}. @example ! @group ! cross ([1,1,0], [0,1,1]) ! @result{} [ 1; -1; 1 ] ! @end group @end example ! If @var{x} and @var{y} are matrices, the cross product is applied ! along the first dimension with 3 elements. The optional argument ! @var{dim} is used to force the cross product to be calculated along ! the dimension defined by @var{dim}. ! @end deftypefn ! dmult ! -*- texinfo -*- ! @deftypefn {Function File} {} dmult (@var{a}, @var{b}) ! If @var{a} is a vector of length @code{rows (@var{b})}, return ! @code{diag (@var{a}) * @var{b}} (but computed much more efficiently). ! @end deftypefn ! cond ! -*- texinfo -*- ! @deftypefn {Function File} {} cond (@var{a},@var{p}) ! Compute the @var{p}-norm condition number of a matrix. @code{cond (@var{a})} is ! defined as @code{norm (@var{a}, @var{p}) * norm (inv (@var{a}), @var{p})}. ! By default @code{@var{p}=2} is used which implies a (relatively slow) ! singular value decomposition. Other possible selections are ! @code{@var{p}= 1, Inf, inf, 'Inf', 'fro'} which are generally faster. ! @seealso{norm, inv, det, svd, rank} ! @end deftypefn ! duplication_matrix ! -*- texinfo -*- ! @deftypefn {Function File} {} duplication_matrix (@var{n}) ! Return the duplication matrix ! @iftex ! @tex ! $D_n$ ! @end tex ! @end iftex ! @ifinfo ! @math{Dn} ! @end ifinfo ! which is the unique ! @iftex ! @tex ! $n^2 \times n(n+1)/2$ ! @end tex ! @end iftex ! @ifinfo ! @math{n^2} by @math{n*(n+1)/2} ! @end ifinfo ! matrix such that ! @iftex ! @tex ! $D_n * {\rm vech} (A) = {\rm vec} (A)$ ! @end tex ! @end iftex ! @ifinfo ! @math{Dn vech (A) = vec (A)} ! @end ifinfo ! for all symmetric ! @iftex ! @tex ! $n \times n$ ! @end tex ! @end iftex ! @ifinfo ! @math{n} by @math{n} ! @end ifinfo ! matrices ! @iftex ! @tex ! $A$. ! @end tex ! @end iftex ! @ifinfo ! @math{A}. ! @end ifinfo ! See Magnus and Neudecker (1988), Matrix differential calculus with ! applications in statistics and econometrics. ! @end deftypefn ! onenormest ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{est}, @var{v}, @var{w}, @var{iter}] =} onenormest (@var{a}, @var{t}) ! @deftypefnx {Function File} {[@var{est}, @var{v}, @var{w}, @var{iter}] =} onenormest (@var{apply}, @var{apply_t}, @var{n}, @var{t}) ! Apply Higham and Tisseur's randomized block 1-norm estimator to ! matrix @var{a} using @var{t} test vectors. If @var{t} exceeds 5, then ! only 5 test vectors are used. ! If the matrix is not explicit, e.g. when estimating the norm of ! @code{inv (@var{A})} given an LU factorization, @code{onenormest} applies ! @var{A} and its conjugate transpose through a pair of functions ! @var{apply} and @var{apply_t}, respectively, to a dense matrix of size ! @var{n} by @var{t}. The implicit version requires an explicit dimension ! @var{n}. ! Returns the norm estimate @var{est}, two vectors @var{v} and ! @var{w} related by norm ! @code{(@var{w}, 1) = @var{est} * norm (@var{v}, 1)}, ! and the number of iterations @var{iter}. The number of ! iterations is limited to 10 and is at least 2. ! References: ! @itemize ! @item Nicholas J. Higham and Françoise Tisseur, "A Block Algorithm ! for Matrix 1-Norm Estimation, with an Application to 1-Norm ! Pseudospectra." SIMAX vol 21, no 4, pp 1185-1201. ! @url{http://dx.doi.org/10.1137/S0895479899356080} ! @item Nicholas J. Higham and Françoise Tisseur, "A Block Algorithm ! for Matrix 1-Norm Estimation, with an Application to 1-Norm ! Pseudospectra." @url{http://citeseer.ist.psu.edu/223007.html} ! @end itemize ! @seealso{condest, norm, cond} ! @end deftypefn ! housh ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{housv}, @var{beta}, @var{zer}] =} housh (@var{x}, @var{j}, @var{z}) ! Compute Householder reflection vector @var{housv} to reflect @var{x} ! to be the jth column of identity, i.e., @example ! @group ! (I - beta*housv*housv')x = norm(x)*e(j) if x(1) < 0, ! (I - beta*housv*housv')x = -norm(x)*e(j) if x(1) >= 0 ! @end group @end example @noindent ! Inputs ! @table @var ! @item x ! vector ! @item j ! index into vector ! @item z ! threshold for zero (usually should be the number 0) ! @end table ! @noindent ! Outputs (see Golub and Van Loan): ! @table @var ! @item beta ! If beta = 0, then no reflection need be applied (zer set to 0) ! @item housv ! householder vector ! @end table ! @end deftypefn ! rref ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{r}, @var{k}] =} rref (@var{a}, @var{tol}) ! Returns the reduced row echelon form of @var{a}. @var{tol} defaults ! to @code{eps * max (size (@var{a})) * norm (@var{a}, inf)}. ! Called with two return arguments, @var{k} returns the vector of ! "bound variables", which are those columns on which elimination ! has been performed. ! @end deftypefn ! krylov ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{u}, @var{h}, @var{nu}] =} krylov (@var{a}, @var{v}, @var{k}, @var{eps1}, @var{pflg}) ! Construct an orthogonal basis @var{u} of block Krylov subspace @example ! [v a*v a^2*v ... a^(k+1)*v] @end example @noindent ! Using Householder reflections to guard against loss of orthogonality. ! If @var{v} is a vector, then @var{h} contains the Hessenberg matrix ! such that @code{a*u == u*h+rk*ek'}, in which @code{rk = ! a*u(:,k)-u*h(:,k)}, and @code{ek'} is the vector ! @code{[0, 0, @dots{}, 1]} of length @code{k}. Otherwise, @var{h} is ! meaningless. ! If @var{v} is a vector and @var{k} is greater than ! @code{length(A)-1}, then @var{h} contains the Hessenberg matrix such ! that @code{a*u == u*h}. ! The value of @var{nu} is the dimension of the span of the krylov ! subspace (based on @var{eps1}). ! If @var{b} is a vector and @var{k} is greater than @var{m-1}, then ! @var{h} contains the Hessenberg decomposition of @var{a}. ! The optional parameter @var{eps1} is the threshold for zero. The ! default value is 1e-12. ! If the optional parameter @var{pflg} is nonzero, row pivoting is used ! to improve numerical behavior. The default value is 0. ! Reference: Hodel and Misra, "Partial Pivoting in the Computation of ! Krylov Subspaces", to be submitted to Linear Algebra and its ! Applications ! @end deftypefn ! qzhess ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{aa}, @var{bb}, @var{q}, @var{z}] =} qzhess (@var{a}, @var{b}) ! Compute the Hessenberg-triangular decomposition of the matrix pencil ! @code{(@var{a}, @var{b})}, returning ! @code{@var{aa} = @var{q} * @var{a} * @var{z}}, ! @code{@var{bb} = @var{q} * @var{b} * @var{z}}, with @var{q} and @var{z} ! orthogonal. For example, @example @group ! [aa, bb, q, z] = qzhess ([1, 2; 3, 4], [5, 6; 7, 8]) ! @result{} aa = [ -3.02244, -4.41741; 0.92998, 0.69749 ] ! @result{} bb = [ -8.60233, -9.99730; 0.00000, -0.23250 ] ! @result{} q = [ -0.58124, -0.81373; -0.81373, 0.58124 ] ! @result{} z = [ 1, 0; 0, 1 ] @end group @end example ! The Hessenberg-triangular decomposition is the first step in ! Moler and Stewart's QZ decomposition algorithm. ! Algorithm taken from Golub and Van Loan, @cite{Matrix Computations, 2nd ! edition}. ! @end deftypefn ! vech ! -*- texinfo -*- ! @deftypefn {Function File} {} vech (@var{x}) ! Return the vector obtained by eliminating all supradiagonal elements of ! the square matrix @var{x} and stacking the result one column above the ! other. ! @end deftypefn ! krylovb ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{u}, @var{ucols}] =} krylovb (@var{a}, @var{v}, @var{k}, @var{eps1}, @var{pflg}) ! See @code{krylov}. ! @end deftypefn ! condest ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{est}, @var{v}] =} condest (@var{a}, @var{t}) ! @deftypefnx {Function File} {[@var{est}, @var{v}] =} condest (@var{a}, @var{solve}, @var{solve_t}, @var{t}) ! @deftypefnx {Function File} {[@var{est}, @var{v}] =} condest (@var{apply}, @var{apply_t}, @var{solve}, @var{solve_t}, @var{n}, @var{t}) ! Estimate the 1-norm condition number of a matrix matrix @var{A} ! using @var{t} test vectors using a randomized 1-norm estimator. ! If @var{t} exceeds 5, then only 5 test vectors are used. ! ! If the matrix is not explicit, e.g. when estimating the condition ! number of @var{a} given an LU factorization, @code{condest} uses the ! following functions: ! ! @table @var ! @item apply ! @code{A*x} for a matrix @code{x} of size @var{n} by @var{t}. ! @item apply_t ! @code{A'*x} for a matrix @code{x} of size @var{n} by @var{t}. ! @item solve ! @code{A \ b} for a matrix @code{b} of size @var{n} by @var{t}. ! @item solve_t ! @code{A' \ b} for a matrix @code{b} of size @var{n} by @var{t}. @end table ! ! The implicit version requires an explicit dimension @var{n}. ! ! @code{condest} uses a randomized algorithm to approximate ! the 1-norms. ! ! @code{condest} returns the 1-norm condition estimate @var{est} and ! a vector @var{v} satisfying @code{norm (A*v, 1) == norm (A, 1) * norm ! (@var{v}, 1) / @var{est}}. When @var{est} is large, @var{v} is an ! approximate null vector. ! ! References: ! @itemize ! @item Nicholas J. Higham and Françoise Tisseur, "A Block Algorithm ! for Matrix 1-Norm Estimation, with an Application to 1-Norm ! Pseudospectra." SIMAX vol 21, no 4, pp 1185-1201. ! @url{http://dx.doi.org/10.1137/S0895479899356080} ! @item Nicholas J. Higham and Françoise Tisseur, "A Block Algorithm ! for Matrix 1-Norm Estimation, with an Application to 1-Norm ! Pseudospectra." @url{http://citeseer.ist.psu.edu/223007.html} ! @end itemize ! ! @seealso{norm, cond, onenormest} ! @end deftypefn ! rank -*- texinfo -*- ! @deftypefn {Function File} {} rank (@var{a}, @var{tol}) ! Compute the rank of @var{a}, using the singular value decomposition. ! The rank is taken to be the number of singular values of @var{a} that ! are greater than the specified tolerance @var{tol}. If the second ! argument is omitted, it is taken to be @example ! tol = max (size (@var{a})) * sigma(1) * eps; @end example @noindent ! where @code{eps} is machine precision and @code{sigma(1)} is the largest ! singular value of @var{a}. @end deftypefn ! trace -*- texinfo -*- ! @deftypefn {Function File} {} trace (@var{a}) ! Compute the trace of @var{a}, @code{sum (diag (@var{a}))}. @end deftypefn ! null -*- texinfo -*- ! @deftypefn {Function File} {} null (@var{a}, @var{tol}) ! Return an orthonormal basis of the null space of @var{a}. ! The dimension of the null space is taken as the number of singular ! values of @var{a} not greater than @var{tol}. If the argument @var{tol} ! is missing, it is computed as @example ! max (size (@var{a})) * max (svd (@var{a})) * eps @end example @end deftypefn ! orth -*- texinfo -*- ! @deftypefn {Function File} {} orth (@var{a}, @var{tol}) ! Return an orthonormal basis of the range space of @var{a}. ! The dimension of the range space is taken as the number of singular ! values of @var{a} greater than @var{tol}. If the argument @var{tol} is ! missing, it is computed as ! @example ! max (size (@var{a})) * max (svd (@var{a})) * eps ! @end example @end deftypefn ! vec -*- texinfo -*- ! @deftypefn {Function File} {} vec (@var{x}) ! Return the vector obtained by stacking the columns of the matrix @var{x} ! one above the other. ! @end deftypefn ! __norm__ ! Undocumented internal function. ! findstr ! -*- texinfo -*- ! @deftypefn {Function File} {} findstr (@var{s}, @var{t}, @var{overlap}) ! Return the vector of all positions in the longer of the two strings ! @var{s} and @var{t} where an occurrence of the shorter of the two starts. ! If the optional argument @var{overlap} is nonzero, the returned vector ! can include overlapping positions (this is the default). For example, @example ! findstr ("ababab", "a") ! @result{} [ 1, 3, 5 ] ! findstr ("abababa", "aba", 0) ! @result{} [ 1, 5 ] @end example @end deftypefn ! strtrunc -*- texinfo -*- ! @deftypefn {Function File} {} strtrunc (@var{s}, @var{n}) ! Truncate the character string @var{s} to length @var{n}. If @var{s} ! is a char matrix, then the number of columns are adjusted. ! ! If @var{s} is a cell array of strings, then the operation is performed ! on its members and the new cell array is returned. @end deftypefn ! bin2dec -*- texinfo -*- ! @deftypefn {Function File} {} bin2dec (@var{s}) ! Return the decimal number corresponding to the binary number stored ! in the string @var{s}. For example, @example ! bin2dec ("1110") ! @result{} 14 @end example ! If @var{s} is a string matrix, returns a column vector of converted ! numbers, one per row of @var{s}. Invalid rows evaluate to NaN. ! @seealso{dec2hex, base2dec, dec2base, hex2dec, dec2bin} ! @end deftypefn ! strcmpi ! -*- texinfo -*- ! @deftypefn {Function File} {} strcmpi (@var{s1}, @var{s2}) ! Ignoring case, return 1 if the character strings @var{s1} and @var{s2} ! are the same, and 0 otherwise. ! If either @var{s1} or @var{s2} is a cell array of strings, then an array ! of the same size is returned, containing the values described above for ! every member of the cell array. The other argument may also be a cell ! array of strings (of the same size or with only one element), char matrix ! or character string. ! ! @strong{Caution:} For compatibility with @sc{Matlab}, Octave's strcmpi ! function returns 1 if the character strings are equal, and 0 otherwise. ! This is just the opposite of the corresponding C library function. ! @seealso{strcmp, strncmp, strncmpi} @end deftypefn ! isletter -*- texinfo -*- ! @deftypefn {Function File} {} isletter (@var{s}) ! Returns true if @var{s} is a letter false otherwise. ! @seealso{isalpha} @end deftypefn ! strvcat -*- texinfo -*- ! @deftypefn {Function File} {} strvcat (@var{s_1}, @dots{}, @var{s_n}) ! Return a matrix containing the strings (and cell-strings) ! @var{s_1}, @dots{}, @var{s_n} as ! its rows. Each string is padded with blanks in order to form a valid ! matrix. Unlike @var{str2mat}, empty strings are ignored. ! @seealso{strcat, str2mat} @end deftypefn ! str2mat -*- texinfo -*- ! @deftypefn {Function File} {} str2mat (@var{s_1}, @dots{}, @var{s_n}) ! Return a matrix containing the strings @var{s_1}, @dots{}, @var{s_n} as ! its rows. Each string is padded with blanks in order to form a valid ! matrix. ! ! This function is modelled after @sc{Matlab}. In Octave, you can create ! a matrix of strings by @code{[@var{s_1}; @dots{}; @var{s_n}]} even if ! the strings are not all the same length. @end deftypefn ! upper -*- texinfo -*- ! @deftypefn {Function File} {} upper (@var{s}) ! Transform all letters in the character string (or cell array of ! character strings) @var{s} to upper case. ! @seealso{lower, tolower, toupper} @end deftypefn ! mat2str -*- texinfo -*- ! @deftypefn {Function File} {@var{s} =} mat2str (@var{x}, @var{n}) ! @deftypefnx {Function File} {@var{s} =} mat2str (@dots{}, 'class') ! ! Format real/complex numerical matrices as strings. This function ! returns values that are suitable for the use of the @code{eval} ! function. ! ! The precision of the values is given by @var{n}. If @var{n} is a ! scalar then both real and imaginary parts of the matrix are printed ! to the same precision. Otherwise @code{@var{n} (1)} defines the ! precision of the real part and @code{@var{n} (2)} defines the ! precision of the imaginary part. The default for @var{n} is 17. ! ! If the argument 'class' is given, then the class of @var{x} is ! included in the string in such a way that the eval will result in the ! construction of a matrix of the same class. @example @group ! mat2str( [ -1/3 + i/7; 1/3 - i/7 ], [4 2] ) ! @result{} '[-0.3333+0.14i;0.3333-0.14i]' ! mat2str( [ -1/3 +i/7; 1/3 -i/7 ], [4 2] ) ! @result{} '[-0.3333+0i,0+0.14i;0.3333+0i,-0-0.14i]' ! mat2str( int16([1 -1]), 'class') ! @result{} 'int16([1,-1])' @end group @end example ! @seealso{sprintf, int2str} @end deftypefn ! base2dec -*- texinfo -*- ! @deftypefn {Function File} {} base2dec (@var{s}, @var{b}) ! Convert @var{s} from a string of digits of base @var{b} into an ! integer. ! @example ! base2dec ("11120", 3) ! @result{} 123 ! @end example ! If @var{s} is a matrix, returns a column vector with one value per ! row of @var{s}. If a row contains invalid symbols then the ! corresponding value will be NaN. Rows are right-justified before ! converting so that trailing spaces are ignored. ! If @var{b} is a string, the characters of @var{b} are used as the ! symbols for the digits of @var{s}. Space (' ') may not be used as a ! symbol. @example ! base2dec ("yyyzx", "xyz") ! @result{} 123 @end example ! @seealso{dec2base, dec2bin, bin2dec, hex2dec, dec2hex} @end deftypefn ! strmatch -*- texinfo -*- ! @deftypefn {Function File} {} strmatch (@var{s}, @var{a}, "exact") ! Return indices of entries of @var{a} that match the string @var{s}. ! The second argument @var{a} may be a string matrix or a cell array of ! strings. If the third argument @code{"exact"} is not given, then ! @var{s} only needs to match @var{a} up to the length of @var{s}. Nul ! characters match blanks. Results are returned as a column vector. @end deftypefn ! strncmpi -*- texinfo -*- ! @deftypefn {Function File} {} strncmpi (@var{s1}, @var{s2}, @var{n}) ! Ignoring case, return 1 if the first @var{n} characters of character ! strings @var{s1} and @var{s2} are the same, and 0 otherwise. ! ! If either @var{s1} or @var{s2} is a cell array of strings, then an array ! of the same size is returned, containing the values described above for ! every member of the cell array. The other argument may also be a cell ! array of strings (of the same size or with only one element), char matrix ! or character string. ! ! @strong{Caution:} For compatibility with @sc{Matlab}, Octave's strncmpi ! function returns 1 if the character strings are equal, and 0 otherwise. ! This is just the opposite of the corresponding C library function. ! @seealso{strcmp, strcmpi, strncmp} @end deftypefn ! strfind -*- texinfo -*- ! @deftypefn {Function File} {@var{idx} =} strfind (@var{str}, @var{pattern}) ! @deftypefnx {Function File} {@var{idx} =} strfind (@var{cellstr}, @var{pattern}) ! Search for @var{pattern} in the string @var{str} and return the ! starting index of every such occurrence in the vector @var{idx}. ! If there is no such occurrence, or if @var{pattern} is longer ! than @var{str}, then @var{idx} is the empty array @code{[]}. ! If the cell array of strings @var{cellstr} is specified instead of the ! string @var{str}, then @var{idx} is a cell array of vectors, as specified ! above. ! @seealso{findstr, strmatch, strcmp, strncmp, strcmpi, strncmpi} ! @end deftypefn ! strtok ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{tok}, @var{rem}] =} strtok (@var{str}, @var{delim}) ! Find all characters up to but not including the first character which ! is in the string delim. If @var{rem} is requested, it contains the ! remainder of the string, starting at the first deliminator. Leading ! delimiters are ignored. If @var{delim} is not specified, space is assumed. @end deftypefn ! strrep -*- texinfo -*- ! @deftypefn {Function File} {} strrep (@var{s}, @var{x}, @var{y}) ! Replaces all occurrences of the substring @var{x} of the string @var{s} ! with the string @var{y} and returns the result. For example, ! ! @example ! strrep ("This is a test string", "is", "&%$") ! @result{} "Th&%$ &%$ a test string" ! @end example @end deftypefn ! dec2base -*- texinfo -*- ! @deftypefn {Function File} {} dec2base (@var{n}, @var{b}, @var{len}) ! Return a string of symbols in base @var{b} corresponding to ! the nonnegative integer @var{n}. @example ! dec2base (123, 3) ! @result{} "11120" @end example ! If @var{n} is a vector, return a string matrix with one row per value, ! padded with leading zeros to the width of the largest value. ! ! If @var{b} is a string then the characters of @var{b} are used as ! the symbols for the digits of @var{n}. Space (' ') may not be used ! as a symbol. ! ! @example ! dec2base (123, "aei") ! @result{} "eeeia" ! @end example ! ! The optional third argument, @var{len}, specifies the minimum ! number of digits in the result. ! @seealso{base2dec, dec2bin, bin2dec, hex2dec, dec2hex} @end deftypefn ! dec2hex -*- texinfo -*- ! @deftypefn {Function File} {} dec2hex (@var{n}, @var{len}) ! Return the hexadecimal string corresponding to the nonnegative ! integer @var{n}. For example, ! @example ! dec2hex (2748) ! @result{} "ABC" ! @end example ! If @var{n} is a vector, returns a string matrix, one row per value, ! padded with leading zeros to the width of the largest value. ! The optional second argument, @var{len}, specifies the minimum ! number of digits in the result. ! @seealso{hex2dec, dec2base, base2dec, bin2dec, dec2bin} ! @end deftypefn ! str2double ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{num}, @var{status}, @var{strarray}] =} str2double (@var{str}, @var{cdelim}, @var{rdelim}, @var{ddelim}) ! Convert strings into numeric values. ! @code{str2double} can replace @code{str2num}, but avoids the use of ! @code{eval} on unknown data. ! @var{str} can be the form @samp{[+-]d[.]dd[[eE][+-]ddd]} in which ! @samp{d} can be any of digit from 0 to 9, and @samp{[]} indicate ! optional elements. ! @var{num} is the corresponding numeric value. If the conversion ! fails, status is -1 and @var{num} is NaN. ! @var{status} is 0 if the conversion was successful and -1 otherwise. ! @var{strarray} is a cell array of strings. ! Elements which are not defined or not valid return NaN and the ! @var{status} becomes -1. ! If @var{str} is a character array or a cell array of strings, then ! @var{num} and @var{status} return matrices of appropriate size. ! @var{str} can also contain multiple elements separated by row and ! column delimiters (@var{cdelim} and @var{rdelim}). ! The parameters @var{cdelim}, @var{rdelim}, and @var{ddelim} are ! optional column, row, and decimal delimiters. ! The default row-delimiters are newline, carriage return and semicolon ! (ASCII 10, 13 and 59). The default column-delimiters are tab, space ! and comma (ASCII 9, 32, and 44). The default decimal delimiter is ! @samp{.} (ASCII 46). ! @var{cdelim}, @var{rdelim}, and @var{ddelim} must contain only nul, ! newline, carriage return, semicolon, colon, slash, tab, space, comma, ! or @samp{()[]@{@}} (ASCII 0, 9, 10, 11, 12, 13, 14, 32, 33, 34, 40, ! 41, 44, 47, 58, 59, 91, 93, 123, 124, 125). ! Examples: @example ! str2double ("-.1e-5") ! @result{} -1.0000e-006 ! str2double (".314e1, 44.44e-1, .7; -1e+1") ! @result{} ! 3.1400 4.4440 0.7000 ! -10.0000 NaN NaN ! ! line = "200, 300, NaN, -inf, yes, no, 999, maybe, NaN"; ! [x, status] = str2double (line) ! @result{} x = ! 200 300 NaN -Inf NaN NaN 999 NaN NaN ! @result{} status = ! 0 0 0 0 -1 -1 0 -1 0 ! @end example @end deftypefn ! strtrim -*- texinfo -*- ! @deftypefn {Function File} {} deblank (@var{s}) ! Remove leading and trailing blanks and nulls from @var{s}. If ! @var{s} is a matrix, @var{deblank} trims each row to the length of ! longest string. If @var{s} is a cell array, operate recursively on ! each element of the cell array. @end deftypefn ! substr -*- texinfo -*- ! @deftypefn {Function File} {} substr (@var{s}, @var{offset}, @var{len}) ! Return the substring of @var{s} which starts at character number ! @var{offset} and is @var{len} characters long. ! ! If @var{offset} is negative, extraction starts that far from the end of ! the string. If @var{len} is omitted, the substring extends to the end ! of S. ! ! For example, ! ! @example ! substr ("This is a test string", 6, 9) ! @result{} "is a test" ! @end example ! ! This function is patterned after AWK. You can get the same result by ! @code{@var{s} (@var{offset} : (@var{offset} + @var{len} - 1))}. @end deftypefn ! split -*- texinfo -*- ! @deftypefn {Function File} {} split (@var{s}, @var{t}, @var{n}) ! Divides the string @var{s} into pieces separated by @var{t}, returning ! the result in a string array (padded with blanks to form a valid ! matrix). If the optional input @var{n} is supplied, split @var{s} ! into at most @var{n} different pieces. ! For example, ! @example ! split ("Test string", "t") ! @result{} "Tes " ! " s " ! "ring" ! @end example ! ! @example ! split ("Test string", "t", 2) ! @result{} "Tes " ! " string" ! @end example @end deftypefn ! deblank -*- texinfo -*- ! @deftypefn {Function File} {} deblank (@var{s}) ! Remove trailing blanks and nulls from @var{s}. If @var{s} ! is a matrix, @var{deblank} trims each row to the length of longest ! string. If @var{s} is a cell array, operate recursively on each ! element of the cell array. @end deftypefn ! dec2bin -*- texinfo -*- ! @deftypefn {Function File} {} dec2bin (@var{n}, @var{len}) ! Return a binary number corresponding the nonnegative decimal number ! @var{n}, as a string of ones and zeros. For example, ! @example ! dec2bin (14) ! @result{} "1110" ! @end example ! If @var{n} is a vector, returns a string matrix, one row per value, ! padded with leading zeros to the width of the largest value. ! The optional second argument, @var{len}, specifies the minimum ! number of digits in the result. ! @seealso{bin2dec, dec2base, base2dec, hex2dec, dec2hex} @end deftypefn ! blanks -*- texinfo -*- ! @deftypefn {Function File} {} blanks (@var{n}) ! Return a string of @var{n} blanks. ! @seealso{repmat} @end deftypefn ! lower -*- texinfo -*- ! @deftypefn {Function File} {} lower (@var{s}) ! Transform all letters in the character string (or cell array of ! character strings) @var{s} to lower case. ! @seealso{upper, tolower, toupper} @end deftypefn ! str2num -*- texinfo -*- ! @deftypefn {Function File} {} str2num (@var{s}) ! Convert the string @var{s} to a number. @end deftypefn ! hex2dec -*- texinfo -*- ! @deftypefn {Function File} {} hex2dec (@var{s}) ! Return the integer corresponding to the hexadecimal number stored ! in the string @var{s}. For example, ! @example ! hex2dec ("12B") ! @result{} 299 ! hex2dec ("12b") ! @result{} 299 ! @end example ! ! If @var{s} is a string matrix, returns a column vector of converted ! numbers, one per row of @var{s}. Invalid rows evaluate to NaN. ! @seealso{dec2hex, base2dec, dec2base, bin2dec, dec2bin} @end deftypefn ! strcat -*- texinfo -*- ! @deftypefn {Function File} {} strcat (@var{s1}, @var{s2}, @dots{}) ! Return a string containing all the arguments concatenated. For example, ! ! @example ! @group ! s = [ "ab"; "cde" ]; ! strcat (s, s, s) ! @result{} "ab ab ab " ! "cdecdecde" ! @end group ! @end example @end deftypefn ! index -*- texinfo -*- ! @deftypefn {Function File} {} index (@var{s}, @var{t}) ! @deftypefnx {Function File} {} index (@var{s}, @var{t}, @var{direction}) ! Return the position of the first occurrence of the string @var{t} in the ! string @var{s}, or 0 if no occurrence is found. For example, ! ! @example ! index ("Teststring", "t") ! @result{} 4 ! @end example ! ! If @var{direction} is @samp{"first"}, return the first element found. ! If @var{direction} is @samp{"last"}, return the last element found. ! The @code{rindex} function is equivalent to @code{index} with ! @var{direction} set to @samp{"last"}. ! ! @strong{Caution:} This function does not work for arrays of ! character strings. ! @seealso{find, rindex} @end deftypefn ! strjust -*- texinfo -*- ! @deftypefn {Function File} {} strjust (@var{s}, ["left"|"right"|"center"]) ! Shift the non-blank text of @var{s} to the left, right or center of ! the string. If @var{s} is a string array, justify each string in the ! array. Null characters are replaced by blanks. If no justification ! is specified, then all rows are right-justified. @end deftypefn ! rindex -*- texinfo -*- ! @deftypefn {Function File} {} rindex (@var{s}, @var{t}) ! Return the position of the last occurrence of the character string ! @var{t} in the character string @var{s}, or 0 if no occurrence is ! found. For example, ! ! @example ! rindex ("Teststring", "t") ! @result{} 6 ! @end example ! ! @strong{Caution:} This function does not work for arrays of ! character strings. ! @seealso{find, index} @end deftypefn ! glpk -*- texinfo -*- ! @deftypefn {Function File} {[@var{xopt}, @var{fmin}, @var{status}, @var{extra}] =} glpk (@var{c}, @var{a}, @var{b}, @var{lb}, @var{ub}, @var{ctype}, @var{vartype}, @var{sense}, @var{param}) ! Solve a linear program using the GNU GLPK library. Given three ! arguments, @code{glpk} solves the following standard LP: ! @iftex ! @tex ! $$ ! \min_x C^T x ! $$ ! @end tex ! @end iftex ! @ifnottex @example ! min C'*x @end example ! @end ifnottex ! subject to + @iftex + @tex + $$ + Ax = b \qquad x \geq 0 + $$ + @end tex + @end iftex + @ifnottex @example ! @group ! A*x = b ! x >= 0 ! @end group @end example + @end ifnottex ! but may also solve problems of the form @iftex @tex ! $$ ! [ \min_x | \max_x ] C^T x ! $$ @end tex @end iftex ! @ifnottex ! @example ! [ min | max ] C'*x ! @end example ! @end ifnottex ! ! subject to @iftex @tex $$ ! Ax [ = | \leq | \geq ] b \qquad LB \leq x \leq UB $$ @end tex @end iftex ! @ifnottex @example @group ! A*x [ "=" | "<=" | ">=" ] b ! x >= LB ! x <= UB @end group @end example ! @end ifnottex ! Input arguments: ! @table @var ! @item c ! A column array containing the objective function coefficients. ! @item a ! A matrix containing the constraints coefficients. ! @item b ! A column array containing the right-hand side value for each constraint ! in the constraint matrix. ! @item lb ! An array containing the lower bound on each of the variables. If ! @var{lb} is not supplied, the default lower bound for the variables is ! zero. ! @item ub ! An array containing the upper bound on each of the variables. If ! @var{ub} is not supplied, the default upper bound is assumed to be ! infinite. ! @item ctype ! An array of characters containing the sense of each constraint in the ! constraint matrix. Each element of the array may be one of the ! following values ! @table @code ! @item "F" ! A free (unbounded) constraint (the constraint is ignored). ! @item "U" ! An inequality constraint with an upper bound (@code{A(i,:)*x <= b(i)}). ! @item "S" ! An equality constraint (@code{A(i,:)*x = b(i)}). ! @item "L" ! An inequality with a lower bound (@code{A(i,:)*x >= b(i)}). ! @item "D" ! An inequality constraint with both upper and lower bounds ! (@code{A(i,:)*x >= -b(i)} @emph{and} (@code{A(i,:)*x <= b(i)}). ! @end table ! @item vartype ! A column array containing the types of the variables. ! @table @code ! @item "C" ! A continuous variable. ! @item "I" ! An integer variable. ! @end table ! @item sense ! If @var{sense} is 1, the problem is a minimization. If @var{sense} is ! -1, the problem is a maximization. The default value is 1. ! @item param ! A structure containing the following parameters used to define the ! behavior of solver. Missing elements in the structure take on default ! values, so you only need to set the elements that you wish to change ! from the default. ! Integer parameters: ! @table @code ! @item msglev (@code{LPX_K_MSGLEV}, default: 1) ! Level of messages output by solver routines: ! @table @asis ! @item 0 ! No output. ! @item 1 ! Error messages only. ! @item 2 ! Normal output . ! @item 3 ! Full output (includes informational messages). ! @end table ! @item scale (@code{LPX_K_SCALE}, default: 1) ! Scaling option: ! @table @asis ! @item 0 ! No scaling. ! @item 1 ! Equilibration scaling. ! @item 2 ! Geometric mean scaling, then equilibration scaling. ! @end table ! @item dual (@code{LPX_K_DUAL}, default: 0) ! Dual simplex option: ! @table @asis ! @item 0 ! Do not use the dual simplex. ! @item 1 ! If initial basic solution is dual feasible, use the dual simplex. ! @end table ! @item price (@code{LPX_K_PRICE}, default: 1) ! Pricing option (for both primal and dual simplex): ! @table @asis ! @item 0 ! Textbook pricing. ! @item 1 ! Steepest edge pricing. ! @end table ! ! @item round (@code{LPX_K_ROUND}, default: 0) ! Solution rounding option: ! @table @asis ! @item 0 ! Report all primal and dual values "as is". ! @item 1 ! Replace tiny primal and dual values by exact zero. ! @end table ! @item itlim (@code{LPX_K_ITLIM}, default: -1) ! Simplex iterations limit. If this value is positive, it is decreased by ! one each time when one simplex iteration has been performed, and ! reaching zero value signals the solver to stop the search. Negative ! value means no iterations limit. ! @item itcnt (@code{LPX_K_OUTFRQ}, default: 200) ! Output frequency, in iterations. This parameter specifies how ! frequently the solver sends information about the solution to the ! standard output. ! @item branch (@code{LPX_K_BRANCH}, default: 2) ! Branching heuristic option (for MIP only): ! @table @asis ! @item 0 ! Branch on the first variable. ! @item 1 ! Branch on the last variable. ! @item 2 ! Branch using a heuristic by Driebeck and Tomlin. ! @end table ! @item btrack (@code{LPX_K_BTRACK}, default: 2) ! Backtracking heuristic option (for MIP only): ! @table @asis ! @item 0 ! Depth first search. ! @item 1 ! Breadth first search. ! @item 2 ! Backtrack using the best projection heuristic. ! @end table ! @item presol (@code{LPX_K_PRESOL}, default: 1) ! If this flag is set, the routine lpx_simplex solves the problem using ! the built-in LP presolver. Otherwise the LP presolver is not used. ! @item lpsolver (default: 1) ! Select which solver to use. If the problem is a MIP problem this flag ! will be ignored. ! @table @asis ! @item 1 ! Revised simplex method. ! @item 2 ! Interior point method. ! @end table ! @item save (default: 0) ! If this parameter is nonzero, save a copy of the problem in ! CPLEX LP format to the file @file{"outpb.lp"}. There is currently no ! way to change the name of the output file. ! @end table ! Real parameters: ! @table @code ! @item relax (@code{LPX_K_RELAX}, default: 0.07) ! Relaxation parameter used in the ratio test. If it is zero, the textbook ! ratio test is used. If it is non-zero (should be positive), Harris' ! two-pass ratio test is used. In the latter case on the first pass of the ! ratio test basic variables (in the case of primal simplex) or reduced ! costs of non-basic variables (in the case of dual simplex) are allowed ! to slightly violate their bounds, but not more than ! @code{relax*tolbnd} or @code{relax*toldj (thus, @code{relax} is a ! percentage of @code{tolbnd} or @code{toldj}}. ! @item tolbnd (@code{LPX_K_TOLBND}, default: 10e-7) ! Relative tolerance used to check if the current basic solution is primal ! feasible. It is not recommended that you change this parameter unless you ! have a detailed understanding of its purpose. ! @item toldj (@code{LPX_K_TOLDJ}, default: 10e-7) ! Absolute tolerance used to check if the current basic solution is dual ! feasible. It is not recommended that you change this parameter unless you ! have a detailed understanding of its purpose. ! @item tolpiv (@code{LPX_K_TOLPIV}, default: 10e-9) ! Relative tolerance used to choose eligible pivotal elements of the ! simplex table. It is not recommended that you change this parameter unless you ! have a detailed understanding of its purpose. ! @item objll (@code{LPX_K_OBJLL}, default: -DBL_MAX) ! Lower limit of the objective function. If on the phase II the objective ! function reaches this limit and continues decreasing, the solver stops ! the search. This parameter is used in the dual simplex method only. ! @item objul (@code{LPX_K_OBJUL}, default: +DBL_MAX) ! Upper limit of the objective function. If on the phase II the objective ! function reaches this limit and continues increasing, the solver stops ! the search. This parameter is used in the dual simplex only. ! @item tmlim (@code{LPX_K_TMLIM}, default: -1.0) ! Searching time limit, in seconds. If this value is positive, it is ! decreased each time when one simplex iteration has been performed by the ! amount of time spent for the iteration, and reaching zero value signals ! the solver to stop the search. Negative value means no time limit. ! @item outdly (@code{LPX_K_OUTDLY}, default: 0.0) ! Output delay, in seconds. This parameter specifies how long the solver ! should delay sending information about the solution to the standard ! output. Non-positive value means no delay. ! @item tolint (@code{LPX_K_TOLINT}, default: 10e-5) ! Relative tolerance used to check if the current basic solution is integer ! feasible. It is not recommended that you change this parameter unless ! you have a detailed understanding of its purpose. ! @item tolobj (@code{LPX_K_TOLOBJ}, default: 10e-7) ! Relative tolerance used to check if the value of the objective function ! is not better than in the best known integer feasible solution. It is ! not recommended that you change this parameter unless you have a ! detailed understanding of its purpose. ! @end table ! @end table ! Output values: ! @table @var ! @item xopt ! The optimizer (the value of the decision variables at the optimum). ! @item fopt ! The optimum value of the objective function. ! @item status ! Status of the optimization. ! Simplex Method: ! @table @asis ! @item 180 (@code{LPX_OPT}) ! Solution is optimal. ! @item 181 (@code{LPX_FEAS}) ! Solution is feasible. ! @item 182 (@code{LPX_INFEAS}) ! Solution is infeasible. ! @item 183 (@code{LPX_NOFEAS}) ! Problem has no feasible solution. ! @item 184 (@code{LPX_UNBND}) ! Problem has no unbounded solution. ! @item 185 (@code{LPX_UNDEF}) ! Solution status is undefined. ! @end table ! Interior Point Method: ! @table @asis ! @item 150 (@code{LPX_T_UNDEF}) ! The interior point method is undefined. ! @item 151 (@code{LPX_T_OPT}) ! The interior point method is optimal. ! @end table ! Mixed Integer Method: ! @table @asis ! @item 170 (@code{LPX_I_UNDEF}) ! The status is undefined. ! @item 171 (@code{LPX_I_OPT}) ! The solution is integer optimal. ! @item 172 (@code{LPX_I_FEAS}) ! Solution integer feasible but its optimality has not been proven ! @item 173 (@code{LPX_I_NOFEAS}) ! No integer feasible solution. ! @end table ! @noindent ! If an error occurs, @var{status} will contain one of the following ! codes: ! ! @table @asis ! @item 204 (@code{LPX_E_FAULT}) ! Unable to start the search. ! @item 205 (@code{LPX_E_OBJLL}) ! Objective function lower limit reached. ! @item 206 (@code{LPX_E_OBJUL}) ! Objective function upper limit reached. ! @item 207 (@code{LPX_E_ITLIM}) ! Iterations limit exhausted. ! @item 208 (@code{LPX_E_TMLIM}) ! Time limit exhausted. ! @item 209 (@code{LPX_E_NOFEAS}) ! No feasible solution. ! @item 210 (@code{LPX_E_INSTAB}) ! Numerical instability. ! @item 211 (@code{LPX_E_SING}) ! Problems with basis matrix. ! @item 212 (@code{LPX_E_NOCONV}) ! No convergence (interior). ! @item 213 (@code{LPX_E_NOPFS}) ! No primal feasible solution (LP presolver). ! @item 214 (@code{LPX_E_NODFS}) ! No dual feasible solution (LP presolver). ! @end table ! @item extra ! A data structure containing the following fields: ! @table @code ! @item lambda ! Dual variables. ! @item redcosts ! Reduced Costs. ! @item time ! Time (in seconds) used for solving LP/MIP problem. ! @item mem ! Memory (in bytes) used for solving LP/MIP problem (this is not ! available if the version of GLPK is 4.15 or later). ! @end table ! @end table ! ! Example: ! ! @example ! @group ! c = [10, 6, 4]'; ! a = [ 1, 1, 1; ! 10, 4, 5; ! 2, 2, 6]; ! b = [100, 600, 300]'; ! lb = [0, 0, 0]'; ! ub = []; ! ctype = "UUU"; ! vartype = "CCC"; ! s = -1; ! ! param.msglev = 1; ! param.itlim = 100; ! ! [xmin, fmin, status, extra] = ... ! glpk (c, a, b, lb, ub, ctype, vartype, s, param); ! @end group ! @end example @end deftypefn ! __fsolve_defopts__ ! Undocumented internal function. ! glpkmex -*- texinfo -*- ! @deftypefn {Function File} {[@var{xopt}, @var{fmin}, @var{status}, @var{extra}] =} glpkmex (@var{sense}, @var{c}, @var{a}, @var{b}, @var{ctype}, @var{lb}, @var{ub}, @var{vartype}, @var{param}, @var{lpsolver}, @var{save_pb}) ! This function is provided for compatibility with the old @sc{Matlab} ! interface to the GNU GLPK library. For Octave code, you should use ! the @code{glpk} function instead. @end deftypefn ! qp -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{obj}, @var{info}, @var{lambda}] =} qp (@var{x0}, @var{H}, @var{q}, @var{A}, @var{b}, @var{lb}, @var{ub}, @var{A_lb}, @var{A_in}, @var{A_ub}) ! Solve the quadratic program ! @iftex ! @tex ! $$ ! \min_x {1 \over 2} x^T H x + x^T q ! $$ ! @end tex ! @end iftex ! @ifnottex @example ! min 0.5 x'*H*x + x'*q ! x @end example ! @end ifnottex ! subject to ! @iftex ! @tex ! $$ ! Ax = b \qquad lb \leq x \leq ub \qquad A_{lb} \leq A_{in} \leq A_{ub} ! $$ ! @end tex ! @end iftex ! @ifnottex @example ! A*x = b ! lb <= x <= ub ! A_lb <= A_in*x <= A_ub @end example + @end ifnottex ! @noindent ! using a null-space active-set method. ! ! Any bound (@var{A}, @var{b}, @var{lb}, @var{ub}, @var{A_lb}, ! @var{A_ub}) may be set to the empty matrix (@code{[]}) if not ! present. If the initial guess is feasible the algorithm is faster. ! ! The value @var{info} is a structure with the following fields: ! @table @code ! @item solveiter ! The number of iterations required to find the solution. ! @item info ! An integer indicating the status of the solution, as follows: ! @table @asis ! @item 0 ! The problem is feasible and convex. Global solution found. ! @item 1 ! The problem is not convex. Local solution found. ! @item 2 ! The problem is not convex and unbounded. ! @item 3 ! Maximum number of iterations reached. ! @item 6 ! The problem is infeasible. ! @end table ! @end table @end deftypefn ! sqp -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{obj}, @var{info}, @var{iter}, @var{nf}, @var{lambda}] =} sqp (@var{x}, @var{phi}, @var{g}, @var{h}, @var{lb}, @var{ub}, @var{maxiter}, @var{tolerance}) ! Solve the nonlinear program ! @iftex ! @tex ! $$ ! \min_x \phi (x) ! $$ ! @end tex ! @end iftex ! @ifnottex @example ! min phi (x) ! x @end example ! @end ifnottex ! subject to ! @iftex ! @tex ! $$ ! g(x) = 0 \qquad h(x) \geq 0 \qquad lb \leq x \leq ub ! $$ ! @end tex ! @end iftex ! @ifnottex @example ! g(x) = 0 ! h(x) >= 0 ! lb <= x <= ub @end example + @end ifnottex ! @noindent ! using a successive quadratic programming method. ! The first argument is the initial guess for the vector @var{x}. ! ! The second argument is a function handle pointing to the objective ! function. The objective function must be of the form @example ! y = phi (x) @end example ! @noindent ! in which @var{x} is a vector and @var{y} is a scalar. ! The second argument may also be a 2- or 3-element cell array of ! function handles. The first element should point to the objective ! function, the second should point to a function that computes the ! gradient of the objective function, and the third should point to a ! function to compute the hessian of the objective function. If the ! gradient function is not supplied, the gradient is computed by finite ! differences. If the hessian function is not supplied, a BFGS update ! formula is used to approximate the hessian. ! If supplied, the gradient function must be of the form @example ! g = gradient (x) @end example ! @noindent ! in which @var{x} is a vector and @var{g} is a vector. ! If supplied, the hessian function must be of the form @example ! h = hessian (x) ! @end example ! @noindent ! in which @var{x} is a vector and @var{h} is a matrix. ! The third and fourth arguments are function handles pointing to ! functions that compute the equality constraints and the inequality ! constraints, respectively. ! If your problem does not have equality (or inequality) constraints, ! you may pass an empty matrix for @var{cef} (or @var{cif}). ! If supplied, the equality and inequality constraint functions must be ! of the form @example ! r = f (x) @end example ! @noindent ! in which @var{x} is a vector and @var{r} is a vector. ! The third and fourth arguments may also be 2-element cell arrays of ! function handles. The first element should point to the constraint ! function and the second should point to a function that computes the ! gradient of the constraint function: @iftex @tex $$ ! \Bigg( {\partial f(x) \over \partial x_1}, ! {\partial f(x) \over \partial x_2}, \ldots, ! {\partial f(x) \over \partial x_N} \Bigg)^T $$ @end tex @end iftex @ifnottex @example ! [ d f(x) d f(x) d f(x) ] ! transpose ( [ ------ ----- ... ------ ] ) ! [ dx_1 dx_2 dx_N ] @end example @end ifnottex ! The fifth and sixth arguments are vectors containing lower and upper bounds ! on @var{x}. These must be consistent with equality and inequality ! constraints @var{g} and @var{h}. If the bounds are not specified, or are ! empty, they are set to -@var{realmax} and @var{realmax} by default. ! The seventh argument is max. number of iterations. If not specified, ! the default value is 100. ! The eighth argument is tolerance for stopping criteria. If not specified, ! the default value is @var{eps}. ! ! Here is an example of calling @code{sqp}: ! ! @example ! function r = g (x) ! r = [ sumsq(x)-10; ! x(2)*x(3)-5*x(4)*x(5); ! x(1)^3+x(2)^3+1 ]; ! endfunction ! ! function obj = phi (x) ! obj = exp(prod(x)) - 0.5*(x(1)^3+x(2)^3+1)^2; ! endfunction ! ! x0 = [-1.8; 1.7; 1.9; -0.8; -0.8]; ! ! [x, obj, info, iter, nf, lambda] = sqp (x0, @@phi, @@g, []) ! ! x = ! ! -1.71714 ! 1.59571 ! 1.82725 ! -0.76364 ! -0.76364 ! ! obj = 0.053950 ! info = 101 ! iter = 8 ! nf = 10 ! lambda = ! ! -0.0401627 ! 0.0379578 ! -0.0052227 ! @end example ! ! The value returned in @var{info} may be one of the following: ! @table @asis ! @item 101 ! The algorithm terminated because the norm of the last step was less ! than @code{tol * norm (x))} (the value of tol is currently fixed at ! @code{sqrt (eps)}---edit @file{sqp.m} to modify this value. ! @item 102 ! The BFGS update failed. ! @item 103 ! The maximum number of iterations was reached (the maximum number of ! allowed iterations is currently fixed at 100---edit @file{sqp.m} to ! increase this value). ! @end table ! @seealso{qp} ! @end deftypefn ! optimset ! -*- texinfo -*- ! @deftypefn {Function File} {} optimset () ! @deftypefnx {Function File} {} optimset (@var{par}, @var{val}, @dots{}) ! @deftypefnx {Function File} {} optimset (@var{old}, @var{par}, @var{val}, @dots{}) ! @deftypefnx {Function File} {} optimset (@var{old}, @var{new}) ! Create options struct for optimization functions. ! @end deftypefn ! acoth ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} acoth (@var{x}) ! Compute the inverse hyperbolic cotangent of each element of @var{x}. ! @end deftypefn ! acotd ! -*- texinfo -*- ! @deftypefn {Function File} {} acotd (@var{x}) ! Compute the inverse cotangent of an angle in degrees. ! @seealso{atan, tand} ! @end deftypefn ! tand ! -*- texinfo -*- ! @deftypefn {Function File} {} tand (@var{x}) ! Compute the tangent of an angle in degrees. Returns zero for elements ! of for which @code{@var{x}/180} is an integer and @code{Inf} for elements ! where @code{(@var{x}-90)/180} is an integer. ! @seealso{tan, cosd, sind, acosd, asind, atand} ! @end deftypefn ! acot ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} acot (@var{x}) ! Compute the inverse cotangent of each element of @var{x}. ! @end deftypefn ! coth ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} coth (@var{x}) ! Compute the hyperbolic cotangent of each element of @var{x}. ! @end deftypefn ! sec ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} sec (@var{x}) ! Compute the secant of each element of @var{x}. ! @end deftypefn ! atand ! -*- texinfo -*- ! @deftypefn {Function File} {} atand (@var{x}) ! Compute the inverse tangent of an angle in degrees. ! @seealso{acot, tand} ! @end deftypefn ! lcm ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} lcm (@var{x}, @dots{}) ! Compute the least common multiple of the elements of @var{x}, or ! the list of all the arguments. For example, ! ! @example ! lcm (a1, ..., ak) ! @end example ! ! @noindent ! is the same as ! ! @example ! lcm ([a1, ..., ak]). ! @end example ! ! All elements must be the same size or scalar. ! @seealso{gcd, min, max, ceil, floor} ! @end deftypefn ! secd ! -*- texinfo -*- ! @deftypefn {Function File} {} secd (@var{x}) ! Compute the secant of an angle in degrees. ! @seealso{sec, cscd, sind, cosd} ! @end deftypefn ! cotd ! -*- texinfo -*- ! @deftypefn {Function File} {} cotd (@var{x}) ! Compute the cotangent of an angle in degrees. ! @seealso{cot, tand} ! @end deftypefn ! csch ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} csch (@var{x}) ! Compute the hyperbolic cosecant of each element of @var{x}. ! @end deftypefn ! asind ! -*- texinfo -*- ! @deftypefn {Function File} {} asind (@var{x}) ! Compute the inverse sine of an angle in degrees. ! @seealso{asin, sind, acosd} ! @end deftypefn ! asec ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} asec (@var{x}) ! Compute the inverse secant of each element of @var{x}. ! @end deftypefn ! acosd ! -*- texinfo -*- ! @deftypefn {Function File} {} acosd (@var{x}) ! Compute the inverse cosine of an angle in degrees. ! @seealso{acos, cosd, asecd} ! @end deftypefn ! acsc ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} acsc (@var{x}) ! Compute the inverse cosecant of each element of @var{x}. ! @end deftypefn ! csc ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} csc (@var{x}) ! Compute the cosecant of each element of @var{x}. ! @end deftypefn ! cot ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} cot (@var{x}) ! Compute the cotangent of each element of @var{x}. ! @end deftypefn ! sind ! -*- texinfo -*- ! @deftypefn {Function File} {} sind (@var{x}) ! Compute the sine of each element of @var{x}. Returns zero in elements ! for which @code{@var{x}/180} is an integer. ! @seealso{sin, cosd, tand, acosd, asind, atand} ! @end deftypefn ! sech ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} sech (@var{x}) ! Compute the hyperbolic secant of each element of @var{x}. ! @end deftypefn ! asech ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} asech (@var{x}) ! Compute the inverse hyperbolic secant of each element of @var{x}. ! @end deftypefn ! asecd ! -*- texinfo -*- ! @deftypefn {Function File} {} asecd (@var{x}) ! Compute inverse secant in degrees. ! @seealso{asec, secd, acscd} ! @end deftypefn ! cosd ! -*- texinfo -*- ! @deftypefn {Function File} {} cosd (@var{x}) ! Compute the cosine of an angle in degrees. Returns zero in elements ! for which @code{(@var{x}-90)/180} is an integer. ! @seealso{cos, sind, tand, acosd, asind, atand} ! @end deftypefn ! cscd ! -*- texinfo -*- ! @deftypefn {Function File} {} cscd (@var{x}) ! Compute the cosecant of an angle in degrees. ! @seealso{csc, secd, sind, cosd} ! @end deftypefn ! acscd ! -*- texinfo -*- ! @deftypefn {Function File} {} acscd (@var{x}) ! Compute the inverse cosecant of an angle in degrees. ! @seealso{acsc, cscd, asecd} ! @end deftypefn ! acsch ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} acsch (@var{x}) ! Compute the inverse hyperbolic cosecant of each element of @var{x}. ! @end deftypefn ! etreeplot ! -*- texinfo -*- ! @deftypefn {Function File} {} etreeplot (@var{tree}) ! @deftypefnx {Function File} {} etreeplot (@var{tree}, @var{node_style}, @var{edge_style}) ! Plot the elimination tree of the matrix @var{s} or ! @code{@var{s}+@var{s}'} if @var{s} in non-symmetric. The optional ! parameters @var{line_style} and @var{edge_style} define the output ! style. ! @seealso{treeplot, gplot} ! @end deftypefn ! gplot ! -*- texinfo -*- ! @deftypefn {Function File} {} gplot (@var{a}, @var{xy}) ! @deftypefnx {Function File} {} gplot (@var{a}, @var{xy}, @var{line_style}) ! @deftypefnx {Function File} {[@var{x}, @var{y}] =} gplot (@var{a}, @var{xy}) ! Plot a graph defined by @var{A} and @var{xy} in the graph theory ! sense. @var{A} is the adjacency matrix of the array to be plotted ! and @var{xy} is an @var{n}-by-2 matrix containing the coordinates of ! the nodes of the graph. ! ! The optional parameter @var{line_style} defines the output style for ! the plot. Called with no output arguments the graph is plotted ! directly. Otherwise, return the coordinates of the plot in @var{x} ! and @var{y}. ! @seealso{treeplot, etreeplot, spy} ! @end deftypefn ! spstats ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{count}, @var{mean}, @var{var}] =} spstats (@var{s}) ! @deftypefnx {Function File} {[@var{count}, @var{mean}, @var{var}] =} spstats (@var{s}, @var{j}) ! Return the stats for the non-zero elements of the sparse matrix @var{s}. ! @var{count} is the number of non-zeros in each column, @var{mean} ! is the mean of the non-zeros in each column, and @var{var} is the ! variance of the non-zeros in each column. ! ! Called with two input arguments, if @var{s} is the data and @var{j} ! is the bin number for the data, compute the stats for each bin. In ! this case, bins can contain data values of zero, whereas with ! @code{spstats (@var{s})} the zeros may disappear. ! @end deftypefn ! treeplot ! -*- texinfo -*- ! @deftypefn {Function File} {} treeplot (@var{Tree}) ! @deftypefnx {Function File} {} treeplot (@var{Tree}, @var{LineStyle}, @var{EdgeStyle}) ! Produces a graph of tree or forest. The first argument is vector of ! predecessors, optional parameters @var{LineStyle} and @var{EdgeStyle} ! define the output style. The complexity of the algorithm is O(n) in ! terms of is time and memory requirements. ! @seealso{etreeplot, gplot} ! @end deftypefn ! spones ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} spones (@var{x}) ! Replace the non-zero entries of @var{x} with ones. This creates a ! sparse matrix with the same structure as @var{x}. ! @end deftypefn ! nonzeros ! -*- texinfo -*- ! @deftypefn {Function File} {} nonzeros (@var{s}) ! Returns a vector of the non-zero values of the sparse matrix @var{s}. ! @end deftypefn ! sphcat ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} sphcat (@var{a1}, @var{a2}, @dots{}, @var{aN}) ! Return the horizontal concatenation of sparse matrices. This function ! is obselete and @code{horzcat} should be used. ! @seealso {spvcat, vertcat, horzcat, cat} ! @end deftypefn ! sprandsym ! -*- texinfo -*- ! @deftypefn {Function File} {} sprandsym (@var{n}, @var{d}) ! @deftypefnx {Function File} {} sprandsym (@var{s}) ! Generate a symmetric random sparse matrix. The size of the matrix will be ! @var{n} by @var{n}, with a density of values given by @var{d}. ! @var{d} should be between 0 and 1. Values will be normally ! distributed with mean of zero and variance 1. ! ! Note: sometimes the actual density may be a bit smaller than @var{d}. ! This is unlikely to happen for large really sparse matrices. ! ! If called with a single matrix argument, a random sparse matrix is ! generated wherever the matrix @var{S} is non-zero in its lower ! triangular part. ! @seealso{sprand, sprandn} ! @end deftypefn ! pcg ! -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} pcg (@var{a}, @var{b}, @var{tol}, @var{maxit}, @var{m1}, @var{m2}, @var{x0}, @dots{}) ! @deftypefnx {Function File} {[@var{x}, @var{flag}, @var{relres}, @var{iter}, @var{resvec}, @var{eigest}] =} pcg (@dots{}) ! ! Solves the linear system of equations @code{@var{a} * @var{x} = ! @var{b}} by means of the Preconditioned Conjugate Gradient iterative ! method. The input arguments are ! ! @itemize ! @item ! @var{a} can be either a square (preferably sparse) matrix or a ! function handle, inline function or string containing the name ! of a function which computes @code{@var{a} * @var{x}}. In principle ! @var{a} should be symmetric and positive definite; if @code{pcg} ! finds @var{a} to not be positive definite, you will get a warning ! message and the @var{flag} output parameter will be set. ! ! @item ! @var{b} is the right hand side vector. ! ! @item ! @var{tol} is the required relative tolerance for the residual error, ! @code{@var{b} - @var{a} * @var{x}}. The iteration stops if @code{norm ! (@var{b} - @var{a} * @var{x}) <= @var{tol} * norm (@var{b} - @var{a} * ! @var{x0})}. If @var{tol} is empty or is omitted, the function sets ! @code{@var{tol} = 1e-6} by default. ! ! @item ! @var{maxit} is the maximum allowable number of iterations; if ! @code{[]} is supplied for @code{maxit}, or @code{pcg} has less ! arguments, a default value equal to 20 is used. ! ! @item ! @var{m} = @var{m1} * @var{m2} is the (left) preconditioning matrix, so that the iteration is ! (theoretically) equivalent to solving by @code{pcg} @code{@var{P} * ! @var{x} = @var{m} \ @var{b}}, with @code{@var{P} = @var{m} \ @var{a}}. ! Note that a proper choice of the preconditioner may dramatically ! improve the overall performance of the method. Instead of matrices ! @var{m1} and @var{m2}, the user may pass two functions which return ! the results of applying the inverse of @var{m1} and @var{m2} to ! a vector (usually this is the preferred way of using the preconditioner). ! If @code{[]} is supplied for @var{m1}, or @var{m1} is omitted, no ! preconditioning is applied. If @var{m2} is omitted, @var{m} = @var{m1} ! will be used as preconditioner. ! ! @item ! @var{x0} is the initial guess. If @var{x0} is empty or omitted, the ! function sets @var{x0} to a zero vector by default. ! @end itemize ! ! The arguments which follow @var{x0} are treated as parameters, and ! passed in a proper way to any of the functions (@var{a} or @var{m}) ! which are passed to @code{pcg}. See the examples below for further ! details. The output arguments are ! ! @itemize ! @item ! @var{x} is the computed approximation to the solution of ! @code{@var{a} * @var{x} = @var{b}}. ! ! @item ! @var{flag} reports on the convergence. @code{@var{flag} = 0} means ! the solution converged and the tolerance criterion given by @var{tol} ! is satisfied. @code{@var{flag} = 1} means that the @var{maxit} limit ! for the iteration count was reached. @code{@var{flag} = 3} reports that ! the (preconditioned) matrix was found not positive definite. ! ! @item ! @var{relres} is the ratio of the final residual to its initial value, ! measured in the Euclidean norm. ! ! @item ! @var{iter} is the actual number of iterations performed. ! ! @item ! @var{resvec} describes the convergence history of the method. ! @code{@var{resvec} (i,1)} is the Euclidean norm of the residual, and ! @code{@var{resvec} (i,2)} is the preconditioned residual norm, ! after the (@var{i}-1)-th iteration, @code{@var{i} = ! 1, 2, @dots{}, @var{iter}+1}. The preconditioned residual norm ! is defined as ! @code{norm (@var{r}) ^ 2 = @var{r}' * (@var{m} \ @var{r})} where ! @code{@var{r} = @var{b} - @var{a} * @var{x}}, see also the ! description of @var{m}. If @var{eigest} is not required, only ! @code{@var{resvec} (:,1)} is returned. ! ! @item ! @var{eigest} returns the estimate for the smallest @code{@var{eigest} ! (1)} and largest @code{@var{eigest} (2)} eigenvalues of the ! preconditioned matrix @code{@var{P} = @var{m} \ @var{a}}. In ! particular, if no preconditioning is used, the estimates for the ! extreme eigenvalues of @var{a} are returned. @code{@var{eigest} (1)} ! is an overestimate and @code{@var{eigest} (2)} is an underestimate, ! so that @code{@var{eigest} (2) / @var{eigest} (1)} is a lower bound ! for @code{cond (@var{P}, 2)}, which nevertheless in the limit should ! theoretically be equal to the actual value of the condition number. ! The method which computes @var{eigest} works only for symmetric positive ! definite @var{a} and @var{m}, and the user is responsible for ! verifying this assumption. ! @end itemize ! ! Let us consider a trivial problem with a diagonal matrix (we exploit the ! sparsity of A) ! ! @example ! @group ! N = 10; ! A = spdiag ([1:N]); ! b = rand (N, 1); ! [L, U, P, Q] = luinc (A,1.e-3); ! @end group ! @end example ! ! @sc{Example 1:} Simplest use of @code{pcg} ! ! @example ! x = pcg(A,b) ! @end example ! ! @sc{Example 2:} @code{pcg} with a function which computes ! @code{@var{a} * @var{x}} ! ! @example ! @group ! function y = applyA (x) ! y = [1:N]'.*x; ! endfunction ! ! x = pcg ("applyA", b) ! @end group ! @end example ! ! @sc{Example 3:} @code{pcg} with a preconditioner: @var{l} * @var{u} ! ! @example ! x=pcg(A,b,1.e-6,500,L*U); ! @end example ! ! @sc{Example 4:} @code{pcg} with a preconditioner: @var{l} * @var{u}. ! Faster than @sc{Example 3} since lower and upper triangular matrices ! are easier to invert ! ! @example ! x=pcg(A,b,1.e-6,500,L,U); ! @end example ! ! @sc{Example 5:} Preconditioned iteration, with full diagnostics. The ! preconditioner (quite strange, because even the original matrix ! @var{a} is trivial) is defined as a function ! ! @example ! @group ! function y = applyM(x) ! K = floor (length (x) - 2); ! y = x; ! y(1:K) = x(1:K)./[1:K]'; ! endfunction ! ! [x, flag, relres, iter, resvec, eigest] = ... ! pcg (A, b, [], [], "applyM"); ! semilogy (1:iter+1, resvec); ! @end group ! @end example ! ! @sc{Example 6:} Finally, a preconditioner which depends on a ! parameter @var{k}. ! ! @example ! @group ! function y = applyM (x, varargin) ! K = varargin@{1@}; ! y = x; ! y(1:K) = x(1:K)./[1:K]'; ! endfunction ! ! [x, flag, relres, iter, resvec, eigest] = ... ! pcg (A, b, [], [], "applyM", [], [], 3) ! @end group ! @end example ! ! @sc{References} ! ! [1] C.T.Kelley, 'Iterative methods for linear and nonlinear equations', ! SIAM, 1995 (the base PCG algorithm) ! ! [2] Y.Saad, 'Iterative methods for sparse linear systems', PWS 1996 ! (condition number estimate from PCG) Revised version of this book is ! available online at http://www-users.cs.umn.edu/~saad/books.html ! ! ! @seealso{sparse, pcr} ! @end deftypefn ! spvcat ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} spvcat (@var{a1}, @var{a2}, @dots{}, @var{aN}) ! Return the vertical concatenation of sparse matrices. This function ! is obselete and @code{vertcat} should be used ! @seealso{sphcat, vertcat, horzcat, cat} ! @end deftypefn ! normest ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{n}, @var{c}] =} normest (@var{a}, @var{tol}) ! Estimate the 2-norm of the matrix @var{a} using a power series ! analysis. This is typically used for large matrices, where the cost ! of calculating the @code{norm (@var{a})} is prohibitive and an approximation ! to the 2-norm is acceptable. ! ! @var{tol} is the tolerance to which the 2-norm is calculated. By default ! @var{tol} is 1e-6. @var{c} returns the number of iterations needed for ! @code{normest} to converge. ! @end deftypefn ! pcr ! -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} pcr (@var{a}, @var{b}, @var{tol}, @var{maxit}, @var{m}, @var{x0}, @dots{}) ! @deftypefnx {Function File} {[@var{x}, @var{flag}, @var{relres}, @var{iter}, @var{resvec}] =} pcr (@dots{}) ! ! Solves the linear system of equations @code{@var{a} * @var{x} = ! @var{b}} by means of the Preconditioned Conjugate Residuals iterative ! method. The input arguments are ! ! @itemize ! @item ! @var{a} can be either a square (preferably sparse) matrix or a ! function handle, inline function or string containing the name ! of a function which computes @code{@var{a} * @var{x}}. In principle ! @var{a} should be symmetric and non-singular; if @code{pcr} ! finds @var{a} to be numerically singular, you will get a warning ! message and the @var{flag} output parameter will be set. ! ! @item ! @var{b} is the right hand side vector. ! ! @item ! @var{tol} is the required relative tolerance for the residual error, ! @code{@var{b} - @var{a} * @var{x}}. The iteration stops if @code{norm ! (@var{b} - @var{a} * @var{x}) <= @var{tol} * norm (@var{b} - @var{a} * ! @var{x0})}. If @var{tol} is empty or is omitted, the function sets ! @code{@var{tol} = 1e-6} by default. ! ! @item ! @var{maxit} is the maximum allowable number of iterations; if ! @code{[]} is supplied for @code{maxit}, or @code{pcr} has less ! arguments, a default value equal to 20 is used. ! ! @item ! @var{m} is the (left) preconditioning matrix, so that the iteration is ! (theoretically) equivalent to solving by @code{pcr} @code{@var{P} * ! @var{x} = @var{m} \ @var{b}}, with @code{@var{P} = @var{m} \ @var{a}}. ! Note that a proper choice of the preconditioner may dramatically ! improve the overall performance of the method. Instead of matrix ! @var{m}, the user may pass a function which returns the results of ! applying the inverse of @var{m} to a vector (usually this is the ! preferred way of using the preconditioner). If @code{[]} is supplied ! for @var{m}, or @var{m} is omitted, no preconditioning is applied. ! ! @item ! @var{x0} is the initial guess. If @var{x0} is empty or omitted, the ! function sets @var{x0} to a zero vector by default. ! @end itemize ! ! The arguments which follow @var{x0} are treated as parameters, and ! passed in a proper way to any of the functions (@var{a} or @var{m}) ! which are passed to @code{pcr}. See the examples below for further ! details. The output arguments are ! ! @itemize ! @item ! @var{x} is the computed approximation to the solution of ! @code{@var{a} * @var{x} = @var{b}}. ! ! @item ! @var{flag} reports on the convergence. @code{@var{flag} = 0} means ! the solution converged and the tolerance criterion given by @var{tol} ! is satisfied. @code{@var{flag} = 1} means that the @var{maxit} limit ! for the iteration count was reached. @code{@var{flag} = 3} reports t ! @code{pcr} breakdown, see [1] for details. ! ! @item ! @var{relres} is the ratio of the final residual to its initial value, ! measured in the Euclidean norm. ! ! @item ! @var{iter} is the actual number of iterations performed. ! ! @item ! @var{resvec} describes the convergence history of the method, ! so that @code{@var{resvec} (i)} contains the Euclidean norms of the ! residual after the (@var{i}-1)-th iteration, @code{@var{i} = ! 1,2, @dots{}, @var{iter}+1}. ! @end itemize ! ! Let us consider a trivial problem with a diagonal matrix (we exploit the ! sparsity of A) @example ! @group ! N = 10; ! A = diag([1:N]); A = sparse(A); ! b = rand(N,1); ! @end group @end example ! @sc{Example 1:} Simplest use of @code{pcr} ! ! @example ! x = pcr(A, b) ! @end example ! ! @sc{Example 2:} @code{pcr} with a function which computes ! @code{@var{a} * @var{x}}. ! ! @example ! @group ! function y = applyA(x) ! y = [1:10]'.*x; ! endfunction ! ! x = pcr('applyA',b) ! @end group ! @end example ! ! @sc{Example 3:} Preconditioned iteration, with full diagnostics. The ! preconditioner (quite strange, because even the original matrix ! @var{a} is trivial) is defined as a function ! ! @example ! @group ! function y = applyM(x) ! K = floor(length(x)-2); ! y = x; ! y(1:K) = x(1:K)./[1:K]'; ! endfunction ! ! [x, flag, relres, iter, resvec] = ... ! pcr(A, b, [], [], 'applyM') ! semilogy([1:iter+1], resvec); ! @end group ! @end example ! ! @sc{Example 4:} Finally, a preconditioner which depends on a ! parameter @var{k}. ! ! @example ! @group ! function y = applyM(x, varargin) ! K = varargin@{1@}; ! y = x; y(1:K) = x(1:K)./[1:K]'; ! endfunction ! ! [x, flag, relres, iter, resvec] = ... ! pcr(A, b, [], [], 'applyM', [], 3) ! @end group ! @end example ! ! @sc{References} ! ! [1] W. Hackbusch, "Iterative Solution of Large Sparse Systems of ! Equations", section 9.5.4; Springer, 1994 ! ! @seealso{sparse, pcg} ! @end deftypefn ! spy ! -*- texinfo -*- ! @deftypefn {Function File} {} spy (@var{x}) ! @deftypefnx {Function File} {} spy (@dots{}, @var{markersize}) ! @deftypefnx {Function File} {} spy (@dots{}, @var{LineSpec}) ! Plot the sparsity pattern of the sparse matrix @var{x}. If the argument ! @var{markersize} is given as an scalar value, it is used to determine the ! point size in the plot. If the string @var{LineSpec} is given it is ! passed to @code{plot} and determines the appearance of the plot. ! @seealso{plot} ! @end deftypefn ! spconvert ! -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} spconvert (@var{m}) ! This function converts for a simple sparse matrix format easily ! produced by other programs into Octave's internal sparse format. The ! input @var{x} is either a 3 or 4 column real matrix, containing ! the row, column, real and imaginary parts of the elements of the ! sparse matrix. An element with a zero real and imaginary part can ! be used to force a particular matrix size. ! @end deftypefn ! spalloc ! -*- texinfo -*- ! @deftypefn {Function File} {@var{s} =} spalloc (@var{r}, @var{c}, @var{nz}) ! Returns an empty sparse matrix of size @var{r}-by-@var{c}. As Octave ! resizes sparse matrices at the first opportunity, so that no additional ! space is needed, the argument @var{nz} is ignored. This function is ! provided only for compatibility reasons. ! ! It should be noted that this means that code like ! ! @example ! k = 5; ! nz = r * k; ! s = spalloc (r, c, nz) ! for j = 1:c ! idx = randperm (r); ! s (:, j) = [zeros(r - k, 1); rand(k, 1)] (idx); ! endfor ! @end example ! ! will reallocate memory at each step. It is therefore vitally important ! that code like this is vectorized as much as possible. ! @seealso{sparse, nzmax} ! @end deftypefn ! spdiags ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{b}, @var{c}] =} spdiags (@var{a}) ! @deftypefnx {Function File} {@var{b} =} spdiags (@var{a}, @var{c}) ! @deftypefnx {Function File} {@var{b} =} spdiags (@var{v}, @var{c}, @var{a}) ! @deftypefnx {Function File} {@var{b} =} spdiags (@var{v}, @var{c}, @var{m}, @var{n}) ! A generalization of the function @code{spdiag}. Called with a single ! input argument, the non-zero diagonals @var{c} of @var{A} are extracted. ! With two arguments the diagonals to extract are given by the vector ! @var{c}. ! ! The other two forms of @code{spdiags} modify the input matrix by ! replacing the diagonals. They use the columns of @var{v} to replace ! the columns represented by the vector @var{c}. If the sparse matrix ! @var{a} is defined then the diagonals of this matrix are replaced. ! Otherwise a matrix of @var{m} by @var{n} is created with the ! diagonals given by @var{v}. ! ! Negative values of @var{c} represent diagonals below the main ! diagonal, and positive values of @var{c} diagonals above the main ! diagonal. ! ! For example ! ! @example ! @group ! spdiags (reshape (1:12, 4, 3), [-1 0 1], 5, 4) ! @result{} 5 10 0 0 ! 1 6 11 0 ! 0 2 7 12 ! 0 0 3 8 ! 0 0 0 4 ! @end group ! @end example ! ! @end deftypefn ! spfun ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} spfun (@var{f},@var{x}) ! Compute @code{f(@var{x})} for the non-zero values of @var{x}. ! This results in a sparse matrix with the same structure as ! @var{x}. The function @var{f} can be passed as a string, a ! function handle or an inline function. ! @end deftypefn ! colperm ! -*- texinfo -*- ! @deftypefn {Function File} {@var{p} =} colperm (@var{s}) ! Returns the column permutations such that the columns of ! @code{@var{s} (:, @var{p})} are ordered in terms of increase number ! of non-zero elements. If @var{s} is symmetric, then @var{p} is chosen ! such that @code{@var{s} (@var{p}, @var{p})} orders the rows and ! columns with increasing number of non zeros elements. ! @end deftypefn ! sprand ! -*- texinfo -*- ! @deftypefn {Function File} {} sprand (@var{m}, @var{n}, @var{d}) ! @deftypefnx {Function File} {} sprand (@var{s}) ! Generate a random sparse matrix. The size of the matrix will be ! @var{m} by @var{n}, with a density of values given by @var{d}. ! @var{d} should be between 0 and 1. Values will be uniformly ! distributed between 0 and 1. ! ! Note: sometimes the actual density may be a bit smaller than @var{d}. ! This is unlikely to happen for large really sparse matrices. ! If called with a single matrix argument, a random sparse matrix is ! generated wherever the matrix @var{S} is non-zero. ! @seealso{sprandn} ! @end deftypefn ! speye ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} speye (@var{m}) ! @deftypefnx {Function File} {@var{y} =} speye (@var{m}, @var{n}) ! @deftypefnx {Function File} {@var{y} =} speye (@var{sz}) ! Returns a sparse identity matrix. This is significantly more ! efficient than @code{sparse (eye (@var{m}))} as the full matrix ! is not constructed. ! Called with a single argument a square matrix of size @var{m} by ! @var{m} is created. Otherwise a matrix of @var{m} by @var{n} is ! created. If called with a single vector argument, this argument ! is taken to be the size of the matrix to create. ! @end deftypefn ! sprandn ! -*- texinfo -*- ! @deftypefn {Function File} {} sprandn (@var{m}, @var{n}, @var{d}) ! @deftypefnx {Function File} {} sprandn (@var{s}) ! Generate a random sparse matrix. The size of the matrix will be ! @var{m} by @var{n}, with a density of values given by @var{d}. ! @var{d} should be between 0 and 1. Values will be normally ! distributed with mean of zero and variance 1. ! Note: sometimes the actual density may be a bit smaller than @var{d}. ! This is unlikely to happen for large really sparse matrices. ! If called with a single matrix argument, a random sparse matrix is ! generated wherever the matrix @var{S} is non-zero. ! @seealso{sprand} ! @end deftypefn ! assert ! -*- texinfo -*- ! @deftypefn {Function File} {} assert (@var{cond}) ! @deftypefnx {Function File} {} assert (@var{observed},@var{expected}) ! @deftypefnx {Function File} {} assert (@var{observed},@var{expected},@var{tol}) ! Produces an error if the condition is not met. @code{assert} can be ! called in three different ways. ! @table @code ! @item assert (@var{cond}) ! Called with a single argument @var{cond}, @code{assert} produces an ! error if @var{cond} is zero. ! @item assert (@var{observed}, @var{expected}) ! Produce an error if observed is not the same as expected. Note that ! observed and expected can be strings, scalars, vectors, matrices, ! lists or structures. ! @item assert(@var{observed}, @var{expected}, @var{tol}) ! Accept a tolerance when comparing numbers. ! If @var{tol} is positive use it as an absolute tolerance, will produce an error if ! @code{abs(@var{observed} - @var{expected}) > abs(@var{tol})}. ! If @var{tol} is negative use it as a relative tolerance, will produce an error if ! @code{abs(@var{observed} - @var{expected}) > abs(@var{tol} * @var{expected})}. ! If @var{expected} is zero @var{tol} will always be used as an absolute tolerance. @end table + @seealso{test} + @end deftypefn + example + -*- texinfo -*- + @deftypefn {Function File} {} example ('@var{name}',@var{n}) + @deftypefnx {Function File} {[@var{x}, @var{idx}] =} example ('@var{name}',@var{n}) ! Display the code for example @var{n} associated with the function ! '@var{name}', but do not run it. If @var{n} is not given, all examples ! are displayed. ! Called with output arguments, the examples are returned in the form of ! a string @var{x}, with @var{idx} indicating the ending position of the ! various examples. ! See @code{demo} for a complete explanation. ! @seealso{demo, test} ! @end deftypefn ! speed ! -*- texinfo -*- ! @deftypefn {Function File} {} speed (@var{f}, @var{init}, @var{max_n}, @var{f2}, @var{tol}) ! @deftypefnx {Function File} {[@var{order}, @var{n}, @var{T_f}, @var{T_f2}] =} speed (@dots{}) ! Determine the execution time of an expression for various @var{n}. ! The @var{n} are log-spaced from 1 to @var{max_n}. For each @var{n}, ! an initialization expression is computed to create whatever data ! are needed for the test. If a second expression is given, the ! execution times of the two expressions will be compared. Called ! without output arguments the results are presented graphically. @table @code ! @item @var{f} ! The expression to evaluate. ! @item @var{max_n} ! The maximum test length to run. Default value is 100. Alternatively, ! use @code{[min_n,max_n]} or for complete control, @code{[n1,n2,@dots{},nk]}. ! @item @var{init} ! Initialization expression for function argument values. Use @var{k} ! for the test number and @var{n} for the size of the test. This should ! compute values for all variables listed in args. Note that init will ! be evaluated first for k=0, so things which are constant throughout ! the test can be computed then. The default value is @code{@var{x} = ! randn (@var{n}, 1);}. ! @item @var{f2} ! An alternative expression to evaluate, so the speed of the two ! can be compared. Default is @code{[]}. ! @item @var{tol} ! If @var{tol} is @code{Inf}, then no comparison will be made between the ! results of expression @var{f} and expression @var{f2}. Otherwise, ! expression @var{f} should produce a value @var{v} and expression @var{f2} ! should produce a value @var{v2}, and these shall be compared using ! @code{assert(@var{v},@var{v2},@var{tol})}. If @var{tol} is positive, ! the tolerance is assumed to be absolute. If @var{tol} is negative, ! the tolerance is assumed to be relative. The default is @code{eps}. ! @item @var{order} ! The time complexity of the expression @code{O(a n^p)}. This ! is a structure with fields @code{a} and @code{p}. ! @item @var{n} ! The values @var{n} for which the expression was calculated and ! the execution time was greater than zero. ! @item @var{T_f} ! The nonzero execution times recorded for the expression @var{f} in seconds. ! @item @var{T_f2} ! The nonzero execution times recorded for the expression @var{f2} in seconds. ! If it is needed, the mean time ratio is just @code{mean(T_f./T_f2)}. @end table ! The slope of the execution time graph shows the approximate ! power of the asymptotic running time @code{O(n^p)}. This ! power is plotted for the region over which it is approximated ! (the latter half of the graph). The estimated power is not ! very accurate, but should be sufficient to determine the ! general order of your algorithm. It should indicate if for ! example your implementation is unexpectedly @code{O(n^2)} ! rather than @code{O(n)} because it extends a vector each ! time through the loop rather than preallocating one which is ! big enough. For example, in the current version of Octave, ! the following is not the expected @code{O(n)}: ! @example ! speed("for i=1:n,y@{i@}=x(i); end", "", [1000,10000]) ! @end example ! but it is if you preallocate the cell array @code{y}: ! @example ! speed("for i=1:n,y@{i@}=x(i);end", ... ! "x=rand(n,1);y=cell(size(x));", [1000,10000]) ! @end example ! An attempt is made to approximate the cost of the individual ! operations, but it is wildly inaccurate. You can improve the ! stability somewhat by doing more work for each @code{n}. For ! example: ! @example ! speed("airy(x)", "x=rand(n,10)", [10000,100000]) ! @end example ! When comparing a new and original expression, the line on the ! speedup ratio graph should be larger than 1 if the new expression ! is faster. Better algorithms have a shallow slope. Generally, ! vectorizing an algorithm will not change the slope of the execution ! time graph, but it will shift it relative to the original. For ! example: ! @example ! speed("v=sum(x)", "", [10000,100000], ... ! "v=0;for i=1:length(x),v+=x(i);end") ! @end example ! A more complex example, if you had an original version of @code{xcorr} ! using for loops and another version using an FFT, you could compare the ! run speed for various lags as follows, or for a fixed lag with varying ! vector lengths as follows: ! @example ! speed("v=xcorr(x,n)", "x=rand(128,1);", 100, ... ! "v2=xcorr_orig(x,n)", -100*eps) ! speed("v=xcorr(x,15)", "x=rand(20+n,1);", 100, ... ! "v2=xcorr_orig(x,n)", -100*eps) ! @end example ! Assuming one of the two versions is in @var{xcorr_orig}, this ! would compare their speed and their output values. Note that the ! FFT version is not exact, so we specify an acceptable tolerance on ! the comparison @code{100*eps}, and the errors should be computed ! relatively, as @code{abs((@var{x} - @var{y})./@var{y})} rather than ! absolutely as @code{abs(@var{x} - @var{y})}. ! Type @code{example('speed')} to see some real examples. Note for ! obscure reasons, you can't run examples 1 and 2 directly using ! @code{demo('speed')}. Instead use, @code{eval(example('speed',1))} ! and @code{eval(example('speed',2))}. ! @end deftypefn ! test ! -*- texinfo -*- ! @deftypefn {Function File} {} test @var{name} ! @deftypefnx {Function File} {} test @var{name} quiet|normal|verbose ! @deftypefnx {Function File} {} test ('@var{name}', 'quiet|normal|verbose', @var{fid}) ! @deftypefnx {Function File} {} test ([], 'explain', @var{fid}) ! @deftypefnx {Function File} {@var{success} =} test (@dots{}) ! @deftypefnx {Function File} {[@var{n}, @var{max}] =} test (@dots{}) ! @deftypefnx {Function File} {[@var{code}, @var{idx}] =} test ('@var{name}','grabdemo') ! Perform tests from the first file in the loadpath matching @var{name}. ! @code{test} can be called as a command or as a function. Called with ! a single argument @var{name}, the tests are run interactively and stop ! after the first error is encountered. ! With a second argument the tests which are performed and the amount of ! output is selected. @table @asis ! @item 'quiet' ! Don't report all the tests as they happen, just the errors. ! ! @item 'normal' ! Report all tests as they happen, but don't do tests which require ! user interaction. ! ! @item 'verbose' ! Do tests which require user interaction. @end table ! The argument @var{fid} can be used to allow batch processing. Errors ! can be written to the already open file defined by @var{fid}, and ! hopefully when octave crashes this file will tell you what was happening ! when it did. You can use @code{stdout} if you want to see the results as ! they happen. You can also give a file name rather than an @var{fid}, in ! which case the contents of the file will be replaced with the log from ! the current test. ! Called with a single output argument @var{success}, @code{test} returns ! true if all of the tests were successful. Called with two output arguments ! @var{n} and @var{max}, the number of successful tests and the total number ! of tests in the file @var{name} are returned. ! If the second argument is the string 'grabdemo', the contents of the demo ! blocks are extracted but not executed. Code for all code blocks is ! concatenated and returned as @var{code} with @var{idx} being a vector of ! positions of the ends of the demo blocks. ! If the second argument is 'explain', then @var{name} is ignored and an ! explanation of the line markers used is written to the file @var{fid}. ! @seealso{error, assert, fail, demo, example} @end deftypefn ! fail -*- texinfo -*- ! @deftypefn {Function File} {} fail (@var{code},@var{pattern}) ! @deftypefnx {Function File} {} fail (@var{code},'warning',@var{pattern}) ! ! Return true if @var{code} fails with an error message matching ! @var{pattern}, otherwise produce an error. Note that @var{code} ! is a string and if @var{code} runs successfully, the error produced is: @example ! expected error but got none @end example ! If the code fails with a different error, the message produced is: @example ! expected ! but got @end example ! The angle brackets are not part of the output. ! Called with three arguments, the behavior is similar to ! @code{fail(@var{code}, @var{pattern})}, but produces an error if no ! warning is given during code execution or if the code fails. @end deftypefn ! demo -*- texinfo -*- ! @deftypefn {Function File} {} demo ('@var{name}',@var{n}) ! ! Runs any examples associated with the function '@var{name}'. ! Examples are stored in the script file, or in a file with the same ! name but no extension somewhere on your path. To keep them separate ! from the usual script code, all lines are prefixed by @code{%!}. Each ! example is introduced by the keyword 'demo' flush left to the prefix, ! with no intervening spaces. The remainder of the example can contain ! arbitrary octave code. For example: @example ! %!demo ! %! t=0:0.01:2*pi; x = sin(t); ! %! plot(t,x) ! %! %------------------------------------------------- ! %! % the figure window shows one cycle of a sine wave @end example ! Note that the code is displayed before it is executed, so a simple ! comment at the end suffices. It is generally not necessary to use ! disp or printf within the demo. ! ! Demos are run in a function environment with no access to external ! variables. This means that all demos in your function must use ! separate initialization code. Alternatively, you can combine your ! demos into one huge demo, with the code: @example ! %! input("Press to continue: ","s"); @end example ! between the sections, but this is discouraged. Other techniques ! include using multiple plots by saying figure between each, or ! using subplot to put multiple plots in the same window. ! Also, since demo evaluates inside a function context, you cannot ! define new functions inside a demo. Instead you will have to ! use @code{eval(example('function',n))} to see them. Because eval only ! evaluates one line, or one statement if the statement crosses ! multiple lines, you must wrap your demo in "if 1 endif" ! with the 'if' on the same line as 'demo'. For example, @example ! %!demo if 1 ! %! function y=f(x) ! %! y=x; ! %! endfunction ! %! f(3) ! %! endif @end example + @seealso{test, example} + @end deftypefn + setdiff + -*- texinfo -*- + @deftypefn {Function File} {} setdiff (@var{a}, @var{b}) + @deftypefnx {Function File} {} setdiff (@var{a}, @var{b}, "rows") + @deftypefnx {Function File} {[@var{c}, @var{i}] = } setdiff (@var{a}, @var{b}) + Return the elements in @var{a} that are not in @var{b}, sorted in + ascending order. If @var{a} and @var{b} are both column vectors + return a column vector, otherwise return a row vector. ! Given the optional third argument @samp{"rows"}, return the rows in ! @var{a} that are not in @var{b}, sorted in ascending order by rows. ! If requested, return @var{i} such that @code{c = a(i)}. ! @seealso{unique, union, intersect, setxor, ismember} ! @end deftypefn ! intersect ! -*- texinfo -*- ! @deftypefn {Function File} {} intersect (@var{a}, @var{b}) ! @deftypefnx {Function File} {[@var{c}, @var{ia}, @var{ib}] =} intersect (@var{a}, @var{b}) ! Return the elements in both @var{a} and @var{b}, sorted in ascending ! order. If @var{a} and @var{b} are both column vectors return a column ! vector, otherwise return a row vector. ! ! Return index vectors @var{ia} and @var{ib} such that @code{a(ia)==c} and ! @code{b(ib)==c}. ! ! @end deftypefn ! @seealso{unique, union, setxor, setdiff, ismember} ! complement ! -*- texinfo -*- ! @deftypefn {Function File} {} complement (@var{x}, @var{y}) ! Return the elements of set @var{y} that are not in set @var{x}. For ! example, @example ! @group ! complement ([ 1, 2, 3 ], [ 2, 3, 5 ]) ! @result{} 5 ! @end group @end example + @seealso{create_set, union, intersection} + @end deftypefn + union + -*- texinfo -*- + @deftypefn {Function File} {} union (@var{a}, @var{b}) + @deftypefnx{Function File} {} union (@var{a}, @var{b}, "rows") + Return the set of elements that are in either of the sets @var{a} and + @var{b}. For example, ! @example ! @group ! union ([1, 2, 4], [2, 3, 5]) ! @result{} [1, 2, 3, 4, 5] ! @end group ! @end example + If the optional third input argument is the string "rows" each row of + the matrices @var{a} and @var{b} will be considered an element of sets. + For example, @example ! @group ! union([1, 2; 2, 3], [1, 2; 3, 4], "rows") ! @result{} 1 2 ! 2 3 ! 3 4 ! @end group @end example ! @deftypefnx {Function File} {[@var{c}, @var{ia}, @var{ib}] =} union (@var{a}, @var{b}) ! Return index vectors @var{ia} and @var{ib} such that @code{a==c(ia)} and ! @code{b==c(ib)}. ! @seealso{create_set, intersection, complement} ! @end deftypefn ! unique ! -*- texinfo -*- ! @deftypefn {Function File} {} unique (@var{x}) ! Return the unique elements of @var{x}, sorted in ascending order. ! If @var{x} is a row vector, return a row vector, but if @var{x} ! is a column vector or a matrix return a column vector. ! ! @deftypefnx {Function File} {} unique (@var{A}, 'rows') ! ! Return the unique rows of @var{A}, sorted in ascending order. ! ! @deftypefnx {Function File} {[@var{y}, @var{i}, @var{j}] = } unique (@var{x}) ! ! Return index vectors @var{i} and @var{j} such that @code{x(i)==y} and ! @code{y(j)==x}. ! ! Additionally, one of 'first' or 'last' can be given as an argument. ! 'last' (default) specifies that the highest possible indices are returned ! in @var{i}, while 'first' means the lowest. ! @seealso{union, intersect, setdiff, setxor, ismember} ! @end deftypefn ! create_set ! -*- texinfo -*- ! @deftypefn {Function File} {} create_set (@var{x}) ! @deftypefnx{Function File} {} create_set (@var{x}, "rows") ! Return a row vector containing the unique values in @var{x}, sorted in ! ascending order. For example, ! ! @example ! @group ! create_set ([ 1, 2; 3, 4; 4, 2; 1, 2 ]) ! @result{} [ 1, 2, 3, 4 ] ! @end group ! @end example ! ! If the optional second input argument is the string "rows" each row of ! the matrix @var{x} will be considered an element of set. For example, ! @example ! @group ! create_set ([ 1, 2; 3, 4; 4, 2; 1, 2 ], "rows") ! @result{} 1 2 ! 3 4 ! 4 2 ! @end group ! @end example ! @seealso{union, intersection, complement, unique} ! @end deftypefn ! ismember ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{tf}, @var{a_idx}] =} ismember (@var{A}, @var{S}) ! @deftypefnx {Function File} {[@var{tf}, @var{a_idx}] =} ismember (@var{A}, @var{S}, "rows") ! Return a matrix @var{tf} the same shape as @var{A} which has 1 if ! @code{A(i,j)} is in @var{S} or 0 if it isn't. If a second output argument ! is requested, the indexes into @var{S} of the matching elements are ! also returned. @example ! @group ! a = [3, 10, 1]; ! s = [0:9]; ! [tf, a_idx] = residue (a, s); ! @result{} tf = [1, 0, 1] ! @result{} a_idx = [4, 0, 2] ! @end group @end example ! The inputs, @var{A} and @var{S}, may also be cell arrays. @example ! @group ! a = @{'abc'@}; ! s = @{'abc', 'def'@}; ! [tf, a_idx] = residue (a, s); ! @result{} tf = [1, 0] ! @result{} a_idx = [1, 0] ! @end group @end example ! With the optional third argument @code{"rows"}, and matrices ! @var{A} and @var{S} with the same number of columns, compare rows in ! @var{A} with the rows in @var{S}. @example ! @group ! a = [1:3; 5:7; 4:6]; ! s = [0:2; 1:3; 2:4; 3:5; 4:6]; ! [tf, a_idx] = ismember(a, s, 'rows'); ! @result{} tf = logical ([1; 0; 1]) ! @result{} a_idx = [2; 0; 5]; ! @end group ! @end example ! @seealso{unique, union, intersection, setxor, setdiff} ! @end deftypefn ! setxor ! -*- texinfo -*- ! @deftypefn {Function File} {} setxor (@var{a}, @var{b}) ! @deftypefnx {Function File} {} setxor (@var{a}, @var{b}, 'rows') ! Return the elements exclusive to @var{a} or @var{b}, sorted in ascending ! order. If @var{a} and @var{b} are both column vectors return a column ! vector, otherwise return a row vector. ! @deftypefnx {Function File} {[@var{c}, @var{ia}, @var{ib}] =} setxor (@var{a}, @var{b}) ! Return index vectors @var{ia} and @var{ib} such that @code{a==c(ia)} and ! @code{b==c(ib)}. ! @seealso{unique, union, intersect, setdiff, ismember} @end deftypefn ! brighten -*- texinfo -*- ! @deftypefn {Function File} {@var{map_out} =} brighten (@var{map}, @var{beta}) ! @deftypefnx {Function File} {@var{map_out} =} brighten (@var{h}, @var{beta}) ! @deftypefnx {Function File} {@var{map_out} =} brighten (@var{beta}) ! Darkens or brightens the given colormap. If the @var{map} argument ! is omitted, the function is applied to the current colormap. The first ! argument can also be a valid graphics handle @var{h}, in which case ! @code{brighten} is applied to the colormap associated with this handle. ! ! Should the resulting colormap @var{map_out} not be assigned, it will be ! written to the current colormap. ! ! The argument @var{beta} should be a scalar between -1 and 1, ! where a negative value darkens and a positive value brightens ! the colormap. ! @seealso{colormap} @end deftypefn ! gmap40 -*- texinfo -*- ! @deftypefn {Function File} {} gmap40 (@var{n}) ! Create a color colormap. The colormap is red, green, blue, yellow, ! magenta and cyan. These are the colors that are allowed with patch ! objects using gnuplot 4.0, and so this colormap function is specially ! designed for users of gnuplot 4.0. The argument @var{n} should be ! a scalar. If it is omitted, a length of 6 is assumed. Larger values ! of @var{n} result in a repetition of the above colors ! @seealso{colormap} @end deftypefn ! imshow ! -*- texinfo -*- ! @deftypefn {Function File} {} imshow (@var{im}) ! @deftypefnx {Function File} {} imshow (@var{im}, @var{limits}) ! @deftypefnx {Function File} {} imshow (@var{im}, @var{map}) ! @deftypefnx {Function File} {} imshow (@var{rgb}, @dots{}) ! @deftypefnx {Function File} {} imshow (@var{filename}) ! @deftypefnx {Function File} {} imshow (@dots{}, @var{string_param1}, @var{value1}, @dots{}) ! Display the image @var{im}, where @var{im} can be a 2-dimensional ! (gray-scale image) or a 3-dimensional (RGB image) matrix. ! If @var{limits} is a 2-element vector @code{[@var{low}, @var{high}]}, ! the image is shown using a display range between @var{low} and ! @var{high}. If an empty matrix is passed for @var{limits}, the ! display range is computed as the range between the minimal and the ! maximal value in the image. ! If @var{map} is a valid color map, the image will be shown as an indexed ! image using the supplied color map. ! If a file name is given instead of an image, the file will be read and ! shown. ! If given, the parameter @var{string_param1} has value ! @var{value1}. @var{string_param1} can be any of the following: ! @table @samp ! @item "displayrange" ! @var{value1} is the display range as described above. ! @end table ! @seealso{image, imagesc, colormap, gray2ind, rgb2ind} ! @end deftypefn ! gray2ind -*- texinfo -*- ! @deftypefn {Function File} {[@var{img}, @var{map}] =} gray2ind (@var{}) ! Convert a gray scale intensity image to an Octave indexed image. @end deftypefn ! spring -*- texinfo -*- ! @deftypefn {Function File} {} spring (@var{n}) ! Create color colormap. This colormap is magenta to yellow. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! __img_via_file__ ! Undocumented internal function. ! winter ! -*- texinfo -*- ! @deftypefn {Function File} {} winter (@var{n}) ! Create color colormap. This colormap is blue to green. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} ! @end deftypefn ! prism ! -*- texinfo -*- ! @deftypefn {Function File} {} prism (@var{n}) ! Create color colormap. This colormap cycles trough red, orange, yellow, ! green, blue and violet. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} ! @end deftypefn ! gray ! -*- texinfo -*- ! @deftypefn {Function File} {} gray (@var{n}) ! Return a gray colormap with @var{n} entries corresponding to values from ! 0 to @var{n}-1. The argument @var{n} should be a scalar. If it is ! omitted, the length of the current colormap or 64 is assumed. ! @end deftypefn ! autumn ! -*- texinfo -*- ! @deftypefn {Function File} {} autumn (@var{n}) ! Create color colormap. This colormap is red through orange to yellow. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} ! @end deftypefn ! ind2gray -*- texinfo -*- ! @deftypefn {Function File} {} ind2gray (@var{x}, @var{map}) ! Convert an Octave indexed image to a gray scale intensity image. ! If @var{map} is omitted, the current colormap is used to determine the ! intensities. ! @seealso{gray2ind, rgb2ntsc, image, colormap} @end deftypefn ! flag -*- texinfo -*- ! @deftypefn {Function File} {} flag (@var{n}) ! Create color colormap. This colormap cycles through red, white, blue ! and black. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! saveimage -*- texinfo -*- ! @deftypefn {Function File} {} saveimage (@var{file}, @var{x}, @var{fmt}, @var{map}) ! Save the matrix @var{x} to @var{file} in image format @var{fmt}. Valid ! values for @var{fmt} are ! @table @code ! @item "img" ! Octave's image format. The current colormap is also saved in the file. ! @item "ppm" ! Portable pixmap format. ! @item "ps" ! PostScript format. Note that images saved in PostScript format can not ! be read back into Octave with loadimage. ! @end table ! If the fourth argument is supplied, the specified colormap will also be ! saved along with the image. ! Note: if the colormap contains only two entries and these entries are ! black and white, the bitmap ppm and PostScript formats are used. If the ! image is a gray scale image (the entries within each row of the colormap ! are equal) the gray scale ppm and PostScript image formats are used, ! otherwise the full color formats are used. ! @seealso{loadimage, save, load, colormap} ! @end deftypefn ! ntsc2rgb -*- texinfo -*- ! @deftypefn {Function File} {} ntsc2rgb (@var{yiq}) ! Image format conversion. @end deftypefn ! ind2rgb -*- texinfo -*- ! @deftypefn {Function File} {@var{rgb} =} ind2rgb (@var{x}, @var{map}) ! @deftypefnx {Function File} {[@var{r}, @var{g}, @var{b}] =} ind2rgb (@var{x}, @var{map}) ! Convert an indexed image to red, green, and blue color components. ! If the colormap doesn't contain enough colors, pad it with the ! last color in the map. ! If @var{map} is omitted, the current colormap is used for the conversion. ! @seealso{rgb2ind, image, imshow, ind2gray, gray2ind} @end deftypefn ! rgb2ind -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{rgb}) ! @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{r}, @var{g}, @var{b}) ! Convert and RGB image to an Octave indexed image. ! @seealso{ind2rgb, rgb2ntsc} @end deftypefn ! jet -*- texinfo -*- ! @deftypefn {Function File} {} jet (@var{n}) ! Create color colormap. This colormap is dark blue through blue, cyan, ! green, yellow, red to dark red. The argument @var{n} should be a scalar. ! If it is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! hot -*- texinfo -*- ! @deftypefn {Function File} {} hot (@var{n}) ! Create color colormap. This colormap is black through dark red, red, ! orange, yellow to white. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! colormap -*- texinfo -*- ! @deftypefn {Function File} {} colormap (@var{map}) ! @deftypefnx {Function File} {} colormap ("default") ! Set the current colormap. ! ! @code{colormap (@var{map})} sets the current colormap to @var{map}. The ! color map should be an @var{n} row by 3 column matrix. The columns ! contain red, green, and blue intensities respectively. All entries ! should be between 0 and 1 inclusive. The new colormap is returned. ! ! @code{colormap ("default")} restores the default colormap (the ! @code{jet} map with 64 entries). The default colormap is returned. ! ! With no arguments, @code{colormap} returns the current color map. ! @seealso{jet} @end deftypefn ! ocean -*- texinfo -*- ! @deftypefn {Function File} {} ocean (@var{n}) ! Create color colormap. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. @end deftypefn ! bone -*- texinfo -*- ! @deftypefn {Function File} {} bone (@var{n}) ! Create color colormap. This colormap is a gray colormap with a light ! blue tone. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! rgb2hsv -*- texinfo -*- ! @deftypefn {Function File} {@var{hsv_map} =} rgb2hsv (@var{rgb_map}) ! Transform a colormap from the rgb space to the hsv space. ! ! A color n the RGB space consists of the red, green and blue intensities. ! ! In the HSV space each color is represented by their hue, saturation ! and value (brightness). Value gives the amount of light in the color. ! Hue describes the dominant wavelength. ! Saturation is the amount of Hue mixed into the color. ! @seealso{hsv2rgb} @end deftypefn ! __img__ ! Undocumented internal function. ! cool -*- texinfo -*- ! @deftypefn {Function File} {} cool (@var{n}) ! Create color colormap. The colormap is cyan to magenta. The argument ! @var{n} should be a scalar. If it is omitted, the length of the current ! colormap or 64 is assumed. ! @seealso{colormap} ! @end deftypefn ! rainbow ! -*- texinfo -*- ! @deftypefn {Function File} {} rainbow (@var{n}) ! Create color colormap. This colormap is red through orange, yellow, green, ! blue to violet. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! imagesc -*- texinfo -*- ! @deftypefn {Function File} {} imagesc (@var{a}) ! @deftypefnx {Function File} {} imagesc (@var{x}, @var{y}, @var{a}) ! @deftypefnx {Function File} {} imagesc (@dots{}, @var{limits}) ! @deftypefnx {Function File} {} imagesc (@var{h}, @dots{}) ! @deftypefnx {Function File} { @var{h} = } imagesc (@dots{}) ! Display a scaled version of the matrix @var{a} as a color image. The ! colormap is scaled so that the entries of the matrix occupy the entire ! colormap. If @var{limits} = [@var{lo}, @var{hi}] are given, then that ! range is set to the 'clim' of the current axes. ! The axis values corresponding to the matrix elements are specified in ! @var{x} and @var{y}, either as pairs giving the minimum and maximum ! values for the respective axes, or as values for each row and column ! of the matrix @var{a}. ! ! @seealso{image, imshow, clim, caxis} @end deftypefn ! loadimage -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{map}] =} loadimage (@var{file}) ! Load an image file and it's associated color map from the specified ! @var{file}. The image must be stored in Octave's image format. ! @seealso{saveimage, load, save} @end deftypefn ! summer -*- texinfo -*- ! @deftypefn {Function File} {} summer (@var{n}) ! Create color colormap. This colormap is green to yellow. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! hsv -*- texinfo -*- ! @deftypefn {Function File} {} hsv (@var{n}) ! Create color colormap. This colormap is red through yellow, green, cyan, ! blue, magenta to red. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! image -*- texinfo -*- ! @deftypefn {Function File} {} image (@var{img}) ! @deftypefnx {Function File} {} image (@var{x}, @var{y}, @var{img}) ! Display a matrix as a color image. The elements of @var{x} are indices ! into the current colormap, and the colormap will be scaled so that the ! extremes of @var{x} are mapped to the extremes of the colormap. ! It first tries to use @code{gnuplot}, then @code{display} from ! @code{ImageMagick}, then @code{xv}, and then @code{xloadimage}. ! The actual program used can be changed using the @code{image_viewer} ! function. ! ! The axis values corresponding to the matrix elements are specified in ! @var{x} and @var{y}. If you're not using gnuplot 4.2 or later, these ! variables are ignored. ! @seealso{imshow, imagesc, colormap, image_viewer} @end deftypefn ! white -*- texinfo -*- ! @deftypefn {Function File} {} white (@var{n}) ! Create color colormap. This colormap is completely white. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} @end deftypefn ! image_viewer -*- texinfo -*- ! @deftypefn {Function File} {[@var{fcn}, @var{default_zoom}] =} image_viewer (@var{fcn}, @var{default_zoom}) ! Change the program or function used for viewing images and return the ! previous values. ! When the @code{image} or @code{imshow} function is called it will ! launch an external program to display the image. The default behaviour ! is to use gnuplot if the installed version supports image viewing, ! and otherwise try the programs @code{display}, @code{xv}, and ! @code{xloadimage}. Using this function it is possible to change that ! behaviour. ! ! When called with one input argument images will be displayed by saving ! the image to a file and the system command @var{command} will called ! to view the image. The @var{command} must be a string containing ! @code{%s} and possibly @code{%f}. The @code{%s} will be replaced by ! the filename of the image, and the @code{%f} will (if present) be ! replaced by the zoom factor given to the @code{image} function. ! For example, @example ! image_viewer ("eog %s"); @end example + changes the image viewer to the @code{eog} program. ! With two input arguments, images will be displayed by calling ! the function @var{function_handle}. For example, ! @example ! image_viewer (data, @@my_image_viewer); ! @end example ! sets the image viewer function to @code{my_image_viewer}. The image ! viewer function is called with ! @example ! my_image_viewer (@var{x}, @var{y}, @var{im}, @var{zoom}, @var{data}) ! @end example ! where @var{x} and @var{y} are the axis of the image, @var{im} is the image ! variable, and @var{data} is extra user-supplied data to be passed to ! the viewer function. ! With three input arguments it is possible to change the zooming. ! Some programs (like @code{xloadimage}) require the zoom factor to be ! between 0 and 100, and not 0 and 1 like Octave assumes. This is ! solved by setting the third argument to 100. ! @seealso{image, imshow} @end deftypefn ! hsv2rgb -*- texinfo -*- ! @deftypefn {Function File} {@var{rgb_map} =} hsv2rgb (@var{hsv_map}) ! Transform a colormap from the hsv space to the rgb space. ! @seealso{rgb2hsv} ! @end deftypefn ! rgb2ntsc ! -*- texinfo -*- ! @deftypefn {Function File} {} rgb2ntsc (@var{rgb}) ! Image format conversion. ! @end deftypefn ! pink ! -*- texinfo -*- ! @deftypefn {Function File} {} pink (@var{n}) ! Create color colormap. This colormap gives a sephia tone on black and ! white images. The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} ! @end deftypefn ! copper ! -*- texinfo -*- ! @deftypefn {Function File} {} copper (@var{n}) ! Create color colormap. This colormap is black to a light copper tone. ! The argument @var{n} should be a scalar. If it ! is omitted, the length of the current colormap or 64 is assumed. ! @seealso{colormap} ! @end deftypefn ! factor ! -*- texinfo -*- ! @deftypefn {Function File} {@var{p} =} factor (@var{q}) ! @deftypefnx {Function File} {[@var{p}, @var{n}] =} factor (@var{q}) ! Return prime factorization of @var{q}. That is @code{prod (@var{p}) ! == @var{q}}. If @code{@var{q} == 1}, returns 1. ! With two output arguments, returns the unique primes @var{p} and ! their multiplicities. That is @code{prod (@var{p} .^ @var{n}) == ! @var{q}}. ! @end deftypefn ! legendre ! -*- texinfo -*- ! @deftypefn {Function File} {@var{L} =} legendre (@var{n}, @var{X}) ! Legendre Function of degree n and order m ! where all values for m = 0..@var{n} are returned. ! @var{n} must be a scalar in the range [0..255]. ! The return value has one dimension more than @var{x}. @example ! The Legendre Function of degree n and order m ! @group ! m m 2 m/2 d^m ! P(x) = (-1) * (1-x ) * ---- P (x) ! n dx^m n ! @end group ! with: ! Legendre polynomial of degree n ! ! @group ! 1 d^n 2 n ! P (x) = ------ [----(x - 1) ] ! n 2^n n! dx^n ! @end group ! ! legendre(3,[-1.0 -0.9 -0.8]) returns the matrix ! ! @group ! x | -1.0 | -0.9 | -0.8 ! ------------------------------------ ! m=0 | -1.00000 | -0.47250 | -0.08000 ! m=1 | 0.00000 | -1.99420 | -1.98000 ! m=2 | 0.00000 | -2.56500 | -4.32000 ! m=3 | 0.00000 | -1.24229 | -3.24000 ! @end group ! @end example @end deftypefn ! betai -*- texinfo -*- ! @deftypefn {Function File} {} betai (@var{a}, @var{b}, @var{x}) ! This function is provided for compatibility with older versions of ! Octave. New programs should use betainc instead. ! @code{betai (@var{a}, @var{b}, @var{x})} is the same as @code{betainc ! (@var{x}, @var{a}, @var{b})}. ! @end deftypefn ! perms ! -*- texinfo -*- ! @deftypefn {Function File} {} perms (@var{v}) ! ! Generate all permutations of @var{v}, one row per permutation. The ! result has size @code{factorial (@var{n}) * @var{n}}, where @var{n} ! is the length of @var{v}. ! ! As an example, @code{perms([1, 2, 3])} returns the matrix @example ! 1 2 3 ! 2 1 3 ! 1 3 2 ! 2 3 1 ! 3 1 2 ! 3 2 1 @end example ! @end deftypefn ! log2 ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} log2 (@var{x}) ! @deftypefnx {Mapping Function} {[@var{f}, @var{e}] =} log2 (@var{x}) ! Compute the base-2 logarithm of @var{x}. With two outputs, returns ! @var{f} and @var{e} such that @iftex @tex ! $1/2 <= |f| < 1$ and $x = f \cdot 2^e$. @end tex @end iftex @ifinfo ! 1/2 <= abs(f) < 1 and x = f * 2^e. @end ifinfo ! @seealso{log, log10, logspace, exp} ! @end deftypefn ! isprime ! -*- texinfo -*- ! @deftypefn {Function File} {} isprime (@var{n}) ! ! Return true if @var{n} is a prime number, false otherwise. ! ! Something like the following is much faster if you need to test a lot ! of small numbers: ! @example ! @var{t} = ismember (@var{n}, primes (max (@var{n} (:)))); @end example ! If max(n) is very large, then you should be using special purpose ! factorization code. ! @seealso{primes, factor, gcd, lcm} @end deftypefn ! factorial -*- texinfo -*- ! @deftypefn {Function File} {} factorial (@var{n}) ! Return the factorial of @var{n}. If @var{n} is scalar, this is ! equivalent to @code{prod (1:@var{n})}. If @var{n} is an array, ! the factorial of the elements of the array are returned. @end deftypefn ! erfinv -*- texinfo -*- ! @deftypefn {Mapping Function} {} erfinv (@var{z}) ! Computes the inverse of the error function. ! @seealso{erf, erfc} ! @end deftypefn ! betaln ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} betaln (@var{a}, @var{b}) ! Return the log of the Beta function, @iftex @tex $$ ! B (a, b) = \log {\Gamma (a) \Gamma (b) \over \Gamma (a + b)}. $$ @end tex @end iftex @ifinfo @example ! betaln (a, b) = gammaln (a) + gammaln (b) - gammaln (a + b) @end example @end ifinfo ! @seealso{beta, betai, gammaln} ! @end deftypefn ! bessel ! -*- texinfo -*- ! @deftypefn {Loadable Function} {[@var{j}, @var{ierr}] =} besselj (@var{alpha}, @var{x}, @var{opt}) ! @deftypefnx {Loadable Function} {[@var{y}, @var{ierr}] =} bessely (@var{alpha}, @var{x}, @var{opt}) ! @deftypefnx {Loadable Function} {[@var{i}, @var{ierr}] =} besseli (@var{alpha}, @var{x}, @var{opt}) ! @deftypefnx {Loadable Function} {[@var{k}, @var{ierr}] =} besselk (@var{alpha}, @var{x}, @var{opt}) ! @deftypefnx {Loadable Function} {[@var{h}, @var{ierr}] =} besselh (@var{alpha}, @var{k}, @var{x}, @var{opt}) ! Compute Bessel or Hankel functions of various kinds: ! @table @code ! @item besselj ! Bessel functions of the first kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(-abs(imag(x)))}. ! @item bessely ! Bessel functions of the second kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(-abs(imag(x)))}. ! @item besseli ! Modified Bessel functions of the first kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(-abs(real(x)))}. ! @item besselk ! Modified Bessel functions of the second kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(x)}. ! @item besselh ! Compute Hankel functions of the first (@var{k} = 1) or second (@var{k} ! = 2) kind. If the argument @var{opt} is supplied, the result is multiplied by ! @code{exp (-I*@var{x})} for @var{k} = 1 or @code{exp (I*@var{x})} for ! @var{k} = 2. ! @end table ! If @var{alpha} is a scalar, the result is the same size as @var{x}. ! If @var{x} is a scalar, the result is the same size as @var{alpha}. ! If @var{alpha} is a row vector and @var{x} is a column vector, the ! result is a matrix with @code{length (@var{x})} rows and ! @code{length (@var{alpha})} columns. Otherwise, @var{alpha} and ! @var{x} must conform and the result will be the same size. ! The value of @var{alpha} must be real. The value of @var{x} may be ! complex. ! If requested, @var{ierr} contains the following status information ! and is the same size as the result. ! @enumerate 0 ! @item ! Normal return. ! @item ! Input error, return @code{NaN}. ! @item ! Overflow, return @code{Inf}. ! @item ! Loss of significance by argument reduction results in less than ! half of machine accuracy. ! @item ! Complete loss of significance by argument reduction, return @code{NaN}. ! @item ! Error---no computation, algorithm termination condition not met, ! return @code{NaN}. ! @end enumerate ! @end deftypefn ! gammai ! -*- texinfo -*- ! @deftypefn {Function File} {} gammai (@var{a}, @var{x}) ! This function is provided for compatibility with older versions of ! Octave. New programs should use @code{gammainc} instead. ! @code{gammai (@var{a}, @var{x})} is the same as @code{gammainc ! (@var{x}, @var{a})}. ! @end deftypefn ! primes ! -*- texinfo -*- ! @deftypefn {Function File} {} primes (@var{n}) ! Return all primes up to @var{n}. ! ! Note that if you need a specific number of primes, you can use the ! fact the distance from one prime to the next is on average ! proportional to the logarithm of the prime. Integrating, you find ! that there are about @math{k} primes less than @math{k \log ( 5 k )}. ! ! The algorithm used is called the Sieve of Erastothenes. ! @end deftypefn ! pow2 ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} pow2 (@var{x}) ! @deftypefnx {Mapping Function} {} pow2 (@var{f}, @var{e}) ! With one argument, computes @iftex @tex ! $2^x$ @end tex @end iftex @ifinfo ! 2 .^ x @end ifinfo ! for each element of @var{x}. With two arguments, returns @iftex @tex ! $f \cdot 2^e$. @end tex @end iftex @ifinfo ! f .* (2 .^ e). @end ifinfo ! @seealso{nextpow2} @end deftypefn ! beta -*- texinfo -*- ! @deftypefn {Mapping Function} {} beta (@var{a}, @var{b}) ! Return the Beta function, @iftex @tex ! $$ ! B (a, b) = {\Gamma (a) \Gamma (b) \over \Gamma (a + b)}. ! $$ @end tex @end iftex @ifinfo + @example ! beta (a, b) = gamma (a) * gamma (b) / gamma (a + b). @end example @end ifinfo ! @end deftypefn ! nchoosek ! -*- texinfo -*- ! @deftypefn {Function File} {@var{c} =} nchoosek (@var{n}, @var{k}) ! ! Compute the binomial coefficient or all combinations of @var{n}. ! If @var{n} is a scalar then, calculate the binomial coefficient ! of @var{n} and @var{k}, defined as ! @iftex @tex ! $$ ! {n \choose k} = {n (n-1) (n-2) \cdots (n-k+1) \over k!} ! = {n! \over k! (n-k)!} ! $$ @end tex @end iftex @ifinfo + @example ! @group ! / \ ! | n | n (n-1) (n-2) ... (n-k+1) n! ! | | = ------------------------- = --------- ! | k | k! k! (n-k)! ! \ / ! @end group @end example @end ifinfo ! If @var{n} is a vector generate all combinations of the elements ! of @var{n}, taken @var{k} at a time, one row per combination. The ! resulting @var{c} has size @code{[nchoosek (length (@var{n}), ! @var{k}), @var{k}]}. ! ! @seealso{bincoeff} ! @end deftypefn ! wavread ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} wavread (@var{filename}) ! Load the RIFF/WAVE sound file @var{filename}, and return the samples ! in vector @var{y}. If the file contains multichannel data, then ! @var{y} is a matrix with the channels represented as columns. ! ! @deftypefnx {Function File} {[@var{y}, @var{Fs}, @var{bits}] =} wavread (@var{filename}) ! Additionally return the sample rate (@var{fs}) in Hz and the number of bits ! per sample (@var{bits}). ! ! @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename}, @var{n}) ! Read only the first @var{n} samples from each channel. ! ! @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename},[@var{n1} @var{n2}]) ! Read only samples @var{n1} through @var{n2} from each channel. ! ! @deftypefnx {Function File} {[@var{samples}, @var{channels}] =} wavread (@var{filename}, "size") ! Return the number of samples (@var{n}) and channels (@var{ch}) ! instead of the audio data. ! @seealso{wavwrite} ! @end deftypefn ! lin2mu ! -*- texinfo -*- ! @deftypefn {Function File} {} lin2mu (@var{x}, @var{n}) ! Converts audio data from linear to mu-law. Mu-law values use 8-bit ! unsigned integers. Linear values use @var{n}-bit signed integers or ! floating point values in the range -1<=@var{x}<=1 if @var{n} is 0. ! If @var{n} is not specified it defaults to 0, 8 or 16 depending on ! the range values in @var{x}. ! @seealso{mu2lin, loadaudio, saveaudio, playaudio, setaudio, record} ! @end deftypefn ! setaudio ! -*- texinfo -*- ! @deftypefn {Function File} {} setaudio ([@var{w_type} [, @var{value}]]) ! Execute the shell command @samp{mixer [@var{w_type} [, @var{value}]]} ! @end deftypefn ! record ! -*- texinfo -*- ! @deftypefn {Function File} {} record (@var{sec}, @var{sampling_rate}) ! Records @var{sec} seconds of audio input into the vector @var{x}. The ! default value for @var{sampling_rate} is 8000 samples per second, or ! 8kHz. The program waits until the user types @key{RET} and then ! immediately starts to record. ! @seealso{lin2mu, mu2lin, loadaudio, saveaudio, playaudio, setaudio} ! @end deftypefn ! mu2lin ! -*- texinfo -*- ! @deftypefn {Function File} {} mu2lin (@var{x}, @var{bps}) ! Converts audio data from linear to mu-law. Mu-law values are 8-bit ! unsigned integers. Linear values use @var{n}-bit signed integers ! or floating point values in the range -1<=y<=1 if @var{n} is 0. If ! @var{n} is not specified it defaults to 8. ! @seealso{lin2mu, loadaudio, saveaudio, playaudio, setaudio, record} ! @end deftypefn ! saveaudio ! -*- texinfo -*- ! @deftypefn {Function File} {} saveaudio (@var{name}, @var{x}, @var{ext}, @var{bps}) ! Saves a vector @var{x} of audio data to the file ! @file{@var{name}.@var{ext}}. The optional parameters @var{ext} and ! @var{bps} determine the encoding and the number of bits per sample used ! in the audio file (see @code{loadaudio}); defaults are @file{lin} and ! 8, respectively. ! @seealso{lin2mu, mu2lin, loadaudio, playaudio, setaudio, record} @end deftypefn ! wavwrite -*- texinfo -*- ! @deftypefn {Function File} {} wavwrite (@var{y}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{bits}, @var{filename}) ! Write @var{y} to the canonical RIFF/WAVE sound file @var{filename} ! with sample rate @var{fs} and bits per sample @var{bits}. The ! default sample rate is 8000 Hz with 16-bits per sample. Each column ! of the data represents a separate channel. ! @seealso{wavread} @end deftypefn ! playaudio -*- texinfo -*- ! @deftypefn {Function File} {} playaudio (@var{name}, @var{ext}) ! @deftypefnx {Function File} {} playaudio (@var{x}) ! Plays the audio file @file{@var{name}.@var{ext}} or the audio data ! stored in the vector @var{x}. ! @seealso{lin2mu, mu2lin, loadaudio, saveaudio, setaudio, record} ! @end deftypefn ! loadaudio ! -*- texinfo -*- ! @deftypefn {Function File} {} loadaudio (@var{name}, @var{ext}, @var{bps}) ! Loads audio data from the file @file{@var{name}.@var{ext}} into the ! vector @var{x}. ! The extension @var{ext} determines how the data in the audio file is ! interpreted; the extensions @file{lin} (default) and @file{raw} ! correspond to linear, the extensions @file{au}, @file{mu}, or @file{snd} ! to mu-law encoding. ! The argument @var{bps} can be either 8 (default) or 16, and specifies ! the number of bits per sample used in the audio file. ! @seealso{lin2mu, mu2lin, saveaudio, playaudio, setaudio, record} @end deftypefn ! savepath -*- texinfo -*- ! @deftypefn {Function File} {} savepath (@var{file}) ! Save the current function search path to @var{file}. If @var{file} ! is omitted, @file{~/.octaverc} is used. If successful, ! @code{savepath} returns 0. ! @seealso{path, addpath, rmpath, genpath, pathdef, pathsep} ! @end deftypefn ! hinfsyn_chk ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{retval}, @var{pc}, @var{pf}] =} hinfsyn_chk (@var{a}, @var{b1}, @var{b2}, @var{c1}, @var{c2}, @var{d12}, @var{d21}, @var{g}, @var{ptol}) ! Called by @code{hinfsyn} to see if gain @var{g} satisfies conditions in ! Theorem 3 of ! Doyle, Glover, Khargonekar, Francis, @cite{State Space Solutions to Standard} @iftex @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! @cite{H-2 and H-infinity} @end ifinfo ! @cite{Control Problems}, @acronym{IEEE} @acronym{TAC} August 1989. ! @strong{Warning:} do not attempt to use this at home; no argument ! checking performed. ! @strong{Inputs} ! As returned by @code{is_dgkf}, except for: ! @table @var ! @item g ! candidate gain level ! @item ptol ! as in @code{hinfsyn} ! @end table + @strong{Outputs} @table @var ! @item retval ! 1 if g exceeds optimal Hinf closed loop gain, else 0 ! @item pc ! solution of ``regulator'' @iftex @tex ! $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! H-infinity @end ifinfo ! @acronym{ARE} ! @item pf ! solution of ``filter'' @iftex @tex ! $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! H-infinity @end ifinfo + @acronym{ARE} @end table + Do not attempt to use this at home; no argument checking performed. @end deftypefn ! dgkfdemo -*- texinfo -*- ! @deftypefn {Function File} {} dgkfdemo () ! Octave Controls toolbox demo: @iftex @tex ! $ { \cal H }_2 $/$ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! H-2/H-infinity @end ifinfo ! options demos. @end deftypefn ! hinfsyn -*- texinfo -*- ! @deftypefn {Function File} {[@var{k}, @var{g}, @var{gw}, @var{xinf}, @var{yinf}] =} hinfsyn (@var{asys}, @var{nu}, @var{ny}, @var{gmin}, @var{gmax}, @var{gtol}, @var{ptol}, @var{tol}) ! @strong{Inputs} input system is passed as either ! @table @var ! @item asys ! system data structure (see @command{ss}, @command{sys2ss}) ! @itemize @bullet ! @item controller is implemented for continuous time systems ! @item controller is @strong{not} implemented for discrete time systems (see ! bilinear transforms in @command{c2d}, @command{d2c}) ! @end itemize ! @item nu ! number of controlled inputs ! @item ny ! number of measured outputs ! @item gmin ! initial lower bound on @iftex @tex ! $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! H-infinity @end ifinfo ! optimal gain ! @item gmax ! initial upper bound on @iftex @tex ! $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! H-infinity @end ifinfo ! Optimal gain. ! @item gtol ! Gain threshold. Routine quits when @var{gmax}/@var{gmin} < 1+tol. ! @item ptol ! poles with @code{abs(real(pole))} @iftex @tex ! $ < ptol \Vert H \Vert $ @end tex @end iftex @ifinfo ! < ptol*||H|| @end ifinfo ! (@var{H} is appropriate ! Hamiltonian) are considered to be on the imaginary axis. ! Default: 1e-9. ! @item tol ! threshold for 0. Default: 200*@code{eps}. + @var{gmax}, @var{min}, @var{tol}, and @var{tol} must all be positive scalars. + @end table + @strong{Outputs} @table @var @item k ! System controller. ! @item g ! Designed gain value. ! @item gw ! Closed loop system. ! @item xinf ! @acronym{ARE} solution matrix for regulator subproblem. ! @item yinf ! @acronym{ARE} solution matrix for filter subproblem. ! @end table ! ! References: ! @enumerate ! @item Doyle, Glover, Khargonekar, Francis, @cite{State-Space Solutions ! to Standard} @iftex @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! @cite{H-2 and H-infinity} @end ifinfo ! @cite{Control Problems}, @acronym{IEEE} @acronym{TAC} August 1989. ! @item Maciejowksi, J.M., @cite{Multivariable feedback design}, ! Addison-Wesley, 1989, @acronym{ISBN} 0-201-18243-2. ! @item Keith Glover and John C. Doyle, @cite{State-space formulae for all ! stabilizing controllers that satisfy an} @iftex @tex ! $ { \cal H }_\infty $@cite{norm} @end tex @end iftex @ifinfo ! @cite{H-infinity-norm} @end ifinfo ! @cite{bound and relations to risk sensitivity}, ! Systems & Control Letters 11, Oct. 1988, pp 167--172. ! @end enumerate @end deftypefn ! wgt1o -*- texinfo -*- ! @deftypefn {Function File} {@var{W} =} wgt1o (@var{vl}, @var{vh}, @var{fc}) ! State space description of a first order weighting function. ! ! Weighting function are needed by the @iftex @tex ! $ { \cal H }_2 / { \cal H }_\infty $ @end tex @end iftex @ifinfo + H-2/H-infinity + @end ifinfo + design procedure. + These functions are part of the augmented plant @var{P} + (see @command{hinfdemo} for an application example). ! @strong{Inputs} ! @table @var ! @item vl ! Gain at low frequencies. ! @item vh ! Gain at high frequencies. ! @item fc ! Corner frequency (in Hz, @strong{not} in rad/sec) ! @end table ! @strong{Output} ! @table @var ! @item W ! Weighting function, given in form of a system data structure. ! @end table ! @end deftypefn ! dhinfdemo ! -*- texinfo -*- ! @deftypefn {Function File} {} dhinfdemo () ! Demonstrate the functions available to design a discrete @iftex @tex ! $ { \cal H }_\infty $ @end tex @end iftex @ifinfo + H-infinity + @end ifinfo + controller. This is not a true discrete design. The + design is carried out in continuous time while the effect of sampling + is described by a bilinear transformation of the sampled system. + This method works quite well if the sampling period is "small" + compared to the plant time constants. + Continuous plant: + @iftex + @tex + $$ G(s) = { 1 \over (s+2) (s+1) } $$ + @end tex + @end iftex + @ifinfo @example ! @group ! 1 ! G(s) = -------------- ! (s + 2)(s + 1) ! @end group @end example @end ifinfo ! Discretised plant with @acronym{ZOH} (Sampling period = @var{Ts} = 1 second): @iftex @tex ! $$ G(z) = { 0.39958z + 0.14700 \over (z - 0.36788) (z - 0.13533) } $$ @end tex @end iftex @ifinfo @example ! @group ! 0.39958z + 0.14700 ! G(z) = -------------------------- ! (z - 0.36788)(z - 0.13533) ! @end group @end example @end ifinfo ! @example ! @group ! +----+ ! -------------------->| W1 |---> v1 ! z | +----+ ! ----|-------------+ || T || => min. ! | | vz infty ! | +---+ v +----+ ! *--->| G |--->O--*-->| W2 |---> v2 ! | +---+ | +----+ ! | | ! | +---+ | ! -----| K |<------- ! +---+ ! @end group ! @end example ! ! @noindent ! W1 and W2 are the robustness and performancs weighting functions. ! @end deftypefn ! is_dgkf ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{retval}, @var{dgkf_struct} ] =} is_dgkf (@var{asys}, @var{nu}, @var{ny}, @var{tol} ) ! Determine whether a continuous time state space system meets ! assumptions of @acronym{DGKF} algorithm. ! Partitions system into: ! @example ! [dx/dt] [A | Bw Bu ][w] ! [ z ] = [Cz | Dzw Dzu ][u] ! [ y ] [Cy | Dyw Dyu ] ! @end example ! or similar discrete-time system. ! If necessary, orthogonal transformations @var{qw}, @var{qz} and nonsingular ! transformations @var{ru}, @var{ry} are applied to respective vectors ! @var{w}, @var{z}, @var{u}, @var{y} in order to satisfy @acronym{DGKF} assumptions. ! Loop shifting is used if @var{dyu} block is nonzero. + @strong{Inputs} + @table @var + @item asys + system data structure + @item nu + number of controlled inputs + @item ny + number of measured outputs + @item tol + threshold for 0; default: 200*@code{eps}. + @end table + @strong{Outputs} + @table @var + @item retval + true(1) if system passes check, false(0) otherwise + @item dgkf_struct + data structure of @command{is_dgkf} results. Entries: @table @var ! @item nw ! @itemx nz ! dimensions of @var{w}, @var{z} ! @item a ! system @math{A} matrix ! @item bw ! (@var{n} x @var{nw}) @var{qw}-transformed disturbance input matrix ! @item bu ! (@var{n} x @var{nu}) @var{ru}-transformed controlled input matrix; ! @math{B = [Bw Bu]} ! @item cz ! (@var{nz} x @var{n}) Qz-transformed error output matrix ! @item cy ! (@var{ny} x @var{n}) @var{ry}-transformed measured output matrix ! @math{C = [Cz; Cy]} ! @item dzu ! @item dyw ! off-diagonal blocks of transformed system @math{D} matrix that enter ! @var{z}, @var{y} from @var{u}, @var{w} respectively ! @item ru ! controlled input transformation matrix ! @item ry ! observed output transformation matrix ! @item dyu_nz ! nonzero if the @var{dyu} block is nonzero. ! @item dyu ! untransformed @var{dyu} block ! @item dflg ! nonzero if the system is discrete-time ! @end table ! @end table ! @code{is_dgkf} exits with an error if the system is mixed ! discrete/continuous. ! ! @strong{References} ! @table @strong ! @item [1] ! Doyle, Glover, Khargonekar, Francis, @cite{State Space Solutions to Standard} @iftex @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! @cite{H-2 and H-infinity} @end ifinfo + @cite{Control Problems}, @acronym{IEEE} @acronym{TAC} August 1989. + @item [2] + Maciejowksi, J.M., @cite{Multivariable Feedback Design}, Addison-Wesley, 1989. @end table @end deftypefn ! hinfsyn_ric -*- texinfo -*- ! @deftypefn {Function File} {[@var{xinf}, @var{x_ha_err}] =} hinfsyn_ric (@var{a}, @var{bb}, @var{c1}, @var{d1dot}, @var{r}, @var{ptol}) ! Forms @example ! xx = ([bb; -c1'*d1dot]/r) * [d1dot'*c1 bb']; ! Ha = [a 0*a; -c1'*c1 - a'] - xx; @end example ! and solves associated Riccati equation. ! The error code @var{x_ha_err} indicates one of the following ! conditions: ! @table @asis ! @item 0 ! successful ! @item 1 ! @var{xinf} has imaginary eigenvalues ! @item 2 ! @var{hx} not Hamiltonian ! @item 3 ! @var{xinf} has infinite eigenvalues (numerical overflow) ! @item 4 ! @var{xinf} not symmetric ! @item 5 ! @var{xinf} not positive definite ! @item 6 ! @var{r} is singular ! @end table ! @end deftypefn ! h2norm ! -*- texinfo -*- ! @deftypefn {Function File} {} h2norm (@var{sys}) ! Computes the @iftex @tex ! $ { \cal H }_2 $ @end tex @end iftex @ifinfo ! H-2 @end ifinfo ! norm of a system data structure (continuous time only). ! Reference: ! Doyle, Glover, Khargonekar, Francis, @cite{State-Space Solutions to Standard} @iftex @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! @cite{H-2 and H-infinity} @end ifinfo ! @cite{Control Problems}, @acronym{IEEE} @acronym{TAC} August 1989. @end deftypefn ! hinf_ctr -*- texinfo -*- ! @deftypefn {Function File} {@var{K} =} hinf_ctr (@var{dgs}, @var{f}, @var{h}, @var{z}, @var{g}) ! Called by @code{hinfsyn} to compute the @iftex @tex ! $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! H-infinity @end ifinfo + optimal controller. @strong{Inputs} @table @var ! @item dgs ! data structure returned by @code{is_dgkf} ! @item f ! @itemx h ! feedback and filter gain (not partitioned) ! @item g ! final gamma value @end table ! @strong{Outputs} @table @var ! @item K ! controller (system data structure) @end table ! Do not attempt to use this at home; no argument checking performed. @end deftypefn ! hinfnorm -*- texinfo -*- ! @deftypefn {Function File} {[@var{g}, @var{gmin}, @var{gmax}] =} hinfnorm (@var{sys}, @var{tol}, @var{gmin}, @var{gmax}, @var{ptol}) ! Computes the @iftex @tex ! $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! H-infinity @end ifinfo ! norm of a system data structure. ! ! @strong{Inputs} ! @table @var ! @item sys ! system data structure ! @item tol @iftex @tex ! $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! H-infinity @end ifinfo ! norm search tolerance (default: 0.001) ! @item gmin ! minimum value for norm search (default: 1e-9) ! @item gmax ! maximum value for norm search (default: 1e+9) ! @item ptol ! pole tolerance: ! @itemize @bullet ! @item if sys is continuous, poles with @iftex @tex ! $ \vert {\rm real}(pole) \vert < ptol \Vert H \Vert $ @end tex @end iftex @ifinfo ! @math{ |real(pole))| < ptol*||H|| } @end ifinfo ! (@var{H} is appropriate Hamiltonian) ! are considered to be on the imaginary axis. ! @item if sys is discrete, poles with @iftex @tex ! $ \vert { \rm pole } - 1 \vert < ptol \Vert [ s_1 s_2 ] \Vert $ @end tex @end iftex @ifinfo ! @math{|abs(pole)-1| < ptol*||[s1,s2]||} @end ifinfo + (appropriate symplectic pencil) + are considered to be on the unit circle. ! @item Default value: 1e-9 ! @end itemize @end table ! @strong{Outputs} @table @var ! @item g ! Computed gain, within @var{tol} of actual gain. @var{g} is returned as Inf ! if the system is unstable. ! @item gmin ! @itemx gmax ! Actual system gain lies in the interval [@var{gmin}, @var{gmax}]. ! @end table ! ! References: ! Doyle, Glover, Khargonekar, Francis, @cite{State-space solutions to standard} @iftex @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! @cite{H-2 and H-infinity} @end ifinfo ! @cite{control problems}, @acronym{IEEE} @acronym{TAC} August 1989; ! Iglesias and Glover, @cite{State-Space approach to discrete-time} @iftex @tex ! $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! @cite{H-infinity} @end ifinfo ! @cite{control}, Int. J. Control, vol 54, no. 5, 1991; ! Zhou, Doyle, Glover, @cite{Robust and Optimal Control}, Prentice-Hall, 1996. @end deftypefn ! h2syn -*- texinfo -*- ! @deftypefn {Function File} {[@var{K}, @var{gain}, @var{kc}, @var{kf}, @var{pc}, @var{pf}] = } h2syn (@var{asys}, @var{nu}, @var{ny}, @var{tol}) ! Design @iftex @tex ! $ { \cal H }_2 $ @end tex ! @end iftex ! @ifinfo ! H-2 ! @end ifinfo ! optimal controller per procedure in ! Doyle, Glover, Khargonekar, Francis, @cite{State-Space Solutions to Standard} @iftex @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! @cite{H-2 and H-infinity} @end ifinfo ! @cite{Control Problems}, @acronym{IEEE} @acronym{TAC} August 1989. ! ! Discrete-time control per Zhou, Doyle, and Glover, @cite{Robust and optimal control}, Prentice-Hall, 1996. @strong{Inputs} @table @var ! @item asys ! system data structure (see ss, sys2ss) ! @itemize @bullet ! @item controller is implemented for continuous time systems ! @item controller is @strong{not} implemented for discrete time systems ! @end itemize ! @item nu ! number of controlled inputs ! @item ny ! number of measured outputs ! @item tol ! threshold for 0. Default: 200*@code{eps} @end table + @strong{Outputs} @table @var @item k ! system controller ! @item gain ! optimal closed loop gain ! @item kc ! full information control (packed) ! @item kf ! state estimator (packed) ! @item pc ! @acronym{ARE} solution matrix for regulator subproblem ! @item pf ! @acronym{ARE} solution matrix for filter subproblem @end table @end deftypefn ! hinfdemo -*- texinfo -*- ! @deftypefn {Function File} {} hinfdemo () ! @iftex ! @tex ! $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! H-infinity ! @end ifinfo ! design demos for continuous @acronym{SISO} and @acronym{MIMO} systems and a ! discrete system. The @acronym{SISO} system is difficult to control because ! it is non-minimum-phase and unstable. The second design example ! controls the @command{jet707} plant, the linearized state space model of a ! Boeing 707-321 aircraft at @var{v}=80 m/s ! @iftex ! @tex ! ($M = 0.26$, $G_{a0} = -3^{\circ}$, ${\alpha}_0 = 4^{\circ}$, ${\kappa}= 50^{\circ}$). ! @end tex ! @end iftex ! @ifinfo ! (@var{M} = 0.26, @var{Ga0} = -3 deg, @var{alpha0} = 4 deg, @var{kappa} = 50 deg). ! @end ifinfo ! Inputs: (1) thrust and (2) elevator angle ! Outputs: (1) airspeed and (2) pitch angle. The discrete system is a ! stable and second order. ! @table @asis ! @item @acronym{SISO} plant: @iftex @tex ! $$ G(s) = { s-2 \over (s+2) (s-1) } $$ @end tex @end iftex @ifinfo @example ! @group ! s - 2 ! G(s) = -------------- ! (s + 2)(s - 1) ! @end group @end example @end ifinfo ! @smallexample ! @group ! +----+ ! -------------------->| W1 |---> v1 ! z | +----+ ! ----|-------------+ ! | | ! | +---+ v y +----+ ! u *--->| G |--->O--*-->| W2 |---> v2 ! | +---+ | +----+ ! | | ! | +---+ | ! -----| K |<------- ! +---+ ! @end group ! @end smallexample ! ! @iftex ! @tex ! $$ { \rm min } \Vert T_{vz} \Vert _\infty $$ ! @end tex ! @end iftex @ifinfo @example ! min || T || ! vz infty @end example @end ifinfo + + @var{W1} und @var{W2} are the robustness and performance weighting + functions. + + @item @acronym{MIMO} plant: + The optimal controller minimizes the + @iftex + @tex + $ { \cal H }_\infty $ + @end tex + @end iftex + @ifinfo + H-infinity + @end ifinfo + norm of the + augmented plant @var{P} (mixed-sensitivity problem): + @smallexample + @group + w + 1 -----------+ + | +----+ + +---------------------->| W1 |----> z1 + w | | +----+ + 2 ------------------------+ + | | | + | v +----+ v +----+ + +--*-->o-->| G |-->o--*-->| W2 |---> z2 + | +----+ | +----+ + | | + ^ v + u y (to K) + (from controller K) + @end group + @end smallexample + @iftex @tex ! $$ \left [ \matrix{ z_1 \cr ! z_2 \cr ! y } \right ] = ! P \left [ \matrix{ w_1 \cr ! w_2 \cr ! u } \right ] $$ @end tex @end iftex @ifinfo ! @smallexample ! @group ! + + + + ! | z | | w | ! | 1 | | 1 | ! | z | = [ P ] * | w | ! | 2 | | 2 | ! | y | | u | ! + + + + ! @end group ! @end smallexample @end ifinfo + + @item Discrete system: + This is not a true discrete design. The design is carried out + in continuous time while the effect of sampling is described by + a bilinear transformation of the sampled system. + This method works quite well if the sampling period is ``small'' + compared to the plant time constants. + + @item The continuous plant: @iftex @tex ! $$ G(s) = { 1 \over (s+2)(s+1) } $$ @end tex @end iftex ! @ifinfo @example ! @group ! 1 ! G (s) = -------------- ! k (s + 2)(s + 1) ! ! @end group @end example @end ifinfo + + is discretised with a @acronym{ZOH} (Sampling period = @var{Ts} = 1 second): @iftex @tex ! $$ G(z) = { 0.199788z + 0.073498 \over (z - 0.36788) (z - 0.13534) } $$ @end tex @end iftex ! @ifinfo ! @example ! @group ! ! 0.199788z + 0.073498 ! G(z) = -------------------------- ! (z - 0.36788)(z - 0.13534) ! @end group ! @end example ! @end ifinfo ! ! @smallexample ! @group ! ! +----+ ! -------------------->| W1 |---> v1 ! z | +----+ ! ----|-------------+ ! | | ! | +---+ v +----+ ! *--->| G |--->O--*-->| W2 |---> v2 ! | +---+ | +----+ ! | | ! | +---+ | ! -----| K |<------- ! +---+ ! @end group ! @end smallexample @iftex @tex ! $$ { \rm min } \Vert T_{vz} \Vert _\infty $$ @end tex @end iftex @ifinfo @example ! min || T || ! vz infty @end example @end ifinfo ! @var{W1} and @var{W2} are the robustness and performance weighting ! functions. ! @end table @end deftypefn ! syschnames -*- texinfo -*- ! @deftypefn {Function File} {} syschnames (@var{sys}, @var{opt}, @var{list}, @var{names}) ! Superseded by @command{syssetsignals}. @end deftypefn ! swaprows -*- texinfo -*- ! @deftypefn {Function File} {} swaprows (inputs) ! @format ! function B = swaprows(A) ! permute rows of A into reverse order ! @end format ! @end deftypefn ! swapcols ! -*- texinfo -*- ! @deftypefn {Function File} {} swapcols (inputs) ! @format ! function B = swapcols(A) ! permute columns of A into reverse order ! @end format ! @end deftypefn ! minfo ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{systype}, @var{nout}, @var{nin}, @var{ncstates}, @var{ndstates}] =} minfo (@var{inmat}) ! Determines the type of system matrix. @var{inmat} can be a varying, ! a system, a constant, and an empty matrix. ! @strong{Outputs} @table @var ! @item systype ! Can be one of: varying, system, constant, and empty. ! @item nout ! The number of outputs of the system. ! @item nin ! The number of inputs of the system. ! @item ncstates ! The number of continuous states of the system. ! @item ndstates ! The number of discrete states of the system. @end table + @end deftypefn + packsys + O B S O L E T E: use ss instead. + function Asys = packsys(a,b,c[,d,dflg]) ! dflg: 0 for continuous time system, 1 for discrete-time system. ! defaults: ! D: 0 matrix of appropriate dimension. ! dflg: 0 (continuous time) ! ! Note: discrete-state sampling time is not included! ! dlqg ! O B S O L E T E * * * D O N O T U S E! ! ! Use lqg instead. ! ! function [K,Q,P,Ee,Er] = dlqg(A,B,C,G,Sigw,Sigv,Q,R) ! function [K,Q,P,Ee,Er] = dlqg(Sys,Sigw,Sigv,Q,R) ! ! design a discrete-time linear quadratic gaussian optimal controller ! for the system ! ! x(k+1) = A x(k) + B u(k) + G w(k) [w]=N(0,[Sigw 0 ]) ! y(k) = C x(k) + v(k) [v] ( 0 Sigv ]) ! ! Outputs: ! K: system data structure format LQG optimal controller ! P: Solution of control (state feedback) algebraic Riccati equation ! Q: Solution of estimation algebraic Riccati equation ! Ee: estimator poles ! Es: controller poles ! inputs: ! A,B,C,G, or Sys: state space representation of system. ! Sigw, Sigv: covariance matrices of independent Gaussian noise processes ! (as above) ! Q, R: state, control weighting matrices for dlqr call respectively. ! ! See also: lqg, dlqe, dlqr ! qzval -*- texinfo -*- ! @deftypefn {Function File} {} qzval (@var{a}, @var{b}) ! Compute generalized eigenvalues of the matrix pencil ! @ifinfo ! @example ! (A - lambda B). ! @end example ! @end ifinfo ! @iftex ! @tex ! $(A - \lambda B)$. ! @end tex ! @end iftex ! ! @var{a} and @var{b} must be real matrices. ! ! @code{qzval} is obsolete; use @code{qz} instead. @end deftypefn ! series ! Forms the series connection of two systems. ! ! Superseded by sysmult. Do not use this routine! ! used internally in zp2ss ! ! Type of input: Transfer functions ! Command: [num,den]=series(num1,den1,num2,den2) ! Forms the series representation of the two transfer functions. ! ! Type of input: State space systems ! Command: [a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2) ! Forms the series representation of the two state space system arguments. ! The series connected system will have the inputs of system 1 and the ! outputs of system 2. ! ! Type of input: system data structure ! Command: syst=series(syst1,syst2) ! Forms the series representation of the two mu system arguments. ! rotg ! function [c,s] = rotg(a,b) ! givens rotation calculation ! ! NOTE: Use [c,s] = givens(a,b) instead. ! dezero -*- texinfo -*- ! @deftypefn {Functin File} {} dezero (@var{s}) ! Remove trailing blank entries and all zero entries from the string s. ! @end deftypefn ! unpacksys ! [a,b,c,d] = unpacksys(sys) ! Obsolete. Use sys2ss instead. ! zgscal ! -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} zgscal (@var{f}, @var{z}, @var{n}, @var{m}, @var{p}) ! Generalized conjugate gradient iteration to ! solve zero-computation generalized eigenvalue problem balancing equation ! @math{fx=z}; called by @command{zgepbal}. @end deftypefn ! __zgpbal__ Undocumented internal function. ! zgrownorm -*- texinfo -*- ! @deftypefn {Function File} {[@var{nonz}, @var{zer}] =} zgrownorm (@var{mat}, @var{meps}) ! Return @var{nonz} = number of rows of @var{mat} whose two norm ! exceeds @var{meps}, and @var{zer} = number of rows of mat whose two ! norm is less than @var{meps}. @end deftypefn ! strappend -*- texinfo -*- ! @deftypefn {Function File} {} strappend (@var{strlist}, @var{suffix}) ! Append string @var{suffix} to each string in the list @var{strlist}. @end deftypefn ! zginit -*- texinfo -*- ! @deftypefn {Function File} {@var{zz} =} zginit (@var{a}, @var{b}, @var{c}, @var{d}) ! Construct right hand side vector @var{zz} ! for the zero-computation generalized eigenvalue problem ! balancing procedure. Called by @command{zgepbal}. ! @end deftypefn ! axis2dlim ! -*- texinfo -*- ! @deftypefn {Function File} {} axis2dlim (@var{axdata}) ! Determine axis limits for 2-D data (column vectors); leaves a 10% ! margin around the plots. ! Inserts margins of +/- 0.1 if data is one-dimensional ! (or a single point). ! @strong{Input} @table @var ! @item axdata ! @var{n} by 2 matrix of data [@var{x}, @var{y}]. @end table + @strong{Output} @table @var ! @item axvec ! Vector of axis limits appropriate for call to @command{axis} function. @end table @end deftypefn ! prompt -*- texinfo -*- ! @deftypefn {Function File} {} prompt (@var{str}) ! Prompt user to continue ! @strong{Input} ! @table @var ! @item str ! Input string. Its default value is: ! @example ! \n ---- Press a key to continue --- ! @end example ! @end table @end deftypefn ! swap -*- texinfo -*- ! @deftypefn {Function File} {} swap (@var{inputs}) ! @format ! [a1,b1] = swap(a,b) ! interchange a and b ! @end format ! @end deftypefn ! zgsgiv ! -*- texinfo -*- ! @deftypefn {Function File} {[a, b] =} zgsgiv (@var{c}, @var{s}, @var{a}, @var{b}) ! Apply givens rotation c,s to row vectors @var{a}, @var{b}. ! No longer used in zero-balancing (__zgpbal__); kept for backward ! compatibility. ! @end deftypefn ! zgshsr ! -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} zgshsr (@var{y}) ! Apply householder vector based on ! @iftex ! @tex ! $ e^m $ ! @end tex ! @end iftex ! @ifinfo ! @math{e^(m)} ! @end ifinfo ! to column vector @var{y}. ! Called by @command{zgfslv}. ! @end deftypefn ! sortcom ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{yy}, @var{idx}] =} sortcom (@var{xx}[, @var{opt}]) ! Sort a complex vector. @strong{Inputs} @table @var ! @item xx ! Complex vector @item opt ! sorting option: @table @code ! @item "re" ! Real part (default); ! @item "mag" ! By magnitude; ! @item "im" ! By imaginary part. @end table + if @var{opt} is not chosen as @code{"im"}, then complex conjugate pairs are grouped together, + @math{a - jb} followed by @math{a + jb}. @end table @strong{Outputs} @table @var ! @item yy ! Sorted values ! @item idx ! Permutation vector: @code{yy = xx(idx)} @end table @end deftypefn ! run_cmd ! run_cmd: short script used in demos ! prints string cmd to the screen, then executes after a pause ! zgfslv -*- texinfo -*- ! @deftypefn {Function File} {} zgfslv (@var{n}, @var{m}, @var{p}, @var{b}) ! Solve system of equations for dense zgep problem. @end deftypefn ! zgreduce -*- texinfo -*- ! @deftypefn {Function File} {} zgreduce (@var{sys}, @var{meps}) ! Implementation of procedure REDUCE in (Emami-Naeini and Van Dooren, ! Automatica, # 1982). @end deftypefn ! zgfmul ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} zgfmul (@var{a}, @var{b}, @var{c}, @var{d}, @var{x}) ! Compute product of @var{zgep} incidence matrix @math{F} with vector @var{x}. ! Used by @command{zgepbal} (in @command{zgscal}) as part of generalized conjugate gradient ! iteration. ! @end deftypefn ! __outlist__ ! Undocumented internal function. ! __bodquist__ ! Undocumented internal function. ! analdemo -*- texinfo -*- ! @deftypefn {Function File} {} analdemo () ! Octave Controls toolbox demo: State Space analysis demo @end deftypefn ! tzero2 -*- texinfo -*- ! @deftypefn {Function File} {@var{zr} =} tzero2 (@var{a}, @var{b}, @var{c}, @var{d}, @var{bal}) ! Compute the transmission zeros of @var{a}, @var{b}, @var{c}, @var{d}. ! @var{bal} = balancing option (see balance); default is @code{"B"}. ! Needs to incorporate @command{mvzero} algorithm to isolate finite zeros; ! use @command{tzero} instead. @end deftypefn ! controldemo -*- texinfo -*- ! @deftypefn {Function File} {} controldemo () ! Control Systems Toolbox demo. ! @seealso{Demo programs: bddemo, frdemo, analdemo, moddmeo, rldemo} @end deftypefn ! dlyap -*- texinfo -*- ! @deftypefn {Function File} {} dlyap (@var{a}, @var{b}) ! Solve the discrete-time Lyapunov equation @strong{Inputs} @table @var @item a ! @var{n} by @var{n} matrix; ! @item b ! Matrix: @var{n} by @var{n}, @var{n} by @var{m}, or @var{p} by @var{n}. ! @end table ! @strong{Output} ! @table @var ! @item x ! matrix satisfying appropriate discrete time Lyapunov equation. ! @end table ! Options: ! @itemize @bullet ! @item @var{b} is square: solve ! @iftex ! @tex ! $$ axa^T - x + b = 0 $$ ! @end tex ! @end iftex ! @ifinfo ! @code{a x a' - x + b = 0} ! @end ifinfo ! @item @var{b} is not square: @var{x} satisfies either ! @iftex ! @tex ! $$ axa^T - x + bb^T = 0 $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! a x a' - x + b b' = 0 ! @end example ! @end ifinfo ! @noindent ! or ! @iftex ! @tex ! $$ a^Txa - x + b^Tb = 0, $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! a' x a - x + b' b = 0, ! @end example ! @end ifinfo ! @noindent ! whichever is appropriate. ! @end itemize ! @strong{Method} ! Uses Schur decomposition method as in Kitagawa, ! @cite{An Algorithm for Solving the Matrix Equation @math{X = F X F' + S}}, ! International Journal of Control, Volume 25, Number 5, pages 745--753 ! (1977). ! Column-by-column solution method as suggested in ! Hammarling, @cite{Numerical Solution of the Stable, Non-Negative ! Definite Lyapunov Equation}, @acronym{IMA} Journal of Numerical Analysis, Volume ! 2, pages 303--323 (1982). ! @end deftypefn ! gram ! -*- texinfo -*- ! @deftypefn {Function File} {} gram (@var{a}, @var{b}) ! Return controllability gramian @var{m} of the continuous time system ! @math{dx/dt = a x + b u}. ! @var{m} satisfies @math{a m + m a' + b b' = 0}. ! @end deftypefn ! bddemo ! -*- texinfo -*- ! @deftypefn {Function File} {} bddemo (@var{inputs}) ! Octave Controls toolbox demo: Block Diagram Manipulations demo. ! @end deftypefn ! are ! -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} are (@var{a}, @var{b}, @var{c}, @var{opt}) ! Solve the Algebraic Riccati Equation ! @iftex ! @tex ! $$ ! A^TX + XA - XBX + C = 0 ! $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! a' * x + x * a - x * b * x + c = 0 ! @end example ! @end ifinfo ! @strong{Inputs} ! @noindent ! for identically dimensioned square matrices ! @table @var ! @item a ! @var{n} by @var{n} matrix; ! @item b ! @var{n} by @var{n} matrix or @var{n} by @var{m} matrix; in the latter case ! @var{b} is replaced by @math{b:=b*b'}; ! @item c ! @var{n} by @var{n} matrix or @var{p} by @var{m} matrix; in the latter case ! @var{c} is replaced by @math{c:=c'*c}; ! @item opt ! (optional argument; default = @code{"B"}): ! String option passed to @code{balance} prior to ordered Schur decomposition. @end table ! @strong{Output} ! @table @var ! @item x ! solution of the @acronym{ARE}. ! @end table ! @strong{Method} ! Laub's Schur method (@acronym{IEEE} Transactions on ! Automatic Control, 1979) is applied to the appropriate Hamiltonian ! matrix. ! @seealso{balance, dare} ! @end deftypefn ! ctrb ! -*- texinfo -*- ! @deftypefn {Function File} {} ctrb (@var{sys}, @var{b}) ! @deftypefnx {Function File} {} ctrb (@var{a}, @var{b}) ! Build controllability matrix: ! @iftex ! @tex ! $$ Q_s = [ B AB A^2B \ldots A^{n-1}B ] $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! 2 n-1 ! Qs = [ B AB A B ... A B ] ! @end example ! @end ifinfo ! of a system data structure or the pair (@var{a}, @var{b}). ! @command{ctrb} forms the controllability matrix. ! The numerical properties of @command{is_controllable} ! are much better for controllability tests. ! @end deftypefn ! bode_bounds ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{wmin}, @var{wmax}] =} bode_bounds (@var{zer}, @var{pol}, @var{dflg}, @var{tsam}) ! Get default range of frequencies based on cutoff frequencies of system ! poles and zeros. ! Frequency range is the interval ! @iftex ! @tex ! $ [ 10^{w_{min}}, 10^{w_{max}} ] $ ! @end tex ! @end iftex ! @ifinfo ! [10^@var{wmin}, 10^@var{wmax}] ! @end ifinfo ! Used internally in @command{__freqresp__} (@command{bode}, @command{nyquist}) ! @end deftypefn ! dlqr ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{k}, @var{p}, @var{e}] =} dlqr (@var{a}, @var{b}, @var{q}, @var{r}, @var{z}) ! Construct the linear quadratic regulator for the discrete time system ! @iftex ! @tex ! $$ ! x_{k+1} = A x_k + B u_k ! $$ ! @end tex ! @end iftex @ifinfo ! @example ! x[k+1] = A x[k] + B u[k] ! @end example @end ifinfo + to minimize the cost functional @iftex @tex ! $$ ! J = \sum x^T Q x + u^T R u ! $$ @end tex @end iftex + @ifinfo @example ! J = Sum (x' Q x + u' R u) @end example ! @end ifinfo ! ! @noindent ! @var{z} omitted or ! @iftex ! @tex ! $$ ! J = \sum x^T Q x + u^T R u + 2 x^T Z u ! $$ ! @end tex ! @end iftex ! @ifinfo @example ! J = Sum (x' Q x + u' R u + 2 x' Z u) ! @end example ! @end ifinfo ! @var{z} included. ! The following values are returned: ! @table @var ! @item k ! The state feedback gain, ! @iftex ! @tex ! $(A - B K)$ ! @end tex ! @end iftex ! @ifinfo ! (@var{a} - @var{b}@var{k}) ! @end ifinfo ! is stable. ! ! @item p ! The solution of algebraic Riccati equation. ! ! @item e ! The closed loop poles of ! @iftex ! @tex ! $(A - B K)$. ! @end tex ! @end iftex ! @ifinfo ! (@var{a} - @var{b}@var{k}). ! @end ifinfo ! @end table @end deftypefn ! dgram -*- texinfo -*- ! @deftypefn {Function File} {} dgram (@var{a}, @var{b}) ! Return controllability gramian of discrete time system ! @iftex ! @tex ! $$ x_{k+1} = ax_k + bu_k $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! x(k+1) = a x(k) + b u(k) ! @end example ! @end ifinfo ! ! @strong{Inputs} ! @table @var ! @item a ! @var{n} by @var{n} matrix ! @item b ! @var{n} by @var{m} matrix ! @end table ! ! @strong{Output} ! @table @var ! @item m ! @var{n} by @var{n} matrix, satisfies ! @iftex ! @tex ! $$ ama^T - m + bb^T = 0 $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! a m a' - m + b*b' = 0 ! @end example ! @end ifinfo ! @end table @end deftypefn ! ltifr -*- texinfo -*- ! @deftypefn {Function File} {@var{out} =} ltifr (@var{a}, @var{b}, @var{w}) ! @deftypefnx {Function File} {@var{out} =} ltifr (@var{sys}, @var{w}) ! Linear time invariant frequency response of single-input systems. ! @strong{Inputs} ! @table @var ! @item a ! @itemx b ! coefficient matrices of @math{dx/dt = A x + B u} ! @item sys ! system data structure ! @item w ! vector of frequencies ! @end table ! @strong{Output} ! @table @var ! @item out ! frequency response, that is: ! @end table ! @iftex ! @tex ! $$ G(j\omega) = (j\omega I-A)^{-1}B $$ ! @end tex ! @end iftex ! @ifinfo @example ! -1 ! G(s) = (jw I-A) B @end example + @end ifinfo + for complex frequencies @math{s = jw}. @end deftypefn ! rlocus -*- texinfo -*- ! @deftypefn {Function File} {[@var{rldata}, @var{k}] =} rlocus (@var{sys}[, @var{increment}, @var{min_k}, @var{max_k}]) ! Display root locus plot of the specified @acronym{SISO} system. ! @example ! @group ! ----- --- -------- ! --->| + |---|k|---->| SISO |-----------> ! ----- --- -------- | ! - ^ | ! |_____________________________| ! @end group ! @end example ! ! @strong{Inputs} @table @var @item sys ! system data structure ! @item min_k ! Minimum value of @var{k} ! @item max_k ! Maximum value of @var{k} ! @item increment ! The increment used in computing gain values @end table @strong{Outputs} ! Plots the root locus to the screen. ! @table @var ! @item rldata ! Data points plotted: in column 1 real values, in column 2 the imaginary values. ! @item k ! Gains for real axis break points. @end table @end deftypefn ! freqchkw -*- texinfo -*- ! @deftypefn {Function File} {} freqchkw (@var{w}) ! Used by @command{__freqresp__} to check that input frequency vector @var{w} ! is valid. ! Returns boolean value. ! @end deftypefn ! lqr ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{k}, @var{p}, @var{e}] =} lqr (@var{a}, @var{b}, @var{q}, @var{r}, @var{z}) ! construct the linear quadratic regulator for the continuous time system ! @iftex ! @tex ! $$ ! {dx\over dt} = A x + B u ! $$ ! @end tex ! @end iftex @ifinfo ! ! @example ! dx ! -- = A x + B u ! dt ! @end example ! @end ifinfo + to minimize the cost functional @iftex @tex ! $$ ! J = \int_0^\infty x^T Q x + u^T R u ! $$ @end tex @end iftex @ifinfo ! ! @example ! infinity ! / ! J = | x' Q x + u' R u ! / ! t=0 ! @end example @end ifinfo + + @noindent + @var{z} omitted or @iftex @tex ! $$ ! J = \int_0^\infty x^T Q x + u^T R u + 2 x^T Z u ! $$ @end tex @end iftex + @ifinfo ! @example ! infinity ! / ! J = | x' Q x + u' R u + 2 x' Z u ! / ! t=0 ! @end example ! @end ifinfo ! @var{z} included. ! The following values are returned: @table @var ! @item k ! The state feedback gain, ! @iftex ! @tex ! $(A - B K)$ ! @end tex ! @end iftex ! @ifinfo ! (@var{a} - @var{b}@var{k}) ! @end ifinfo ! is stable and minimizes the cost functional ! @item p ! The stabilizing solution of appropriate algebraic Riccati equation. ! @item e ! The vector of the closed loop poles of ! @iftex ! @tex ! $(A - B K)$. ! @end tex ! @end iftex ! @ifinfo ! (@var{a} - @var{b}@var{k}). ! @end ifinfo ! @end table ! @strong{Reference} ! Anderson and Moore, @cite{Optimal control: linear quadratic methods}, ! Prentice-Hall, 1990, pp. 56--58. @end deftypefn ! damp -*- texinfo -*- ! @deftypefn {Function File} {} damp (@var{p}, @var{tsam}) ! Displays eigenvalues, natural frequencies and damping ratios ! of the eigenvalues of a matrix @var{p} or the @math{A} matrix of a ! system @var{p}, respectively. ! If @var{p} is a system, @var{tsam} must not be specified. ! If @var{p} is a matrix and @var{tsam} is specified, eigenvalues ! of @var{p} are assumed to be in @var{z}-domain. ! @seealso{eig} ! @end deftypefn ! dare ! -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} dare (@var{a}, @var{b}, @var{q}, @var{r}, @var{opt}) ! ! Return the solution, @var{x} of the discrete-time algebraic Riccati ! equation ! @iftex ! @tex ! $$ ! A^TXA - X + A^TXB (R + B^TXB)^{-1} B^TXA + Q = 0 ! $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! a' x a - x + a' x b (r + b' x b)^(-1) b' x a + q = 0 ! @end example ! @end ifinfo ! @noindent @strong{Inputs} @table @var ! @item a ! @var{n} by @var{n} matrix; @item b ! @var{n} by @var{m} matrix; ! @item q ! @var{n} by @var{n} matrix, symmetric positive semidefinite, or a @var{p} by @var{n} matrix, ! In the latter case @math{q:=q'*q} is used; ! @item r ! @var{m} by @var{m}, symmetric positive definite (invertible); ! @item opt ! (optional argument; default = @code{"B"}): ! String option passed to @code{balance} prior to ordered @var{QZ} decomposition. @end table ! @strong{Output} @table @var ! @item x ! solution of @acronym{DARE}. @end table + + @strong{Method} + Generalized eigenvalue approach (Van Dooren; @acronym{SIAM} J. + Sci. Stat. Comput., Vol 2) applied to the appropriate symplectic pencil. + + See also: Ran and Rodman, @cite{Stable Hermitian Solutions of Discrete + Algebraic Riccati Equations}, Mathematics of Control, Signals and + Systems, Vol 5, no 2 (1992), pp 165--194. + @seealso{balance, are} @end deftypefn ! lqe -*- texinfo -*- ! @deftypefn {Function File} {[@var{k}, @var{p}, @var{e}] =} lqe (@var{a}, @var{g}, @var{c}, @var{sigw}, @var{sigv}, @var{z}) ! Construct the linear quadratic estimator (Kalman filter) for the ! continuous time system ! @iftex ! @tex ! $$ ! {dx\over dt} = A x + G u ! $$ ! $$ ! y = C x + v ! $$ ! @end tex ! @end iftex ! @ifinfo ! ! @example ! dx ! -- = A x + G u ! dt ! ! y = C x + v ! @end example ! ! @end ifinfo ! where @var{w} and @var{v} are zero-mean gaussian noise processes with ! respective intensities ! ! @example ! sigw = cov (w, w) ! sigv = cov (v, v) ! @end example ! ! The optional argument @var{z} is the cross-covariance ! @code{cov (@var{w}, @var{v})}. If it is omitted, ! @code{cov (@var{w}, @var{v}) = 0} is assumed. ! Observer structure is @code{dz/dt = A z + B u + k (y - C z - D u)} ! ! The following values are returned: @table @var ! @item k ! The observer gain, ! @iftex ! @tex ! $(A - K C)$ ! @end tex ! @end iftex ! @ifinfo ! (@var{a} - @var{k}@var{c}) ! @end ifinfo ! is stable. ! ! @item p ! The solution of algebraic Riccati equation. ! ! @item e ! The vector of closed loop poles of ! @iftex ! @tex ! $(A - K C)$. ! @end tex ! @end iftex ! @ifinfo ! (@var{a} - @var{k}@var{c}). ! @end ifinfo @end table @end deftypefn ! frdemo -*- texinfo -*- ! @deftypefn {Function File} {} frdemo () ! Octave Control Toolbox demo: Frequency Response demo. ! @end deftypefn ! __stepimp__ ! Undocumented internal function. ! obsv ! -*- texinfo -*- ! @deftypefn {Function File} {} obsv (@var{sys}, @var{c}) ! @deftypefnx {Function File} {} obsv (@var{a}, @var{c}) ! Build observability matrix: @iftex @tex ! $$ Q_b = \left[ \matrix{ C \cr ! CA \cr ! CA^2 \cr ! \vdots \cr ! CA^{n-1} } \right ] $$ @end tex @end iftex @ifinfo @example ! @group ! | C | ! | CA | ! Qb = | CA^2 | ! | ... | ! | CA^(n-1) | ! @end group ! @end example ! @end ifinfo ! of a system data structure or the pair (@var{a}, @var{c}). ! ! The numerical properties of @command{is_observable} ! are much better for observability tests. ! @end deftypefn ! dre ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{tvals}, @var{plist}] =} dre (@var{sys}, @var{q}, @var{r}, @var{qf}, @var{t0}, @var{tf}, @var{ptol}, @var{maxits}) ! Solve the differential Riccati equation ! @ifinfo ! @example ! -d P/dt = A'P + P A - P B inv(R) B' P + Q ! P(tf) = Qf @end example @end ifinfo @iftex @tex ! $$ -{dP \over dt} = A^T P+PA-PBR^{-1}B^T P+Q $$ ! $$ P(t_f) = Q_f $$ @end tex @end iftex + for the @acronym{LTI} system sys. Solution of + standard @acronym{LTI} state feedback optimization @ifinfo @example ! min int(t0, tf) ( x' Q x + u' R u ) dt + x(tf)' Qf x(tf) @end example @end ifinfo @iftex @tex ! $$ \min \int_{t_0}^{t_f} x^T Q x + u^T R u dt + x(t_f)^T Q_f x(t_f) $$ @end tex @end iftex + optimal input is @ifinfo @example ! u = - inv(R) B' P(t) x @end example @end ifinfo ! @iftex ! @tex ! $$ u = - R^{-1} B^T P(t) x $$ ! @end tex ! @end iftex ! @strong{Inputs} @table @var ! @item sys ! continuous time system data structure ! @item q ! state integral penalty ! @item r ! input integral penalty ! @item qf ! state terminal penalty ! @item t0 ! @itemx tf ! limits on the integral ! @item ptol ! tolerance (used to select time samples; see below); default = 0.1 ! @item maxits ! number of refinement iterations (default=10) @end table + @strong{Outputs} + @table @var + @item tvals + time values at which @var{p}(@var{t}) is computed + @item plist + list values of @var{p}(@var{t}); @var{plist} @{ @var{i} @} + is @var{p}(@var{tvals}(@var{i})) + @end table + @var{tvals} is selected so that: + @iftex + @tex + $$ \Vert plist_{i} - plist_{i-1} \Vert < ptol $$ + @end tex + @end iftex + @ifinfo + @example + || Plist@{i@} - Plist@{i-1@} || < Ptol + @end example + @end ifinfo + for every @var{i} between 2 and length(@var{tvals}). + @end deftypefn + place + -*- texinfo -*- + @deftypefn {Function File} {@var{K} =} place (@var{sys}, @var{p}) + Computes the matrix @var{K} such that if the state + is feedback with gain @var{K}, then the eigenvalues of the closed loop + system (i.e. @math{A-BK}) are those specified in the vector @var{p}. ! Version: Beta (May-1997): If you have any comments, please let me know. ! (see the file place.m for my address) @end deftypefn ! nichols -*- texinfo -*- ! @deftypefn {Function File} {[@var{mag}, @var{phase}, @var{w}] =} nichols (@var{sys}, @var{w}, @var{outputs}, @var{inputs}) ! Produce Nichols plot of a system. @strong{Inputs} @table @var ! @item sys ! System data structure (must be either purely continuous or discrete; ! see @command{is_digital}). ! @item w ! Frequency values for evaluation. ! @itemize ! @item if sys is continuous, then nichols evaluates @math{G(jw)}. ! @item if sys is discrete, then nichols evaluates @math{G(exp(jwT))}, ! where @var{T}=@var{sys}. @var{tsam} is the system sampling time. ! @item the default frequency range is selected as follows (These ! steps are @strong{not} performed if @var{w} is specified): ! @enumerate ! @item via routine @command{__bodquist__}, isolate all poles and zeros away from ! @var{w}=0 (@math{jw=0} or @math{exp(jwT)=1}) and select the frequency range ! based on the breakpoint locations of the frequencies. ! @item if sys is discrete time, the frequency range is limited to jwT in ! @iftex ! @tex ! $ [0, 2p\pi] $. ! @end tex ! @end iftex ! @ifinfo ! [0,2p*pi]. ! @end ifinfo ! @item A ``smoothing'' routine is used to ensure that the plot phase does ! not change excessively from point to point and that singular points ! (e.g., crossovers from +/- 180) are accurately shown. ! @end enumerate ! @end itemize ! @item outputs ! @itemx inputs ! the names or indices of the output(s) and input(s) to be used in the ! frequency response; see @command{sysprune}. @end table @strong{Outputs} @table @var ! @item mag ! @itemx phase ! The magnitude and phase of the frequency response @math{G(jw)} or ! @math{G(exp(jwT))} at the selected frequency values. ! @item w ! The vector of frequency values used. @end table + If no output arguments are given, @command{nichols} plots the results to the screen. + Descriptive labels are automatically placed. See @command{xlabel}, + @command{ylabel}, and @command{title}. ! Note: if the requested plot is for an @acronym{MIMO} system, @var{mag} is set to ! @iftex ! @tex ! $ \Vert G(jw) \Vert $ or $ \Vert G( {\rm exp}(jwT) \Vert $ ! @end tex ! @end iftex ! @ifinfo ! ||G(jw)|| or ||G(exp(jwT))|| ! @end ifinfo ! and phase information is not computed. @end deftypefn ! step -*- texinfo -*- ! @deftypefn {Function File} {[@var{y}, @var{t}] =} step (@var{sys}, @var{inp}, @var{tstop}, @var{n}) ! Step response for a linear system. ! The system can be discrete or multivariable (or both). ! If no output arguments are specified, @code{step} ! produces a plot or the step response data for system @var{sys}. @strong{Inputs} @table @var @item sys ! System data structure. ! @item inp ! Index of input being excited ! @item tstop ! The argument @var{tstop} (scalar value) denotes the time when the ! simulation should end. ! @item n ! the number of data values. + Both parameters @var{tstop} and @var{n} can be omitted and will be + computed from the eigenvalues of the A Matrix. + @end table @strong{Outputs} @table @var ! @item y ! Values of the step response. ! @item t ! Times of the step response. @end table ! When invoked with the output parameter @var{y} the plot is not displayed. ! @seealso{impulse} @end deftypefn ! rldemo -*- texinfo -*- ! @deftypefn {Function File} {} rldemo (@var{inputs}) ! Octave Control toolbox demo: Root Locus demo. @end deftypefn ! pzmap -*- texinfo -*- ! @deftypefn {Function File} {[@var{zer}, @var{pol}] =} pzmap (@var{sys}) ! Plots the zeros and poles of a system in the complex plane. ! @strong{Input} @table @var ! @item sys ! System data structure. @end table ! @strong{Outputs} @table @var ! @item pol ! @item zer ! if omitted, the poles and zeros are plotted on the screen. ! otherwise, @var{pol} and @var{zer} are returned as the ! system poles and zeros (see @command{sys2zp} for a preferable function call). @end table @end deftypefn ! __freqresp__ ! Undocumented internal function. ! dlqe -*- texinfo -*- ! @deftypefn {Function File} {[@var{l}, @var{m}, @var{p}, @var{e}] =} dlqe (@var{a}, @var{g}, @var{c}, @var{sigw}, @var{sigv}, @var{z}) ! Construct the linear quadratic estimator (Kalman filter) for the ! discrete time system @iftex @tex ! $$ ! x_{k+1} = A x_k + B u_k + G w_k ! $$ ! $$ ! y_k = C x_k + D u_k + v_k ! $$ @end tex @end iftex @ifinfo + @example ! x[k+1] = A x[k] + B u[k] + G w[k] ! y[k] = C x[k] + D u[k] + v[k] @end example + @end ifinfo ! where @var{w}, @var{v} are zero-mean gaussian noise processes with ! respective intensities @code{@var{sigw} = cov (@var{w}, @var{w})} and ! @code{@var{sigv} = cov (@var{v}, @var{v})}. ! ! If specified, @var{z} is @code{cov (@var{w}, @var{v})}. Otherwise ! @code{cov (@var{w}, @var{v}) = 0}. ! ! The observer structure is @iftex @tex ! $$ ! z_{k|k} = z_{k|k-1} + l (y_k - C z_{k|k-1} - D u_k) ! $$ ! $$ ! z_{k+1|k} = A z_{k|k} + B u_k ! $$ @end tex @end iftex @ifinfo + @example ! z[k|k] = z[k|k-1] + L (y[k] - C z[k|k-1] - D u[k]) ! z[k+1|k] = A z[k|k] + B u[k] @end example @end ifinfo ! @noindent ! The following values are returned: ! @table @var ! @item l ! The observer gain, ! @iftex ! @tex ! $(A - ALC)$. ! @end tex ! @end iftex ! @ifinfo ! (@var{a} - @var{a}@var{l}@var{c}). ! @end ifinfo ! is stable. ! ! @item m ! The Riccati equation solution. ! ! @item p ! The estimate error covariance after the measurement update. ! ! @item e ! The closed loop poles of ! @iftex ! @tex ! $(A - ALC)$. ! @end tex ! @end iftex ! @ifinfo ! (@var{a} - @var{a}@var{l}@var{c}). ! @end ifinfo ! @end table ! @end deftypefn ! dcgain ! -*- texinfo -*- ! @deftypefn {Function File} {} dcgain (@var{sys}, @var{tol}) ! Returns dc-gain matrix. If dc-gain is infinite ! an empty matrix is returned. ! The argument @var{tol} is an optional tolerance for the condition ! number of the @math{A} Matrix in @var{sys} (default @var{tol} = 1.0e-10) ! @end deftypefn ! tzero ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{zer}, @var{gain}] =} tzero (@var{a}, @var{b}, @var{c}, @var{d}, @var{opt}) ! @deftypefnx {Function File} {[@var{zer}, @var{gain}] =} tzero (@var{sys}, @var{opt}) ! Compute transmission zeros of a continuous system: ! @iftex ! @tex ! $$ \dot x = Ax + Bu $$ ! $$ y = Cx + Du $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! . ! x = Ax + Bu ! y = Cx + Du ! @end example ! @end ifinfo ! or of a discrete one: @iftex @tex ! $$ x_{k+1} = Ax_k + Bu_k $$ ! $$ y_k = Cx_k + Du_k $$ @end tex @end iftex @ifinfo @example ! x(k+1) = A x(k) + B u(k) ! y(k) = C x(k) + D u(k) @end example @end ifinfo ! @strong{Outputs} @table @var ! @item zer ! transmission zeros of the system ! @item gain ! leading coefficient (pole-zero form) of @acronym{SISO} transfer function ! returns gain=0 if system is multivariable @end table ! @strong{References} ! @enumerate ! @item Emami-Naeini and Van Dooren, Automatica, 1982. ! @item Hodel, @cite{Computation of Zeros with Balancing}, 1992 Lin. Alg. Appl. ! @end enumerate @end deftypefn ! lqg -*- texinfo -*- ! @deftypefn {Function File} {[@var{k}, @var{q1}, @var{p1}, @var{ee}, @var{er}] =} lqg (@var{sys}, @var{sigw}, @var{sigv}, @var{q}, @var{r}, @var{in_idx}) ! Design a linear-quadratic-gaussian optimal controller for the system @example ! dx/dt = A x + B u + G w [w]=N(0,[Sigw 0 ]) ! y = C x + v [v] ( 0 Sigv ]) @end example ! or @example ! x(k+1) = A x(k) + B u(k) + G w(k) [w]=N(0,[Sigw 0 ]) ! y(k) = C x(k) + v(k) [v] ( 0 Sigv ]) @end example @strong{Inputs} @table @var ! @item sys ! system data structure ! @item sigw ! @itemx sigv ! intensities of independent Gaussian noise processes (as above) ! @item q ! @itemx r ! state, control weighting respectively. Control @acronym{ARE} is ! @item in_idx ! names or indices of controlled inputs (see @command{sysidx}, @command{cellidx}) ! default: last dim(R) inputs are assumed to be controlled inputs, all ! others are assumed to be noise inputs. @end table ! @strong{Outputs} @table @var ! @item k ! system data structure format @acronym{LQG} optimal controller (Obtain A, B, C ! matrices with @command{sys2ss}, @command{sys2tf}, or @command{sys2zp} as ! appropriate). ! @item p1 ! Solution of control (state feedback) algebraic Riccati equation. ! @item q1 ! Solution of estimation algebraic Riccati equation. ! @item ee ! Estimator poles. ! @item es ! Controller poles. @end table + @seealso{h2syn, lqe, lqr} @end deftypefn ! DEMOcontrol -*- texinfo -*- ! @deftypefn {Function File} {} DEMOcontrol ! Octave Control Systems Toolbox demo/tutorial program. The demo ! allows the user to select among several categories of @acronym{OCST} function: @example @group ! octave:1> DEMOcontrol ! Octave Controls System Toolbox Demo ! ! [ 1] System representation ! [ 2] Block diagram manipulations ! [ 3] Frequency response functions ! [ 4] State space analysis functions ! [ 5] Root locus functions ! [ 6] LQG/H2/Hinfinity functions ! [ 7] End @end group @end example + Command examples are interactively run for users to observe the use + of @acronym{OCST} functions. + @seealso{Demo Programs: bddemo.m, frdemo.m, analdemo.m, + moddmeo.m, rldemo.m} @end deftypefn ! lyap -*- texinfo -*- ! @deftypefn {Function File} {} lyap (@var{a}, @var{b}, @var{c}) ! @deftypefnx {Function File} {} lyap (@var{a}, @var{b}) ! Solve the Lyapunov (or Sylvester) equation via the Bartels-Stewart ! algorithm (Communications of the @acronym{ACM}, 1972). ! If @var{a}, @var{b}, and @var{c} are specified, then @code{lyap} returns ! the solution of the Sylvester equation ! @iftex ! @tex ! $$ A X + X B + C = 0 $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! a x + x b + c = 0 ! @end example ! @end ifinfo ! If only @code{(a, b)} are specified, then @command{lyap} returns the ! solution of the Lyapunov equation ! @iftex ! @tex ! $$ A^T X + X A + B = 0 $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! a' x + x a + b = 0 ! @end example ! @end ifinfo ! If @var{b} is not square, then @code{lyap} returns the solution of either ! @iftex ! @tex ! $$ A^T X + X A + B^T B = 0 $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! a' x + x a + b' b = 0 ! @end example ! @end ifinfo ! @noindent ! or ! @iftex ! @tex ! $$ A X + X A^T + B B^T = 0 $$ ! @end tex ! @end iftex ! @ifinfo @example ! a x + x a' + b b' = 0 @end example + @end ifinfo + @noindent + whichever is appropriate. + + Solves by using the Bartels-Stewart algorithm (1972). @end deftypefn ! impulse -*- texinfo -*- ! @deftypefn {Function File} {[@var{y}, @var{t}] =} impulse (@var{sys}, @var{inp}, @var{tstop}, @var{n}) ! Impulse response for a linear system. ! The system can be discrete or multivariable (or both). ! If no output arguments are specified, @code{impulse} ! produces a plot or the impulse response data for system @var{sys}. @strong{Inputs} @table @var ! @item sys ! System data structure. ! @item inp ! Index of input being excited ! @item tstop ! The argument @var{tstop} (scalar value) denotes the time when the ! simulation should end. ! @item n ! the number of data values. ! Both parameters @var{tstop} and @var{n} can be omitted and will be ! computed from the eigenvalues of the A Matrix. ! @end table ! @strong{Outputs} @table @var ! @item y ! Values of the impulse response. ! @item t ! Times of the impulse response. @end table ! @seealso{step} @end deftypefn ! lsim -*- texinfo -*- ! @deftypefn {Function File} {[@var{y}, @var{x}] =} lsim (@var{sys}, @var{u}, @var{t}, @var{x0}) ! Produce output for a linear simulation of a system; produces ! a plot for the output of the system, @var{sys}. ! ! @var{u} is an array that contains the system's inputs. Each row in @var{u} ! corresponds to a different time step. Each column in @var{u} corresponds to a ! different input. @var{t} is an array that contains the time index of the ! system; @var{t} should be regularly spaced. If initial conditions are required ! on the system, the @var{x0} vector should be added to the argument list. ! ! When the lsim function is invoked a plot is not displayed; ! however, the data is returned in @var{y} (system output) ! and @var{x} (system states). @end deftypefn ! nyquist -*- texinfo -*- ! @deftypefn {Function File} {[@var{realp}, @var{imagp}, @var{w}] =} nyquist (@var{sys}, @var{w}, @var{out_idx}, @var{in_idx}, @var{atol}) ! @deftypefnx {Function File} {} nyquist (@var{sys}, @var{w}, @var{out_idx}, @var{in_idx}, @var{atol}) ! Produce Nyquist plots of a system; if no output arguments are given, Nyquist ! plot is printed to the screen. ! Compute the frequency response of a system. ! @strong{Inputs} (pass as empty to get default values) ! @table @var ! @item sys ! system data structure (must be either purely continuous or discrete; ! see @code{is_digital}) ! @item w ! frequency values for evaluation. ! If sys is continuous, then bode evaluates @math{G(@var{jw})}; ! if sys is discrete, then bode evaluates @math{G(exp(@var{jwT}))}, ! where @var{T} is the system sampling time. ! @item default ! the default frequency range is selected as follows: (These ! steps are @strong{not} performed if @var{w} is specified) ! @enumerate ! @item via routine @command{__bodquist__}, isolate all poles and zeros away from ! @var{w}=0 (@var{jw}=0 or @math{exp(@var{jwT})=1}) and select the frequency ! range based on the breakpoint locations of the frequencies. ! @item if @var{sys} is discrete time, the frequency range is limited ! to @var{jwT} in ! @ifinfo ! [0,2p*pi] ! @end ifinfo ! @iftex ! @tex ! $ [ 0,2 p \pi ] $ ! @end tex ! @end iftex ! @item A ``smoothing'' routine is used to ensure that the plot phase does ! not change excessively from point to point and that singular ! points (e.g., crossovers from +/- 180) are accurately shown. ! @end enumerate ! @item atol ! for interactive nyquist plots: atol is a change-in-slope tolerance ! for the of asymptotes (default = 0; 1e-2 is a good choice). This allows ! the user to ``zoom in'' on portions of the Nyquist plot too small to be ! seen with large asymptotes. @end table + @strong{Outputs} + @table @var + @item realp + @itemx imagp + the real and imaginary parts of the frequency response + @math{G(jw)} or @math{G(exp(jwT))} at the selected frequency values. + @item w + the vector of frequency values used @end table ! If no output arguments are given, nyquist plots the results to the screen. ! If @var{atol} != 0 and asymptotes are detected then the user is asked ! interactively if they wish to zoom in (remove asymptotes) ! Descriptive labels are automatically placed. ! ! Note: if the requested plot is for an @acronym{MIMO} system, a warning message is ! presented; the returned information is of the magnitude @iftex @tex ! $ \Vert G(jw) \Vert $ or $ \Vert G( {\rm exp}(jwT) \Vert $ @end tex @end iftex @ifinfo ! ||G(jw)|| or ||G(exp(jwT))|| @end ifinfo ! only; phase information is not computed. ! @end deftypefn ! bode ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{mag}, @var{phase}, @var{w}] =} bode (@var{sys}, @var{w}, @var{out_idx}, @var{in_idx}) ! If no output arguments are given: produce Bode plots of a system; otherwise, ! compute the frequency response of a system data structure ! @strong{Inputs} @table @var ! @item sys ! a system data structure (must be either purely continuous or discrete; ! see is_digital) ! @item w ! frequency values for evaluation. ! if @var{sys} is continuous, then bode evaluates @math{G(jw)} where ! @math{G(s)} is the system transfer function. ! if @var{sys} is discrete, then bode evaluates G(@code{exp}(jwT)), where ! @itemize @bullet ! @item @math{T} is the system sampling time ! @item @math{G(z)} is the system transfer function. ! @end itemize ! @strong{Default} the default frequency range is selected as follows: (These ! steps are @strong{not} performed if @var{w} is specified) ! @enumerate ! @item via routine __bodquist__, isolate all poles and zeros away from ! @var{w}=0 (@var{jw}=0 or @math{@code{exp}(jwT)}=1) and select the frequency ! range based on the breakpoint locations of the frequencies. ! @item if @var{sys} is discrete time, the frequency range is limited ! to @math{jwT} in ! @ifinfo ! [0,2 pi /T] ! @end ifinfo ! @iftex ! @tex ! $[0,2\pi/T]$ ! @end tex ! @end iftex ! @item A "smoothing" routine is used to ensure that the plot phase does ! not change excessively from point to point and that singular ! points (e.g., crossovers from +/- 180) are accurately shown. ! @end enumerate ! @item out_idx ! @itemx in_idx ! The names or indices of outputs and inputs to be used in the frequency ! response. See @code{sysprune}. ! @strong{Example} @example ! bode(sys,[],"y_3", @{"u_1","u_4"@}); @end example + @end table + @strong{Outputs} @table @var ! @item mag ! @itemx phase ! the magnitude and phase of the frequency response @math{G(jw)} or ! @math{G(@code{exp}(jwT))} at the selected frequency values. ! @item w ! the vector of frequency values used @end table ! @enumerate ! @item If no output arguments are given, e.g., @example ! bode(sys); @end example + bode plots the results to the screen. Descriptive labels are + automatically placed. + + Failure to include a concluding semicolon will yield some garbage + being printed to the screen (@code{ans = []}). + + @item If the requested plot is for an @acronym{MIMO} system, mag is set to + @math{||G(jw)||} or @math{||G(@code{exp}(jwT))||} + and phase information is not computed. + @end enumerate + @end deftypefn + dkalman + -*- texinfo -*- + @deftypefn {Function File} {[@var{Lp}, @var{Lf}, @var{P}, @var{Z}] =} dkalman (@var{A}, @var{G}, @var{C}, @var{Qw}, @var{Rv}, @var{S}) + Construct the linear quadratic estimator (Kalman predictor) for the + discrete time system @iftex @tex ! $$ ! x_{k+1} = A x_k + B u_k + G w_k ! $$ ! $$ ! y_k = C x_k + D u_k + v_k ! $$ @end tex @end iftex @ifinfo + @example ! x[k+1] = A x[k] + B u[k] + G w[k] ! y[k] = C x[k] + D u[k] + v[k] @end example + @end ifinfo + where @var{w}, @var{v} are zero-mean gaussian noise processes with + respective intensities @code{@var{Qw} = cov (@var{w}, @var{w})} and + @code{@var{Rv} = cov (@var{v}, @var{v})}. ! If specified, @var{S} is @code{cov (@var{w}, @var{v})}. Otherwise ! @code{cov (@var{w}, @var{v}) = 0}. ! ! The observer structure is @iftex @tex ! $x_{k+1|k} = A x_{k|k-1} + B u_k + L_p (y_k - C x_{k|k-1} - D u_k)$ ! $x_{k|k} = x_{k|k} + L_f (y_k - C x_{k|k-1} - D u_k)$ @end tex @end iftex @ifinfo ! @example ! x[k+1|k] = A x[k|k-1] + B u[k] + LP (y[k] - C x[k|k-1] - D u[k]) ! x[k|k] = x[k|k-1] + LF (y[k] - C x[k|k-1] - D u[k]) @end example ! @end ifinfo ! @noindent ! The following values are returned: @table @var ! @item Lp ! The predictor gain, @iftex @tex ! $(A - L_p C)$. @end tex @end iftex @ifinfo ! (@var{A} - @var{Lp} @var{C}) @end ifinfo + is stable. ! @item Lf ! The filter gain. ! @item P ! The Riccati solution. ! @iftex ! @tex ! $P = E \{(x - x_{n|n-1})(x - x_{n|n-1})'\}$ ! @end tex ! @end iftex ! @ifinfo ! P = E [(x - x[n|n-1])(x - x[n|n-1])'] ! @end ifinfo ! @item Z ! The updated error covariance matrix. ! @iftex ! @tex ! $Z = E \{(x - x_{n|n})(x - x_{n|n})'\}$ ! @end tex ! @end iftex ! @ifinfo ! Z = E [(x - x[n|n])(x - x[n|n])'] ! @end ifinfo @end table @end deftypefn ! is_detectable -*- texinfo -*- ! @deftypefn {Function File} {@var{retval} =} is_detectable (@var{a}, @var{c}, @var{tol}, @var{dflg}) ! @deftypefnx {Function File} {@var{retval} =} is_detectable (@var{sys}, @var{tol}) ! Test for detectability (observability of unstable modes) of (@var{a}, @var{c}). ! Returns 1 if the system @var{a} or the pair (@var{a}, @var{c}) is ! detectable, 0 if not, and -1 if the system has unobservable modes at the ! imaginary axis (unit circle for discrete-time systems). ! @strong{See} @command{is_stabilizable} for detailed description of ! arguments and computational method. ! @seealso{is_stabilizable, size, rows, columns, length, ismatrix, ! isscalar, isvector} @end deftypefn tf -*- texinfo -*- *************** *** 14110,14553 **** 1*z^2 + 2*z^1 + 1 @end example @end deftypefn ! zp ! -*- texinfo -*- ! @deftypefn {Function File} {} zp (@var{zer}, @var{pol}, @var{k}, @var{tsam}, @var{inname}, @var{outname}) ! Create system data structure from zero-pole data. ! ! @strong{Inputs} ! @table @var ! @item zer ! vector of system zeros ! @item pol ! vector of system poles ! @item k ! scalar leading coefficient ! @item tsam ! sampling period. default: 0 (continuous system) ! @item inname ! @itemx outname ! input/output signal names (lists of strings) ! @end table ! ! @strong{Outputs} ! sys: system data structure ! ! @strong{Example} ! @example ! octave:1> sys=zp([1 -1],[-2 -2 0],1); ! octave:2> sysout(sys) ! Input(s) ! 1: u_1 ! Output(s): ! 1: y_1 ! zero-pole form: ! 1 (s - 1) (s + 1) ! ----------------- ! s (s + 2) (s + 2) ! @end example ! @end deftypefn ! is_siso ! -*- texinfo -*- ! @deftypefn {Function File} {} is_siso (@var{sys}) ! Returns nonzero if the system data structure ! @var{sys} is single-input, single-output. ! @end deftypefn ! sys2fir ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{c}, @var{tsam}, @var{input}, @var{output}] =} sys2fir (@var{sys}) ! ! Extract @acronym{FIR} data from system data structure; see @command{fir2sys} for ! parameter descriptions. ! @seealso{fir2sys} ! @end deftypefn ! zp2ss -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{b}, @var{c}, @var{d}] =} zp2ss (@var{zer}, @var{pol}, @var{k}) ! Conversion from zero / pole to state space. ! ! @strong{Inputs} ! @table @var ! @item zer ! @itemx pol ! Vectors of (possibly) complex poles and zeros of a transfer ! function. Complex values must come in conjugate pairs ! (i.e., @math{x+jy} in @var{zer} means that @math{x-jy} is also in @var{zer}). ! The number of zeros must not exceed the number of poles. ! @item k ! Real scalar (leading coefficient). ! @end table ! ! @strong{Outputs} ! @table @var ! @item @var{a} ! @itemx @var{b} ! @itemx @var{c} ! @itemx @var{d} ! The state space system, in the form: ! @iftex ! @tex ! $$ \dot x = Ax + Bu $$ ! $$ y = Cx + Du $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! . ! x = Ax + Bu ! y = Cx + Du ! @end example ! @end ifinfo ! @end table @end deftypefn ! ord2 -*- texinfo -*- ! @deftypefn {Function File} {} ord2 (@var{nfreq}, @var{damp}, @var{gain}) ! Creates a continuous 2nd order system with parameters: @strong{Inputs} @table @var ! @item nfreq ! natural frequency [Hz]. (not in rad/s) ! @item damp ! damping coefficient ! @item gain ! dc-gain ! This is steady state value only for damp > 0. ! gain is assumed to be 1.0 if omitted. ! @end table ! ! @strong{Output} ! @table @var ! @item outsys ! system data structure has representation with @ifinfo ! @math{w = 2 * pi * nfreq}: ! @end ifinfo ! @iftex ! @tex ! $ w = 2 \pi f $: ! @end tex ! @end iftex ! @example ! @group ! / \ ! | / -2w*damp -w \ / w \ | ! G = | | |, | |, [ 0 gain ], 0 | ! | \ w 0 / \ 0 / | ! \ / ! @end group ! @end example ! @end table ! @strong{See also} @command{jet707} (@acronym{MIMO} example, Boeing 707-321 ! aircraft model) ! @end deftypefn ! is_stabilizable ! -*- texinfo -*- ! @deftypefn {Function File} {@var{retval} =} is_stabilizable (@var{sys}, @var{tol}) ! @deftypefnx {Function File} {@var{retval} =} is_stabilizable (@var{a}, @var{b}, @var{tol}, @var{dflg}) ! Logical check for system stabilizability (i.e., all unstable modes are controllable). ! Returns 1 if the system is stabilizable, 0 if the system is not stabilizable, -1 ! if the system has non stabilizable modes at the imaginary axis (unit circle for ! discrete-time systems. ! ! Test for stabilizability is performed via Hautus Lemma. If ! @iftex ! @tex ! @var{dflg}$\neq$0 ! @end tex ! @end iftex ! @ifinfo ! @var{dflg}!=0 @end ifinfo - assume that discrete-time matrices (a,b) are supplied. - @seealso{size, rows, columns, length, ismatrix, isscalar, isvector - is_observable, is_stabilizable, is_detectable} - @end deftypefn - ss2tf - -*- texinfo -*- - @deftypefn {Function File} {[@var{num}, @var{den}] =} ss2tf (@var{a}, @var{b}, @var{c}, @var{d}) - Conversion from transfer function to state-space. - The state space system: @iftex @tex ! $$ \dot x = Ax + Bu $$ ! $$ y = Cx + Du $$ @end tex @end iftex @ifinfo ! @example ! . ! x = Ax + Bu ! y = Cx + Du ! @end example @end ifinfo - - is converted to a transfer function: @iftex @tex ! $$ G(s) = { { \rm num }(s) \over { \rm den }(s) } $$ @end tex @end iftex - @ifinfo - @example - - num(s) - G(s)=------- - den(s) - @end example - @end ifinfo - - used internally in system data structure format manipulations. - @end deftypefn - __tfl__ - Undocumented internal function. - zp2sys - -*- texinfo -*- - @deftypefn {Function File} {} zp2sys (@var{zer}, @var{pol}, @var{k}, @var{tsam}, @var{inname}, @var{outname}) - Create system data structure from zero-pole data. ! @strong{Inputs} ! @table @var ! @item zer ! Vector of system zeros. ! @item pol ! Vector of system poles. ! @item k ! Scalar leading coefficient. ! @item tsam ! Sampling period; default: 0 (continuous system). ! @item inname ! @itemx outname ! Input/output signal names (lists of strings). @end table @strong{Output} @table @var @item sys ! System data structure. @end table @strong{Example} @example ! octave:1> sys=zp2sys([1 -1],[-2 -2 0],1); octave:2> sysout(sys) Input(s) ! 1: u_1 Output(s): ! 1: y_1 ! zero-pole form: ! 1 (s - 1) (s + 1) ! ----------------- ! s (s + 2) (s + 2) @end example @end deftypefn ! sysprune -*- texinfo -*- ! @deftypefn {Function File} {@var{retsys} =} sysprune (@var{asys}, @var{out_idx}, @var{in_idx}) ! Extract specified inputs/outputs from a system ! @strong{Inputs} @table @var ! @item asys ! system data structure ! @item out_idx ! @itemx in_idx ! Indices or signal names of the outputs and inputs to be kept in the returned ! system; remaining connections are ``pruned'' off. ! May select as [] (empty matrix) to specify all outputs/inputs. ! @example ! retsys = sysprune (Asys, [1:3,4], "u_1"); ! retsys = sysprune (Asys, @{"tx", "ty", "tz"@}, 4); ! @end example @end table ! @strong{Output} @table @var ! @item retsys ! Resulting system. @end table @example @group ! ____________________ ! u1 ------->| |----> y1 ! (in_idx) | Asys | (out_idx) ! u2 ------->| |----| y2 ! (deleted)-------------------- (deleted) @end group @end example @end deftypefn ! moddemo -*- texinfo -*- ! @deftypefn {Function File} {} moddemo (@var{inputs}) ! Octave Control toolbox demo: Model Manipulations demo. @end deftypefn ! sysgetsignals -*- texinfo -*- ! @deftypefn {Function File} {[@var{stname}, @var{inname}, @var{outname}, @var{yd}] =} sysgetsignals (@var{sys}) ! @deftypefnx {Function File} {@var{siglist} =} sysgetsignals (@var{sys}, @var{sigid}) ! @deftypefnx {Function File} {@var{signame} =} sysgetsignals (@var{sys}, @var{sigid}, @var{signum}, @var{strflg}) ! Get signal names from a system @strong{Inputs} @table @var @item sys ! system data structure for the state space system ! @item sigid ! signal id. String. Must be one of @table @code ! @item "in" ! input signals ! @item "out" ! output signals ! @item "st" ! stage signals ! @item "yd" ! value of logical vector @var{yd} ! @end table ! @item signum ! index(indices) or name(s) or signals; see @code{sysidx} ! @item strflg ! flag to return a string instead of a cell array; Values: ! @table @code ! @item 0 ! (default) return a cell array (even if signum specifies an individual signal) ! @item 1 ! return a string. Exits with an error if signum does not specify an ! individual signal. ! @end table @end table - - @strong{Outputs} - @table @bullet - @item If @var{sigid} is not specified: - @table @var - @item stname - @itemx inname - @itemx outname - signal names (cell array of strings); names of states, - inputs, and outputs, respectively. - @item yd - binary vector; @var{yd}(@var{ii}) is nonzero if output @var{ii} is - discrete. @end table ! @item If @var{sigid} is specified but @var{signum} is not specified: ! @table @code ! @item sigid="in" ! @var{siglist} is set to the cell array of input names. ! ! @item sigid="out" ! @var{siglist} is set to the cell array of output names. ! ! @item sigid="st" ! @var{siglist} is set to the cell array of state names. ! ! stage signals ! @item sigid="yd" ! @var{siglist} is set to logical vector indicating discrete outputs; ! @var{siglist}(@var{ii}) = 0 indicates that output @var{ii} is continuous ! (unsampled), otherwise it is discrete. ! @end table ! @item If the first three input arguments are specified: ! @var{signame} is a cell array of the specified signal names (@var{sigid} is ! @code{"in"}, @code{"out"}, or @code{"st"}), or else the logical flag ! indicating whether output(s) @var{signum} is(are) discrete (@var{sigval}=1) ! or continuous (@var{sigval}=0). @end table ! @strong{Examples} (From @code{sysrepdemo}) ! @example ! octave> sys=ss(rand(4),rand(4,2),rand(3,4)); ! octave># get all signal names ! octave> [Ast,Ain,Aout,Ayd] = sysgetsignals(sys) ! Ast = ! ( ! [1] = x_1 ! [2] = x_2 ! [3] = x_3 ! [4] = x_4 ! ) ! Ain = ! ( ! [1] = u_1 ! [2] = u_2 ! ) ! Aout = ! ( ! [1] = y_1 ! [2] = y_2 ! [3] = y_3 ! ) ! Ayd = ! 0 0 0 ! octave> # get only input signal names: ! octave> Ain = sysgetsignals(sys,"in") ! Ain = ! ( ! [1] = u_1 ! [2] = u_2 ! ) ! octave> # get name of output 2 (in cell array): ! octave> Aout = sysgetsignals(sys,"out",2) ! Aout = ! ( ! [1] = y_2 ! ) ! octave> # get name of output 2 (as string): ! octave> Aout = sysgetsignals(sys,"out",2,1) ! Aout = y_2 @end example @end deftypefn ! starp -*- texinfo -*- ! @deftypefn {Function File} {} starp (@var{P}, @var{K}, @var{ny}, @var{nu}) ! ! Redheffer star product or upper/lower LFT, respectively. @example ! @group ! ! +-------+ ! --------->| |---------> ! | P | ! +--->| |---+ ny ! | +-------+ | ! +-------------------+ ! | | ! +----------------+ | ! | | ! | +-------+ | ! +--->| |------+ nu ! | K | ! --------->| |---------> ! +-------+ ! @end group @end example ! If @var{ny} and @var{nu} ``consume'' all inputs and outputs of ! @var{K} then the result is a lower fractional transformation. ! If @var{ny} and @var{nu} ``consume'' all inputs and outputs of ! @var{P} then the result is an upper fractional transformation. ! @var{ny} and/or @var{nu} may be negative (i.e. negative feedback). ! @end deftypefn ! is_abcd ! -*- texinfo -*- ! @deftypefn {Function File} {@var{retval} =} is_abcd (@var{a}, @var{b}, @var{c}, @var{d}) ! Returns @var{retval} = 1 if the dimensions of @var{a}, @var{b}, ! @var{c}, @var{d} are compatible, otherwise @var{retval} = 0 with an ! appropriate diagnostic message printed to the screen. The matrices ! @var{b}, @var{c}, or @var{d} may be omitted. ! @seealso{abcddim} @end deftypefn ss -*- texinfo -*- --- 13339,13678 ---- 1*z^2 + 2*z^1 + 1 @end example @end deftypefn ! syschtsam -*- texinfo -*- ! @deftypefn {Function File} {} syschtsam (@var{sys}, @var{tsam}) ! This function changes the sampling time (tsam) of the system. Exits with ! an error if sys is purely continuous time. @end deftypefn ! fir2sys -*- texinfo -*- ! @deftypefn {Function File} {} fir2sys (@var{num}, @var{tsam}, @var{inname}, @var{outname}) ! construct a system data structure from @acronym{FIR} description @strong{Inputs} @table @var ! @item num ! vector of coefficients @ifinfo ! [c0, c1, @dots{}, cn] @end ifinfo @iftex @tex ! $ [c_0, c_1, \ldots, c_n ]$ @end tex @end iftex + of the @acronym{SISO} @acronym{FIR} transfer function @ifinfo ! C(z) = c0 + c1*z^(-1) + c2*z^(-2) + @dots{} + cn*z^(-n) @end ifinfo @iftex @tex ! $$ C(z) = c_0 + c_1z^{-1} + c_2z^{-2} + \ldots + c_nz^{-n} $$ @end tex @end iftex ! @item tsam ! sampling time (default: 1) ! ! @item inname ! name of input signal; may be a string or a list with a single entry. ! ! @item outname ! name of output signal; may be a string or a list with a single entry. @end table @strong{Output} @table @var @item sys ! system data structure @end table @strong{Example} @example ! octave:1> sys = fir2sys([1 -1 2 4],0.342,\ ! > "A/D input","filter output"); octave:2> sysout(sys) Input(s) ! 1: A/D input ! Output(s): ! 1: filter output (discrete) ! ! Sampling interval: 0.342 ! transfer function form: ! 1*z^3 - 1*z^2 + 2*z^1 + 4 ! ------------------------- ! 1*z^3 + 0*z^2 + 0*z^1 + 0 @end example @end deftypefn ! buildssic -*- texinfo -*- ! @deftypefn {Function File} {} buildssic (@var{clst}, @var{ulst}, @var{olst}, @var{ilst}, @var{s1}, @var{s2}, @var{s3}, @var{s4}, @var{s5}, @var{s6}, @var{s7}, @var{s8}) ! Form an arbitrary complex (open or closed loop) system in ! state-space form from several systems. @command{buildssic} can ! easily (despite its cryptic syntax) integrate transfer functions ! from a complex block diagram into a single system with one call. ! This function is especially useful for building open loop ! interconnections for ! @iftex ! @tex ! $ { \cal H }_\infty $ and $ { \cal H }_2 $ ! @end tex ! @end iftex ! @ifinfo ! H-infinity and H-2 ! @end ifinfo ! designs or for closing loops with these controllers. ! ! Although this function is general purpose, the use of @command{sysgroup} ! @command{sysmult}, @command{sysconnect} and the like is recommended for ! standard operations since they can handle mixed discrete and continuous ! systems and also the names of inputs, outputs, and states. ! ! The parameters consist of 4 lists that describe the connections ! outputs and inputs and up to 8 systems @var{s1}--@var{s8}. ! Format of the lists: @table @var ! @item clst ! connection list, describes the input signal of ! each system. The maximum number of rows of Clst is ! equal to the sum of all inputs of s1-s8. ! Example: ! @code{[1 2 -1; 2 1 0]} means that: new input 1 is old input 1 ! + output 2 - output 1, and new input 2 is old input 2 ! + output 1. The order of rows is arbitrary. ! ! @item ulst ! if not empty the old inputs in vector @var{ulst} will ! be appended to the outputs. You need this if you ! want to ``pull out'' the input of a system. Elements ! are input numbers of @var{s1}--@var{s8}. ! ! @item olst ! output list, specifies the outputs of the resulting ! systems. Elements are output numbers of @var{s1}--@var{s8}. ! The numbers are allowed to be negative and may ! appear in any order. An empty matrix means ! all outputs. + @item ilst + input list, specifies the inputs of the resulting + systems. Elements are input numbers of @var{s1}--@var{s8}. + The numbers are allowed to be negative and may + appear in any order. An empty matrix means + all inputs. @end table ! Example: Very simple closed loop system. ! @example ! @group ! w e +-----+ u +-----+ ! --->o--*-->| K |--*-->| G |--*---> y ! ^ | +-----+ | +-----+ | ! - | | | | ! | | +----------------> u ! | | | ! | +-------------------------|---> e ! | | ! +----------------------------+ ! @end group ! @end example ! ! The closed loop system @var{GW} can be obtained by ! @example ! GW = buildssic([1 2; 2 -1], 2, [1 2 3], 2, G, K); ! @end example @table @var ! @item clst ! 1st row: connect input 1 (@var{G}) with output 2 (@var{K}). ! ! 2nd row: connect input 2 (@var{K}) with negative output 1 (@var{G}). ! @item ulst ! Append input of 2 (@var{K}) to the number of outputs. ! @item olst ! Outputs are output of 1 (@var{G}), 2 (@var{K}) and ! appended output 3 (from @var{ulst}). ! @item ilst ! The only input is 2 (@var{K}). @end table + + Here is a real example: @example @group ! +----+ ! -------------------->| W1 |---> v1 ! z | +----+ ! ----|-------------+ ! | | ! | +---+ v +----+ ! *--->| G |--->O--*-->| W2 |---> v2 ! | +---+ | +----+ ! | | ! | v ! u y @end group @end example + @iftex + @tex + $$ { \rm min } \Vert GW_{vz} \Vert _\infty $$ + @end tex + @end iftex + @ifinfo + @example + min || GW || + vz infty + @end example + @end ifinfo + + The closed loop system @var{GW} + @iftex + @tex + from $ [z, u]^T $ to $ [v_1, v_2, y]^T $ + @end tex + @end iftex + @ifinfo + from [z, u]' to [v1, v2, y]' + @end ifinfo + can be obtained by (all @acronym{SISO} systems): + @example + GW = buildssic([1, 4; 2, 4; 3, 1], 3, [2, 3, 5], + [3, 4], G, W1, W2, One); + @end example + where ``One'' is a unity gain (auxiliary) function with order 0. + (e.g. @code{One = ugain(1);}) @end deftypefn ! is_siso -*- texinfo -*- ! @deftypefn {Function File} {} is_siso (@var{sys}) ! Returns nonzero if the system data structure ! @var{sys} is single-input, single-output. @end deftypefn ! sysdimensions -*- texinfo -*- ! @deftypefn {Function File} {[@var{n}, @var{nz}, @var{m}, @var{p}, @var{yd}] =} sysdimensions (@var{sys}, @var{opt}) ! return the number of states, inputs, and/or outputs in the system ! @var{sys}. @strong{Inputs} @table @var @item sys ! system data structure ! @item opt ! String indicating which dimensions are desired. Values: @table @code ! @item "all" ! (default) return all parameters as specified under Outputs below. ! @item "cst" ! return @var{n}= number of continuous states ! @item "dst" ! return @var{n}= number of discrete states ! @item "in" ! return @var{n}= number of inputs + @item "out" + return @var{n}= number of outputs @end table @end table ! @strong{Outputs} ! @table @var ! @item n ! number of continuous states (or individual requested dimension as specified ! by @var{opt}). ! @item nz ! number of discrete states ! @item m ! number of system inputs ! @item p ! number of system outputs ! @item yd ! binary vector; @var{yd}(@var{ii}) is nonzero if output @var{ii} is ! discrete. ! @math{yd(ii) = 0} if output @var{ii} is continuous @end table + @seealso{sysgetsignals, sysgettsam} + @end deftypefn + zp + -*- texinfo -*- + @deftypefn {Function File} {} zp (@var{zer}, @var{pol}, @var{k}, @var{tsam}, @var{inname}, @var{outname}) + Create system data structure from zero-pole data. ! @strong{Inputs} ! @table @var ! @item zer ! vector of system zeros ! @item pol ! vector of system poles ! @item k ! scalar leading coefficient ! @item tsam ! sampling period. default: 0 (continuous system) ! @item inname ! @itemx outname ! input/output signal names (lists of strings) @end table ! @strong{Outputs} ! sys: system data structure ! @strong{Example} ! @example ! octave:1> sys=zp([1 -1],[-2 -2 0],1); ! octave:2> sysout(sys) ! Input(s) ! 1: u_1 ! Output(s): ! 1: y_1 ! zero-pole form: ! 1 (s - 1) (s + 1) ! ----------------- ! s (s + 2) (s + 2) @end example @end deftypefn ! tf2ss -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{b}, @var{c}, @var{d}] =} tf2ss (@var{num}, @var{den}) ! Conversion from transfer function to state-space. ! The state space system: ! @iftex ! @tex ! $$ \dot x = Ax + Bu $$ ! $$ y = Cx + Du $$ ! @end tex ! @end iftex ! @ifinfo @example ! . ! x = Ax + Bu ! y = Cx + Du @end example ! @end ifinfo ! is obtained from a transfer function: ! @iftex ! @tex ! $$ G(s) = { { \rm num }(s) \over { \rm den }(s) } $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! num(s) ! G(s)=------- ! den(s) ! @end example ! @end ifinfo ! The vector @var{den} must contain only one row, whereas the vector ! @var{num} may contain as many rows as there are outputs @var{y} of ! the system. The state space system matrices obtained from this function ! will be in controllable canonical form as described in @cite{Modern Control ! Theory}, (Brogan, 1991). @end deftypefn ss -*- texinfo -*- *************** *** 14717,17003 **** correct dimensions. Default input and output signals names were assigned since none were given. @end deftypefn ! dmr2d -*- texinfo -*- ! @deftypefn {Function File} {[@var{dsys}, @var{fidx}] =} dmr2d (@var{sys}, @var{idx}, @var{sprefix}, @var{ts2}, @var{cuflg}) ! convert a multirate digital system to a single rate digital system ! states specified by @var{idx}, @var{sprefix} are sampled at @var{ts2}, all ! others are assumed sampled at @var{ts1} = @code{sysgettsam (@var{sys})}. @strong{Inputs} @table @var ! @item sys ! discrete time system; ! @code{dmr2d} exits with an error if @var{sys} is not discrete ! @item idx ! indices or names of states with sampling time ! @code{sysgettsam(@var{sys})} (may be empty); see @code{cellidx} ! @item sprefix ! list of string prefixes of states with sampling time ! @code{sysgettsam(@var{sys})} (may be empty) ! @item ts2 ! sampling time of states not specified by @var{idx}, @var{sprefix} ! must be an integer multiple of @code{sysgettsam(@var{sys})} ! @item cuflg ! "constant u flag" if @var{cuflg} is nonzero then the system inputs are ! assumed to be constant over the revised sampling interval @var{ts2}. ! Otherwise, since the inputs can change during the interval ! @var{t} in @math{[k ts2, (k+1) ts2]}, an additional set of inputs is ! included in the revised B matrix so that these intersample inputs ! may be included in the single-rate system. ! default @var{cuflg} = 1. @end table @strong{Outputs} @table @var ! @item dsys ! equivalent discrete time system with sampling time @var{ts2}. ! ! The sampling time of sys is updated to @var{ts2}. ! ! if @var{cuflg}=0 then a set of additional inputs is added to ! the system with suffixes _d1, @dots{}, _dn to indicate their ! delay from the starting time k @var{ts2}, i.e. ! u = [u_1; u_1_d1; @dots{}, u_1_dn] where u_1_dk is the input ! k*ts1 units of time after u_1 is sampled. (@var{ts1} is ! the original sampling time of the discrete time system and ! @var{ts2} = (n+1)*ts1) ! ! @item fidx ! indices of "formerly fast" states specified by @var{idx} and @var{sprefix}; ! these states are updated to the new (slower) sampling interval @var{ts2}. @end table - - @strong{WARNING} Not thoroughly tested yet; especially when - @var{cuflg} == 0. @end deftypefn ! syssetsignals -*- texinfo -*- ! @deftypefn {Function File} {} syssetsignals (@var{sys}, @var{opt}, @var{names}, @var{sig_idx}) ! change the names of selected inputs, outputs and states. @strong{Inputs} @table @var ! @item sys System data structure. ! ! @item opt ! Change default name (output). ! ! @table @code ! @item "out" ! Change selected output names. ! @item "in" ! Change selected input names. ! @item "st" ! Change selected state names. ! @item "yd" ! Change selected outputs from discrete to continuous or ! from continuous to discrete. ! @end table ! ! @item names @table @code ! @item opt = "out", "in", "st" ! string or string array containing desired signal names or values. ! @item opt = "yd" ! To desired output continuous/discrete flag. ! Set name to 0 for continuous, or 1 for discrete. @end table ! @item sig_idx ! indices or names of outputs, yd, inputs, or ! states whose respective names/values should be changed. ! ! Default: replace entire cell array of names/entire yd vector. @end table @strong{Outputs} @table @var ! @item retsys ! @var{sys} with appropriate signal names changed ! (or @var{yd} values, where appropriate). @end table ! @strong{Example} @example ! octave:1> sys=ss ([1 2; 3 4],[5;6],[7 8]); ! octave:2> sys = syssetsignals (sys, "st", ! > str2mat("Posx","Velx")); ! octave:3> sysout(sys) ! Input(s) ! 1: u_1 ! Output(s): ! 1: y_1 ! state-space form: ! 2 continuous states, 0 discrete states ! State(s): ! 1: Posx ! 2: Velx ! A matrix: 2 x 2 ! 1 2 ! 3 4 ! B matrix: 2 x 1 ! 5 ! 6 ! C matrix: 1 x 2 ! 7 8 ! D matrix: 1 x 1 ! 0 @end example @end deftypefn ! is_digital -*- texinfo -*- ! @deftypefn {Function File} {@var{digital} =} is_digital (@var{sys}, @var{eflg}) ! Return nonzero if system is digital. @strong{Inputs} @table @var @item sys ! System data structure. ! @item eflg ! When equal to 0 (default value), exits with an error if the system ! is mixed (continuous and discrete components); when equal to 1, print ! a warning if the system is mixed (continuous and discrete); when equal ! to 2, operate silently. @end table ! @strong{Output} ! @table @var ! @item digital ! When equal to 0, the system is purely continuous; when equal to 1, the ! system is purely discrete; when equal to -1, the system is mixed continuous ! and discrete. ! @end table ! Exits with an error if @var{sys} is a mixed (continuous and discrete) system. @end deftypefn ! __zp2ssg2__ ! Undocumented internal function. ! dhinfdemo -*- texinfo -*- ! @deftypefn {Function File} {} dhinfdemo () ! Demonstrate the functions available to design a discrete @iftex @tex ! $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! H-infinity ! @end ifinfo ! controller. This is not a true discrete design. The ! design is carried out in continuous time while the effect of sampling ! is described by a bilinear transformation of the sampled system. ! This method works quite well if the sampling period is "small" ! compared to the plant time constants. - Continuous plant: - @iftex - @tex - $$ G(s) = { 1 \over (s+2) (s+1) } $$ - @end tex - @end iftex - @ifinfo @example ! @group ! 1 ! G(s) = -------------- ! (s + 2)(s + 1) ! @end group @end example - @end ifinfo - Discretised plant with @acronym{ZOH} (Sampling period = @var{Ts} = 1 second): - @iftex - @tex - $$ G(z) = { 0.39958z + 0.14700 \over (z - 0.36788) (z - 0.13533) } $$ - @end tex - @end iftex - @ifinfo - @example - @group - 0.39958z + 0.14700 - G(z) = -------------------------- - (z - 0.36788)(z - 0.13533) - @end group - @end example @end ifinfo ! @example ! @group ! +----+ ! -------------------->| W1 |---> v1 ! z | +----+ ! ----|-------------+ || T || => min. ! | | vz infty ! | +---+ v +----+ ! *--->| G |--->O--*-->| W2 |---> v2 ! | +---+ | +----+ ! | | ! | +---+ | ! -----| K |<------- ! +---+ ! @end group ! @end example ! @noindent ! W1 and W2 are the robustness and performancs weighting functions. @end deftypefn ! hinfsyn_ric -*- texinfo -*- ! @deftypefn {Function File} {[@var{xinf}, @var{x_ha_err}] =} hinfsyn_ric (@var{a}, @var{bb}, @var{c1}, @var{d1dot}, @var{r}, @var{ptol}) ! Forms @example ! xx = ([bb; -c1'*d1dot]/r) * [d1dot'*c1 bb']; ! Ha = [a 0*a; -c1'*c1 - a'] - xx; @end example - and solves associated Riccati equation. - The error code @var{x_ha_err} indicates one of the following - conditions: - @table @asis - @item 0 - successful - @item 1 - @var{xinf} has imaginary eigenvalues - @item 2 - @var{hx} not Hamiltonian - @item 3 - @var{xinf} has infinite eigenvalues (numerical overflow) - @item 4 - @var{xinf} not symmetric - @item 5 - @var{xinf} not positive definite - @item 6 - @var{r} is singular - @end table @end deftypefn ! hinfnorm -*- texinfo -*- ! @deftypefn {Function File} {[@var{g}, @var{gmin}, @var{gmax}] =} hinfnorm (@var{sys}, @var{tol}, @var{gmin}, @var{gmax}, @var{ptol}) ! Computes the ! @iftex ! @tex ! $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! H-infinity ! @end ifinfo ! norm of a system data structure. @strong{Inputs} @table @var ! @item sys ! system data structure ! @item tol ! @iftex ! @tex ! $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! H-infinity ! @end ifinfo ! norm search tolerance (default: 0.001) ! @item gmin ! minimum value for norm search (default: 1e-9) ! @item gmax ! maximum value for norm search (default: 1e+9) ! @item ptol ! pole tolerance: ! @itemize @bullet ! @item if sys is continuous, poles with ! @iftex ! @tex ! $ \vert {\rm real}(pole) \vert < ptol \Vert H \Vert $ ! @end tex ! @end iftex ! @ifinfo ! @math{ |real(pole))| < ptol*||H|| } ! @end ifinfo ! (@var{H} is appropriate Hamiltonian) ! are considered to be on the imaginary axis. ! @item if sys is discrete, poles with ! @iftex ! @tex ! $ \vert { \rm pole } - 1 \vert < ptol \Vert [ s_1 s_2 ] \Vert $ ! @end tex ! @end iftex ! @ifinfo ! @math{|abs(pole)-1| < ptol*||[s1,s2]||} ! @end ifinfo ! (appropriate symplectic pencil) ! are considered to be on the unit circle. ! @item Default value: 1e-9 ! @end itemize @end table @strong{Outputs} ! @table @var ! @item g ! Computed gain, within @var{tol} of actual gain. @var{g} is returned as Inf ! if the system is unstable. ! @item gmin ! @itemx gmax ! Actual system gain lies in the interval [@var{gmin}, @var{gmax}]. ! @end table ! References: ! Doyle, Glover, Khargonekar, Francis, @cite{State-space solutions to standard} ! @iftex ! @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! @cite{H-2 and H-infinity} ! @end ifinfo ! @cite{control problems}, @acronym{IEEE} @acronym{TAC} August 1989; ! Iglesias and Glover, @cite{State-Space approach to discrete-time} ! @iftex ! @tex ! $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! @cite{H-infinity} ! @end ifinfo ! @cite{control}, Int. J. Control, vol 54, no. 5, 1991; ! Zhou, Doyle, Glover, @cite{Robust and Optimal Control}, Prentice-Hall, 1996. ! @end deftypefn ! hinfsyn ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{k}, @var{g}, @var{gw}, @var{xinf}, @var{yinf}] =} hinfsyn (@var{asys}, @var{nu}, @var{ny}, @var{gmin}, @var{gmax}, @var{gtol}, @var{ptol}, @var{tol}) ! @strong{Inputs} input system is passed as either ! @table @var ! @item asys ! system data structure (see @command{ss}, @command{sys2ss}) ! @itemize @bullet ! @item controller is implemented for continuous time systems ! @item controller is @strong{not} implemented for discrete time systems (see ! bilinear transforms in @command{c2d}, @command{d2c}) ! @end itemize ! @item nu ! number of controlled inputs ! @item ny ! number of measured outputs ! @item gmin ! initial lower bound on ! @iftex ! @tex ! $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! H-infinity ! @end ifinfo ! optimal gain ! @item gmax ! initial upper bound on ! @iftex ! @tex ! $ { \cal H }_\infty $ ! @end tex ! @end iftex @ifinfo ! H-infinity @end ifinfo - Optimal gain. - @item gtol - Gain threshold. Routine quits when @var{gmax}/@var{gmin} < 1+tol. - @item ptol - poles with @code{abs(real(pole))} @iftex @tex ! $ < ptol \Vert H \Vert $ @end tex @end iftex - @ifinfo - < ptol*||H|| - @end ifinfo - (@var{H} is appropriate - Hamiltonian) are considered to be on the imaginary axis. - Default: 1e-9. - @item tol - threshold for 0. Default: 200*@code{eps}. ! @var{gmax}, @var{min}, @var{tol}, and @var{tol} must all be positive scalars. ! @end table ! @strong{Outputs} ! @table @var ! @item k ! System controller. ! @item g ! Designed gain value. ! @item gw ! Closed loop system. ! @item xinf ! @acronym{ARE} solution matrix for regulator subproblem. ! @item yinf ! @acronym{ARE} solution matrix for filter subproblem. ! @end table ! References: ! @enumerate ! @item Doyle, Glover, Khargonekar, Francis, @cite{State-Space Solutions ! to Standard} ! @iftex ! @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! @cite{H-2 and H-infinity} ! @end ifinfo ! @cite{Control Problems}, @acronym{IEEE} @acronym{TAC} August 1989. ! @item Maciejowksi, J.M., @cite{Multivariable feedback design}, ! Addison-Wesley, 1989, @acronym{ISBN} 0-201-18243-2. ! @item Keith Glover and John C. Doyle, @cite{State-space formulae for all ! stabilizing controllers that satisfy an} ! @iftex ! @tex ! $ { \cal H }_\infty $@cite{norm} ! @end tex ! @end iftex ! @ifinfo ! @cite{H-infinity-norm} ! @end ifinfo ! @cite{bound and relations to risk sensitivity}, ! Systems & Control Letters 11, Oct. 1988, pp 167--172. ! @end enumerate @end deftypefn ! hinfsyn_chk -*- texinfo -*- ! @deftypefn {Function File} {[@var{retval}, @var{pc}, @var{pf}] =} hinfsyn_chk (@var{a}, @var{b1}, @var{b2}, @var{c1}, @var{c2}, @var{d12}, @var{d21}, @var{g}, @var{ptol}) ! Called by @code{hinfsyn} to see if gain @var{g} satisfies conditions in ! Theorem 3 of ! Doyle, Glover, Khargonekar, Francis, @cite{State Space Solutions to Standard} @iftex @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ @end tex @end iftex @ifinfo ! @cite{H-2 and H-infinity} @end ifinfo - @cite{Control Problems}, @acronym{IEEE} @acronym{TAC} August 1989. ! @strong{Warning:} do not attempt to use this at home; no argument ! checking performed. @strong{Inputs} ! As returned by @code{is_dgkf}, except for: @table @var ! @item g ! candidate gain level ! @item ptol ! as in @code{hinfsyn} @end table @strong{Outputs} @table @var ! @item retval ! 1 if g exceeds optimal Hinf closed loop gain, else 0 ! @item pc ! solution of ``regulator'' ! @iftex ! @tex ! $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! H-infinity ! @end ifinfo ! @acronym{ARE} ! @item pf ! solution of ``filter'' ! @iftex ! @tex ! $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! H-infinity ! @end ifinfo ! @acronym{ARE} @end table - Do not attempt to use this at home; no argument checking performed. @end deftypefn ! h2norm -*- texinfo -*- ! @deftypefn {Function File} {} h2norm (@var{sys}) ! Computes the ! @iftex ! @tex ! $ { \cal H }_2 $ ! @end tex ! @end iftex ! @ifinfo ! H-2 ! @end ifinfo ! norm of a system data structure (continuous time only). ! Reference: ! Doyle, Glover, Khargonekar, Francis, @cite{State-Space Solutions to Standard} ! @iftex ! @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! @cite{H-2 and H-infinity} ! @end ifinfo ! @cite{Control Problems}, @acronym{IEEE} @acronym{TAC} August 1989. @end deftypefn ! dgkfdemo -*- texinfo -*- ! @deftypefn {Function File} {} dgkfdemo () ! Octave Controls toolbox demo: ! @iftex ! @tex ! $ { \cal H }_2 $/$ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! H-2/H-infinity ! @end ifinfo ! options demos. @end deftypefn ! wgt1o -*- texinfo -*- ! @deftypefn {Function File} {@var{W} =} wgt1o (@var{vl}, @var{vh}, @var{fc}) ! State space description of a first order weighting function. ! Weighting function are needed by the @iftex @tex ! $ { \cal H }_2 / { \cal H }_\infty $ @end tex @end iftex ! @ifinfo ! H-2/H-infinity @end ifinfo ! design procedure. ! These functions are part of the augmented plant @var{P} ! (see @command{hinfdemo} for an application example). ! ! @strong{Inputs} ! @table @var ! @item vl ! Gain at low frequencies. ! @item vh ! Gain at high frequencies. ! @item fc ! Corner frequency (in Hz, @strong{not} in rad/sec) ! @end table ! ! @strong{Output} ! @table @var ! @item W ! Weighting function, given in form of a system data structure. ! @end table @end deftypefn ! hinf_ctr -*- texinfo -*- ! @deftypefn {Function File} {@var{K} =} hinf_ctr (@var{dgs}, @var{f}, @var{h}, @var{z}, @var{g}) ! Called by @code{hinfsyn} to compute the ! @iftex ! @tex ! $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! H-infinity ! @end ifinfo ! optimal controller. @strong{Inputs} @table @var ! @item dgs ! data structure returned by @code{is_dgkf} ! @item f ! @itemx h ! feedback and filter gain (not partitioned) ! @item g ! final gamma value @end table @strong{Outputs} @table @var ! @item K ! controller (system data structure) @end table ! Do not attempt to use this at home; no argument checking performed. @end deftypefn ! h2syn -*- texinfo -*- ! @deftypefn {Function File} {[@var{K}, @var{gain}, @var{kc}, @var{kf}, @var{pc}, @var{pf}] = } h2syn (@var{asys}, @var{nu}, @var{ny}, @var{tol}) ! Design ! @iftex ! @tex ! $ { \cal H }_2 $ ! @end tex ! @end iftex ! @ifinfo ! H-2 ! @end ifinfo ! optimal controller per procedure in ! Doyle, Glover, Khargonekar, Francis, @cite{State-Space Solutions to Standard} ! @iftex ! @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! @cite{H-2 and H-infinity} ! @end ifinfo ! @cite{Control Problems}, @acronym{IEEE} @acronym{TAC} August 1989. ! ! Discrete-time control per Zhou, Doyle, and Glover, @cite{Robust and optimal control}, Prentice-Hall, 1996. ! @strong{Inputs} @table @var ! @item asys ! system data structure (see ss, sys2ss) ! @itemize @bullet ! @item controller is implemented for continuous time systems ! @item controller is @strong{not} implemented for discrete time systems ! @end itemize ! @item nu ! number of controlled inputs ! @item ny ! number of measured outputs ! @item tol ! threshold for 0. Default: 200*@code{eps} @end table @strong{Outputs} @table @var ! @item k ! system controller ! @item gain ! optimal closed loop gain ! @item kc ! full information control (packed) ! @item kf ! state estimator (packed) ! @item pc ! @acronym{ARE} solution matrix for regulator subproblem ! @item pf ! @acronym{ARE} solution matrix for filter subproblem ! @end table ! @end deftypefn ! hinfdemo ! -*- texinfo -*- ! @deftypefn {Function File} {} hinfdemo () ! ! @iftex ! @tex ! $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! H-infinity ! @end ifinfo ! design demos for continuous @acronym{SISO} and @acronym{MIMO} systems and a ! discrete system. The @acronym{SISO} system is difficult to control because ! it is non-minimum-phase and unstable. The second design example ! controls the @command{jet707} plant, the linearized state space model of a ! Boeing 707-321 aircraft at @var{v}=80 m/s ! @iftex ! @tex ! ($M = 0.26$, $G_{a0} = -3^{\circ}$, ${\alpha}_0 = 4^{\circ}$, ${\kappa}= 50^{\circ}$). ! @end tex ! @end iftex ! @ifinfo ! (@var{M} = 0.26, @var{Ga0} = -3 deg, @var{alpha0} = 4 deg, @var{kappa} = 50 deg). ! @end ifinfo ! Inputs: (1) thrust and (2) elevator angle ! Outputs: (1) airspeed and (2) pitch angle. The discrete system is a ! stable and second order. ! ! @table @asis ! @item @acronym{SISO} plant: ! ! @iftex ! @tex ! $$ G(s) = { s-2 \over (s+2) (s-1) } $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! @group ! s - 2 ! G(s) = -------------- ! (s + 2)(s - 1) ! @end group ! @end example ! @end ifinfo ! ! @smallexample ! @group ! ! +----+ ! -------------------->| W1 |---> v1 ! z | +----+ ! ----|-------------+ ! | | ! | +---+ v y +----+ ! u *--->| G |--->O--*-->| W2 |---> v2 ! | +---+ | +----+ ! | | ! | +---+ | ! -----| K |<------- ! +---+ ! @end group ! @end smallexample ! ! @iftex ! @tex ! $$ { \rm min } \Vert T_{vz} \Vert _\infty $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! min || T || ! vz infty ! @end example ! @end ifinfo ! ! @var{W1} und @var{W2} are the robustness and performance weighting ! functions. ! ! @item @acronym{MIMO} plant: ! The optimal controller minimizes the ! @iftex ! @tex ! $ { \cal H }_\infty $ ! @end tex ! @end iftex ! @ifinfo ! H-infinity ! @end ifinfo ! norm of the ! augmented plant @var{P} (mixed-sensitivity problem): ! @smallexample ! @group ! w ! 1 -----------+ ! | +----+ ! +---------------------->| W1 |----> z1 ! w | | +----+ ! 2 ------------------------+ ! | | | ! | v +----+ v +----+ ! +--*-->o-->| G |-->o--*-->| W2 |---> z2 ! | +----+ | +----+ ! | | ! ^ v ! u y (to K) ! (from controller K) ! @end group ! @end smallexample ! @iftex ! @tex ! $$ \left [ \matrix{ z_1 \cr ! z_2 \cr ! y } \right ] = ! P \left [ \matrix{ w_1 \cr ! w_2 \cr ! u } \right ] $$ ! @end tex ! @end iftex ! @ifinfo ! @smallexample ! @group ! + + + + ! | z | | w | ! | 1 | | 1 | ! | z | = [ P ] * | w | ! | 2 | | 2 | ! | y | | u | ! + + + + ! @end group ! @end smallexample ! @end ifinfo ! @item Discrete system: ! This is not a true discrete design. The design is carried out ! in continuous time while the effect of sampling is described by ! a bilinear transformation of the sampled system. ! This method works quite well if the sampling period is ``small'' ! compared to the plant time constants. ! @item The continuous plant: ! @iftex ! @tex ! $$ G(s) = { 1 \over (s+2)(s+1) } $$ ! @end tex ! @end iftex ! @ifinfo @example @group ! 1 ! G (s) = -------------- ! k (s + 2)(s + 1) ! @end group @end example ! @end ifinfo ! is discretised with a @acronym{ZOH} (Sampling period = @var{Ts} = 1 second): @iftex @tex ! $$ G(z) = { 0.199788z + 0.073498 \over (z - 0.36788) (z - 0.13534) } $$ @end tex @end iftex @ifinfo @example ! @group ! ! 0.199788z + 0.073498 ! G(z) = -------------------------- ! (z - 0.36788)(z - 0.13534) ! @end group @end example @end ifinfo ! ! @smallexample ! @group ! ! +----+ ! -------------------->| W1 |---> v1 ! z | +----+ ! ----|-------------+ ! | | ! | +---+ v +----+ ! *--->| G |--->O--*-->| W2 |---> v2 ! | +---+ | +----+ ! | | ! | +---+ | ! -----| K |<------- ! +---+ ! @end group ! @end smallexample @iftex @tex ! $$ { \rm min } \Vert T_{vz} \Vert _\infty $$ @end tex @end iftex @ifinfo @example ! min || T || ! vz infty @end example @end ifinfo ! @var{W1} and @var{W2} are the robustness and performance weighting ! functions. ! @end table ! @end deftypefn ! is_dgkf ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{retval}, @var{dgkf_struct} ] =} is_dgkf (@var{asys}, @var{nu}, @var{ny}, @var{tol} ) ! Determine whether a continuous time state space system meets ! assumptions of @acronym{DGKF} algorithm. ! Partitions system into: ! @example ! [dx/dt] [A | Bw Bu ][w] ! [ z ] = [Cz | Dzw Dzu ][u] ! [ y ] [Cy | Dyw Dyu ] ! @end example ! or similar discrete-time system. ! If necessary, orthogonal transformations @var{qw}, @var{qz} and nonsingular ! transformations @var{ru}, @var{ry} are applied to respective vectors ! @var{w}, @var{z}, @var{u}, @var{y} in order to satisfy @acronym{DGKF} assumptions. ! Loop shifting is used if @var{dyu} block is nonzero. @strong{Inputs} @table @var ! @item asys ! system data structure ! @item nu ! number of controlled inputs ! @item ny ! number of measured outputs ! @item tol ! threshold for 0; default: 200*@code{eps}. ! @end table ! @strong{Outputs} ! @table @var ! @item retval ! true(1) if system passes check, false(0) otherwise ! @item dgkf_struct ! data structure of @command{is_dgkf} results. Entries: ! @table @var ! @item nw ! @itemx nz ! dimensions of @var{w}, @var{z} ! @item a ! system @math{A} matrix ! @item bw ! (@var{n} x @var{nw}) @var{qw}-transformed disturbance input matrix ! @item bu ! (@var{n} x @var{nu}) @var{ru}-transformed controlled input matrix; ! ! @math{B = [Bw Bu]} ! @item cz ! (@var{nz} x @var{n}) Qz-transformed error output matrix ! @item cy ! (@var{ny} x @var{n}) @var{ry}-transformed measured output matrix ! ! @math{C = [Cz; Cy]} ! @item dzu ! @item dyw ! off-diagonal blocks of transformed system @math{D} matrix that enter ! @var{z}, @var{y} from @var{u}, @var{w} respectively ! @item ru ! controlled input transformation matrix ! @item ry ! observed output transformation matrix ! @item dyu_nz ! nonzero if the @var{dyu} block is nonzero. ! @item dyu ! untransformed @var{dyu} block ! @item dflg ! nonzero if the system is discrete-time ! @end table ! @end table ! @code{is_dgkf} exits with an error if the system is mixed ! discrete/continuous. ! ! @strong{References} ! @table @strong ! @item [1] ! Doyle, Glover, Khargonekar, Francis, @cite{State Space Solutions to Standard} @iftex @tex ! $ { \cal H }_2 $ @cite{and} $ { \cal H }_\infty $ @end tex @end iftex @ifinfo - @cite{H-2 and H-infinity} - @end ifinfo - @cite{Control Problems}, @acronym{IEEE} @acronym{TAC} August 1989. - @item [2] - Maciejowksi, J.M., @cite{Multivariable Feedback Design}, Addison-Wesley, 1989. - @end table - @end deftypefn - weibpdf - -*- texinfo -*- - @deftypefn {Function File} {} weibpdf (@var{x}, @var{scale}, @var{shape}) - Compute the probability density function (PDF) at @var{x} of the - Weibull distribution with shape parameter @var{scale} and scale - parameter @var{shape} which is given by - @example ! scale * shape^(-scale) * x^(scale-1) * exp(-(x/shape)^scale) ! @end example ! ! @noindent ! for @var{x} > 0. ! @end deftypefn ! chisquare_inv ! -*- texinfo -*- ! @deftypefn {Function File} {} chisquare_inv (@var{x}, @var{n}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the chisquare distribution with @var{n} degrees of ! freedom. ! @end deftypefn ! uniform_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} uniform_pdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the PDF at @var{x} of the uniform ! distribution on [@var{a}, @var{b}]. ! Default values are @var{a} = 0, @var{b} = 1. ! @end deftypefn ! lognormal_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} lognormal_rnd (@var{a}, @var{v}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} lognormal_rnd (@var{a}, @var{v}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! lognormal distribution with parameters @var{a} and @var{v}. Both ! @var{a} and @var{v} must be scalar or of size @var{r} by @var{c}. ! Or if @var{sz} is a vector, create a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{v}. ! @end deftypefn ! uniform_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} uniform_cdf (@var{x}, @var{a}, @var{b}) ! Return the CDF at @var{x} of the uniform distribution on [@var{a}, ! @var{b}], i.e., PROB (uniform (@var{a}, @var{b}) <= x). ! Default values are @var{a} = 0, @var{b} = 1. @end deftypefn ! exponential_cdf -*- texinfo -*- ! @deftypefn {Function File} {} exponential_cdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the exponential distribution with ! parameter @var{lambda}. ! The arguments can be of common size or scalar. ! @end deftypefn ! exponential_inv ! -*- texinfo -*- ! @deftypefn {Function File} {} exponential_inv (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the exponential distribution with parameter ! @var{lambda}. ! @end deftypefn ! is_struct ! -*- texinfo -*- ! @deftypefn {Function File} {} is_struct (@var{a}) ! This function has been deprecated. Use isstruct instead. ! @end deftypefn ! normal_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} normal_cdf (@var{x}, @var{m}, @var{v}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the normal distribution with mean ! @var{m} and variance @var{v}. ! Default values are @var{m} = 0, @var{v} = 1. ! @end deftypefn ! lognormal_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} lognormal_cdf (@var{x}, @var{a}, @var{v}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the lognormal distribution with ! parameters @var{a} and @var{v}. If a random variable follows this ! distribution, its logarithm is normally distributed with mean ! @code{log (@var{a})} and variance @var{v}. ! Default values are @var{a} = 1, @var{v} = 1. ! @end deftypefn ! isstr ! -*- texinfo -*- ! @deftypefn {Function File} {} isstr (@var{a}) ! This function has been deprecated. Use ischar instead. ! @end deftypefn ! binomial_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} binomial_pdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the binomial distribution with parameters @var{n} ! and @var{p}. ! @end deftypefn ! clg ! -*- texinfo -*- ! @deftypefn {Function File} {} clg () ! This function has been deprecated. Use clf instead. @end deftypefn ! weibcdf -*- texinfo -*- ! @deftypefn {Function File} {} weibcdf (@var{x}, @var{scale}, @var{shape}) ! Compute the cumulative distribution function (CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}, which is @example ! 1 - exp(-(x/shape)^scale) @end example ! ! @noindent ! for @var{x} >= 0. @end deftypefn ! beta_rnd -*- texinfo -*- ! @deftypefn {Function File} {} beta_rnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} beta_rnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or @code{size (@var{sz})} matrix of ! random samples from the Beta distribution with parameters @var{a} and ! @var{b}. Both @var{a} and @var{b} must be scalar or of size @var{r} ! by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. ! @end deftypefn ! pascal_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} pascal_cdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the CDF at x of the Pascal ! (negative binomial) distribution with parameters @var{n} and @var{p}. ! The number of failures in a Bernoulli experiment with success ! probability @var{p} before the @var{n}-th success follows this ! distribution. ! @end deftypefn ! f_inv ! -*- texinfo -*- ! @deftypefn {Function File} {} f_inv (@var{x}, @var{m}, @var{n}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the F distribution with parameters @var{m} and ! @var{n}. @end deftypefn ! wiener_rnd -*- texinfo -*- ! @deftypefn {Function File} {} wiener_rnd (@var{t}, @var{d}, @var{n}) ! Return a simulated realization of the @var{d}-dimensional Wiener Process ! on the interval [0, @var{t}]. If @var{d} is omitted, @var{d} = 1 is ! used. The first column of the return matrix contains time, the ! remaining columns contain the Wiener process. ! The optional parameter @var{n} gives the number of summands used for ! simulating the process over an interval of length 1. If @var{n} is ! omitted, @var{n} = 1000 is used. @end deftypefn ! uniform_inv -*- texinfo -*- ! @deftypefn {Function File} {} uniform_inv (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the uniform distribution on [@var{a}, @var{b}]. ! Default values are @var{a} = 0, @var{b} = 1. ! @end deftypefn ! hypergeometric_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} hypergeometric_pdf (@var{x}, @var{m}, @var{t}, @var{n}) ! Compute the probability density function (PDF) at @var{x} of the ! hypergeometric distribution with parameters @var{m}, @var{t}, and ! @var{n}. This is the probability of obtaining @var{x} marked items ! when randomly drawing a sample of size @var{n} without replacement ! from a population of total size @var{t} containing @var{m} marked items. ! The arguments must be of common size or scalar. @end deftypefn ! poisson_inv -*- texinfo -*- ! @deftypefn {Function File} {} poisson_inv (@var{x}, @var{lambda}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the Poisson distribution with parameter ! @var{lambda}. @end deftypefn ! lognormal_inv -*- texinfo -*- ! @deftypefn {Function File} {} lognormal_inv (@var{x}, @var{a}, @var{v}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the lognormal distribution with parameters @var{a} ! and @var{v}. If a random variable follows this distribution, its ! logarithm is normally distributed with mean @code{log (@var{a})} and ! variance @var{v}. ! Default values are @var{a} = 1, @var{v} = 1. ! @end deftypefn ! normal_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} normal_pdf (@var{x}, @var{m}, @var{v}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the normal distribution with mean @var{m} and ! variance @var{v}. ! Default values are @var{m} = 0, @var{v} = 1. @end deftypefn ! is_symmetric -*- texinfo -*- ! @deftypefn {Function File} {} issymmetric (@var{x}, @var{tol}) ! This function has been deprecated. Use issymmetric instead. @end deftypefn ! normal_inv -*- texinfo -*- ! @deftypefn {Function File} {} normal_inv (@var{x}, @var{m}, @var{v}) ! For each element of @var{x}, compute the quantile (the inverse of the ! CDF) at @var{x} of the normal distribution with mean @var{m} and ! variance @var{v}. ! Default values are @var{m} = 0, @var{v} = 1. ! @end deftypefn ! pascal_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} pascal_pdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the Pascal (negative binomial) distribution with ! parameters @var{n} and @var{p}. ! The number of failures in a Bernoulli experiment with success ! probability @var{p} before the @var{n}-th success follows this ! distribution. ! @end deftypefn ! hypergeometric_inv ! -*- texinfo -*- ! @deftypefn {Function File} {} hypergeometric_inv (@var{x}, @var{m}, @var{t}, @var{n}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! hypergeometric distribution with parameters @var{m}, @var{t}, and ! @var{n}. ! The parameters @var{m}, @var{t}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. ! @end deftypefn ! gamma_inv ! -*- texinfo -*- ! @deftypefn {Function File} {} gamma_inv (@var{x}, @var{a}, @var{b}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the Gamma distribution with parameters @var{a} ! and @var{b}. ! @end deftypefn ! beta_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} beta_cdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, returns the CDF at @var{x} of the beta ! distribution with parameters @var{a} and @var{b}, i.e., ! PROB (beta (@var{a}, @var{b}) <= @var{x}). ! @end deftypefn ! uniform_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} uniform_rnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} uniform_rnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the uniform distribution on [@var{a}, @var{b}]. ! Both @var{a} and @var{b} must be scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. ! @end deftypefn ! lognormal_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} lognormal_pdf (@var{x}, @var{a}, @var{v}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the lognormal distribution with parameters ! @var{a} and @var{v}. If a random variable follows this distribution, ! its logarithm is normally distributed with mean @code{log (@var{a})} ! and variance @var{v}. ! Default values are @var{a} = 1, @var{v} = 1. ! @end deftypefn ! setstr ! -*- texinfo -*- ! @deftypefn {Function File} {} setstr (@var{s}) ! This function has been deprecated. Use char instead. ! @end deftypefn ! weibrnd ! -*- texinfo -*- ! @deftypefn {Function File} {} weibrnd (@var{scale}, @var{shape}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} weibrnd (@var{scale}, @var{shape}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! Weibull distribution with parameters @var{scale} and @var{shape} ! which must be scalar or of size @var{r} by @var{c}. Or if @var{sz} ! is a vector return a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{alpha} and @var{sigma}. ! @end deftypefn ! clearplot ! -*- texinfo -*- ! @deftypefn {Function File} {} clearplot () ! This function has been deprecated. Use clf instead. ! @end deftypefn ! binomial_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} binomial_cdf (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the CDF at @var{x} of the ! binomial distribution with parameters @var{n} and @var{p}. @end deftypefn ! is_vector -*- texinfo -*- ! @deftypefn {Function File} {} is_vector (@var{a}) ! This function has been deprecated. Use isvector instead. @end deftypefn ! t_pdf -*- texinfo -*- ! @deftypefn {Function File} {} t_pdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the @var{t} (Student) distribution with @var{n} ! degrees of freedom. @end deftypefn ! f_pdf -*- texinfo -*- ! @deftypefn {Function File} {} f_pdf (@var{x}, @var{m}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the F distribution with @var{m} and @var{n} ! degrees of freedom. @end deftypefn ! pascal_rnd -*- texinfo -*- ! @deftypefn {Function File} {} pascal_rnd (@var{n}, @var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} pascal_rnd (@var{n}, @var{p}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the Pascal ! (negative binomial) distribution with parameters @var{n} and @var{p}. ! Both @var{n} and @var{p} must be scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{n} and @var{p}. Or if @var{sz} is a vector, ! create a matrix of size @var{sz}. ! @end deftypefn ! weibull_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} weibull_rnd (@var{shape}, @var{scale}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} weibull_rnd (@var{shape}, @var{scale}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! Weibull distribution with parameters @var{scale} and @var{shape} ! which must be scalar or of size @var{r} by @var{c}. Or if @var{sz} ! is a vector return a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{alpha} and @var{sigma}. ! @end deftypefn ! normal_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} normal_rnd (@var{m}, @var{v}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} normal_rnd (@var{m}, @var{v}, @var{sz}) ! Return an @var{r} by @var{c} or @code{size (@var{sz})} matrix of ! random samples from the normal distribution with parameters @var{m} ! and @var{v}. Both @var{m} and @var{v} must be scalar or of size ! @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{m} and @var{v}. @end deftypefn ! chisquare_pdf -*- texinfo -*- ! @deftypefn {Function File} {} chisquare_pdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the chisquare distribution with @var{n} degrees ! of freedom. @end deftypefn ! is_scalar -*- texinfo -*- ! @deftypefn {Function File} {} is_scalar (@var{a}) ! This function has been deprecated. Use isscalar instead. @end deftypefn ! exponential_pdf -*- texinfo -*- ! @deftypefn {Function File} {} exponential_pdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the probability density function ! (PDF) of the exponential distribution with parameter @var{lambda}. @end deftypefn ! geometric_pdf -*- texinfo -*- ! @deftypefn {Function File} {} geometric_pdf (@var{x}, @var{p}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the geometric distribution with parameter @var{p}. @end deftypefn ! t_cdf -*- texinfo -*- ! @deftypefn {Function File} {} t_cdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the CDF at @var{x} of the ! t (Student) distribution with @var{n} degrees of freedom, i.e., ! PROB (t(@var{n}) <= @var{x}). @end deftypefn ! is_matrix -*- texinfo -*- ! @deftypefn {Function File} {} is_matrix (@var{a}) ! This function has been deprecated. Use ismatrix instead. @end deftypefn ! hypergeometric_cdf -*- texinfo -*- ! @deftypefn {Function File} {} hypergeometric_cdf (@var{x}, @var{m}, @var{t}, @var{n}) ! Compute the cumulative distribution function (CDF) at @var{x} of the ! hypergeometric distribution with parameters @var{m}, @var{t}, and ! @var{n}. This is the probability of obtaining not more than @var{x} ! marked items when randomly drawing a sample of size @var{n} without ! replacement from a population of total size @var{t} containing ! @var{m} marked items. ! The parameters @var{m}, @var{t}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. @end deftypefn ! polyinteg -*- texinfo -*- ! @deftypefn {Function File} {} polyinteg (@var{c}) ! Return the coefficients of the integral of the polynomial whose ! coefficients are represented by the vector @var{c}. ! The constant of integration is set to zero. ! @seealso{poly, polyderiv, polyreduce, roots, conv, deconv, residue, ! filter, polyval, and polyvalm} @end deftypefn ! geometric_cdf -*- texinfo -*- ! @deftypefn {Function File} {} geometric_cdf (@var{x}, @var{p}) ! For each element of @var{x}, compute the CDF at @var{x} of the ! geometric distribution with parameter @var{p}. @end deftypefn ! geometric_rnd -*- texinfo -*- ! @deftypefn {Function File} {} geometric_rnd (@var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} geometric_rnd (@var{p}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! geometric distribution with parameter @var{p}, which must be a scalar ! or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are given create a matrix with @var{r} rows and ! @var{c} columns. Or if @var{sz} is a vector, create a matrix of size ! @var{sz}. ! @end deftypefn ! weibull_inv ! -*- texinfo -*- ! @deftypefn {Function File} {} weibull_inv (@var{x}, @var{shape}, @var{scale}) ! Compute the quantile (the inverse of the CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}. @end deftypefn ! binomial_inv -*- texinfo -*- ! @deftypefn {Function File} {} binomial_inv (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! binomial distribution with parameters @var{n} and @var{p}. @end deftypefn ! pascal_inv -*- texinfo -*- ! @deftypefn {Function File} {} pascal_inv (@var{x}, @var{n}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! Pascal (negative binomial) distribution with parameters @var{n} and ! @var{p}. ! The number of failures in a Bernoulli experiment with success ! probability @var{p} before the @var{n}-th success follows this ! distribution. @end deftypefn ! weibull_pdf -*- texinfo -*- ! @deftypefn {Function File} {} weibull_pdf (@var{x}, @var{shape}, @var{scale}) ! Compute the probability density function (PDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape} which is given by @example ! scale * shape^(-scale) * x^(scale-1) * exp(-(x/shape)^scale) @end example ! ! @noindent ! for @var{x} > 0. ! @end deftypefn ! gamma_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} gamma_pdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, return the probability density function ! (PDF) at @var{x} of the Gamma distribution with parameters @var{a} ! and @var{b}. @end deftypefn ! struct_elements -*- texinfo -*- ! @deftypefn {Function File} {} struct_elements (@var{struct}) ! This function has been deprecated. Use fieldnames instead. @end deftypefn ! gamma_rnd -*- texinfo -*- ! @deftypefn {Function File} {} gamma_rnd (@var{a}, @var{b}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} gamma_rnd (@var{a}, @var{b}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the Gamma distribution with parameters @var{a} ! and @var{b}. Both @var{a} and @var{b} must be scalar or of size ! @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{a} and @var{b}. @end deftypefn ! beta_inv -*- texinfo -*- ! @deftypefn {Function File} {} beta_inv (@var{x}, @var{a}, @var{b}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the Beta distribution with parameters @var{a} ! and @var{b}. @end deftypefn ! poisson_rnd -*- texinfo -*- ! @deftypefn {Function File} {} poisson_rnd (@var{lambda}, @var{r}, @var{c}) ! Return an @var{r} by @var{c} matrix of random samples from the ! Poisson distribution with parameter @var{lambda}, which must be a ! scalar or of size @var{r} by @var{c}. ! ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{lambda}. @end deftypefn ! chisquare_rnd -*- texinfo -*- ! @deftypefn {Function File} {} chisquare_rnd (@var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} chisquare_rnd (@var{n}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the chisquare distribution with @var{n} degrees ! of freedom. @var{n} must be a scalar or of size @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{n}. @end deftypefn ! com2str -*- texinfo -*- ! @deftypefn {Function File} {} com2str (@var{zz}, @var{flg}) ! This function has been deprecated. Use num2str instead. ! Convert complex number to a string. ! @strong{Inputs} ! @table @var ! @item zz ! complex number ! @item flg ! format flag ! 0 (default): -1, 0, 1, 1i, 1 + 0.5i ! 1 (for use with zpout): -1, 0, + 1, + 1i, + 1 + 0.5i ! @end table ! @end deftypefn ! beta_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} beta_pdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, returns the PDF at @var{x} of the beta ! distribution with parameters @var{a} and @var{b}. @end deftypefn ! t_rnd -*- texinfo -*- ! @deftypefn {Function File} {} t_rnd (@var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} t_rnd (@var{n}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the t ! (Student) distribution with @var{n} degrees of freedom. @var{n} must ! be a scalar or of size @var{r} by @var{c}. Or if @var{sz} is a ! vector create a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{n}. ! @end deftypefn ! poisson_cdf ! -*- texinfo -*- ! @deftypefn {Function File} {} poisson_cdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Poisson distribution with parameter ! lambda. ! @end deftypefn ! poisson_pdf ! -*- texinfo -*- ! @deftypefn {Function File} {} poisson_pdf (@var{x}, @var{lambda}) ! For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of the poisson distribution with parameter @var{lambda}. ! @end deftypefn ! meshdom ! -*- texinfo -*- ! @deftypefn {Function File} {} meshdom (@var{x}, @var{y}) ! This function has been deprecated. Use @code{meshgrid} instead. ! @end deftypefn ! hypergeometric_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} hypergeometric_rnd (@var{m}, @var{t}, @var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} hygernd (@var{m}, @var{t}, @var{n}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! hypergeometric distribution with parameters @var{m}, @var{t}, ! and @var{n}. ! The parameters @var{m}, @var{t}, and @var{n} must positive integers ! with @var{m} and @var{n} not greater than @var{t}. ! @end deftypefn ! is_stream ! -*- texinfo -*- ! @deftypefn {Function File} {} is_stream (@var{a}) ! This function has been deprecated. Use isstream instead. @end deftypefn ! exponential_rnd -*- texinfo -*- ! @deftypefn {Function File} {} exponential_rnd (@var{lambda}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} exponential_rnd (@var{lambda}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the ! exponential distribution with parameter @var{lambda}, which must be a ! scalar or of size @var{r} by @var{c}. Or if @var{sz} is a vector, ! create a matrix of size @var{sz}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the size of @var{lambda}. @end deftypefn ! weibinv -*- texinfo -*- ! @deftypefn {Function File} {} weibinv (@var{x}, @var{scale}, @var{shape}) ! Compute the quantile (the inverse of the CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}. @end deftypefn ! t_inv -*- texinfo -*- ! @deftypefn {Function File} {} t_inv (@var{x}, @var{n}) ! For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the t (Student) distribution with parameter ! @var{n}. @end deftypefn ! f_cdf -*- texinfo -*- ! @deftypefn {Function File} {} f_cdf (@var{x}, @var{m}, @var{n}) ! For each element of @var{x}, compute the CDF at @var{x} of the F ! distribution with @var{m} and @var{n} degrees of freedom, i.e., ! PROB (F (@var{m}, @var{n}) <= @var{x}). @end deftypefn ! geometric_inv -*- texinfo -*- ! @deftypefn {Function File} {} geometric_inv (@var{x}, @var{p}) ! For each element of @var{x}, compute the quantile at @var{x} of the ! geometric distribution with parameter @var{p}. @end deftypefn ! intersection -*- texinfo -*- ! @deftypefn {Function File} {} intersection (@var{x}, @var{y}) ! This function has been deprecated. Use intersect instead. @end deftypefn ! f_rnd -*- texinfo -*- ! @deftypefn {Function File} {} f_rnd (@var{m}, @var{n}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} f_rnd (@var{m}, @var{n}, @var{sz}) ! Return an @var{r} by @var{c} matrix of random samples from the F ! distribution with @var{m} and @var{n} degrees of freedom. Both ! @var{m} and @var{n} must be scalar or of size @var{r} by @var{c}. ! If @var{sz} is a vector the random samples are in a matrix of ! size @var{sz}. ! ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{m} and @var{n}. @end deftypefn ! struct_contains -*- texinfo -*- ! @deftypefn {Function File} {} struct_contains (@var{expr}, @var{name}) ! This function has been deprecated. Use isfield instead. @end deftypefn ! chisquare_cdf -*- texinfo -*- ! @deftypefn {Function File} {} chisquare_cdf (@var{x}, @var{n}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the chisquare distribution with @var{n} ! degrees of freedom. @end deftypefn ! gamma_cdf -*- texinfo -*- ! @deftypefn {Function File} {} gamma_cdf (@var{x}, @var{a}, @var{b}) ! For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of the Gamma distribution with parameters ! @var{a} and @var{b}. @end deftypefn ! is_complex -*- texinfo -*- ! @deftypefn {Function File} {} is_complex (@var{a}) ! This function has been deprecated. Use iscomplex instead. @end deftypefn ! binomial_rnd -*- texinfo -*- ! @deftypefn {Function File} {} binomial_rnd (@var{n}, @var{p}, @var{r}, @var{c}) ! @deftypefnx {Function File} {} binomial_rnd (@var{n}, @var{p}, @var{sz}) ! Return an @var{r} by @var{c} or a @code{size (@var{sz})} matrix of ! random samples from the binomial distribution with parameters @var{n} ! and @var{p}. Both @var{n} and @var{p} must be scalar or of size ! @var{r} by @var{c}. ! If @var{r} and @var{c} are omitted, the size of the result matrix is ! the common size of @var{n} and @var{p}. @end deftypefn ! weibull_cdf -*- texinfo -*- ! @deftypefn {Function File} {} weibull_cdf (@var{x}, @var{shape}, @var{scale}) ! Compute the cumulative distribution function (CDF) at @var{x} of the ! Weibull distribution with shape parameter @var{scale} and scale ! parameter @var{shape}, which is @example ! 1 - exp(-(x/shape)^scale) @end example @noindent ! for @var{x} >= 0. ! @end deftypefn ! is_list ! -*- texinfo -*- ! @deftypefn {Function File} {} is_list (@var{a}) ! This function has been deprecated. Use islist instead. ! @end deftypefn ! is_bool ! -*- texinfo -*- ! @deftypefn {Function File} {} is_bool (@var{a}) ! This function has been deprecated. Use isbool instead. @end deftypefn ! is_square -*- texinfo -*- ! @deftypefn {Function File} {} is_square (@var{x}) ! This function has been deprecated. Use issquare instead. @end deftypefn ! demo -*- texinfo -*- ! @deftypefn {Function File} {} demo ('@var{name}',@var{n}) ! Runs any examples associated with the function '@var{name}'. ! Examples are stored in the script file, or in a file with the same ! name but no extension somewhere on your path. To keep them separate ! from the usual script code, all lines are prefixed by @code{%!}. Each ! example is introduced by the keyword 'demo' flush left to the prefix, ! with no intervening spaces. The remainder of the example can contain ! arbitrary octave code. For example: @example ! %!demo ! %! t=0:0.01:2*pi; x = sin(t); ! %! plot(t,x) ! %! %------------------------------------------------- ! %! % the figure window shows one cycle of a sine wave @end example ! Note that the code is displayed before it is executed, so a simple ! comment at the end suffices. It is generally not necessary to use ! disp or printf within the demo. ! Demos are run in a function environment with no access to external ! variables. This means that all demos in your function must use ! separate initialization code. Alternatively, you can combine your ! demos into one huge demo, with the code: ! @example ! %! input("Press to continue: ","s"); ! @end example ! between the sections, but this is discouraged. Other techniques ! include using multiple plots by saying figure between each, or ! using subplot to put multiple plots in the same window. ! Also, since demo evaluates inside a function context, you cannot ! define new functions inside a demo. Instead you will have to ! use @code{eval(example('function',n))} to see them. Because eval only ! evaluates one line, or one statement if the statement crosses ! multiple lines, you must wrap your demo in "if 1 endif" ! with the 'if' on the same line as 'demo'. For example, ! @example ! %!demo if 1 ! %! function y=f(x) ! %! y=x; ! %! endfunction ! %! f(3) ! %! endif ! @end example ! @seealso{test, example} @end deftypefn ! speed -*- texinfo -*- ! @deftypefn {Function File} {} speed (@var{f}, @var{init}, @var{max_n}, @var{f2}, @var{tol}) ! @deftypefnx {Function File} {[@var{order}, @var{n}, @var{T_f}, @var{T_f2}] =} speed (@dots{}) ! Determine the execution time of an expression for various @var{n}. ! The @var{n} are log-spaced from 1 to @var{max_n}. For each @var{n}, ! an initialization expression is computed to create whatever data ! are needed for the test. If a second expression is given, the ! execution times of the two expressions will be compared. Called ! without output arguments the results are presented graphically. @table @code ! @item @var{f} ! The expression to evaluate. ! @item @var{max_n} ! The maximum test length to run. Default value is 100. Alternatively, ! use @code{[min_n,max_n]} or for complete control, @code{[n1,n2,@dots{},nk]}. ! @item @var{init} ! Initialization expression for function argument values. Use @var{k} ! for the test number and @var{n} for the size of the test. This should ! compute values for all variables listed in args. Note that init will ! be evaluated first for k=0, so things which are constant throughout ! the test can be computed then. The default value is @code{@var{x} = ! randn (@var{n}, 1);}. ! @item @var{f2} ! An alternative expression to evaluate, so the speed of the two ! can be compared. Default is @code{[]}. ! @item @var{tol} ! If @var{tol} is @code{Inf}, then no comparison will be made between the ! results of expression @var{f} and expression @var{f2}. Otherwise, ! expression @var{f} should produce a value @var{v} and expression @var{f2} ! should produce a value @var{v2}, and these shall be compared using ! @code{assert(@var{v},@var{v2},@var{tol})}. If @var{tol} is positive, ! the tolerance is assumed to be absolute. If @var{tol} is negative, ! the tolerance is assumed to be relative. The default is @code{eps}. ! @item @var{order} ! The time complexity of the expression @code{O(a n^p)}. This ! is a structure with fields @code{a} and @code{p}. ! @item @var{n} ! The values @var{n} for which the expression was calculated and ! the execution time was greater than zero. ! @item @var{T_f} ! The nonzero execution times recorded for the expression @var{f} in seconds. ! @item @var{T_f2} ! The nonzero execution times recorded for the expression @var{f2} in seconds. ! If it is needed, the mean time ratio is just @code{mean(T_f./T_f2)}. ! @end table ! The slope of the execution time graph shows the approximate ! power of the asymptotic running time @code{O(n^p)}. This ! power is plotted for the region over which it is approximated ! (the latter half of the graph). The estimated power is not ! very accurate, but should be sufficient to determine the ! general order of your algorithm. It should indicate if for ! example your implementation is unexpectedly @code{O(n^2)} ! rather than @code{O(n)} because it extends a vector each ! time through the loop rather than preallocating one which is ! big enough. For example, in the current version of Octave, ! the following is not the expected @code{O(n)}: @example ! speed("for i=1:n,y@{i@}=x(i); end", "", [1000,10000]) @end example ! but it is if you preallocate the cell array @code{y}: @example ! speed("for i=1:n,y@{i@}=x(i);end", ... ! "x=rand(n,1);y=cell(size(x));", [1000,10000]) @end example ! An attempt is made to approximate the cost of the individual ! operations, but it is wildly inaccurate. You can improve the ! stability somewhat by doing more work for each @code{n}. For ! example: @example ! speed("airy(x)", "x=rand(n,10)", [10000,100000]) @end example ! When comparing a new and original expression, the line on the ! speedup ratio graph should be larger than 1 if the new expression ! is faster. Better algorithms have a shallow slope. Generally, ! vectorizing an algorithm will not change the slope of the execution ! time graph, but it will shift it relative to the original. For ! example: @example ! speed("v=sum(x)", "", [10000,100000], ... ! "v=0;for i=1:length(x),v+=x(i);end") @end example ! A more complex example, if you had an original version of @code{xcorr} ! using for loops and another version using an FFT, you could compare the ! run speed for various lags as follows, or for a fixed lag with varying ! vector lengths as follows: ! @example ! speed("v=xcorr(x,n)", "x=rand(128,1);", 100, ... ! "v2=xcorr_orig(x,n)", -100*eps) ! speed("v=xcorr(x,15)", "x=rand(20+n,1);", 100, ... ! "v2=xcorr_orig(x,n)", -100*eps) ! @end example ! Assuming one of the two versions is in @var{xcorr_orig}, this ! would compare their speed and their output values. Note that the ! FFT version is not exact, so we specify an acceptable tolerance on ! the comparison @code{100*eps}, and the errors should be computed ! relatively, as @code{abs((@var{x} - @var{y})./@var{y})} rather than ! absolutely as @code{abs(@var{x} - @var{y})}. ! Type @code{example('speed')} to see some real examples. Note for ! obscure reasons, you can't run examples 1 and 2 directly using ! @code{demo('speed')}. Instead use, @code{eval(example('speed',1))} ! and @code{eval(example('speed',2))}. @end deftypefn ! test -*- texinfo -*- ! @deftypefn {Function File} {} test @var{name} ! @deftypefnx {Function File} {} test @var{name} quiet|normal|verbose ! @deftypefnx {Function File} {} test ('@var{name}', 'quiet|normal|verbose', @var{fid}) ! @deftypefnx {Function File} {} test ([], 'explain', @var{fid}) ! @deftypefnx {Function File} {@var{success} =} test (@dots{}) ! @deftypefnx {Function File} {[@var{n}, @var{max}] =} test (@dots{}) ! @deftypefnx {Function File} {[@var{code}, @var{idx}] =} test ('@var{name}','grabdemo') ! Perform tests from the first file in the loadpath matching @var{name}. ! @code{test} can be called as a command or as a function. Called with ! a single argument @var{name}, the tests are run interactively and stop ! after the first error is encountered. ! With a second argument the tests which are performed and the amount of ! output is selected. ! @table @asis ! @item 'quiet' ! Don't report all the tests as they happen, just the errors. ! @item 'normal' ! Report all tests as they happen, but don't do tests which require ! user interaction. ! @item 'verbose' ! Do tests which require user interaction. @end table ! The argument @var{fid} can be used to allow batch processing. Errors ! can be written to the already open file defined by @var{fid}, and ! hopefully when octave crashes this file will tell you what was happening ! when it did. You can use @code{stdout} if you want to see the results as ! they happen. You can also give a file name rather than an @var{fid}, in ! which case the contents of the file will be replaced with the log from ! the current test. ! ! Called with a single output argument @var{success}, @code{test} returns ! true if all of the tests were successful. Called with two output arguments ! @var{n} and @var{max}, the number of successful tests and the total number ! of tests in the file @var{name} are returned. ! ! If the second argument is the string 'grabdemo', the contents of the demo ! blocks are extracted but not executed. Code for all code blocks is ! concatenated and returned as @var{code} with @var{idx} being a vector of ! positions of the ends of the demo blocks. ! If the second argument is 'explain', then @var{name} is ignored and an ! explanation of the line markers used is written to the file @var{fid}. ! @seealso{error, assert, fail, demo, example} @end deftypefn ! fail -*- texinfo -*- ! @deftypefn {Function File} {} fail (@var{code},@var{pattern}) ! @deftypefnx {Function File} {} fail (@var{code},'warning',@var{pattern}) ! Return true if @var{code} fails with an error message matching ! @var{pattern}, otherwise produce an error. Note that @var{code} ! is a string and if @var{code} runs successfully, the error produced is: @example ! expected error but got none @end example ! If the code fails with a different error, the message produced is: @example ! expected ! but got @end example ! The angle brackets are not part of the output. ! ! Called with three arguments, the behavior is similar to ! @code{fail(@var{code}, @var{pattern})}, but produces an error if no ! warning is given during code execution or if the code fails. ! @end deftypefn ! assert -*- texinfo -*- ! @deftypefn {Function File} {} assert (@var{cond}) ! @deftypefnx {Function File} {} assert (@var{observed},@var{expected}) ! @deftypefnx {Function File} {} assert (@var{observed},@var{expected},@var{tol}) ! ! Produces an error if the condition is not met. @code{assert} can be ! called in three different ways. ! ! @table @code ! @item assert (@var{cond}) ! Called with a single argument @var{cond}, @code{assert} produces an ! error if @var{cond} is zero. ! ! @item assert (@var{observed}, @var{expected}) ! Produce an error if observed is not the same as expected. Note that ! observed and expected can be strings, scalars, vectors, matrices, ! lists or structures. ! ! @item assert(@var{observed}, @var{expected}, @var{tol}) ! Accept a tolerance when comparing numbers. ! If @var{tol} is possitive use it as an absolute tolerance, will produce an error if ! @code{abs(@var{observed} - @var{expected}) > abs(@var{tol})}. ! If @var{tol} is negative use it as a relative tolerance, will produce an error if ! @code{abs(@var{observed} - @var{expected}) > abs(@var{tol} * @var{expected})}. ! If @var{expected} is zero @var{tol} will always be used as an absolute tolerance. ! @end table ! @seealso{test} @end deftypefn ! example -*- texinfo -*- ! @deftypefn {Function File} {} example ('@var{name}',@var{n}) ! @deftypefnx {Function File} {[@var{x}, @var{idx}] =} example ('@var{name}',@var{n}) ! ! Display the code for example @var{n} associated with the function ! '@var{name}', but do not run it. If @var{n} is not given, all examples ! are displayed. ! Called with output arguments, the examples are returned in the form of ! a string @var{x}, with @var{idx} indicating the ending position of the ! various examples. - See @code{demo} for a complete explanation. - @seealso{demo, test} @end deftypefn ! qtransv -*- texinfo -*- ! @deftypefn {Function File} {} qtransv (@var{v}, @var{q}) ! Transform the 3-D vector @var{v} by the unit quaternion @var{q}. ! Return a column vector. @example ! vi = (2*real(q)^2 - 1)*vb + 2*imag(q)*(imag(q)'*vb) ! + 2*real(q)*cross(imag(q),vb) @end example ! @noindent ! Where imag(q) is a column vector of length 3. @end deftypefn ! demoquat -*- texinfo -*- ! @deftypefn {Function File} {} demoquat () ! Demonstrate the functions available for manipulating quaternions. ! ! Thanks to Mr. Charles Hall, Dr. Don Krupp and Dr. Larry Mullins at ! NASA's Marshall Space Flight Center for notes and instruction in ! use and conventions with quaternions. - A. S. Hodel @end deftypefn ! qcoordinate_plot -*- texinfo -*- ! @deftypefn {Function File} {} qcoordinate_plot (@var{qf}, @var{qb}, @var{qv}) ! Plot in the current figure a set of coordinate axes as viewed from ! the orientation specified by quaternion @var{qv}. Inertial axes are ! also plotted: ! @table @var ! @item qf ! Quaternion from reference (x,y,z) to inertial. ! @item qb ! Quaternion from reference to body. ! @item qv ! Quaternion from reference to view angle. ! @end table @end deftypefn ! qinv -*- texinfo -*- ! @deftypefn {Function File} {} qinv (@var{q}) ! Return the inverse of a quaternion. @example ! q = [w, x, y, z] = w*i + x*j + y*k + z ! qmult (q, qinv (q)) = 1 = [0 0 0 1] @end example @end deftypefn ! qderiv -*- texinfo -*- ! @deftypefn {Function File} {} qderiv (omega) ! Derivative of a quaternion. ! Let Q be a quaternion to transform a vector from a fixed frame to ! a rotating frame. If the rotating frame is rotating about the ! [x, y, z] axes at angular rates [wx, wy, wz], then the derivative ! of Q is given by @example ! Q' = qderivmat (omega) * Q @end example ! If the passive convention is used (rotate the frame, not the vector), ! then @example ! Q' = -qderivmat (omega) * Q @end example @end deftypefn ! qtrans -*- texinfo -*- ! @deftypefn {Function File} {} qtrans (@var{v}, @var{q}) ! Transform the unit quaternion @var{v} by the unit quaternion @var{q}. ! Returns @code{@var{v} = @var{q}*@var{v}/@var{q}}. @end deftypefn ! quaternion -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{b}, @var{c}, @var{d}] =} quaternion (w) ! @deftypefnx {Function File} {[@var{vv}, @var{theta}] =} quaternion (w) ! @deftypefnx {Function File} {@var{w} =} quaternion (@var{a}, @var{b}, @var{c}, @var{d}) ! @deftypefnx {Function File} {@var{w} =} quaternion (@var{vv}, @var{theta}) ! Construct or extract a quaternion @example ! w = a*i + b*j + c*k + d @end example @noindent ! from given data. ! @end deftypefn ! qmult ! -*- texinfo -*- ! @deftypefn {Function File} {} qmult (@var{a}, @var{b}) ! Multiply two quaternions. @example ! [w, x, y, z] = w*i + x*j + y*k + z @end example ! ! @noindent ! identities: @example ! i^2 = j^2 = k^2 = -1 ! ij = k jk = i ! ki = j kj = -i ! ji = -k ik = -j @end example @end deftypefn ! qtransvmat -*- texinfo -*- ! @deftypefn {Function File} {} qtransvmat (@var{qib}) ! Construct a 3x3 transformation matrix from quaternion @var{qib} that ! is equivalent to rotation of th radians about axis @var{vv}, where ! @code{[@var{vv}, @var{th}] = quaternion (@var{qib})}. @end deftypefn ! qderivmat -*- texinfo -*- ! @deftypefn {Function File} {} qderivmat (@var{omega}) ! Derivative of a quaternion. ! ! Let Q be a quaternion to transform a vector from a fixed frame to ! a rotating frame. If the rotating frame is rotating about the ! [x, y, z] axes at angular rates [wx, wy, wz], then the derivative ! of Q is given by ! ! @example ! Q' = qderivmat (omega) * Q ! @end example ! ! If the passive convention is used (rotate the frame, not the vector), ! then ! @example ! Q' = -qderivmat (omega) * Q. ! @end example @end deftypefn ! qconj -*- texinfo -*- ! @deftypefn {Function File} {} qconj (@var{q}) ! Conjugate of a quaternion. @example ! q = [w, x, y, z] = w*i + x*j + y*k + z ! qconj (q) = -w*i -x*j -y*k + z @end example @end deftypefn ! arma_rnd -*- texinfo -*- ! @deftypefn {Function File} {} arma_rnd (@var{a}, @var{b}, @var{v}, @var{t}, @var{n}) ! Return a simulation of the ARMA model @example ! x(n) = a(1) * x(n-1) + ... + a(k) * x(n-k) ! + e(n) + b(1) * e(n-1) + ... + b(l) * e(n-l) @end example @noindent ! in which @var{k} is the length of vector @var{a}, @var{l} is the ! length of vector @var{b} and @var{e} is gaussian white noise with ! variance @var{v}. The function returns a vector of length @var{t}. ! The optional parameter @var{n} gives the number of dummy ! @var{x}(@var{i}) used for initialization, i.e., a sequence of length ! @var{t}+@var{n} is generated and @var{x}(@var{n}+1:@var{t}+@var{n}) ! is returned. If @var{n} is omitted, @var{n} = 100 is used. @end deftypefn ! spectral_adf -*- texinfo -*- ! @deftypefn {Function File} {} spectral_adf (@var{c}, @var{win}, @var{b}) ! Return the spectral density estimator given a vector of ! autocovariances @var{c}, window name @var{win}, and bandwidth, ! @var{b}. ! The window name, e.g., @code{"triangle"} or @code{"rectangle"} is ! used to search for a function called @code{@var{win}_sw}. ! If @var{win} is omitted, the triangle window is used. If @var{b} is ! omitted, @code{1 / sqrt (length (@var{x}))} is used. ! @end deftypefn ! freqz_plot ! -*- texinfo -*- ! @deftypefn {Function File} {} freqz_plot (@var{w}, @var{h}) ! Plot the pass band, stop band and phase response of @var{h}. ! @end deftypefn ! arch_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} arch_rnd (@var{a}, @var{b}, @var{t}) ! Simulate an ARCH sequence of length @var{t} with AR ! coefficients @var{b} and CH coefficients @var{a}. I.e., the result ! @math{y(t)} follows the model ! @smallexample ! y(t) = b(1) + b(2) * y(t-1) + @dots{} + b(lb) * y(t-lb+1) + e(t), ! @end smallexample ! @noindent ! where @math{e(t)}, given @var{y} up to time @math{t-1}, is ! @math{N(0, h(t))}, with - @smallexample - h(t) = a(1) + a(2) * e(t-1)^2 + @dots{} + a(la) * e(t-la+1)^2 - @end smallexample @end deftypefn ! triangle_lw -*- texinfo -*- ! @deftypefn {Function File} {} triangle_lw (@var{n}, @var{b}) ! Triangular lag window. Subfunction used for spectral density ! estimation. @end deftypefn ! fftconv -*- texinfo -*- ! @deftypefn {Function File} {} fftconv (@var{a}, @var{b}, @var{n}) ! Return the convolution of the vectors @var{a} and @var{b}, as a vector ! with length equal to the @code{length (a) + length (b) - 1}. If @var{a} ! and @var{b} are the coefficient vectors of two polynomials, the returned ! value is the coefficient vector of the product polynomial. ! The computation uses the FFT by calling the function @code{fftfilt}. If ! the optional argument @var{n} is specified, an N-point FFT is used. ! @end deftypefn ! spectral_xdf ! -*- texinfo -*- ! @deftypefn {Function File} {} spectral_xdf (@var{x}, @var{win}, @var{b}) ! Return the spectral density estimator given a data vector @var{x}, ! window name @var{win}, and bandwidth, @var{b}. ! The window name, e.g., @code{"triangle"} or @code{"rectangle"} is ! used to search for a function called @code{@var{win}_sw}. ! If @var{win} is omitted, the triangle window is used. If @var{b} is ! omitted, @code{1 / sqrt (length (@var{x}))} is used. ! @end deftypefn ! bartlett ! -*- texinfo -*- ! @deftypefn {Function File} {} bartlett (@var{m}) ! Return the filter coefficients of a Bartlett (triangular) window of ! length @var{m}. ! For a definition of the Bartlett window, see e.g. A. V. Oppenheim & ! R. W. Schafer, "Discrete-Time Signal Processing". ! @end deftypefn ! spencer ! -*- texinfo -*- ! @deftypefn {Function File} {} spencer (@var{x}) ! Return Spencer's 15 point moving average of every single column of ! @var{x}. ! @end deftypefn ! unwrap ! -*- texinfo -*- ! @deftypefn {Function File} {@var{b} =} unwrap (@var{a}, @var{tol}, @var{dim}) ! Unwrap radian phases by adding multiples of 2*pi as appropriate to ! remove jumps greater than @var{tol}. @var{tol} defaults to pi. ! Unwrap will unwrap along the first non-singleton dimension of ! @var{a}, unless the optional argument @var{dim} is given, in ! which case the data will be unwrapped along this dimension ! @end deftypefn ! rectangle_lw ! -*- texinfo -*- ! @deftypefn {Function File} {} rectangle_lw (@var{n}, @var{b}) ! Rectangular lag window. Subfunction used for spectral density ! estimation. ! @end deftypefn ! synthesis ! -*- texinfo -*- ! @deftypefn {Function File} {} synthesis (@var{y}, @var{c}) ! Compute a signal from its short-time Fourier transform @var{y} and a ! 3-element vector @var{c} specifying window size, increment, and ! window type. ! The values @var{y} and @var{c} can be derived by @example ! [@var{y}, @var{c}] = stft (@var{x} , @dots{}) @end example @end deftypefn ! autocov -*- texinfo -*- ! @deftypefn {Function File} {} autocov (@var{x}, @var{h}) ! Return the autocovariances from lag 0 to @var{h} of vector @var{x}. ! If @var{h} is omitted, all autocovariances are computed. ! If @var{x} is a matrix, the autocovariances of each column are ! computed. @end deftypefn hanning -*- texinfo -*- --- 13842,16897 ---- correct dimensions. Default input and output signals names were assigned since none were given. @end deftypefn ! tf2zp ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{zer}, @var{pol}, @var{k}] =} tf2zp (@var{num}, @var{den}) ! Converts transfer functions to poles-and-zero representations. ! ! Returns the zeros and poles of the @acronym{SISO} system defined ! by @var{num}/@var{den}. ! @var{k} is a gain associated with the system zeros. ! @end deftypefn ! __sysdefioname__ ! Undocumented internal function. ! cellidx ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{idxvec}, @var{errmsg}] =} cellidx (@var{listvar}, @var{strlist}) ! Return indices of string entries in @var{listvar} that match strings ! in @var{strlist}. ! ! Both @var{listvar} and @var{strlist} may be passed as strings or ! string matrices. If they are passed as string matrices, each entry ! is processed by @code{deblank} prior to searching for the entries. ! ! The first output is the vector of indices in @var{listvar}. ! ! If @var{strlist} contains a string not in @var{listvar}, then ! an error message is returned in @var{errmsg}. If only one output ! argument is requested, then @var{cellidx} prints @var{errmsg} to the ! screen and exits with an error. ! @end deftypefn ! syssub ! -*- texinfo -*- ! @deftypefn {Function File} {@var{sys} =} syssub (@var{Gsys}, @var{Hsys}) ! Return @math{sys = Gsys - Hsys}. ! ! @strong{Method} ! ! @var{Gsys} and @var{Hsys} are connected in parallel. ! The input vector is connected to both systems; the outputs are ! subtracted. Returned system names are those of @var{Gsys}. ! @example ! @group ! +--------+ ! +--->| Gsys |---+ ! | +--------+ | ! | +| ! u --+ (_)--> y ! | -| ! | +--------+ | ! +--->| Hsys |---+ ! +--------+ ! @end group ! @end example ! @end deftypefn ! __zp2ssg2__ ! Undocumented internal function. ! tf2sys ! -*- texinfo -*- ! @deftypefn {Function File} {} tf2sys (@var{num}, @var{den}, @var{tsam}, @var{inname}, @var{outname}) ! Build system data structure from transfer function format data. ! ! @strong{Inputs} ! @table @var ! @item num ! @itemx den ! Coefficients of numerator/denominator polynomials. ! @item tsam ! Sampling interval; default: 0 (continuous time). ! @item inname ! @itemx outname ! Input/output signal names; may be a string or cell array with a single string ! entry. ! @end table ! ! @strong{Output} ! @table @var ! @item sys ! System data structure. ! @end table ! ! @strong{Example} ! @example ! octave:1> sys=tf2sys([2 1],[1 2 1],0.1); ! octave:2> sysout(sys) ! Input(s) ! 1: u_1 ! Output(s): ! 1: y_1 (discrete) ! Sampling interval: 0.1 ! transfer function form: ! 2*z^1 + 1 ! ----------------- ! 1*z^2 + 2*z^1 + 1 ! @end example ! @end deftypefn ! zp2ss -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{b}, @var{c}, @var{d}] =} zp2ss (@var{zer}, @var{pol}, @var{k}) ! Conversion from zero / pole to state space. @strong{Inputs} @table @var ! @item zer ! @itemx pol ! Vectors of (possibly) complex poles and zeros of a transfer ! function. Complex values must come in conjugate pairs ! (i.e., @math{x+jy} in @var{zer} means that @math{x-jy} is also in @var{zer}). ! The number of zeros must not exceed the number of poles. ! @item k ! Real scalar (leading coefficient). @end table @strong{Outputs} @table @var ! @item @var{a} ! @itemx @var{b} ! @itemx @var{c} ! @itemx @var{d} ! The state space system, in the form: ! @iftex ! @tex ! $$ \dot x = Ax + Bu $$ ! $$ y = Cx + Du $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! . ! x = Ax + Bu ! y = Cx + Du ! @end example ! @end ifinfo @end table @end deftypefn ! sysconnect -*- texinfo -*- ! @deftypefn {Function File} {@var{clsys} =} sysconnect (@var{sys}, @var{out_idx}, @var{in_idx}, @var{order}, @var{tol}) ! Close the loop from specified outputs to respective specified inputs @strong{Inputs} @table @var ! @item sys System data structure. ! @item out_idx ! @itemx in_idx ! Names or indices of signals to connect (see @code{sysidx}). ! The output specified by @math{out_idx(ii)} is connected to the input ! specified by @math{in_idx(ii)}. ! @item order ! logical flag (default = 0) @table @code ! @item 0 ! Leave inputs and outputs in their original order. ! @item 1 ! Permute inputs and outputs to the order shown in the diagram below. @end table ! @item tol ! Tolerance for singularities in algebraic loops, default: 200@code{eps}. @end table @strong{Outputs} @table @var ! @item clsys ! Resulting closed loop system. @end table ! @strong{Method} ! ! @code{sysconnect} internally permutes selected inputs, outputs as shown ! below, closes the loop, and then permutes inputs and outputs back to their ! original order @example ! @group ! -------------------- ! u_1 ----->| |----> y_1 ! | sys | ! old u_2 | | ! u_2* ---->(+)--->| |----->y_2 ! (in_idx) ^ -------------------- | (out_idx) ! | | ! ------------------------------- ! @end group @end example + The input that has the summing junction added to it has an * added to + the end of the input name. @end deftypefn ! listidx -*- texinfo -*- ! @deftypefn {Function File} {[@var{idxvec}, @var{errmsg}] =} listidx (@var{listvar}, @var{strlist}) ! Return indices of string entries in @var{listvar} that match strings ! in @var{strlist}. ! ! Both @var{listvar} and @var{strlist} may be passed as strings or ! string matrices. If they are passed as string matrices, each entry ! is processed by @code{deblank} prior to searching for the entries. ! ! The first output is the vector of indices in @var{listvar}. ! ! If @var{strlist} contains a string not in @var{listvar}, then ! an error message is returned in @var{errmsg}. If only one output ! argument is requested, then @var{listidx} prints @var{errmsg} to the ! screen and exits with an error. ! @end deftypefn ! is_abcd ! -*- texinfo -*- ! @deftypefn {Function File} {@var{retval} =} is_abcd (@var{a}, @var{b}, @var{c}, @var{d}) ! Returns @var{retval} = 1 if the dimensions of @var{a}, @var{b}, ! @var{c}, @var{d} are compatible, otherwise @var{retval} = 0 with an ! appropriate diagnostic message printed to the screen. The matrices ! @var{b}, @var{c}, or @var{d} may be omitted. ! @seealso{abcddim} ! @end deftypefn ! ugain ! -*- texinfo -*- ! @deftypefn {Function File} {} ugain (@var{n}) ! Creates a system with unity gain, no states. ! This trivial system is sometimes needed to create arbitrary ! complex systems from simple systems with @command{buildssic}. ! Watch out if you are forming sampled systems since @command{ugain} ! does not contain a sampling period. ! @seealso{hinfdemo, jet707} ! @end deftypefn ! __sysgroupn__ ! Undocumented internal function. ! sysout ! -*- texinfo -*- ! @deftypefn {Function File} {} sysout (@var{sys}, @var{opt}) ! print out a system data structure in desired format ! @table @var ! @item sys ! system data structure ! @item opt ! Display option ! @table @code ! @item [] ! primary system form (default) ! @item "ss" ! state space form ! @item "tf" ! transfer function form ! @item "zp" ! zero-pole form ! @item "all" ! all of the above ! @end table ! @end table ! @end deftypefn ! sysscale ! -*- texinfo -*- ! @deftypefn {Function File} {@var{retsys} =} sysscale (@var{sys}, @var{outscale}, @var{inscale}, @var{outname}, @var{inname}) ! scale inputs/outputs of a system. @strong{Inputs} @table @var @item sys ! Structured system. ! @item outscale ! @itemx inscale ! Constant matrices of appropriate dimension. ! @item outname ! @itemx inname ! Lists of strings with the names of respectively outputs and inputs. ! @end table ! ! @strong{Output} ! @table @var ! @item retsys ! resulting open loop system: ! @smallexample ! ----------- ------- ----------- ! u --->| inscale |--->| sys |--->| outscale |---> y ! ----------- ------- ----------- ! @end smallexample @end table + If the input names and output names (each a list of strings) + are not given and the scaling matrices + are not square, then default names will be given to the inputs and/or + outputs. ! A warning message is printed if outscale attempts to add continuous ! system outputs to discrete system outputs; otherwise @var{yd} is ! set appropriately in the returned value of @var{sys}. @end deftypefn ! abcddim -*- texinfo -*- ! @deftypefn {Function File} {[@var{n}, @var{m}, @var{p}] =} abcddim (@var{a}, @var{b}, @var{c}, @var{d}) ! Check for compatibility of the dimensions of the matrices defining ! the linear system @iftex @tex ! $[A, B, C, D]$ corresponding to ! $$ ! \eqalign{ ! {dx\over dt} &= A x + B u\cr ! y &= C x + D u} ! $$ @end tex @end iftex @ifinfo ! [A, B, C, D] corresponding to @example ! dx/dt = a x + b u ! y = c x + d u @end example @end ifinfo + or a similar discrete-time system. ! If the matrices are compatibly dimensioned, then @code{abcddim} returns ! @table @var ! @item n ! The number of system states. ! ! @item m ! The number of system inputs. ! ! @item p ! The number of system outputs. ! @end table ! ! Otherwise @code{abcddim} returns @var{n} = @var{m} = @var{p} = @minus{}1. ! ! Note: n = 0 (pure gain block) is returned without warning. ! @seealso{is_abcd} @end deftypefn ! dmr2d -*- texinfo -*- ! @deftypefn {Function File} {[@var{dsys}, @var{fidx}] =} dmr2d (@var{sys}, @var{idx}, @var{sprefix}, @var{ts2}, @var{cuflg}) ! convert a multirate digital system to a single rate digital system ! states specified by @var{idx}, @var{sprefix} are sampled at @var{ts2}, all ! others are assumed sampled at @var{ts1} = @code{sysgettsam (@var{sys})}. ! ! @strong{Inputs} ! @table @var ! @item sys ! discrete time system; ! @code{dmr2d} exits with an error if @var{sys} is not discrete ! @item idx ! indices or names of states with sampling time ! @code{sysgettsam(@var{sys})} (may be empty); see @code{cellidx} ! @item sprefix ! list of string prefixes of states with sampling time ! @code{sysgettsam(@var{sys})} (may be empty) ! @item ts2 ! sampling time of states not specified by @var{idx}, @var{sprefix} ! must be an integer multiple of @code{sysgettsam(@var{sys})} ! @item cuflg ! "constant u flag" if @var{cuflg} is nonzero then the system inputs are ! assumed to be constant over the revised sampling interval @var{ts2}. ! Otherwise, since the inputs can change during the interval ! @var{t} in @math{[k ts2, (k+1) ts2]}, an additional set of inputs is ! included in the revised B matrix so that these intersample inputs ! may be included in the single-rate system. ! default @var{cuflg} = 1. ! @end table ! ! @strong{Outputs} ! @table @var ! @item dsys ! equivalent discrete time system with sampling time @var{ts2}. ! ! The sampling time of sys is updated to @var{ts2}. ! ! if @var{cuflg}=0 then a set of additional inputs is added to ! the system with suffixes _d1, @dots{}, _dn to indicate their ! delay from the starting time k @var{ts2}, i.e. ! u = [u_1; u_1_d1; @dots{}, u_1_dn] where u_1_dk is the input ! k*ts1 units of time after u_1 is sampled. (@var{ts1} is ! the original sampling time of the discrete time system and ! @var{ts2} = (n+1)*ts1) ! ! @item fidx ! indices of "formerly fast" states specified by @var{idx} and @var{sprefix}; ! these states are updated to the new (slower) sampling interval @var{ts2}. ! @end table ! ! @strong{WARNING} Not thoroughly tested yet; especially when ! @var{cuflg} == 0. ! @end deftypefn ! __tf2sysl__ ! Undocumented internal function. ! parallel ! -*- texinfo -*- ! @deftypefn {Function File} {@var{ksys} =} parallel (@var{asys}, @var{bsys}) ! Forms the parallel connection of two systems. ! @example ! @group ! -------------------- ! | -------- | ! u ----->|----> | asys |--->|----> y1 ! | | -------- | ! | | -------- | ! |--->|----> | bsys |--->|----> y2 ! | -------- | ! -------------------- ! ksys ! @end group @end example @end deftypefn ! ss2sys -*- texinfo -*- ! @deftypefn {Function File} {} ss2sys (@var{a}, @var{b}, @var{c}, @var{d}, @var{tsam}, @var{n}, @var{nz}, @var{stname}, @var{inname}, @var{outname}, @var{outlist}) ! Create system structure from state-space data. May be continuous, ! discrete, or mixed (sampled data) @strong{Inputs} @table @var ! @item a ! @itemx b ! @itemx c ! @itemx d ! usual state space matrices. ! ! default: @var{d} = zero matrix ! ! @item tsam ! sampling rate. Default: @math{tsam = 0} (continuous system) ! ! @item n ! @itemx nz ! number of continuous, discrete states in the system ! If @var{tsam} is 0, @math{n = @code{rows}(@var{a})}, @math{nz = 0}. ! If @var{tsam} is greater than zero, @math{n = 0}, ! @math{nz = @code{rows}(@var{a})} ! ! see below for system partitioning ! ! @item stname ! cell array of strings of state signal names ! ! default (@var{stname}=[] on input): @code{x_n} for continuous states, ! @code{xd_n} for discrete states ! ! @item inname ! cell array of strings of input signal names ! ! default (@var{inname} = [] on input): @code{u_n} ! ! @item outname ! cell array of strings of input signal names ! ! default (@var{outname} = [] on input): @code{y_n} ! ! @item outlist ! ! list of indices of outputs y that are sampled ! ! If @var{tsam} is 0, @math{outlist = []}. ! ! If @var{tsam} is greater than 0, @math{outlist = 1:@code{rows}(@var{c})}. @end table + Unlike states, discrete/continuous outputs may appear in any order. + + @code{sys2ss} returns a vector @var{yd} where + @var{yd}(@var{outlist}) = 1; all other entries of @var{yd} are 0. + @strong{Outputs} ! @var{outsys} = system data structure ! @strong{System partitioning} ! Suppose for simplicity that outlist specified ! that the first several outputs were continuous and the remaining outputs ! were discrete. Then the system is partitioned as ! @example ! @group ! x = [ xc ] (n x 1) ! [ xd ] (nz x 1 discrete states) ! a = [ acc acd ] b = [ bc ] ! [ adc add ] [ bd ] ! c = [ ccc ccd ] d = [ dc ] ! [ cdc cdd ] [ dd ] ! ! (cdc = c(outlist,1:n), etc.) ! @end group ! @end example ! with dynamic equations: @ifinfo ! @math{d/dt xc(t) = acc*xc(t) + acd*xd(k*tsam) + bc*u(t)} ! ! @math{xd((k+1)*tsam) = adc*xc(k*tsam) + add*xd(k*tsam) + bd*u(k*tsam)} ! ! @math{yc(t) = ccc*xc(t) + ccd*xd(k*tsam) + dc*u(t)} ! ! @math{yd(k*tsam) = cdc*xc(k*tsam) + cdd*xd(k*tsam) + dd*u(k*tsam)} @end ifinfo @iftex @tex ! $$\eqalign{ ! {d \over dt} x_c(t) ! & = a_{cc} x_c(t) + a_{cd} x_d(k*t_{sam}) + bc*u(t) \cr ! x_d((k+1)*t_{sam}) ! & = a_{dc} x_c(k t_{sam}) + a_{dd} x_d(k t_{sam}) + b_d u(k t_{sam}) \cr ! y_c(t) ! & = c_{cc} x_c(t) + c_{cd} x_d(k t_{sam}) + d_c u(t) \cr ! y_d(k t_{sam}) ! & = c_{dc} x_c(k t_{sam}) + c_{dd} x_d(k t_{sam}) + d_d u(k t_{sam}) ! }$$ @end tex @end iftex ! @strong{Signal partitions} ! @example ! @group ! | continuous | discrete | ! ---------------------------------------------------- ! states | stname(1:n,:) | stname((n+1):(n+nz),:) | ! ---------------------------------------------------- ! outputs | outname(cout,:) | outname(outlist,:) | ! ---------------------------------------------------- ! @end group ! @end example ! where @math{cout} is the list of in 1:@code{rows}(@var{p}) ! that are not contained in outlist. (Discrete/continuous outputs ! may be entered in any order desired by the user.) ! @strong{Example} ! @example ! octave:1> a = [1 2 3; 4 5 6; 7 8 10]; ! octave:2> b = [0 0 ; 0 1 ; 1 0]; ! octave:3> c = eye (3); ! octave:4> sys = ss (a, b, c, [], 0, 3, 0, ! > @{"volts", "amps", "joules"@}); ! octave:5> sysout(sys); ! Input(s) ! 1: u_1 ! 2: u_2 ! ! Output(s): ! 1: y_1 ! 2: y_2 ! 3: y_3 ! ! state-space form: ! 3 continuous states, 0 discrete states ! State(s): ! 1: volts ! 2: amps ! 3: joules ! ! A matrix: 3 x 3 ! 1 2 3 ! 4 5 6 ! 7 8 10 ! B matrix: 3 x 2 ! 0 0 ! 0 1 ! 1 0 ! C matrix: 3 x 3 ! 1 0 0 ! 0 1 0 ! 0 0 1 ! D matrix: 3 x 3 ! 0 0 ! 0 0 ! 0 0 ! @end example ! Notice that the @math{D} matrix is constructed by default to the ! correct dimensions. Default input and output signals names were assigned ! since none were given. ! @end deftypefn ! sysgettype ! -*- texinfo -*- ! @deftypefn {Function File} {} sysgettype (@var{sys}) ! return the initial system type of the system ! @strong{Input} ! @table @var ! @item sys ! System data structure. ! @end table ! @strong{Output} ! @table @var ! @item systype ! String indicating how the structure was initially ! constructed. Values: @code{"ss"}, @code{"zp"}, or @code{"tf"}. ! @end table ! ! @acronym{FIR} initialized systems return @code{systype="tf"}. @end deftypefn ! is_signal_list -*- texinfo -*- ! @deftypefn {Function File} {} is_signal_list (@var{mylist}) ! Return true if @var{mylist} is a list of individual strings. ! @end deftypefn ! jet707 ! -*- texinfo -*- ! @deftypefn {Function File} {@var{sys} =} jet707 () ! Creates a linearized state-space model of a Boeing 707-321 aircraft ! at @var{v}=80 m/s @iftex @tex ! ($M = 0.26$, $G_{a0} = -3^{\circ}$, ${\alpha}_0 = 4^{\circ}$, ${\kappa}= 50^{\circ}$). @end tex @end iftex @ifinfo ! (@var{M} = 0.26, @var{Ga0} = -3 deg, @var{alpha0} = 4 deg, @var{kappa} = 50 deg). @end ifinfo ! System inputs: (1) thrust and (2) elevator angle. ! ! System outputs: (1) airspeed and (2) pitch angle. ! ! @strong{Reference}: R. Brockhaus: @cite{Flugregelung} (Flight ! Control), Springer, 1994. ! @seealso{ord2} ! @end deftypefn ! sysgettsam ! -*- texinfo -*- ! @deftypefn {Function File} {} sysgettsam (@var{sys}) ! Return the sampling time of the system @var{sys}. ! @end deftypefn ! sysreorder ! -*- texinfo -*- ! @deftypefn {Function File} {@var{pv} =} sysreorder (@var{vlen}, @var{list}) @strong{Inputs} + @table @var + @item vlen + Vector length. + @item list + A subset of @code{[1:vlen]}. + @end table ! @strong{Output} @table @var ! @item pv ! A permutation vector to order elements of @code{[1:vlen]} in ! @code{list} to the end of a vector. ! @end table ! ! Used internally by @code{sysconnect} to permute vector elements to their ! desired locations. ! @end deftypefn ! sysappend ! -*- texinfo -*- ! @deftypefn {Function File} {@var{sys} =} sysappend (@var{syst}, @var{b}, @var{c}, @var{d}, @var{outname}, @var{inname}, @var{yd}) ! appends new inputs and/or outputs to a system ! ! @strong{Inputs} ! @table @var ! @item syst ! system data structure ! ! @item b ! matrix to be appended to sys "B" matrix (empty if none) ! ! @item c ! matrix to be appended to sys "C" matrix (empty if none) ! ! @item d ! revised sys d matrix (can be passed as [] if the revised d is all zeros) ! ! @item outname ! list of names for new outputs ! ! @item inname ! list of names for new inputs ! ! @item yd ! binary vector; @math{yd(ii)=0} indicates a continuous output; ! @math{yd(ii)=1} indicates a discrete output. @end table @strong{Outputs} @table @var ! @item sys ! @example ! @group ! sys.b := [syst.b , b] ! sys.c := [syst.c ] ! [ c ] ! sys.d := [syst.d | D12 ] ! [ D21 | D22 ] ! @end group ! @end example ! where @math{D12}, @math{D21}, and @math{D22} are the appropriate dimensioned ! blocks of the input parameter @var{d}. ! @itemize @bullet ! @item The leading block @math{D11} of @var{d} is ignored. ! @item If @var{inname} and @var{outname} are not given as arguments, ! the new inputs and outputs are be assigned default names. ! @item @var{yd} is a binary vector of length rows(c) that indicates ! continuous/sampled outputs. Default value for @var{yd} is: ! @itemize @minus ! @item @var{sys} is continuous or mixed ! @var{yd} = @code{zeros(1,rows(c))} ! ! @item @var{sys} is discrete ! @var{yd} = @code{ones(1,rows(c))} ! @end itemize ! @end itemize @end table @end deftypefn ! sysprune -*- texinfo -*- ! @deftypefn {Function File} {@var{retsys} =} sysprune (@var{asys}, @var{out_idx}, @var{in_idx}) ! Extract specified inputs/outputs from a system ! @strong{Inputs} ! @table @var ! @item asys ! system data structure ! @item out_idx ! @itemx in_idx ! Indices or signal names of the outputs and inputs to be kept in the returned ! system; remaining connections are ``pruned'' off. ! May select as [] (empty matrix) to specify all outputs/inputs. ! ! @example ! retsys = sysprune (Asys, [1:3,4], "u_1"); ! retsys = sysprune (Asys, @{"tx", "ty", "tz"@}, 4); ! @end example ! ! @end table ! ! @strong{Output} ! @table @var ! @item retsys ! Resulting system. ! @end table ! @example ! @group ! ____________________ ! u1 ------->| |----> y1 ! (in_idx) | Asys | (out_idx) ! u2 ------->| |----| y2 ! (deleted)-------------------- (deleted) ! @end group ! @end example @end deftypefn ! __syschnamesl__ ! Undocumented internal function. ! sysadd -*- texinfo -*- ! @deftypefn {Function File} {} sysadd (@var{gsys}, @var{hsys}) ! returns @var{sys} = @var{gsys} + @var{hsys}. ! @itemize @bullet ! @item Exits with ! an error if @var{gsys} and @var{hsys} are not compatibly dimensioned. ! @item Prints a warning message is system states have identical names; ! duplicate names are given a suffix to make them unique. ! @item @var{sys} input/output names are taken from @var{gsys}. ! @end itemize ! @example ! @group ! ________ ! ----| gsys |--- ! u | ---------- +| ! ----- (_)----> y ! | ________ +| ! ----| hsys |--- ! -------- ! @end group ! @end example @end deftypefn ! is_stabilizable -*- texinfo -*- ! @deftypefn {Function File} {@var{retval} =} is_stabilizable (@var{sys}, @var{tol}) ! @deftypefnx {Function File} {@var{retval} =} is_stabilizable (@var{a}, @var{b}, @var{tol}, @var{dflg}) ! Logical check for system stabilizability (i.e., all unstable modes are controllable). ! Returns 1 if the system is stabilizable, 0 if the system is not stabilizable, -1 ! if the system has non stabilizable modes at the imaginary axis (unit circle for ! discrete-time systems. ! Test for stabilizability is performed via Hautus Lemma. If @iftex @tex ! @var{dflg}$\neq$0 @end tex @end iftex ! @ifinfo ! @var{dflg}!=0 @end ifinfo ! assume that discrete-time matrices (a,b) are supplied. ! @seealso{size, rows, columns, length, ismatrix, isscalar, isvector ! is_observable, is_stabilizable, is_detectable} @end deftypefn ! sysupdate -*- texinfo -*- ! @deftypefn {Function File} {} sysupdate (@var{sys}, @var{opt}) ! Update the internal representation of a system. @strong{Inputs} @table @var ! @item sys: ! system data structure ! @item opt ! string: ! @table @code ! @item "tf" ! update transfer function form ! @item "zp" ! update zero-pole form ! @item "ss" ! update state space form ! @item "all" ! all of the above ! @end table @end table + @strong{Outputs} @table @var ! @item retsys ! Contains union of data in sys and requested data. ! If requested data in @var{sys} is already up to date then @var{retsys}=@var{sys}. @end table ! Conversion to @command{tf} or @command{zp} exits with an error if the system is ! mixed continuous/digital. ! @seealso{tf, ss, zp, sysout, sys2ss, sys2tf, sys2zp} @end deftypefn ! sysdisc -*- texinfo -*- ! @deftypefn {Function File} {[@var{dsys}, @var{adc}, @var{cdc}] =} sysdisc (@var{sys}) ! @strong{Input} @table @var ! @item sys ! System data structure. @end table @strong{Outputs} @table @var ! @item dsys ! Purely discrete portion of sys (returned empty if there is ! no purely discrete path from inputs to outputs). ! @item adc ! @itemx cdc ! Connections from continuous states to discrete states and discrete ! outputs, respectively. ! @end table ! @end deftypefn ! zpout ! -*- texinfo -*- ! @deftypefn {Function File} {} zpout (@var{zer}, @var{pol}, @var{k}, @var{x}) ! print formatted zero-pole form to the screen. ! @var{x} defaults to the string @code{"s"} ! @seealso{polyval, polyvalm, poly, roots, conv, deconv, residue, ! filter, polyderiv, polyinteg, polyout} ! @end deftypefn ! ss2zp ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{pol}, @var{zer}, @var{k}] =} ss2zp (@var{a}, @var{b}, @var{c}, @var{d}) ! Converts a state space representation to a set of poles and zeros; ! @var{k} is a gain associated with the zeros. ! Used internally in system data structure format manipulations. ! @end deftypefn ! sysdup ! -*- texinfo -*- ! @deftypefn {Function File} {@var{retsys} =} sysdup (@var{asys}, @var{out_idx}, @var{in_idx}) ! Duplicate specified input/output connections of a system ! @strong{Inputs} ! @table @var ! @item asys ! system data structure ! @item out_idx ! @itemx in_idx ! indices or names of desired signals (see @code{sigidx}). ! duplicates are made of @code{y(out_idx(ii))} and @code{u(in_idx(ii))}. ! @end table ! @strong{Output} ! @table @var ! @item retsys ! Resulting closed loop system: ! duplicated i/o names are appended with a @code{"+"} suffix. ! @end table ! @strong{Method} ! ! @code{sysdup} creates copies of selected inputs and outputs as ! shown below. @var{u1}, @var{y1} is the set of original inputs/outputs, and ! @var{u2}, @var{y2} is the set of duplicated inputs/outputs in the order ! specified in @var{in_idx}, @var{out_idx}, respectively @example @group ! ____________________ ! u1 ----->| |----> y1 ! | asys | ! u2 ------>| |----->y2 ! (in_idx) -------------------- (out_idx) @end group @end example ! @end deftypefn ! c2d ! -*- texinfo -*- ! @deftypefn {Function File} {} c2d (@var{sys}, @var{opt}, @var{t}) ! @deftypefnx {Function File} {} c2d (@var{sys}, @var{t}) ! Converts the system data structure describing: @iftex @tex ! $$ \dot x = A_cx + B_cu $$ @end tex @end iftex @ifinfo @example ! . ! x = Ac x + Bc u @end example @end ifinfo ! into a discrete time equivalent model: @iftex @tex ! $$ x_{n+1} = A_dx_n + B_du_n $$ @end tex @end iftex @ifinfo @example ! x[n+1] = Ad x[n] + Bd u[n] @end example @end ifinfo ! via the matrix exponential or bilinear transform. @strong{Inputs} @table @var ! @item sys ! system data structure (may have both continuous time and discrete ! time subsystems) ! @item opt ! string argument; conversion option (optional argument; ! may be omitted as shown above) ! @table @code ! @item "ex" ! use the matrix exponential (default) ! @item "bi" ! use the bilinear transformation @iftex @tex ! $$ s = { 2(z-1) \over T(z+1) } $$ @end tex @end iftex @ifinfo @example ! 2(z-1) ! s = ----- ! T(z+1) ! @end example ! @end ifinfo ! FIXME: This option exits with an error if @var{sys} is not purely ! continuous. (The @code{ex} option can handle mixed systems.) ! @item "matched" ! Use the matched pole/zero equivalent transformation (currently only ! works for purely continuous @acronym{SISO} systems). ! @end table ! @item t ! sampling time; required if @var{sys} is purely continuous. ! @strong{Note} that if the second argument is not a string, @code{c2d()} ! assumes that the second argument is @var{t} and performs ! appropriate argument checks. ! @end table ! @strong{Output} ! @table @var ! @item dsys ! Discrete time equivalent via zero-order hold, sample each @var{t} sec. ! @end table ! This function adds the suffix @code{_d} ! to the names of the new discrete states. @end deftypefn ! is_controllable -*- texinfo -*- ! @deftypefn {Function File} {[@var{retval}, @var{u}] =} is_controllable (@var{sys}, @var{tol}) ! @deftypefnx {Function File} {[@var{retval}, @var{u}] =} is_controllable (@var{a}, @var{b}, @var{tol}) ! Logical check for system controllability. ! @strong{Inputs} ! @table @var ! @item sys ! system data structure ! @item a ! @itemx b ! @var{n} by @var{n}, @var{n} by @var{m} matrices, respectively ! @item tol ! optional roundoff parameter. Default value: @code{10*eps} ! @end table ! @strong{Outputs} ! @table @var ! @item retval ! Logical flag; returns true (1) if the system @var{sys} or the ! pair (@var{a}, @var{b}) is controllable, whichever was passed as input ! arguments. ! @item u ! @var{u} is an orthogonal basis of the controllable subspace. ! @end table ! @strong{Method} ! Controllability is determined by applying Arnoldi iteration with ! complete re-orthogonalization to obtain an orthogonal basis of the ! Krylov subspace ! @example ! span ([b,a*b,...,a^@{n-1@}*b]). ! @end example ! The Arnoldi iteration is executed with @code{krylov} if the system ! has a single input; otherwise a block Arnoldi iteration is performed ! with @code{krylovb}. ! @seealso{size, rows, columns, length, ismatrix, isscalar, isvector ! is_observable, is_stabilizable, is_detectable, krylov, krylovb} @end deftypefn ! ord2 -*- texinfo -*- ! @deftypefn {Function File} {} ord2 (@var{nfreq}, @var{damp}, @var{gain}) ! Creates a continuous 2nd order system with parameters: ! ! @strong{Inputs} ! @table @var ! @item nfreq ! natural frequency [Hz]. (not in rad/s) ! @item damp ! damping coefficient ! @item gain ! dc-gain ! This is steady state value only for damp > 0. ! gain is assumed to be 1.0 if omitted. ! @end table + @strong{Output} + @table @var + @item outsys + system data structure has representation with + @ifinfo + @math{w = 2 * pi * nfreq}: + @end ifinfo + @iftex + @tex + $ w = 2 \pi f $: + @end tex + @end iftex @example ! @group ! / \ ! | / -2w*damp -w \ / w \ | ! G = | | |, | |, [ 0 gain ], 0 | ! | \ w 0 / \ 0 / | ! \ / ! @end group @end example ! @end table ! @strong{See also} @command{jet707} (@acronym{MIMO} example, Boeing 707-321 ! aircraft model) @end deftypefn ! d2c -*- texinfo -*- ! @deftypefn {Function File} {} d2c (@var{sys}, @var{tol}) ! @deftypefnx {Function File} {} d2c (@var{sys}, @var{opt}) ! Convert a discrete (sub)system into a purely continuous one. ! The sampling time used is @code{sysgettsam(@var{sys})}. ! @strong{Inputs} ! @table @var ! @item sys ! system data structure with discrete components ! @item tol ! Scalar value. ! Tolerance for convergence of default @code{"log"} option (see below) ! @item opt ! conversion option. Choose from: ! @table @code ! @item "log" ! (default) Conversion is performed via a matrix logarithm. ! Due to some problems with this computation, it is ! followed by a steepest descent algorithm to identify continuous time ! @var{a}, @var{b}, to get a better fit to the original data. ! If called as @code{d2c (@var{sys}, @var{tol})}, with @var{tol} ! positive scalar, the @code{"log"} option is used. The default value ! for @var{tol} is @code{1e-8}. ! @item "bi" ! Conversion is performed via bilinear transform ! @math{z = (1 + s T / 2)/(1 - s T / 2)} where @math{T} is the ! system sampling time (see @code{sysgettsam}). ! ! FIXME: bilinear option exits with an error if @var{sys} is not purely ! discrete ! @end table ! @end table ! @strong{Output} ! @table @var ! @item csys ! continuous time system (same dimensions and signal names as in @var{sys}). ! @end table @end deftypefn ! syscont -*- texinfo -*- ! @deftypefn {Function File} {[@var{csys}, @var{acd}, @var{ccd}] =} syscont (@var{sys}) ! Extract the purely continuous subsystem of an input system. ! ! @strong{Input} ! @table @var ! @item sys ! system data structure. ! @end table ! ! @strong{Outputs} ! @table @var ! @item csys ! is the purely continuous input/output connections of @var{sys} ! @item acd ! @itemx ccd ! connections from discrete states to continuous states, ! discrete states to continuous outputs, respectively. ! If no continuous path exists, @var{csys} will be empty. ! @end table @end deftypefn ! sysgroup -*- texinfo -*- ! @deftypefn {Function File} {@var{sys} =} sysgroup (@var{asys}, @var{bsys}) ! Combines two systems into a single system. ! @strong{Inputs} ! @table @var ! @item asys ! @itemx bsys ! System data structures. ! @end table ! @strong{Output} ! @table @var ! @item sys ! @math{sys = @r{block diag}(asys,bsys)} ! @end table ! @example ! @group ! __________________ ! | ________ | ! u1 ----->|--> | asys |--->|----> y1 ! | -------- | ! | ________ | ! u2 ----->|--> | bsys |--->|----> y2 ! | -------- | ! ------------------ ! Ksys ! @end group ! @end example ! The function also rearranges the internal state-space realization of @var{sys} ! so that the continuous states come first and the discrete states come last. ! If there are duplicate names, the second name has a unique suffix appended ! on to the end of the name. @end deftypefn ! sysidx -*- texinfo -*- ! @deftypefn {Function File} {} sysidx (@var{sys}, @var{sigtype}, @var{signamelist}) ! Return indices of signals with specified signal names ! inputs given a system data structure @var{sys}, a signal type to be ! selected @var{sigtype} (@code{"in"}, @code{"out"}, @code{"st"}), and ! a list of desired signal names @var{signamelist}. @end deftypefn ! is_stable -*- texinfo -*- ! @deftypefn {Function File} {} is_stable (@var{a}, @var{tol}, @var{dflg}) ! @deftypefnx {Function File} {} is_stable (@var{sys}, @var{tol}) ! Returns 1 if the matrix @var{a} or the system @var{sys} ! is stable, or 0 if not. ! @strong{Inputs} ! @table @var ! @item tol ! is a roundoff parameter, set to 200*@code{eps} if omitted. ! @item dflg ! Digital system flag (not required for system data structure): ! @table @code ! @item @var{dflg} != 0 ! stable if eig(a) is in the unit circle ! @item @var{dflg} == 0 ! stable if eig(a) is in the open LHP (default) ! @end table ! @end table ! @seealso{size, rows, columns, length, ismatrix, isscalar, isvector ! is_observable, is_stabilizable, is_detectable, krylov, krylovb} @end deftypefn ! moddemo -*- texinfo -*- ! @deftypefn {Function File} {} moddemo (@var{inputs}) ! Octave Control toolbox demo: Model Manipulations demo. @end deftypefn ! sys2ss -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{b}, @var{c}, @var{d}, @var{tsam}, @var{n}, @var{nz}, @var{stname}, @var{inname}, @var{outname}, @var{yd}] =} sys2ss (@var{sys}) ! Extract state space representation from system data structure. ! @strong{Input} ! @table @var ! @item sys ! System data structure. ! @end table ! @strong{Outputs} ! @table @var ! @item a ! @itemx b ! @itemx c ! @itemx d ! State space matrices for @var{sys}. ! @item tsam ! Sampling time of @var{sys} (0 if continuous). ! @item n ! @itemx nz ! Number of continuous, discrete states (discrete states come ! last in state vector @var{x}). ! @item stname ! @itemx inname ! @itemx outname ! Signal names (lists of strings); names of states, ! inputs, and outputs, respectively. ! @item yd ! Binary vector; @var{yd}(@var{ii}) is 1 if output @var{y}(@var{ii}) ! is discrete (sampled); otherwise @var{yd}(@var{ii}) is 0. ! ! @end table ! A warning massage is printed if the system is a mixed ! continuous and discrete system. ! ! @strong{Example} ! @example ! octave:1> sys=tf2sys([1 2],[3 4 5]); ! octave:2> [a,b,c,d] = sys2ss(sys) ! a = ! 0.00000 1.00000 ! -1.66667 -1.33333 ! b = ! 0 ! 1 ! c = 0.66667 0.33333 ! d = 0 ! @end example @end deftypefn ! sys2zp -*- texinfo -*- ! @deftypefn {Function File} {[@var{zer}, @var{pol}, @var{k}, @var{tsam}, @var{inname}, @var{outname}] =} sys2zp (@var{sys}) ! Extract zero/pole/leading coefficient information from a system data ! structure. ! ! See @command{zp} for parameter descriptions. ! ! @strong{Example} ! @example ! octave:1> sys=ss([1 -2; -1.1,-2.1],[0;1],[1 1]); ! octave:2> [zer,pol,k] = sys2zp(sys) ! zer = 3.0000 ! pol = ! -2.6953 ! 1.5953 ! k = 1 ! @end example @end deftypefn ! tfout -*- texinfo -*- ! @deftypefn {Function File} {} tfout (@var{num}, @var{denom}, @var{x}) ! Print formatted transfer function @math{n(s)/d(s)} to the screen. ! @var{x} defaults to the string @code{"s"} ! @seealso{polyval, polyvalm, poly, roots, conv, deconv, residue, ! filter, polyderiv, polyinteg, polyout} @end deftypefn ! is_sample -*- texinfo -*- ! @deftypefn {Function File} {} is_sample (@var{ts}) ! Return true if @var{ts} is a valid sampling time ! (real, scalar, > 0). @end deftypefn ! is_observable -*- texinfo -*- ! @deftypefn {Function File} {[@var{retval}, @var{u}] =} is_observable (@var{a}, @var{c}, @var{tol}) ! @deftypefnx {Function File} {[@var{retval}, @var{u}] =} is_observable (@var{sys}, @var{tol}) ! Logical check for system observability. ! Default: tol = @code{tol = 10*norm(a,'fro')*eps} ! Returns 1 if the system @var{sys} or the pair (@var{a}, @var{c}) is ! observable, 0 if not. ! See @command{is_controllable} for detailed description of arguments ! and default values. ! @seealso{size, rows, columns, length, ismatrix, isscalar, isvector} @end deftypefn ! __sysdefstname__ ! Undocumented internal function. ! sysgetsignals -*- texinfo -*- ! @deftypefn {Function File} {[@var{stname}, @var{inname}, @var{outname}, @var{yd}] =} sysgetsignals (@var{sys}) ! @deftypefnx {Function File} {@var{siglist} =} sysgetsignals (@var{sys}, @var{sigid}) ! @deftypefnx {Function File} {@var{signame} =} sysgetsignals (@var{sys}, @var{sigid}, @var{signum}, @var{strflg}) ! Get signal names from a system ! ! @strong{Inputs} ! @table @var ! @item sys ! system data structure for the state space system ! ! @item sigid ! signal id. String. Must be one of ! @table @code ! @item "in" ! input signals ! @item "out" ! output signals ! @item "st" ! stage signals ! @item "yd" ! value of logical vector @var{yd} ! @end table ! ! @item signum ! index(indices) or name(s) or signals; see @code{sysidx} ! ! @item strflg ! flag to return a string instead of a cell array; Values: ! @table @code ! @item 0 ! (default) return a cell array (even if signum specifies an individual signal) ! ! @item 1 ! return a string. Exits with an error if signum does not specify an ! individual signal. ! @end table ! ! @end table ! ! @strong{Outputs} ! @table @bullet ! @item If @var{sigid} is not specified: ! @table @var ! @item stname ! @itemx inname ! @itemx outname ! signal names (cell array of strings); names of states, ! inputs, and outputs, respectively. ! @item yd ! binary vector; @var{yd}(@var{ii}) is nonzero if output @var{ii} is ! discrete. ! @end table ! ! @item If @var{sigid} is specified but @var{signum} is not specified: ! @table @code ! @item sigid="in" ! @var{siglist} is set to the cell array of input names. ! ! @item sigid="out" ! @var{siglist} is set to the cell array of output names. ! ! @item sigid="st" ! @var{siglist} is set to the cell array of state names. ! ! stage signals ! @item sigid="yd" ! @var{siglist} is set to logical vector indicating discrete outputs; ! @var{siglist}(@var{ii}) = 0 indicates that output @var{ii} is continuous ! (unsampled), otherwise it is discrete. ! ! @end table ! ! @item If the first three input arguments are specified: ! @var{signame} is a cell array of the specified signal names (@var{sigid} is ! @code{"in"}, @code{"out"}, or @code{"st"}), or else the logical flag ! indicating whether output(s) @var{signum} is(are) discrete (@var{sigval}=1) ! or continuous (@var{sigval}=0). ! @end table ! ! @strong{Examples} (From @code{sysrepdemo}) ! @example ! octave> sys=ss(rand(4),rand(4,2),rand(3,4)); ! octave># get all signal names ! octave> [Ast,Ain,Aout,Ayd] = sysgetsignals(sys) ! Ast = ! ( ! [1] = x_1 ! [2] = x_2 ! [3] = x_3 ! [4] = x_4 ! ) ! Ain = ! ( ! [1] = u_1 ! [2] = u_2 ! ) ! Aout = ! ( ! [1] = y_1 ! [2] = y_2 ! [3] = y_3 ! ) ! Ayd = ! ! 0 0 0 ! octave> # get only input signal names: ! octave> Ain = sysgetsignals(sys,"in") ! Ain = ! ( ! [1] = u_1 ! [2] = u_2 ! ) ! octave> # get name of output 2 (in cell array): ! octave> Aout = sysgetsignals(sys,"out",2) ! Aout = ! ( ! [1] = y_2 ! ) ! octave> # get name of output 2 (as string): ! octave> Aout = sysgetsignals(sys,"out",2,1) ! Aout = y_2 ! @end example @end deftypefn ! sysmin -*- texinfo -*- ! @deftypefn {Function File} {[@var{retsys}, @var{nc}, @var{no}] =} sysmin (@var{sys}, @var{flg}) ! Returns a minimal (or reduced order) system ! ! @strong{Inputs} ! @table @var ! @item sys ! System data structure ! @item flg ! When equal to 0 (default value), returns minimal system, ! in which state names are lost; when equal to 1, returns system ! with physical states removed that are either uncontrollable or ! unobservable (cannot reduce further without discarding physical ! meaning of states). ! @end table ! @strong{Outputs} ! @table @var ! @item retsys ! Returned system. ! @item nc ! Number of controllable states in the returned system. ! @item no ! Number of observable states in the returned system. ! @item cflg ! @code{is_controllable(retsys)}. ! @item oflg ! @code{is_observable(retsys)}. ! @end table @end deftypefn ! starp -*- texinfo -*- ! @deftypefn {Function File} {} starp (@var{P}, @var{K}, @var{ny}, @var{nu}) ! ! Redheffer star product or upper/lower LFT, respectively. ! @example ! @group ! ! +-------+ ! --------->| |---------> ! | P | ! +--->| |---+ ny ! | +-------+ | ! +-------------------+ ! | | ! +----------------+ | ! | | ! | +-------+ | ! +--->| |------+ nu ! | K | ! --------->| |---------> ! +-------+ ! @end group ! @end example ! If @var{ny} and @var{nu} ``consume'' all inputs and outputs of ! @var{K} then the result is a lower fractional transformation. ! If @var{ny} and @var{nu} ``consume'' all inputs and outputs of ! @var{P} then the result is an upper fractional transformation. ! ! @var{ny} and/or @var{nu} may be negative (i.e. negative feedback). @end deftypefn ! ss2tf -*- texinfo -*- ! @deftypefn {Function File} {[@var{num}, @var{den}] =} ss2tf (@var{a}, @var{b}, @var{c}, @var{d}) ! Conversion from transfer function to state-space. ! The state space system: ! @iftex ! @tex ! $$ \dot x = Ax + Bu $$ ! $$ y = Cx + Du $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! . ! x = Ax + Bu ! y = Cx + Du ! @end example ! @end ifinfo ! ! is converted to a transfer function: ! @iftex ! @tex ! $$ G(s) = { { \rm num }(s) \over { \rm den }(s) } $$ ! @end tex ! @end iftex ! @ifinfo ! @example ! ! num(s) ! G(s)=------- ! den(s) ! @end example ! @end ifinfo ! ! used internally in system data structure format manipulations. @end deftypefn ! zp2tf -*- texinfo -*- ! @deftypefn {Function File} {[@var{num}, @var{den}] =} zp2tf (@var{zer}, @var{pol}, @var{k}) ! Converts zeros / poles to a transfer function. ! ! @strong{Inputs} ! @table @var ! @item zer ! @itemx pol ! Vectors of (possibly complex) poles and zeros of a transfer ! function. Complex values must appear in conjugate pairs. ! @item k ! Real scalar (leading coefficient). ! @end table @end deftypefn ! syssetsignals -*- texinfo -*- ! @deftypefn {Function File} {} syssetsignals (@var{sys}, @var{opt}, @var{names}, @var{sig_idx}) ! change the names of selected inputs, outputs and states. ! ! @strong{Inputs} ! @table @var ! @item sys ! System data structure. ! ! @item opt ! Change default name (output). ! ! @table @code ! @item "out" ! Change selected output names. ! @item "in" ! Change selected input names. ! @item "st" ! Change selected state names. ! @item "yd" ! Change selected outputs from discrete to continuous or ! from continuous to discrete. ! @end table ! ! @item names ! @table @code ! @item opt = "out", "in", "st" ! string or string array containing desired signal names or values. ! @item opt = "yd" ! To desired output continuous/discrete flag. ! Set name to 0 for continuous, or 1 for discrete. ! @end table ! @item sig_idx ! indices or names of outputs, yd, inputs, or ! states whose respective names/values should be changed. ! ! Default: replace entire cell array of names/entire yd vector. ! @end table ! ! @strong{Outputs} ! @table @var ! @item retsys ! @var{sys} with appropriate signal names changed ! (or @var{yd} values, where appropriate). ! @end table ! ! @strong{Example} ! @example ! octave:1> sys=ss ([1 2; 3 4],[5;6],[7 8]); ! octave:2> sys = syssetsignals (sys, "st", ! > str2mat("Posx","Velx")); ! octave:3> sysout(sys) ! Input(s) ! 1: u_1 ! Output(s): ! 1: y_1 ! state-space form: ! 2 continuous states, 0 discrete states ! State(s): ! 1: Posx ! 2: Velx ! A matrix: 2 x 2 ! 1 2 ! 3 4 ! B matrix: 2 x 1 ! 5 ! 6 ! C matrix: 1 x 2 ! 7 8 ! D matrix: 1 x 1 ! 0 ! @end example @end deftypefn ! sys2tf -*- texinfo -*- ! @deftypefn {Function File} {[@var{num}, @var{den}, @var{tsam}, @var{inname}, @var{outname}] =} sys2tf (@var{sys}) ! Extract transfer function data from a system data structure. ! See @command{tf} for parameter descriptions. ! ! @strong{Example} ! @example ! octave:1> sys=ss([1 -2; -1.1,-2.1],[0;1],[1 1]); ! octave:2> [num,den] = sys2tf(sys) ! num = 1.0000 -3.0000 ! den = 1.0000 1.1000 -4.3000 ! @end example @end deftypefn ! is_digital -*- texinfo -*- ! @deftypefn {Function File} {@var{digital} =} is_digital (@var{sys}, @var{eflg}) ! Return nonzero if system is digital. ! @strong{Inputs} ! @table @var ! @item sys ! System data structure. ! @item eflg ! When equal to 0 (default value), exits with an error if the system ! is mixed (continuous and discrete components); when equal to 1, print ! a warning if the system is mixed (continuous and discrete); when equal ! to 2, operate silently. ! @end table ! ! @strong{Output} ! @table @var ! @item digital ! When equal to 0, the system is purely continuous; when equal to 1, the ! system is purely discrete; when equal to -1, the system is mixed continuous ! and discrete. ! @end table ! Exits with an error if @var{sys} is a mixed (continuous and discrete) system. @end deftypefn ! __tfl__ ! Undocumented internal function. ! sysmult -*- texinfo -*- ! @deftypefn {Function File} {@var{sys} =} sysmult (@var{Asys}, @var{Bsys}) ! Compute @math{sys = Asys*Bsys} (series connection): ! @example ! @group ! u ---------- ---------- ! --->| Bsys |---->| Asys |---> ! ---------- ---------- ! @end group ! @end example ! A warning occurs if there is direct feed-through from an input ! or a continuous state of @var{Bsys}, through a discrete output ! of @var{Bsys}, to a continuous state or output in @var{Asys} ! (system data structure does not recognize discrete inputs). @end deftypefn ! __abcddims__ ! Undocumented internal function. ! zp2sys -*- texinfo -*- ! @deftypefn {Function File} {} zp2sys (@var{zer}, @var{pol}, @var{k}, @var{tsam}, @var{inname}, @var{outname}) ! Create system data structure from zero-pole data. ! @strong{Inputs} ! @table @var ! @item zer ! Vector of system zeros. ! @item pol ! Vector of system poles. ! @item k ! Scalar leading coefficient. ! @item tsam ! Sampling period; default: 0 (continuous system). ! @item inname ! @itemx outname ! Input/output signal names (lists of strings). ! @end table ! ! @strong{Output} ! @table @var ! @item sys ! System data structure. ! @end table ! ! @strong{Example} ! @example ! octave:1> sys=zp2sys([1 -1],[-2 -2 0],1); ! octave:2> sysout(sys) ! Input(s) ! 1: u_1 ! Output(s): ! 1: y_1 ! zero-pole form: ! 1 (s - 1) (s + 1) ! ----------------- ! s (s + 2) (s + 2) ! @end example @end deftypefn ! sysrepdemo -*- texinfo -*- ! @deftypefn {Function File} {} sysrepdemo ! Tutorial for the use of the system data structure functions. @end deftypefn ! __syscont_disc__ ! Undocumented internal function. ! sys2fir -*- texinfo -*- ! @deftypefn {Function File} {[@var{c}, @var{tsam}, @var{input}, @var{output}] =} sys2fir (@var{sys}) ! Extract @acronym{FIR} data from system data structure; see @command{fir2sys} for ! parameter descriptions. ! @seealso{fir2sys} @end deftypefn ! __sysconcat__ ! Undocumented internal function. ! ind2sub -*- texinfo -*- ! @deftypefn {Function File} {[@var{s1}, @var{s2}, @dots{}, @var{sN}] =} ind2sub (@var{dims}, @var{ind}) ! Convert a linear index into subscripts. ! ! The following example shows how to convert the linear index @code{8} ! in a 3-by-3 matrix into a subscript. @example ! [r, c] = ind2sub ([3, 3], 8) ! @result{} r = 2 ! c = 3 @end example ! @seealso{sub2ind} @end deftypefn ! celldisp -*- texinfo -*- ! @deftypefn {Function File} {} celldisp (@var{c}, @var{name}) ! Recursively display the contents of a cell array. By default the values ! are displayed with the name of the variable @var{c}. However, this name ! can be replaced with the variable @var{name}. ! @seealso{disp} @end deftypefn ! sub2ind -*- texinfo -*- ! @deftypefn {Function File} {@var{ind} =} sub2ind (@var{dims}, @var{i}, @var{j}) ! @deftypefnx {Function File} {@var{ind} =} sub2ind (@var{dims}, @var{s1}, @var{s2}, @dots{}, @var{sN}) ! Convert subscripts into a linear index. ! The following example shows how to convert the two-dimensional ! index @code{(2,3)} of a 3-by-3 matrix to a linear index. ! ! @example ! linear_index = sub2ind ([3, 3], 2, 3) ! @result{} 8 ! @end example ! @seealso{ind2sub} @end deftypefn ! pol2cart -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{y}] =} pol2cart (@var{theta}, @var{r}) ! @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} pol2cart (@var{theta}, @var{r}, @var{z}) ! Transform polar or cylindrical to cartesian coordinates. ! @var{theta}, @var{r} (and @var{z}) must be of same shape. ! @var{theta} describes the angle relative to the x - axis. ! @var{r} is the distance to the z - axis (0, 0, z). ! @seealso{cart2pol, cart2sph, sph2cart} @end deftypefn ! issymmetric -*- texinfo -*- ! @deftypefn {Function File} {} issymmetric (@var{x}, @var{tol}) ! If @var{x} is symmetric within the tolerance specified by @var{tol}, ! then return the dimension of @var{x}. Otherwise, return 0. If ! @var{tol} is omitted, use a tolerance equal to the machine precision. ! Matrix @var{x} is considered symmetric if ! @code{norm (@var{x} - @var{x}.', inf) / norm (@var{x}, inf) < @var{tol}}. ! @seealso{size, rows, columns, length, ishermitian, ismatrix, isscalar, ! issquare, isvector} @end deftypefn ! runlength -*- texinfo -*- ! @deftypefn {Function File} {} runlength (@var{x}) ! Find the lengths of all sequences of common values. Return the ! vector of lengths and the value that was repeated. ! @example ! runlength ([2, 2, 0, 4, 4, 4, 0, 1, 1, 1, 1]) ! @result{} [2, 1, 3, 1, 4] ! @end example @end deftypefn ! __splinen__ ! Undocumented internal function. ! circshift -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} circshift (@var{x}, @var{n}) ! Circularly shifts the values of the array @var{x}. @var{n} must be ! a vector of integers no longer than the number of dimensions in ! @var{x}. The values of @var{n} can be either positive or negative, ! which determines the direction in which the values or @var{x} are ! shifted. If an element of @var{n} is zero, then the corresponding ! dimension of @var{x} will not be shifted. For example ! @example ! @group ! x = [1, 2, 3; 4, 5, 6; 7, 8, 9]; ! circshift (x, 1) ! @result{} 7, 8, 9 ! 1, 2, 3 ! 4, 5, 6 ! circshift (x, -2) ! @result{} 7, 8, 9 ! 1, 2, 3 ! 4, 5, 6 ! circshift (x, [0,1]) ! @result{} 3, 1, 2 ! 6, 4, 5 ! 9, 7, 8 ! @end group ! @end example ! @seealso {permute, ipermute, shiftdim} @end deftypefn ! common_size -*- texinfo -*- ! @deftypefn {Function File} {[@var{err}, @var{y1}, @dots{}] =} common_size (@var{x1}, @dots{}) ! Determine if all input arguments are either scalar or of common ! size. If so, @var{err} is zero, and @var{yi} is a matrix of the ! common size with all entries equal to @var{xi} if this is a scalar or ! @var{xi} otherwise. If the inputs cannot be brought to a common size, ! errorcode is 1, and @var{yi} is @var{xi}. For example, ! @example ! @group ! [errorcode, a, b] = common_size ([1 2; 3 4], 5) ! @result{} errorcode = 0 ! @result{} a = [ 1, 2; 3, 4 ] ! @result{} b = [ 5, 5; 5, 5 ] ! @end group ! @end example ! @noindent ! This is useful for implementing functions where arguments can either ! be scalars or of common size. @end deftypefn ! shift -*- texinfo -*- ! @deftypefn {Function File} {} shift (@var{x}, @var{b}) ! @deftypefnx {Function File} {} shift (@var{x}, @var{b}, @var{dim}) ! If @var{x} is a vector, perform a circular shift of length @var{b} of ! the elements of @var{x}. ! If @var{x} is a matrix, do the same for each column of @var{x}. ! If the optional @var{dim} argument is given, operate along this ! dimension @end deftypefn ! cumtrapz -*- texinfo -*- ! @deftypefn {Function File} {@var{z} =} cumtrapz (@var{y}) ! @deftypefnx {Function File} {@var{z} =} cumtrapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{z} =} cumtrapz (@dots{}, @var{dim}) ! ! Cumulative numerical integration using trapezoidal method. ! @code{cumtrapz (@var{y})} computes the cumulative integral of the ! @var{y} along the first non singleton dimension. If the argument ! @var{x} is omitted a equally spaced vector is assumed. @code{cumtrapz ! (@var{x}, @var{y})} evaluates the cumulative integral with respect ! to @var{x}. ! ! @seealso{trapz,cumsum} @end deftypefn ! gradient -*- texinfo -*- ! @deftypefn {Function File} {@var{x} = } gradient (@var{M}) ! @deftypefnx {Function File} {[@var{x}, @var{y}, @dots{}] = } gradient (@var{M}) ! @deftypefnx {Function File} {[@dots{}] = } gradient (@var{M}, @var{s}) ! @deftypefnx {Function File} {[@dots{}] = } gradient (@var{M}, @var{dx}, @var{dy}, @dots{}) ! ! Calculates the gradient. @code{@var{x} = gradient (@var{M})} ! calculates the one dimensional gradient if @var{M} is a vector. If ! @var{M} is a matrix the gradient is calculated for each row. ! ! @code{[@var{x}, @var{y}] = gradient (@var{M})} calculates the one ! dimensional gradient for each direction if @var{M} if @var{M} is a ! matrix. Additional return arguments can be use for multi-dimensional ! matrices. ! ! Spacing values between two points can be provided by the ! @var{dx}, @var{dy} or @var{h} parameters. If @var{h} is supplied it ! is assumed to be the spacing in all directions. Otherwise, separate ! values of the spacing can be supplied by the @var{dx}, etc variables. ! A scalar value specifies an equidistant spacing, while a vector value ! can be used to specify a variable spacing. The length must match ! their respective dimension of @var{M}. ! ! At boundary points a linear extrapolation is applied. Interior points ! are calculated with the first approximation of the numerical gradient ! ! @example ! y'(i) = 1/(x(i+1)-x(i-1)) *(y(i-1)-y(i+1)). ! @end example ! @end deftypefn ! prepad -*- texinfo -*- ! @deftypefn {Function File} {} prepad (@var{x}, @var{l}, @var{c}) ! @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}) ! @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}, @var{dim}) ! ! Prepends (appends) the scalar value @var{c} to the vector @var{x} ! until it is of length @var{l}. If the third argument is not ! supplied, a value of 0 is used. ! ! If @code{length (@var{x}) > @var{l}}, elements from the beginning (end) of ! @var{x} are removed until a vector of length @var{l} is obtained. ! ! If @var{x} is a matrix, elements are prepended or removed from each row. ! ! If the optional @var{dim} argument is given, then operate along this ! dimension. ! @seealso{postpad} @end deftypefn ! __isequal__ ! Undocumented internal function. ! bitget -*- texinfo -*- ! @deftypefn {Function File} {@var{X} =} bitget (@var{a},@var{n}) ! Return the status of bit(s) @var{n} of unsigned integers in @var{a} ! the lowest significant bit is @var{n} = 1. ! ! @example ! bitget (100, 8:-1:1) ! @result{} 0 1 1 0 0 1 0 0 ! @end example ! @seealso{bitand, bitor, bitxor, bitset, bitcmp, bitshift, bitmax} @end deftypefn ! tril -*- texinfo -*- ! @deftypefn {Function File} {} tril (@var{a}, @var{k}) ! @deftypefnx {Function File} {} triu (@var{a}, @var{k}) ! Return a new matrix formed by extracting the lower (@code{tril}) ! or upper (@code{triu}) triangular part of the matrix @var{a}, and ! setting all other elements to zero. The second argument is optional, ! and specifies how many diagonals above or below the main diagonal should ! also be set to zero. ! ! The default value of @var{k} is zero, so that @code{triu} and ! @code{tril} normally include the main diagonal as part of the result ! matrix. ! ! If the value of @var{k} is negative, additional elements above (for ! @code{tril}) or below (for @code{triu}) the main diagonal are also ! selected. ! ! The absolute value of @var{k} must not be greater than the number of ! sub- or super-diagonals. ! ! For example, ! ! @example ! @group ! tril (ones (3), -1) ! @result{} 0 0 0 ! 1 0 0 ! 1 1 0 ! @end group ! @end example ! ! @noindent ! and ! ! @example ! @group ! tril (ones (3), 1) ! @result{} 1 1 0 ! 1 1 1 ! 1 1 1 ! @end group ! @end example ! @seealso{triu, diag} @end deftypefn ! num2str -*- texinfo -*- ! @deftypefn {Function File} {} num2str (@var{n}) ! @deftypefnx {Function File} {} num2str (@var{x}, @var{precision}) ! @deftypefnx {Function File} {} num2str (@var{x}, @var{format}) ! Convert a number to a string. This function is not very flexible. ! For better control over the results, use @code{sprintf} ! (@pxref{Formatted Output}). ! @seealso{sprintf, int2str} @end deftypefn ! bitcmp -*- texinfo -*- ! @deftypefn {Function File} {} bitcmp (@var{a}, @var{k}) ! Return the @var{k}-bit complement of integers in @var{a}. If ! @var{k} is omitted @code{k = log2 (bitmax) + 1} is assumed. ! ! @example ! bitcmp(7,4) ! @result{} 8 ! dec2bin(11) ! @result{} 1011 ! dec2bin(bitcmp(11, 6)) ! @result{} 110100 ! @end example ! @seealso{bitand, bitor, bitxor, bitset, bitget, bitcmp, bitshift, bitmax} @end deftypefn ! rem -*- texinfo -*- ! @deftypefn {Mapping Function} {} rem (@var{x}, @var{y}) ! Return the remainder of @code{@var{x} / @var{y}}, computed using the ! expression ! ! @example ! x - y .* fix (x ./ y) ! @end example ! ! An error message is printed if the dimensions of the arguments do not ! agree, or if either of the arguments is complex. ! @seealso{mod, round} @end deftypefn ! is_duplicate_entry -*- texinfo -*- ! @deftypefn {Function File} {} is_duplicate_entry (@var{x}) ! Return non-zero if any entries in @var{x} are duplicates of one ! another. @end deftypefn ! polyarea -*- texinfo -*- ! @deftypefn {Function File} {} polyarea (@var{x}, @var{y}) ! @deftypefnx {Function File} {} polyarea (@var{x}, @var{y}, @var{dim}) ! ! Determines area of a polygon by triangle method. The variables ! @var{x} and @var{y} define the vertex pairs, and must therefore have ! the same shape. They can be either vectors or arrays. If they are ! arrays then the columns of @var{x} and @var{y} are treated separately ! and an area returned for each. ! ! If the optional @var{dim} argument is given, then @code{polyarea} ! works along this dimension of the arrays @var{x} and @var{y}. ! @end deftypefn ! structfun -*- texinfo -*- ! @deftypefn {Function File} {} structfun (@var{func}, @var{s}) ! @deftypefnx {Function File} {[@var{a}, @var{b}] =} structfun (@dots{}) ! @deftypefnx {Function File} {} structfun (@dots{}, 'ErrorHandler', @var{errfunc}) ! @deftypefnx {Function File} {} structfun (@dots{}, 'UniformOutput', @var{val}) ! ! Evaluate the function named @var{name} on the fields of the structure ! @var{s}. The fields of @var{s} are passed to the function @var{func} ! individually. ! ! @code{structfun} accepts an arbitrary function @var{func} in the form of ! an inline function, function handle, or the name of a function (in a ! character string). In the case of a character string argument, the ! function must accept a single argument named @var{x}, and it must return ! a string value. If the function returns more than one argument, they are ! returned as separate output variables. ! ! If the param 'UniformOutput' is set to true (the default), then the function ! must return either a single element which will be concatenated into the ! return value. If 'UniformOutput is false, the outputs placed in a structure ! with the same fieldnames as the input structure. ! ! @example ! @group ! s.name1 = "John Smith"; ! s.name2 = "Jill Jones"; ! structfun (@@(x) regexp (x, '(\w+)$', 'matches')@{1@}, s, ! 'UniformOutput', false) ! @end group ! @end example ! ! Given the parameter 'ErrorHandler', then @var{errfunc} defines a function to ! call in case @var{func} generates an error. The form of the function is ! ! @example ! function [@dots{}] = errfunc (@var{se}, @dots{}) ! @end example ! where there is an additional input argument to @var{errfunc} relative to ! @var{func}, given by @var{se}. This is a structure with the elements ! 'identifier', 'message' and 'index', giving respectively the error ! identifier, the error message, and the index into the input arguments ! of the element that caused the error. ! @seealso{cellfun, arrayfun} @end deftypefn ! lookup -*- texinfo -*- ! @deftypefn {Function File} {@var{idx} =} lookup (@var{table}, @var{y}) ! Lookup values in a sorted table. Usually used as a prelude to ! interpolation. ! ! If table is strictly increasing and @code{idx = lookup (table, y)}, then ! @code{table(idx(i)) <= y(i) < table(idx(i+1))} for all @code{y(i)} ! within the table. If @code{y(i)} is before the table, then ! @code{idx(i)} is 0. If @code{y(i)} is after the table then ! @code{idx(i)} is @code{table(n)}. ! ! If the table is strictly decreasing, then the tests are reversed. ! There are no guarantees for tables which are non-monotonic or are not ! strictly monotonic. ! ! To get an index value which lies within an interval of the table, ! use: @example ! idx = lookup (table(2:length(table)-1), y) + 1 @end example @noindent ! This expression puts values before the table into the first ! interval, and values after the table into the last interval. @end deftypefn ! isa -*- texinfo -*- ! @deftypefn {Function File} {} isa (@var{x}, @var{class}) ! Return true if @var{x} is a value from the class @var{class}. @end deftypefn ! del2 -*- texinfo -*- ! @deftypefn {Function File} {@var{d} =} del2 (@var{m}) ! @deftypefnx {Function File} {@var{d} =} del2 (@var{m}, @var{h}) ! @deftypefnx {Function File} {@var{d} =} del2 (@var{m}, @var{dx}, @var{dy}, @dots{}) ! Calculates the discrete Laplace operator. If @var{m} is a matrix this is ! defined as + @iftex + @tex + $d = {1 \over 4} \left( {d^2 \over dx^2} M(x,y) + {d^2 \over dy^2} M(x,y) \right)$ + @end tex + @end iftex + @ifnottex @example ! @group ! 1 / d^2 d^2 \ ! D = --- * | --- M(x,y) + --- M(x,y) | ! 4 \ dx^2 dy^2 / ! @end group @end example + @end ifnottex ! The above to continued to N-dimensional arrays calculating the second ! derivative over the higher dimensions. ! The spacing between evaluation points may be defined by @var{h}, which is a ! scalar defining the spacing in all dimensions. Or alternative, the spacing ! in each dimension may be defined separately by @var{dx}, @var{dy}, etc. ! Scalar spacing values give equidistant spacing, whereas vector spacing ! values can be used to specify variable spacing. The length of the vectors ! must match the respective dimension of @var{m}. The default spacing value ! is 1. ! You need at least 3 data points for each dimension. Boundary points are ! calculated as the linear extrapolation of the interior points. ! @seealso{gradient, diff} ! @end deftypefn ! logspace ! -*- texinfo -*- ! @deftypefn {Function File} {} logspace (@var{base}, @var{limit}, @var{n}) ! Similar to @code{linspace} except that the values are logarithmically ! spaced from ! @iftex ! @tex ! $10^{base}$ to $10^{limit}$. ! @end tex ! @end iftex ! @ifinfo ! 10^base to 10^limit. ! @end ifinfo ! If @var{limit} is equal to ! @iftex ! @tex ! $\pi$, ! @end tex ! @end iftex ! @ifinfo ! pi, ! @end ifinfo ! the points are between ! @iftex ! @tex ! $10^{base}$ and $\pi$, ! @end tex ! @end iftex ! @ifinfo ! 10^base and pi, ! @end ifinfo ! @emph{not} ! @iftex ! @tex ! $10^{base}$ and $10^{\pi}$, ! @end tex ! @end iftex ! @ifinfo ! 10^base and 10^pi, ! @end ifinfo ! in order to be compatible with the corresponding @sc{Matlab} ! function. ! Also for compatibility, return the second argument if fewer than two ! values are requested. ! @seealso{linspace} @end deftypefn ! bicubic -*- texinfo -*- ! @deftypefn {Function File} {@var{zi}=} bicubic (@var{x}, @var{y}, @var{z}, @var{xi}, @var{yi}, @var{extrapval}) ! Return a matrix @var{zi} corresponding to the bicubic ! interpolations at @var{xi} and @var{yi} of the data supplied ! as @var{x}, @var{y} and @var{z}. Points outside the grid are set ! to @var{extrapval} ! ! See @url{http://wiki.woodpecker.org.cn/moin/Octave/Bicubic} ! for further information. ! @seealso{interp2} ! @end deftypefn ! sortrows ! -*- texinfo -*- ! @deftypefn {Function File} {} sortrows (@var{a}, @var{c}) ! Sort the rows of the matrix @var{a} according to the order of the ! columns specified in @var{c}. If @var{c} is omitted, a ! lexicographical sort is used. By default ascending order is used ! however if elements of @var{c} are negative then the corresponding ! column is sorted in descending order. ! @end deftypefn ! interp2 ! -*- texinfo -*- ! @deftypefn {Function File} {@var{zi}=} interp2 (@var{x}, @var{y}, @var{z}, @var{xi}, @var{yi}) ! @deftypefnx {Function File} {@var{zi}=} interp2 (@var{Z}, @var{xi}, @var{yi}) ! @deftypefnx {Function File} {@var{zi}=} interp2 (@var{Z}, @var{n}) ! @deftypefnx {Function File} {@var{zi}=} interp2 (@dots{}, @var{method}) ! @deftypefnx {Function File} {@var{zi}=} interp2 (@dots{}, @var{method}, @var{extrapval}) ! ! Two-dimensional interpolation. @var{x}, @var{y} and @var{z} describe a ! surface function. If @var{x} and @var{y} are vectors their length ! must correspondent to the size of @var{z}. @var{x} and @var{Yy} must be ! monotonic. If they are matrices they must have the @code{meshgrid} ! format. @table @code ! @item interp2 (@var{x}, @var{y}, @var{Z}, @var{xi}, @var{yi}, @dots{}) ! Returns a matrix corresponding to the points described by the ! matrices @var{XI}, @var{YI}. ! If the last argument is a string, the interpolation method can ! be specified. The method can be 'linear', 'nearest' or 'cubic'. ! If it is omitted 'linear' interpolation is assumed. ! @item interp2 (@var{z}, @var{xi}, @var{yi}) ! Assumes @code{@var{x} = 1:rows (@var{z})} and @code{@var{y} = ! 1:columns (@var{z})} ! @item interp2 (@var{z}, @var{n}) ! Interleaves the Matrix @var{z} n-times. If @var{n} is omitted a value ! of @code{@var{n} = 1} is assumed. ! @end table ! The variable @var{method} defines the method to use for the ! interpolation. It can take one of the values ! ! @table @asis ! @item 'nearest' ! Return the nearest neighbor. ! @item 'linear' ! Linear interpolation from nearest neighbors. ! @item 'pchip' ! Piece-wise cubic hermite interpolating polynomial (not implemented yet). ! @item 'cubic' ! Cubic interpolation from four nearest neighbors. ! @item 'spline' ! Cubic spline interpolation--smooth first and second derivatives ! throughout the curve. ! @end table ! If a scalar value @var{extrapval} is defined as the final value, then ! values outside the mesh as set to this value. Note that in this case ! @var{method} must be defined as well. If @var{extrapval} is not ! defined then NA is assumed. ! @seealso{interp1} ! @end deftypefn ! repmat ! -*- texinfo -*- ! @deftypefn {Function File} {} repmat (@var{A}, @var{m}, @var{n}) ! @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n}]) ! @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n} @var{p} ...]) ! Form a block matrix of size @var{m} by @var{n}, with a copy of matrix ! @var{A} as each element. If @var{n} is not specified, form an ! @var{m} by @var{m} block matrix. ! @end deftypefn ! isequal ! -*- texinfo -*- ! @deftypefn {Function File} {} isequal (@var{x1}, @var{x2}, @dots{}) ! Return true if all of @var{x1}, @var{x2}, @dots{} are equal. ! @seealso{isequalwithequalnans} ! @end deftypefn ! deal ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{r1}, @var{r2}, @dots{}, @var{rn}] =} deal (@var{a}) ! @deftypefnx {Function File} {[@var{r1}, @var{r2}, @dots{}, @var{rn}] =} deal (@var{a1}, @var{a2}, @dots{}, @var{an}) ! Copy the input parameters into the corresponding output parameters. ! If only one input parameter is supplied, its value is copied to each ! of the outputs. ! For example, ! @example ! [a, b, c] = deal (x, y, z); ! @end example ! @noindent ! is equivalent to @example ! @group ! a = x; ! b = y; ! c = z; ! @end group @end example ! @noindent ! and @example ! [a, b, c] = deal (x); @end example ! @noindent ! is equivalent to @example ! a = b = c = x; @end example + @end deftypefn + randperm + -*- texinfo -*- + @deftypefn {Function File} {} randperm (@var{n}) + Return a row vector containing a random permutation of the + integers from 1 to @var{n}. + @end deftypefn + interpn + -*- texinfo -*- + @deftypefn {Function File} {@var{vi} =} interpn (@var{x1}, @var{x2}, @dots{}, @var{v}, @var{y1}, @var{y2}, @dots{}) + @deftypefnx {Function File} {@var{vi} =} interpn (@var{v}, @var{y1}, @var{y2}, @dots{}) + @deftypefnx {Function File} {@var{vi} =} interpn (@var{v}, @var{m}) + @deftypefnx {Function File} {@var{vi} =} interpn (@var{v}) + @deftypefnx {Function File} {@var{vi} =} interpn (@dots{}, @var{method}) + @deftypefnx {Function File} {@var{vi} =} interpn (@dots{}, @var{method}, @var{extrapval}) ! Perform @var{n}-dimensional interpolation, where @var{n} is at least two. ! Each element of then @var{n}-dimensional array @var{v} represents a value ! at a location given by the parameters @var{x1}, @var{x2}, @dots{}, @var{xn}. ! The parameters @var{x1}, @var{x2}, @dots{}, @var{xn} are either ! @var{n}-dimensional arrays of the same size as the array @var{v} in ! the 'ndgrid' format or vectors. The parameters @var{y1}, etc respect a ! similar format to @var{x1}, etc, and they represent the points at which ! the array @var{vi} is interpolated. ! ! If @var{x1}, @dots{}, @var{xn} are omitted, they are assumed to be ! @code{x1 = 1 : size (@var{v}, 1)}, etc. If @var{m} is specified, then ! the interpolation adds a point half way between each of the interpolation ! points. This process is performed @var{m} times. If only @var{v} is ! specified, then @var{m} is assumed to be @code{1}. ! ! Method is one of: ! ! @table @asis ! @item 'nearest' ! Return the nearest neighbour. ! @item 'linear' ! Linear interpolation from nearest neighbours. ! @item 'cubic' ! Cubic interpolation from four nearest neighbours (not implemented yet). ! @item 'spline' ! Cubic spline interpolation--smooth first and second derivatives ! throughout the curve. ! @end table ! ! The default method is 'linear'. ! ! If @var{extrapval} is the scalar value, use it to replace the values ! beyond the endpoints with that number. If @var{extrapval} is missing, ! assume NA. ! @seealso{interp1, interp2, spline, ndgrid} ! @end deftypefn ! fliplr ! -*- texinfo -*- ! @deftypefn {Function File} {} fliplr (@var{x}) ! Return a copy of @var{x} with the order of the columns reversed. For ! example, @example ! @group ! fliplr ([1, 2; 3, 4]) ! @result{} 2 1 ! 4 3 ! @end group @end example ! Note that @code{fliplr} only work with 2-D arrays. To flip N-d arrays ! use @code{flipdim} instead. ! @seealso{flipud, flipdim, rot90, rotdim} ! @end deftypefn ! blkdiag ! -*- texinfo -*- ! @deftypefn {Function File} {} blkdiag (@var{a}, @var{b}, @var{c}, @dots{}) ! Build a block diagonal matrix from @var{a}, @var{b}, @var{c}, @dots{}. ! All the arguments must be numeric and are two-dimensional matrices or ! scalars. ! @seealso{diag, horzcat, vertcat} ! @end deftypefn ! cell2mat ! -*- texinfo -*- ! @deftypefn {Function File} {@var{m} =} cell2mat (@var{c}) ! Convert the cell array @var{c} into a matrix by concatenating all ! elements of @var{c} into a hyperrectangle. Elements of @var{c} must ! be numeric, logical or char, and @code{cat} must be able to ! concatenate them together. ! @seealso{mat2cell, num2cell} ! @end deftypefn ! interpft ! -*- texinfo -*- ! @deftypefn {Function File} {} interpft (@var{x}, @var{n}) ! @deftypefnx {Function File} {} interpft (@var{x}, @var{n}, @var{dim}) ! ! Fourier interpolation. If @var{x} is a vector, then @var{x} is ! resampled with @var{n} points. The data in @var{x} is assumed to be ! equispaced. If @var{x} is an array, then operate along each column of ! the array separately. If @var{dim} is specified, then interpolate ! along the dimension @var{dim}. ! ! @code{interpft} assumes that the interpolated function is periodic, ! and so assumptions are made about the end points of the interpolation. ! ! @seealso{interp1} ! @end deftypefn ! triu ! -*- texinfo -*- ! @deftypefn {Function File} {} triu (@var{a}, @var{k}) ! See tril. ! @end deftypefn ! strerror ! -*- texinfo -*- ! @deftypefn {Function File} {} strerror (@var{name}, @var{num}) ! Return the text of an error message for function @var{name} ! corresponding to the error number @var{num}. This function is intended ! to be used to print useful error messages for those functions that ! return numeric error codes. ! @end deftypefn ! trapz ! -*- texinfo -*- ! @deftypefn {Function File} {@var{z} =} trapz (@var{y}) ! @deftypefnx {Function File} {@var{z} =} trapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{z} =} trapz (@dots{}, @var{dim}) ! ! Numerical integration using trapezoidal method. @code{trapz ! (@var{y})} computes the integral of the @var{y} along the first ! non singleton dimension. If the argument @var{x} is omitted a ! equally spaced vector is assumed. @code{trapz (@var{x}, @var{y})} ! evaluates the integral with respect to @var{x}. ! ! @seealso{cumtrapz} ! @end deftypefn ! isdir ! -*- texinfo -*- ! @deftypefn {Function File} {} isdir (@var{f}) ! Return true if @var{f} is a directory. ! @end deftypefn ! isvector ! -*- texinfo -*- ! @deftypefn {Function File} {} isvector (@var{a}) ! Return 1 if @var{a} is a vector. Otherwise, return 0. ! @seealso{size, rows, columns, length, isscalar, ismatrix} ! @end deftypefn ! cart2pol ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{theta}, @var{r}] =} cart2pol (@var{x}, @var{y}) ! @deftypefnx {Function File} {[@var{theta}, @var{r}, @var{z}] =} cart2pol (@var{x}, @var{y}, @var{z}) ! Transform cartesian to polar or cylindrical coordinates. ! @var{x}, @var{y} (and @var{z}) must be of same shape. ! @var{theta} describes the angle relative to the x - axis. ! @var{r} is the distance to the z - axis (0, 0, z). ! @seealso{pol2cart, cart2sph, sph2cart} ! @end deftypefn ! diff ! -*- texinfo -*- ! @deftypefn {Function File} {} diff (@var{x}, @var{k}, @var{dim}) ! If @var{x} is a vector of length @var{n}, @code{diff (@var{x})} is the ! vector of first differences ! @iftex ! @tex ! $x_2 - x_1, \ldots{}, x_n - x_{n-1}$. ! @end tex ! @end iftex ! @ifinfo ! @var{x}(2) - @var{x}(1), @dots{}, @var{x}(n) - @var{x}(n-1). ! @end ifinfo ! If @var{x} is a matrix, @code{diff (@var{x})} is the matrix of column ! differences along the first non-singleton dimension. ! The second argument is optional. If supplied, @code{diff (@var{x}, ! @var{k})}, where @var{k} is a nonnegative integer, returns the ! @var{k}-th differences. It is possible that @var{k} is larger than ! then first non-singleton dimension of the matrix. In this case, ! @code{diff} continues to take the differences along the next ! non-singleton dimension. ! The dimension along which to take the difference can be explicitly ! stated with the optional variable @var{dim}. In this case the ! @var{k}-th order differences are calculated along this dimension. ! In the case where @var{k} exceeds @code{size (@var{x}, @var{dim})} ! then an empty matrix is returned. @end deftypefn ! sph2cart -*- texinfo -*- ! @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} sph2cart (@var{theta}, @var{phi}, @var{r}) ! Transform spherical to cartesian coordinates. ! @var{x}, @var{y} and @var{z} must be of same shape. ! @var{theta} describes the angle relative to the x-axis. ! @var{phi} is the angle relative to the xy-plane. ! @var{r} is the distance to the origin (0, 0, 0). ! @seealso{pol2cart, cart2pol, cart2sph} ! @end deftypefn ! cart2sph ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{theta}, @var{phi}, @var{r}] =} cart2sph (@var{x}, @var{y}, @var{z}) ! Transform cartesian to spherical coordinates. ! @var{x}, @var{y} and @var{z} must be of same shape. ! @var{theta} describes the angle relative to the x - axis. ! @var{phi} is the angle relative to the xy - plane. ! @var{r} is the distance to the origin (0, 0, 0). ! @seealso{pol2cart, cart2pol, sph2cart} ! @end deftypefn ! flipdim ! -*- texinfo -*- ! @deftypefn {Function File} {} flipdim (@var{x}, @var{dim}) ! Return a copy of @var{x} flipped about the dimension @var{dim}. ! For example ! @example ! @group ! flipdim ([1, 2; 3, 4], 2) ! @result{} 2 1 ! 4 3 ! @end group ! @end example ! @seealso{fliplr, flipud, rot90, rotdim} ! @end deftypefn ! perror ! -*- texinfo -*- ! @deftypefn {Function File} {} perror (@var{name}, @var{num}) ! Print the error message for function @var{name} corresponding to the ! error number @var{num}. This function is intended to be used to print ! useful error messages for those functions that return numeric error ! codes. ! @seealso{strerror} ! @end deftypefn ! interp3 ! -*- texinfo -*- ! @deftypefn {Function File} {@var{vi} =} interp3 (@var{x}, @var{y},@var{z}, @var{v}, @var{xi}, @var{yi}, @var{zi}) ! @deftypefnx {Function File} {@var{vi} =} interp3 (@var{v}, @var{xi}, @var{yi}, @var{zi}) ! @deftypefnx {Function File} {@var{vi} =} interp3 (@var{v}, @var{m}) ! @deftypefnx {Function File} {@var{vi} =} interp3 (@var{v}) ! @deftypefnx {Function File} {@var{vi} =} interp3 (@dots{}, @var{method}) ! @deftypefnx {Function File} {@var{vi} =} interp3 (@dots{}, @var{method}, @var{extrapval}) ! Perform 3-dimensional interpolation. Each element of then 3-dimensional ! array @var{v} represents a value at a location given by the parameters ! @var{x}, @var{y}, and @var{z}. The parameters @var{x}, @var{x}, and ! @var{z} are either 3-dimensional arrays of the same size as the array ! @var{v} in the 'meshgrid' format or vectors. The parameters @var{xi}, etc ! respect a similar format to @var{x}, etc, and they represent the points ! at which the array @var{vi} is interpolated. ! If @var{x}, @var{y}, @var{z} are omitted, they are assumed to be ! @code{x = 1 : size (@var{v}, 2)}, @code{y = 1 : size (@var{v}, 1)} and ! @code{z = 1 : size (@var{v}, 3)}. If @var{m} is specified, then ! the interpolation adds a point half way between each of the interpolation ! points. This process is performed @var{m} times. If only @var{v} is ! specified, then @var{m} is assumed to be @code{1}. ! Method is one of: ! @table @asis ! @item 'nearest' ! Return the nearest neighbour. ! @item 'linear' ! Linear interpolation from nearest neighbours. ! @item 'cubic' ! Cubic interpolation from four nearest neighbours (not implemented yet). ! @item 'spline' ! Cubic spline interpolation--smooth first and second derivatives ! throughout the curve. @end table ! The default method is 'linear'. ! If @var{extrap} is the string 'extrap', then extrapolate values beyond ! the endpoints. If @var{extrap} is a number, replace values beyond the ! endpoints with that number. If @var{extrap} is missing, assume NA. ! @seealso{interp1, interp2, spline, meshgrid} @end deftypefn ! isscalar -*- texinfo -*- ! @deftypefn {Function File} {} isscalar (@var{a}) ! Return 1 if @var{a} is a scalar. Otherwise, return 0. ! @seealso{size, rows, columns, length, isscalar, ismatrix} ! @end deftypefn ! shiftdim ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} shiftdim (@var{x}, @var{n}) ! @deftypefnx {Function File} {[@var{y}, @var{ns}] =} shiftdim (@var{x}) ! Shifts the dimension of @var{x} by @var{n}, where @var{n} must be ! an integer scalar. When @var{n} is positive, the dimensions of ! @var{x} are shifted to the left, with the leading dimensions ! circulated to the end. If @var{n} is negative, then the dimensions ! of @var{x} are shifted to the right, with @var{n} leading singleton ! dimensions added. ! Called with a single argument, @code{shiftdim}, removes the leading ! singleton dimensions, returning the number of dimensions removed ! in the second output argument @var{ns}. ! ! For example @example ! @group ! x = ones (1, 2, 3); ! size (shiftdim (x, -1)) ! @result{} [1, 1, 2, 3] ! size (shiftdim (x, 1)) ! @result{} [2, 3] ! [b, ns] = shiftdim (x); ! @result{} b = [1, 1, 1; 1, 1, 1] ! @result{} ns = 1 ! @end group @end example + @seealso {reshape, permute, ipermute, circshift, squeeze} + @end deftypefn + rat + -*- texinfo -*- + @deftypefn {Function File} {@var{s} =} rat (@var{x}, @var{tol}) + @deftypefnx {Function File} {[@var{n}, @var{d}] =} rat (@var{x}, @var{tol}) ! Find a rational approximation to @var{x} within tolerance defined ! by @var{tol} using a continued fraction expansion. E.g, @example ! rat(pi) = 3 + 1/(7 + 1/16) = 355/113 ! rat(e) = 3 + 1/(-4 + 1/(2 + 1/(5 + 1/(-2 + 1/(-7))))) ! = 1457/536 @end example ! Called with two arguments returns the numerator and denominator separately ! as two matrices. @end deftypefn ! @seealso{rats} ! isdefinite -*- texinfo -*- ! @deftypefn {Function File} {} isdefinite (@var{x}, @var{tol}) ! Return 1 if @var{x} is symmetric positive definite within the ! tolerance specified by @var{tol} or 0 if @var{x} is symmetric ! positive semidefinite. Otherwise, return -1. If @var{tol} ! is omitted, use a tolerance equal to 100 times the machine precision. ! @seealso{issymmetric} @end deftypefn ! nthroot -*- texinfo -*- ! @deftypefn {Function File} {} nthroot (@var{x}, @var{n}) ! Compute the nth root of @var{x}, returning real results for real ! components of @var{x}. For example ! ! @example ! @group ! nthroot (-1, 3) ! @result{} -1 ! (-1) ^ (1 / 3) ! @result{} 0.50000 - 0.86603i ! @end group ! @end example @end deftypefn ! flipud -*- texinfo -*- ! @deftypefn {Function File} {} flipud (@var{x}) ! Return a copy of @var{x} with the order of the rows reversed. For ! example, @example ! @group ! flipud ([1, 2; 3, 4]) ! @result{} 3 4 ! 1 2 ! @end group @end example ! Due to the difficulty of defining which axis about which to flip the ! matrix @code{flipud} only work with 2-d arrays. To flip N-d arrays ! use @code{flipdim} instead. ! @seealso{fliplr, flipdim, rot90, rotdim} @end deftypefn ! postpad -*- texinfo -*- ! @deftypefn {Function File} {} postpad (@var{x}, @var{l}, @var{c}) ! @seealso{prepad, resize} @end deftypefn ! nextpow2 -*- texinfo -*- ! @deftypefn {Function File} {} nextpow2 (@var{x}) ! If @var{x} is a scalar, returns the first integer @var{n} such that ! @iftex ! @tex ! $2^n \ge |x|$. ! @end tex ! @end iftex ! @ifinfo ! 2^n >= abs (x). ! @end ifinfo ! If @var{x} is a vector, return @code{nextpow2 (length (@var{x}))}. ! @seealso{pow2} @end deftypefn ! accumarray -*- texinfo -*- ! @deftypefn {Function File} {} accumarray (@var{subs}, @var{vals}, @var{sz}, @var{fun}, @var{fillval}, @var{issparse}) ! @deftypefnx {Function File} {} accumarray (@var{csubs}, @var{vals}, @dots{}) ! ! Create an array by accumulating the elements of a vector into the ! positions defined by their subscripts. The subscripts are defined by ! the rows of the matrix @var{subs} and the values by @var{vals}. Each row ! of @var{subs} corresponds to one of the values in @var{vals}. ! ! The size of the matrix will be determined by the subscripts themselves. ! However, if @var{sz} is defined it determines the matrix size. The length ! of @var{sz} must correspond to the number of columns in @var{subs}. ! ! The default action of @code{accumarray} is to sum the elements with the ! same subscripts. This behavior can be modified by defining the @var{fun} ! function. This should be a function or function handle that accepts a ! column vector and returns a scalar. The result of the function should not ! depend on the order of the subscripts. ! ! The elements of the returned array that have no subscripts associated with ! them are set to zero. Defining @var{fillval} to some other value allows ! these values to be defined. ! ! By default @code{accumarray} returns a full matrix. If @var{issparse} is ! logically true, then a sparse matrix is returned instead. ! ! An example of the use of @code{accumarray} is: @example ! @group ! accumarray ([1,1,1;2,1,2;2,3,2;2,1,2;2,3,2], 101:105) ! @result{} ans(:,:,1) = [101, 0, 0; 0, 0, 0] ! ans(:,:,2) = [0, 0, 0; 206, 0, 208] ! @end group @end example @end deftypefn ! rotdim -*- texinfo -*- ! @deftypefn {Function File} {} rotdim (@var{x}, @var{n}, @var{plane}) ! Return a copy of @var{x} with the elements rotated counterclockwise in ! 90-degree increments. The second argument is optional, and specifies ! how many 90-degree rotations are to be applied (the default value is 1). ! The third argument is also optional and defines the plane of the ! rotation. As such @var{plane} is a two element vector containing two ! different valid dimensions of the matrix. If @var{plane} is not given ! Then the first two non-singleton dimensions are used. ! Negative values of @var{n} rotate the matrix in a clockwise direction. ! For example, @example ! @group ! rotdim ([1, 2; 3, 4], -1, [1, 2]) ! @result{} 3 1 ! 4 2 ! @end group @end example ! @noindent ! rotates the given matrix clockwise by 90 degrees. The following are all ! equivalent statements: @example ! @group ! rotdim ([1, 2; 3, 4], -1, [1, 2]) ! rotdim ([1, 2; 3, 4], 3, [1, 2]) ! rotdim ([1, 2; 3, 4], 7, [1, 2]) ! @end group @end example + @seealso{rot90, flipud, fliplr, flipdim} @end deftypefn ! issquare -*- texinfo -*- ! @deftypefn {Function File} {} issquare (@var{x}) ! If @var{x} is a square matrix, then return the dimension of @var{x}. ! Otherwise, return 0. ! @seealso{size, rows, columns, length, ismatrix, isscalar, isvector} @end deftypefn ! logical -*- texinfo -*- ! @deftypefn {Function File} {} logical (@var{arg}) ! Convert @var{arg} to a logical value. For example, @example ! logical ([-1, 0, 1]) @end example @noindent ! is equivalent to @example ! [-1, 0, 1] != 0 @end example ! @end deftypefn ! bitset ! -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} bitset (@var{a}, @var{n}) ! @deftypefnx {Function File} {@var{x} =} bitset (@var{a}, @var{n}, @var{v}) ! Set or reset bit(s) @var{n} of unsigned integers in @var{a}. ! @var{v} = 0 resets and @var{v} = 1 sets the bits. ! The lowest significant bit is: @var{n} = 1 @example ! dec2bin (bitset (10, 1)) ! @result{} 1011 @end example + @seealso{bitand, bitor, bitxor, bitget, bitcmp, bitshift, bitmax} @end deftypefn ! arrayfun -*- texinfo -*- ! @deftypefn {Function File} {@var{a} =} arrayfun (@var{name}, @var{c}) ! @deftypefnx {Function File} {@var{a} =} arrayfun (@var{func}, @var{c}) ! @deftypefnx {Function File} {@var{a} =} arrayfun (@var{func}, @var{c}, @var{d}) ! @deftypefnx {Function File} {@var{a} =} arrayfun (@var{func}, @var{c}, @var{options}) ! @deftypefnx {Function File} {[@var{a}, @var{b}, @dots{}] =} arrayfun (@var{func}, @var{c}, @dots{}) ! Execute a function on each element of an array. This is useful for ! functions that do not accept array arguments. If the function does ! accept array arguments it is better to call the function directly. ! ! See @code{cellfun} for complete usage instructions. ! @seealso{cellfun} @end deftypefn ! nargchk -*- texinfo -*- ! @deftypefn {Function File} {} nargchk (@var{nargin_min}, @var{nargin_max}, @var{n}) ! If @var{n} is in the range @var{nargin_min} through @var{nargin_max} ! inclusive, return the empty matrix. Otherwise, return a message ! indicating whether @var{n} is too large or too small. ! This is useful for checking to see that the number of arguments supplied ! to a function is within an acceptable range. @end deftypefn ! int2str -*- texinfo -*- ! @deftypefn {Function File} {} int2str (@var{n}) ! Convert an integer to a string. This function is not very flexible. ! For better control over the results, use @code{sprintf} ! (@pxref{Formatted Output}). ! @seealso{sprintf, num2str} ! @end deftypefn ! mod ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} mod (@var{x}, @var{y}) ! Compute modulo function. Conceptually this is given by @example ! x - y .* floor (x ./ y) @end example + + and is written in a manner that the correct modulus is returned for + integer types. This function handles negative values correctly. That + is @code{mod (-1, 3)} is 2, not -1 as @code{rem (-1, 3)} returns. + Also, @code{mod (@var{x}, 0)} returns @var{x}. + + An error message is printed if the dimensions of the arguments do not + agree, or if either of the arguments is complex. + @seealso{rem, round} @end deftypefn ! rot90 -*- texinfo -*- ! @deftypefn {Function File} {} rot90 (@var{x}, @var{n}) ! Return a copy of @var{x} with the elements rotated counterclockwise in ! 90-degree increments. The second argument is optional, and specifies ! how many 90-degree rotations are to be applied (the default value is 1). ! Negative values of @var{n} rotate the matrix in a clockwise direction. ! For example, @example ! @group ! rot90 ([1, 2; 3, 4], -1) ! @result{} 3 1 ! 4 2 ! @end group @end example @noindent ! rotates the given matrix clockwise by 90 degrees. The following are all ! equivalent statements: ! @example ! @group ! rot90 ([1, 2; 3, 4], -1) ! rot90 ([1, 2; 3, 4], 3) ! rot90 ([1, 2; 3, 4], 7) ! @end group ! @end example ! ! Due to the difficulty of defining an axis about which to rotate the ! matrix @code{rot90} only work with 2-D arrays. To rotate N-d arrays ! use @code{rotdim} instead. ! @seealso{rotdim, flipud, fliplr, flipdim} @end deftypefn ! quadl -*- texinfo -*- ! @deftypefn {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}) ! @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) ! @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! Numerically evaluate integral using adaptive Lobatto rule. ! @code{quadl (@var{f}, @var{a}, @var{b})} approximates the integral of ! @code{@var{f}(@var{x})} to machine precision. @var{f} is either a ! function handle, inline function or string containing the name of ! the function to evaluate. The function @var{f} must return a vector ! of output values if given a vector of input values. ! If defined, @var{tol} defines the relative tolerance to which to ! which to integrate @code{@var{f}(@var{x})}. While if @var{trace} is ! defined, displays the left end point of the current interval, the ! interval length, and the partial integral. ! Additional arguments @var{p1}, etc, are passed directly to @var{f}. ! To use default values for @var{tol} and @var{trace}, one may pass ! empty matrices. ! Reference: W. Gander and W. Gautschi, 'Adaptive Quadrature - ! Revisited', BIT Vol. 40, No. 1, March 2000, pp. 84--101. ! @url{http://www.inf.ethz.ch/personal/gander/} @end deftypefn ! isequalwithequalnans -*- texinfo -*- ! @deftypefn {Function File} {} isequalwithequalnans (@var{x1}, @var{x2}, @dots{}) ! Assuming NaN == NaN, return true if all of @var{x1}, @var{x2}, @dots{} ! are equal. ! @seealso{isequal} @end deftypefn ! interp1 -*- texinfo -*- ! @deftypefn {Function File} {@var{yi} =} interp1 (@var{x}, @var{y}, @var{xi}) ! @deftypefnx {Function File} {@var{yi} =} interp1 (@dots{}, @var{method}) ! @deftypefnx {Function File} {@var{yi} =} interp1 (@dots{}, @var{extrap}) ! @deftypefnx {Function File} {@var{pp} =} interp1 (@dots{}, 'pp') ! One-dimensional interpolation. Interpolate @var{y}, defined at the ! points @var{x}, at the points @var{xi}. The sample points @var{x} ! must be strictly monotonic. If @var{y} is an array, treat the columns ! of @var{y} separately. ! Method is one of: ! @table @asis ! @item 'nearest' ! Return the nearest neighbour. ! @item 'linear' ! Linear interpolation from nearest neighbours ! @item 'pchip' ! Piece-wise cubic hermite interpolating polynomial ! @item 'cubic' ! Cubic interpolation from four nearest neighbours ! @item 'spline' ! Cubic spline interpolation--smooth first and second derivatives ! throughout the curve ! @end table ! Appending '*' to the start of the above method forces @code{interp1} ! to assume that @var{x} is uniformly spaced, and only @code{@var{x} ! (1)} and @code{@var{x} (2)} are referenced. This is usually faster, ! and is never slower. The default method is 'linear'. ! If @var{extrap} is the string 'extrap', then extrapolate values beyond ! the endpoints. If @var{extrap} is a number, replace values beyond the ! endpoints with that number. If @var{extrap} is missing, assume NA. ! If the string argument 'pp' is specified, then @var{xi} should not be ! supplied and @code{interp1} returns the piece-wise polynomial that ! can later be used with @code{ppval} to evaluate the interpolation. ! There is an equivalence, such that @code{ppval (interp1 (@var{x}, ! @var{y}, @var{method}, 'pp'), @var{xi}) == interp1 (@var{x}, @var{y}, ! @var{xi}, @var{method}, 'extrap')}. ! An example of the use of @code{interp1} is @example ! @group ! xf=[0:0.05:10]; yf = sin(2*pi*xf/5); ! xp=[0:10]; yp = sin(2*pi*xp/5); ! lin=interp1(xp,yp,xf); ! spl=interp1(xp,yp,xf,'spline'); ! cub=interp1(xp,yp,xf,'cubic'); ! near=interp1(xp,yp,xf,'nearest'); ! plot(xf,yf,"r",xf,lin,"g",xf,spl,"b", ... ! xf,cub,"c",xf,near,"m",xp,yp,"r*"); ! legend ("original","linear","spline","cubic","nearest") ! @end group @end example + + @seealso{interpft} @end deftypefn ! cplxpair -*- texinfo -*- ! @deftypefn {Function File} {} cplxpair (@var{z}, @var{tol}, @var{dim}) ! Sort the numbers @var{z} into complex conjugate pairs ordered by ! increasing real part. With identical real parts, order by increasing ! imaginary magnitude. Place the negative imaginary complex number ! first within each pair. Place all the real numbers after all the ! complex pairs (those with @code{abs (imag (@var{z}) / @var{z}) < ! @var{tol})}, where the default value of @var{tol} is @code{100 * ! @var{eps}}. ! ! By default the complex pairs are sorted along the first non-singleton ! dimension of @var{z}. If @var{dim} is specified, then the complex ! pairs are sorted along this dimension. ! ! Signal an error if some complex numbers could not be paired. Requires ! all complex numbers to be exact conjugates within tol, or signals an ! error. Note that there are no guarantees on the order of the returned ! pairs with identical real parts but differing imaginary parts. ! ! @c Using 'smallexample' to make text fit in page when using 'smallbook' ! @smallexample ! cplxpair (exp(2i*pi*[0:4]'/5)) == exp(2i*pi*[3; 2; 4; 1; 0]/5) ! @end smallexample ! @end deftypefn ! fractdiff ! -*- texinfo -*- ! @deftypefn {Function File} {} fractdiff (@var{x}, @var{d}) ! Compute the fractional differences @math{(1-L)^d x} where @math{L} ! denotes the lag-operator and @math{d} is greater than -1. @end deftypefn hanning -*- texinfo -*- *************** *** 17005,17028 **** Return the filter coefficients of a Hanning window of length @var{m}. For a definition of this window type, see e.g. A. V. Oppenheim & ! R. W. Schafer, "Discrete-Time Signal Processing". ! @end deftypefn ! yulewalker ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{v}] =} yulewalker (@var{c}) ! Fit an AR (p)-model with Yule-Walker estimates given a vector @var{c} ! of autocovariances @code{[gamma_0, ..., gamma_p]}. ! ! Returns the AR coefficients, @var{a}, and the variance of white ! noise, @var{v}. ! @end deftypefn ! ifftshift ! -*- texinfo -*- ! @deftypefn {Function File} {} ifftshift (@var{v}) ! @deftypefnx {Function File} {} ifftshift (@var{v}, @var{dim}) ! Undo the action of the @code{fftshift} function. For even length ! @var{v}, @code{fftshift} is its own inverse, but odd lengths differ ! slightly. @end deftypefn fftshift -*- texinfo -*- --- 16899,16905 ---- Return the filter coefficients of a Hanning window of length @var{m}. For a definition of this window type, see e.g. A. V. Oppenheim & ! R. W. Schafer, "Discrete-Time Signal Processing". @end deftypefn fftshift -*- texinfo -*- *************** *** 17046,17110 **** The optional @var{dim} argument can be used to limit the dimension along which the permutation occurs. @end deftypefn ! autoreg_matrix ! -*- texinfo -*- ! @deftypefn {Function File} {} autoreg_matrix (@var{y}, @var{k}) ! Given a time series (vector) @var{y}, return a matrix with ones in the ! first column and the first @var{k} lagged values of @var{y} in the ! other columns. I.e., for @var{t} > @var{k}, @code{[1, ! @var{y}(@var{t}-1), @dots{}, @var{y}(@var{t}-@var{k})]} is the t-th row ! of the result. The resulting matrix may be used as a regressor matrix ! in autoregressions. ! @end deftypefn ! sinc -*- texinfo -*- ! @deftypefn {Function File} {} sinc (@var{x}) ! Return ! @iftex ! @tex ! $ \sin (\pi x)/(\pi x)$. ! @end tex ! @end iftex ! @ifinfo ! sin(pi*x)/(pi*x). ! @end ifinfo @end deftypefn ! blackman -*- texinfo -*- ! @deftypefn {Function File} {} blackman (@var{m}) ! Return the filter coefficients of a Blackman window of length @var{m}. ! For a definition of the Blackman window, see e.g. A. V. Oppenheim & ! R. W. Schafer, "Discrete-Time Signal Processing". @end deftypefn ! arch_fit -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{b}] =} arch_fit (@var{y}, @var{x}, @var{p}, @var{iter}, @var{gamma}, @var{a0}, @var{b0}) ! Fit an ARCH regression model to the time series @var{y} using the ! scoring algorithm in Engle's original ARCH paper. The model is ! ! @example ! y(t) = b(1) * x(t,1) + ... + b(k) * x(t,k) + e(t), ! h(t) = a(1) + a(2) * e(t-1)^2 + ... + a(p+1) * e(t-p)^2 ! @end example ! ! @noindent ! in which @math{e(t)} is @math{N(0, h(t))}, given a time-series vector ! @var{y} up to time @math{t-1} and a matrix of (ordinary) regressors ! @var{x} up to @math{t}. The order of the regression of the residual ! variance is specified by @var{p}. ! ! If invoked as @code{arch_fit (@var{y}, @var{k}, @var{p})} with a ! positive integer @var{k}, fit an ARCH(@var{k}, @var{p}) process, ! i.e., do the above with the @math{t}-th row of @var{x} given by ! ! @example ! [1, y(t-1), ..., y(t-k)] ! @end example ! ! Optionally, one can specify the number of iterations @var{iter}, the ! updating factor @var{gamma}, and initial values @math{a0} and ! @math{b0} for the scoring algorithm. @end deftypefn freqz -*- texinfo -*- --- 16923,16949 ---- The optional @var{dim} argument can be used to limit the dimension along which the permutation occurs. @end deftypefn ! freqz_plot -*- texinfo -*- ! @deftypefn {Function File} {} freqz_plot (@var{w}, @var{h}) ! Plot the pass band, stop band and phase response of @var{h}. @end deftypefn ! sinewave -*- texinfo -*- ! @deftypefn {Function File} {} sinewave (@var{m}, @var{n}, @var{d}) ! Return an @var{m}-element vector with @var{i}-th element given by ! @code{sin (2 * pi * (@var{i}+@var{d}-1) / @var{n})}. ! The default value for @var{d} is 0 and the default value for @var{n} ! is @var{m}. @end deftypefn ! autocov -*- texinfo -*- ! @deftypefn {Function File} {} autocov (@var{x}, @var{h}) ! Return the autocovariances from lag 0 to @var{h} of vector @var{x}. ! If @var{h} is omitted, all autocovariances are computed. ! If @var{x} is a matrix, the autocovariances of each column are ! computed. @end deftypefn freqz -*- texinfo -*- *************** *** 17157,17229 **** Plot the pass band, stop band and phase response of @var{h} rather than returning them. @end deftypefn ! arch_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{lm}] =} arch_test (@var{y}, @var{x}, @var{p}) ! For a linear regression model ! ! @example ! y = x * b + e ! @end example ! ! @noindent ! perform a Lagrange Multiplier (LM) test of the null hypothesis of no ! conditional heteroscedascity against the alternative of CH(@var{p}). ! ! I.e., the model is ! ! @example ! y(t) = b(1) * x(t,1) + @dots{} + b(k) * x(t,k) + e(t), ! @end example ! ! @noindent ! given @var{y} up to @math{t-1} and @var{x} up to @math{t}, ! @math{e}(t) is @math{N(0, h(t))} with ! ! @example ! h(t) = v + a(1) * e(t-1)^2 + @dots{} + a(p) * e(t-p)^2, ! @end example ! ! @noindent ! and the null is @math{a(1)} == @dots{} == @math{a(p)} == 0. ! ! If the second argument is a scalar integer, @math{k}, perform the same ! test in a linear autoregression model of order @math{k}, i.e., with ! @example ! [1, y(t-1), @dots{}, y(t-@var{k})] ! @end example @noindent ! as the @math{t}-th row of @var{x}. ! ! Under the null, LM approximately has a chisquare distribution with ! @var{p} degrees of freedom and @var{pval} is the @math{p}-value (1 ! minus the CDF of this distribution at LM) of the test. ! If no output argument is given, the @math{p}-value is displayed. @end deftypefn ! sinewave -*- texinfo -*- ! @deftypefn {Function File} {} sinewave (@var{m}, @var{n}, @var{d}) ! Return an @var{m}-element vector with @var{i}-th element given by ! @code{sin (2 * pi * (@var{i}+@var{d}-1) / @var{n})}. ! The default value for @var{d} is 0 and the default value for @var{n} ! is @var{m}. ! @end deftypefn ! fractdiff ! -*- texinfo -*- ! @deftypefn {Function File} {} fractdiff (@var{x}, @var{d}) ! Compute the fractional differences @math{(1-L)^d x} where @math{L} ! denotes the lag-operator and @math{d} is greater than -1. @end deftypefn ! hurst -*- texinfo -*- ! @deftypefn {Function File} {} hurst (@var{x}) ! Estimate the Hurst parameter of sample @var{x} via the rescaled range ! statistic. If @var{x} is a matrix, the parameter is estimated for ! every single column. @end deftypefn hamming -*- texinfo -*- --- 16996,17040 ---- Plot the pass band, stop band and phase response of @var{h} rather than returning them. @end deftypefn ! periodogram -*- texinfo -*- ! @deftypefn {Function File} {} periodogram (@var{x}) ! For a data matrix @var{x} from a sample of size @var{n}, return the ! periodogram. ! @end deftypefn ! arch_rnd ! -*- texinfo -*- ! @deftypefn {Function File} {} arch_rnd (@var{a}, @var{b}, @var{t}) ! Simulate an ARCH sequence of length @var{t} with AR ! coefficients @var{b} and CH coefficients @var{a}. I.e., the result ! @math{y(t)} follows the model ! @smallexample ! y(t) = b(1) + b(2) * y(t-1) + @dots{} + b(lb) * y(t-lb+1) + e(t), ! @end smallexample @noindent ! where @math{e(t)}, given @var{y} up to time @math{t-1}, is ! @math{N(0, h(t))}, with ! @smallexample ! h(t) = a(1) + a(2) * e(t-1)^2 + @dots{} + a(la) * e(t-la+1)^2 ! @end smallexample @end deftypefn ! sinetone -*- texinfo -*- ! @deftypefn {Function File} {} sinetone (@var{freq}, @var{rate}, @var{sec}, @var{ampl}) ! Return a sinetone of frequency @var{freq} with length of @var{sec} ! seconds at sampling rate @var{rate} and with amplitude @var{ampl}. ! The arguments @var{freq} and @var{ampl} may be vectors of common size. ! Defaults are @var{rate} = 8000, @var{sec} = 1 and @var{ampl} = 64. @end deftypefn ! triangle_sw -*- texinfo -*- ! @deftypefn {Function File} {} triangle_sw (@var{n}, @var{b}) ! Triangular spectral window. Subfunction used for spectral density ! estimation. @end deftypefn hamming -*- texinfo -*- *************** *** 17233,17262 **** For a definition of the Hamming window, see e.g. A. V. Oppenheim & R. W. Schafer, "Discrete-Time Signal Processing". @end deftypefn ! durbinlevinson -*- texinfo -*- ! @deftypefn {Function File} {} durbinlevinson (@var{c}, @var{oldphi}, @var{oldv}) ! Perform one step of the Durbin-Levinson algorithm. ! The vector @var{c} specifies the autocovariances @code{[gamma_0, @dots{}, ! gamma_t]} from lag 0 to @var{t}, @var{oldphi} specifies the ! coefficients based on @var{c}(@var{t}-1) and @var{oldv} specifies the ! corresponding error. ! If @var{oldphi} and @var{oldv} are omitted, all steps from 1 to ! @var{t} of the algorithm are performed. @end deftypefn ! fftfilt -*- texinfo -*- ! @deftypefn {Function File} {} fftfilt (@var{b}, @var{x}, @var{n}) ! With two arguments, @code{fftfilt} filters @var{x} with the FIR filter ! @var{b} using the FFT. ! Given the optional third argument, @var{n}, @code{fftfilt} uses the ! overlap-add method to filter @var{x} with @var{b} using an N-point FFT. ! If @var{x} is a matrix, filter each column of the matrix. @end deftypefn stft -*- texinfo -*- --- 17044,17094 ---- For a definition of the Hamming window, see e.g. A. V. Oppenheim & R. W. Schafer, "Discrete-Time Signal Processing". @end deftypefn ! diffpara -*- texinfo -*- ! @deftypefn {Function File} {[@var{d}, @var{dd}] =} diffpara (@var{x}, @var{a}, @var{b}) ! Return the estimator @var{d} for the differencing parameter of an ! integrated time series. ! The frequencies from @math{[2*pi*a/t, 2*pi*b/T]} are used for the ! estimation. If @var{b} is omitted, the interval ! @math{[2*pi/T, 2*pi*a/T]} is used. If both @var{b} and @var{a} are ! omitted then @math{a = 0.5 * sqrt (T)} and @math{b = 1.5 * sqrt (T)} ! is used, where @math{T} is the sample size. If @var{x} is a matrix, ! the differencing parameter of each column is estimated. ! The estimators for all frequencies in the intervals ! described above is returned in @var{dd}. The value of @var{d} is ! simply the mean of @var{dd}. ! ! Reference: Brockwell, Peter J. & Davis, Richard A. Time Series: ! Theory and Methods Springer 1987. @end deftypefn ! rectangle_lw -*- texinfo -*- ! @deftypefn {Function File} {} rectangle_lw (@var{n}, @var{b}) ! Rectangular lag window. Subfunction used for spectral density ! estimation. ! @end deftypefn ! blackman ! -*- texinfo -*- ! @deftypefn {Function File} {} blackman (@var{m}) ! Return the filter coefficients of a Blackman window of length @var{m}. ! For a definition of the Blackman window, see e.g. A. V. Oppenheim & ! R. W. Schafer, "Discrete-Time Signal Processing". ! @end deftypefn ! detrend ! -*- texinfo -*- ! @deftypefn {Function File} {} detrend (@var{x}, @var{p}) ! If @var{x} is a vector, @code{detrend (@var{x}, @var{p})} removes the ! best fit of a polynomial of order @var{p} from the data @var{x}. ! If @var{x} is a matrix, @code{detrend (@var{x}, @var{p})} does the same ! for each column in @var{x}. ! The second argument is optional. If it is not specified, a value of 1 ! is assumed. This corresponds to removing a linear trend. @end deftypefn stft -*- texinfo -*- *************** *** 17292,17314 **** the window size, increment, and window type, which is needed by the synthesis function. @end deftypefn ! triangle_sw ! -*- texinfo -*- ! @deftypefn {Function File} {} triangle_sw (@var{n}, @var{b}) ! Triangular spectral window. Subfunction used for spectral density ! estimation. ! @end deftypefn ! detrend -*- texinfo -*- ! @deftypefn {Function File} {} detrend (@var{x}, @var{p}) ! If @var{x} is a vector, @code{detrend (@var{x}, @var{p})} removes the ! best fit of a polynomial of order @var{p} from the data @var{x}. ! If @var{x} is a matrix, @code{detrend (@var{x}, @var{p})} does the same ! for each column in @var{x}. ! The second argument is optional. If it is not specified, a value of 1 ! is assumed. This corresponds to removing a linear trend. @end deftypefn filter2 -*- texinfo -*- --- 17124,17141 ---- the window size, increment, and window type, which is needed by the synthesis function. @end deftypefn ! spectral_adf -*- texinfo -*- ! @deftypefn {Function File} {} spectral_adf (@var{c}, @var{win}, @var{b}) ! Return the spectral density estimator given a vector of ! autocovariances @var{c}, window name @var{win}, and bandwidth, ! @var{b}. ! The window name, e.g., @code{"triangle"} or @code{"rectangle"} is ! used to search for a function called @code{@var{win}_sw}. ! If @var{win} is omitted, the triangle window is used. If @var{b} is ! omitted, @code{1 / sqrt (length (@var{x}))} is used. @end deftypefn filter2 -*- texinfo -*- *************** *** 17322,18272 **** @item 'full' pad @var{x} with zeros on all sides before filtering. @item 'same' ! unpadded @var{x} (default) ! @item 'valid' ! trim @var{x} after filtering so edge effects are no included. ! @end table ! ! Note this is just a variation on convolution, with the parameters ! reversed and @var{b} rotated 180 degrees. ! @seealso{conv2} ! @end deftypefn ! diffpara ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{d}, @var{dd}] =} diffpara (@var{x}, @var{a}, @var{b}) ! Return the estimator @var{d} for the differencing parameter of an ! integrated time series. ! ! The frequencies from @math{[2*pi*a/t, 2*pi*b/T]} are used for the ! estimation. If @var{b} is omitted, the interval ! @math{[2*pi/T, 2*pi*a/T]} is used. If both @var{b} and @var{a} are ! omitted then @math{a = 0.5 * sqrt (T)} and @math{b = 1.5 * sqrt (T)} ! is used, where @math{T} is the sample size. If @var{x} is a matrix, ! the differencing parameter of each column is estimated. ! ! The estimators for all frequencies in the intervals ! described above is returned in @var{dd}. The value of @var{d} is ! simply the mean of @var{dd}. ! Reference: Brockwell, Peter J. & Davis, Richard A. Time Series: ! Theory and Methods Springer 1987. @end deftypefn ! autocor -*- texinfo -*- ! @deftypefn {Function File} {} autocor (@var{x}, @var{h}) ! Return the autocorrelations from lag 0 to @var{h} of vector @var{x}. ! If @var{h} is omitted, all autocorrelations are computed. ! If @var{x} is a matrix, the autocorrelations of each column are ! computed. @end deftypefn ! sinetone -*- texinfo -*- ! @deftypefn {Function File} {} sinetone (@var{freq}, @var{rate}, @var{sec}, @var{ampl}) ! Return a sinetone of frequency @var{freq} with length of @var{sec} ! seconds at sampling rate @var{rate} and with amplitude @var{ampl}. ! The arguments @var{freq} and @var{ampl} may be vectors of common size. ! Defaults are @var{rate} = 8000, @var{sec} = 1 and @var{ampl} = 64. @end deftypefn ! rectangle_sw -*- texinfo -*- ! @deftypefn {Function File} {} rectangle_sw (@var{n}, @var{b}) ! Rectangular spectral window. Subfunction used for spectral density estimation. @end deftypefn ! periodogram ! -*- texinfo -*- ! @deftypefn {Function File} {} periodogram (@var{x}) ! For a data matrix @var{x} from a sample of size @var{n}, return the ! periodogram. ! @end deftypefn ! fv -*- texinfo -*- ! @deftypefn {Function File} {} fv (@var{r}, @var{n}, @var{p}, @var{l}, @var{method}) ! Return the future value at the end of period @var{n} of an investment ! which consists of @var{n} payments of @var{p} in each period, ! assuming an interest rate @var{r}. ! ! The optional argument @var{l} may be used to specify an ! additional lump-sum payment. ! ! The optional argument @var{method} may be used to specify whether the ! payments are made at the end (@code{"e"}, default) or at the ! beginning (@code{"b"}) of each period. ! ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). @end deftypefn ! npv -*- texinfo -*- ! @deftypefn {Function File} {} npv (@var{r}, @var{p}, @var{i}) ! Returns the net present value of a series of irregular (i.e., not ! necessarily identical) payments @var{p} which occur at the ends of @var{n} ! consecutive periods. @var{r} specifies the one-period interest rates and ! can either be a scalar (constant rates) or a vector of the same ! length as @var{p}. ! The optional argument @var{i} may be used to specify an initial ! investment. ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). ! @seealso{irr, pv} @end deftypefn ! pmt -*- texinfo -*- ! @deftypefn {Function File} {} pmt (@var{r}, @var{n}, @var{a}, @var{l}, @var{method}) ! Return the amount of periodic payment necessary to amortize a loan ! of amount a with interest rate @var{r} in @var{n} periods. ! The optional argument @var{l} may be used to specify a terminal ! lump-sum payment. ! The optional argument @var{method} may be used to specify whether ! payments are made at the end (@var{"e"}, default) or at the beginning ! (@var{"b"}) of each period. ! @seealso{pv, nper, rate} @end deftypefn ! pvl -*- texinfo -*- ! @deftypefn {Function File} {} pvl (@var{r}, @var{n}, @var{p}) ! Return the present value of an investment that will pay off @var{p} ! in one lump sum at the end of @var{n} periods, given the interest ! rate @var{r}. ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). ! @end deftypefn ! fvl ! -*- texinfo -*- ! @deftypefn {Function File} {} fvl (@var{r}, @var{n}, @var{l}) ! Return the future value at the end of @var{n} periods of an initial ! lump sum investment @var{l}, given a per-period interest rate ! @var{r}. ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). ! @end deftypefn ! pv ! -*- texinfo -*- ! @deftypefn {Function File} {} pv (@var{r}, @var{n}, @var{p}, @var{l}, @var{method}) ! Returns the present value of an investment that will pay off @var{p} for @var{n} ! consecutive periods, assuming an interest @var{r}. ! The optional argument @var{l} may be used to specify an additional ! lump-sum payment made at the end of @var{n} periods. ! The optional argument @var{method} may be used to specify whether ! payments are made at the end (@code{"e"}, default) or at the ! beginning (@code{"b"}) of each period. ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). ! @seealso{pmt, nper, rate, npv} @end deftypefn ! nper -*- texinfo -*- ! @deftypefn {Function File} {} nper (@var{r}, @var{p}, @var{a}, @var{l}, @var{method}) ! Return the number of regular payments of @var{p} necessary to ! amortize @var{a} loan of amount @var{a} and interest @var{r}. ! ! The optional argument @var{l} may be used to specify an additional ! lump-sum payment of @var{l} made at the end of the amortization time. ! The optional argument @var{method} may be used to specify whether ! payments are made at the end (@var{"e"}, default) or at the beginning ! (@var{"b"}) of each period. ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). ! @seealso{pv, pmt, rate, npv} @end deftypefn ! rate -*- texinfo -*- ! @deftypefn {Function File} {} rate (@var{n}, @var{p}, @var{v}, @var{l}, @var{method}) ! Return the rate of return on an investment of present value @var{v} which ! pays @var{p} in @var{n} consecutive periods. ! The optional argument @var{l} may be used to specify an additional ! lump-sum payment made at the end of @var{n} periods. ! The optional string argument @var{method} may be used to specify ! whether payments are made at the end (@code{"e"}, default) or at the ! beginning (@code{"b"}) of each period. ! @seealso{pv, pmt, nper, npv} ! @end deftypefn ! irr ! -*- texinfo -*- ! @deftypefn {Function File} {} irr (@var{p}, @var{i}) ! Return the internal rate of return of a series of payments @var{p} ! from an initial investment @var{i} (i.e., the solution of ! @code{npv (r, p) = i}. If the second argument is omitted, a value of ! 0 is used. ! @seealso{npv, pv, rate} ! @end deftypefn ! vol ! -*- texinfo -*- ! @deftypefn {Function File} {} vol (@var{x}, @var{m}, @var{n}) ! Return the volatility of each column of the input matrix @var{x}. ! The number of data sets per period is given by @var{m} (e.g. the ! number of data per year if you want to compute the volatility per ! year). The optional parameter @var{n} gives the number of past ! periods used for computation, if it is omitted, a value of 1 is used. ! If @var{t} is the number of rows of @var{x}, @code{vol} returns the ! volatility from @code{n*m} to @var{t}. ! @end deftypefn ! acosd ! -*- texinfo -*- ! @deftypefn {Function File} {} acosd (@var{x}) ! Compute the inverse cosine of an angle in degrees. ! @seealso{acos, cosd, asecd} ! @end deftypefn ! sind ! -*- texinfo -*- ! @deftypefn {Function File} {} sind (@var{x}) ! Compute the sine of each element of @var{x}. Returns zero in elements ! for which @code{@var{x}/180} is an integer. ! @seealso{sin, cosd, tand, acosd, asind, atand} @end deftypefn ! asech -*- texinfo -*- ! @deftypefn {Mapping Function} {} asech (@var{x}) ! Compute the inverse hyperbolic secant of each element of @var{x}. @end deftypefn ! acsch -*- texinfo -*- ! @deftypefn {Mapping Function} {} acsch (@var{x}) ! Compute the inverse hyperbolic cosecant of each element of @var{x}. @end deftypefn ! sech -*- texinfo -*- ! @deftypefn {Mapping Function} {} sech (@var{x}) ! Compute the hyperbolic secant of each element of @var{x}. @end deftypefn ! cotd -*- texinfo -*- ! @deftypefn {Function File} {} cotd (@var{x}) ! Compute the cotangent of an angle in degrees. ! @seealso{cot, tand} @end deftypefn ! acoth -*- texinfo -*- ! @deftypefn {Mapping Function} {} acoth (@var{x}) ! Compute the inverse hyperbolic cotangent of each element of @var{x}. @end deftypefn ! asind -*- texinfo -*- ! @deftypefn {Function File} {} asind (@var{x}) ! Compute the inverse sine of an angle in degrees. ! @seealso{asin, sind, acosd} @end deftypefn ! cscd -*- texinfo -*- ! @deftypefn {Function File} {} cscd (@var{x}) ! Compute the cosecant of an angle in degrees. ! @seealso{csc, secd, sind, cosd} @end deftypefn ! csc -*- texinfo -*- ! @deftypefn {Mapping Function} {} csc (@var{x}) ! Compute the cosecant of each element of @var{x}. @end deftypefn ! acscd -*- texinfo -*- ! @deftypefn {Function File} {} acscd (@var{x}) ! Compute the inverse cosecant of an angle in degrees. ! @seealso{acsc, cscd, asecd} @end deftypefn ! acotd -*- texinfo -*- ! @deftypefn {Function File} {} acotd (@var{x}) ! Compute the inverse cotangent of an angle in degrees. ! @seealso{atan, tand} @end deftypefn ! coth -*- texinfo -*- ! @deftypefn {Mapping Function} {} coth (@var{x}) ! Compute the hyperbolic cotangent of each element of @var{x}. @end deftypefn ! tand -*- texinfo -*- ! @deftypefn {Function File} {} tand (@var{x}) ! Compute the tangent of an angle in degrees. Returns zero for elements ! of for which @code{@var{x}/180} is an integer and @code{Inf} for elements ! where @code{(@var{x}-90)/180} is an integer. ! @seealso{tan, cosd, sind, acosd, asind, atand} @end deftypefn ! csch -*- texinfo -*- ! @deftypefn {Mapping Function} {} csch (@var{x}) ! Compute the hyperbolic cosecant of each element of @var{x}. @end deftypefn ! asecd -*- texinfo -*- ! @deftypefn {Function File} {} asecd (@var{x}) ! Compute inverse secant in degrees. ! @seealso{asec, secd, acscd} @end deftypefn ! secd -*- texinfo -*- ! @deftypefn {Function File} {} secd (@var{x}) ! Compute the secant of an angle in degrees. ! @seealso{sec, cscd, sind, cosd} @end deftypefn ! lcm -*- texinfo -*- ! @deftypefn {Mapping Function} {} lcm (@var{x}, @dots{}) ! Compute the least common multiple of the elements of @var{x}, or ! the list of all the arguments. For example, @example ! lcm (a1, ..., ak) @end example @noindent ! is the same as @example ! lcm ([a1, ..., ak]). @end example ! All elements must be the same size or scalar. ! @seealso{gcd, min, max, ceil, floor} ! @end deftypefn ! cosd ! -*- texinfo -*- ! @deftypefn {Function File} {} cosd (@var{x}) ! Compute the cosine of an angle in degrees. Returns zero in elements ! for which @code{(@var{x}-90)/180} is an integer. ! @seealso{cos, sind, tand, acosd, asind, atand} ! @end deftypefn ! cot ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} cot (@var{x}) ! Compute the cotangent of each element of @var{x}. ! @end deftypefn ! sec ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} sec (@var{x}) ! Compute the secant of each element of @var{x}. ! @end deftypefn ! acot ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} acot (@var{x}) ! Compute the inverse cotangent of each element of @var{x}. ! @end deftypefn ! asec ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} asec (@var{x}) ! Compute the inverse secant of each element of @var{x}. ! @end deftypefn ! atand ! -*- texinfo -*- ! @deftypefn {Function File} {} atand (@var{x}) ! Compute the inverse tangent of an angle in degrees. ! @seealso{acot, tand} ! @end deftypefn ! acsc ! -*- texinfo -*- ! @deftypefn {Mapping Function} {} acsc (@var{x}) ! Compute the inverse cosecant of each element of @var{x}. @end deftypefn ! savepath -*- texinfo -*- ! @deftypefn {Function File} {} savepath (@var{file}) ! Save the current function search path to @var{file}. If @var{file} ! is omitted, @file{~/.octaverc} is used. If successful, ! @code{savepath} returns 0. ! @seealso{path, addpath, rmpath, genpath, pathdef, pathsep} @end deftypefn ! spvcat -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} spvcat (@var{a1}, @var{a2}, @dots{}, @var{aN}) ! Return the vertical concatenation of sparse matrices. This function ! is obselete and @code{vertcat} should be used ! @seealso{sphcat, vertcat, horzcat, cat} ! @end deftypefn ! speye -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} speye (@var{m}) ! @deftypefnx {Function File} {@var{y} =} speye (@var{m}, @var{n}) ! @deftypefnx {Function File} {@var{y} =} speye (@var{sz}) ! Returns a sparse identity matrix. This is significantly more ! efficient than @code{sparse (eye (@var{m}))} as the full matrix ! is not constructed. ! Called with a single argument a square matrix of size @var{m} by ! @var{m} is created. Otherwise a matrix of @var{m} by @var{n} is ! created. If called with a single vector argument, this argument ! is taken to be the size of the matrix to create. ! @end deftypefn ! spfun ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} spfun (@var{f},@var{x}) ! Compute @code{f(@var{x})} for the non-zero values of @var{x}. ! This results in a sparse matrix with the same structure as ! @var{x}. The function @var{f} can be passed as a string, a ! function handle or an inline function. ! @end deftypefn ! sprandsym ! -*- texinfo -*- ! @deftypefn {Function File} {} sprandsym (@var{n}, @var{d}) ! @deftypefnx {Function File} {} sprandsym (@var{s}) ! Generate a symmetric random sparse matrix. The size of the matrix will be ! @var{n} by @var{n}, with a density of values given by @var{d}. ! @var{d} should be between 0 and 1. Values will be normally ! distributed with mean of zero and variance 1. ! Note: sometimes the actual density may be a bit smaller than @var{d}. ! This is unlikely to happen for large really sparse matrices. ! If called with a single matrix argument, a random sparse matrix is ! generated wherever the matrix @var{S} is non-zero in its lower ! triangular part. ! @seealso{sprand, sprandn} ! @end deftypefn ! spconvert ! -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} spconvert (@var{m}) ! This function converts for a simple sparse matrix format easily ! produced by other programs into Octave's internal sparse format. The ! input @var{x} is either a 3 or 4 column real matrix, containing ! the row, column, real and imaginary parts of the elements of the ! sparse matrix. An element with a zero real and imaginary part can ! be used to force a particular matrix size. @end deftypefn ! spdiags -*- texinfo -*- ! @deftypefn {Function File} {[@var{b}, @var{c}] =} spdiags (@var{a}) ! @deftypefnx {Function File} {@var{b} =} spdiags (@var{a}, @var{c}) ! @deftypefnx {Function File} {@var{b} =} spdiags (@var{v}, @var{c}, @var{a}) ! @deftypefnx {Function File} {@var{b} =} spdiags (@var{v}, @var{c}, @var{m}, @var{n}) ! A generalization of the function @code{spdiag}. Called with a single ! input argument, the non-zero diagonals @var{c} of @var{A} are extracted. ! With two arguments the diagonals to extract are given by the vector ! @var{c}. ! The other two forms of @code{spdiags} modify the input matrix by ! replacing the diagonals. They use the columns of @var{v} to replace ! the columns represented by the vector @var{c}. If the sparse matrix ! @var{a} is defined then the diagonals of this matrix are replaced. ! Otherwise a matrix of @var{m} by @var{n} is created with the ! diagonals given by @var{v}. ! Negative values of @var{c} representive diagonals below the main ! diagonal, and positive values of @var{c} diagonals above the main ! diagonal. ! For example ! @example ! @group ! spdiags (reshape (1:12, 4, 3), [-1 0 1], 5, 4) ! @result{} 5 10 0 0 ! 1 6 11 0 ! 0 2 7 12 ! 0 0 3 8 ! 0 0 0 4 ! @end group ! @end example @end deftypefn ! spalloc -*- texinfo -*- ! @deftypefn {Function File} {@var{s} =} spalloc (@var{r}, @var{c}, @var{nz}) ! Returns an empty sparse matrix of size @var{r}-by-@var{c}. As Octave ! resizes sparse matrices at the first opportunity, so that no additional ! space is needed, the argument @var{nz} is ignored. This function is ! provided only for compatibility reasons. ! It should be noted that this means that code like @example ! k = 5; ! nz = r * k; ! s = spalloc (r, c, nz) ! for j = 1:c ! idx = randperm (r); ! s (:, j) = [zeros(r - k, 1); rand(k, 1)] (idx); ! endfor @end example ! ! will reallocate memory at each step. It is therefore vitally important ! that code like this is vectorized as much as possible. ! @seealso{sparse, nzmax} ! @end deftypefn ! sphcat ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} sphcat (@var{a1}, @var{a2}, @dots{}, @var{aN}) ! Return the horizontal concatenation of sparse matrices. This function ! is obselete and @code{horzcat} should be used. ! @seealso {spvcat, vertcat, horzcat, cat} @end deftypefn ! treeplot -*- texinfo -*- ! @deftypefn {Function File} {} treeplot (@var{Tree}) ! @deftypefnx {Function File} {} treeplot (@var{Tree}, @var{LineStyle}, @var{EdgeStyle}) ! Produces a graph of tree or forest. The first argument is vector of ! predecessors, optional parameters @var{LineStyle} and @var{EdgeStyle} ! define the output style. The complexity of the algorithm is O(n) in ! terms of is time and memory requirements. ! @seealso{etreeplot, gplot} @end deftypefn ! pcg -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} pcg (@var{a}, @var{b}, @var{tol}, @var{maxit}, @var{m1}, @var{m2}, @var{x0}, @dots{}) ! @deftypefnx {Function File} {[@var{x}, @var{flag}, @var{relres}, @var{iter}, @var{resvec}, @var{eigest}] =} pcg (@dots{}) ! ! Solves the linear system of equations @code{@var{a} * @var{x} = ! @var{b}} by means of the Preconditioned Conjugate Gradient iterative ! method. The input arguments are ! ! @itemize ! @item ! @var{a} can be either a square (preferably sparse) matrix or a ! function handle, inline function or string containing the name ! of a function which computes @code{@var{a} * @var{x}}. In principle ! @var{a} should be symmetric and positive definite; if @code{pcg} ! finds @var{a} to not be positive definite, you will get a warning ! message and the @var{flag} output parameter will be set. ! ! @item ! @var{b} is the right hand side vector. ! ! @item ! @var{tol} is the required relative tolerance for the residual error, ! @code{@var{b} - @var{a} * @var{x}}. The iteration stops if @code{norm ! (@var{b} - @var{a} * @var{x}) <= @var{tol} * norm (@var{b} - @var{a} * ! @var{x0})}. If @var{tol} is empty or is omitted, the function sets ! @code{@var{tol} = 1e-6} by default. ! ! @item ! @var{maxit} is the maximum allowable number of iterations; if ! @code{[]} is supplied for @code{maxit}, or @code{pcg} has less ! arguments, a default value equal to 20 is used. ! @item ! @var{m} = @var{m1} * @var{m2} is the (left) preconditioning matrix, so that the iteration is ! (theoretically) equivalent to solving by @code{pcg} @code{@var{P} * ! @var{x} = @var{m} \ @var{b}}, with @code{@var{P} = @var{m} \ @var{a}}. ! Note that a proper choice of the preconditioner may dramatically ! improve the overall performance of the method. Instead of matrices ! @var{m1} and @var{m2}, the user may pass two functions which return ! the results of applying the inverse of @var{m1} and @var{m2} to ! a vector (usually this is the preferred way of using the preconditioner). ! If @code{[]} is supplied for @var{m1}, or @var{m1} is omitted, no ! preconditioning is applied. If @var{m2} is omitted, @var{m} = @var{m1} ! will be used as preconditioner. ! @item ! @var{x0} is the initial guess. If @var{x0} is empty or omitted, the ! function sets @var{x0} to a zero vector by default. ! @end itemize ! The arguments which follow @var{x0} are treated as parameters, and ! passed in a proper way to any of the functions (@var{a} or @var{m}) ! which are passed to @code{pcg}. See the examples below for further ! details. The output arguments are ! @itemize ! @item ! @var{x} is the computed approximation to the solution of ! @code{@var{a} * @var{x} = @var{b}}. ! @item ! @var{flag} reports on the convergence. @code{@var{flag} = 0} means ! the solution converged and the tolerance criterion given by @var{tol} ! is satisfied. @code{@var{flag} = 1} means that the @var{maxit} limit ! for the iteration count was reached. @code{@var{flag} = 3} reports that ! the (preconditioned) matrix was found not positive definite. ! @item ! @var{relres} is the ratio of the final residual to its initial value, ! measured in the Euclidean norm. ! @item ! @var{iter} is the actual number of iterations performed. ! @item ! @var{resvec} describes the convergence history of the method. ! @code{@var{resvec} (i,1)} is the Euclidean norm of the residual, and ! @code{@var{resvec} (i,2)} is the preconditioned residual norm, ! after the (@var{i}-1)-th iteration, @code{@var{i} = ! 1, 2, @dots{}, @var{iter}+1}. The preconditioned residual norm ! is defined as ! @code{norm (@var{r}) ^ 2 = @var{r}' * (@var{m} \ @var{r})} where ! @code{@var{r} = @var{b} - @var{a} * @var{x}}, see also the ! description of @var{m}. If @var{eigest} is not required, only ! @code{@var{resvec} (:,1)} is returned. ! @item ! @var{eigest} returns the estimate for the smallest @code{@var{eigest} ! (1)} and largest @code{@var{eigest} (2)} eigenvalues of the ! preconditioned matrix @code{@var{P} = @var{m} \ @var{a}}. In ! particular, if no preconditioning is used, the estimates for the ! extreme eigenvalues of @var{a} are returned. @code{@var{eigest} (1)} ! is an overestimate and @code{@var{eigest} (2)} is an underestimate, ! so that @code{@var{eigest} (2) / @var{eigest} (1)} is a lower bound ! for @code{cond (@var{P}, 2)}, which nevertheless in the limit should ! theoretically be equal to the actual value of the condition number. ! The method which computes @var{eigest} works only for symmetric positive ! definite @var{a} and @var{m}, and the user is responsible for ! verifying this assumption. ! @end itemize ! Let us consider a trivial problem with a diagonal matrix (we exploit the ! sparsity of A) @example @group ! N = 10; ! A = spdiag ([1:N]); ! b = rand (N, 1); ! [L, U, P, Q] = luinc (A,1.e-3); @end group @end example ! @sc{Example 1:} Simplest use of @code{pcg} ! ! @example ! x = pcg(A,b) ! @end example ! @sc{Example 2:} @code{pcg} with a function which computes ! @code{@var{a} * @var{x}} @example ! @group ! function y = applyA (x) ! y = [1:N]'.*x; ! endfunction ! ! x = pcg ("applyA", b) ! @end group @end example ! @sc{Example 3:} @code{pcg} with a preconditioner: @var{l} * @var{u} ! ! @example ! x=pcg(A,b,1.e-6,500,L*U); ! @end example ! @sc{Example 4:} @code{pcg} with a preconditioner: @var{l} * @var{u}. ! Faster than @sc{Example 3} since lower and upper triangular matrices ! are easier to invert @example ! x=pcg(A,b,1.e-6,500,L,U); @end example ! @sc{Example 5:} Preconditioned iteration, with full diagnostics. The ! preconditioner (quite strange, because even the original matrix ! @var{a} is trivial) is defined as a function ! ! @example ! @group ! function y = applyM(x) ! K = floor (length (x) - 2); ! y = x; ! y(1:K) = x(1:K)./[1:K]'; ! endfunction ! ! [x, flag, relres, iter, resvec, eigest] = ... ! pcg (A, b, [], [], "applyM"); ! semilogy (1:iter+1, resvec); ! @end group ! @end example ! @sc{Example 6:} Finally, a preconditioner which depends on a ! parameter @var{k}. ! @example ! @group ! function y = applyM (x, varargin) ! K = varargin@{1@}; ! y = x; ! y(1:K) = x(1:K)./[1:K]'; ! endfunction ! [x, flag, relres, iter, resvec, eigest] = ... ! pcg (A, b, [], [], "applyM", [], [], 3) ! @end group ! @end example ! @sc{References} ! [1] C.T.Kelley, 'Iterative methods for linear and nonlinear equations', ! SIAM, 1995 (the base PCG algorithm) ! ! [2] Y.Saad, 'Iterative methods for sparse linear systems', PWS 1996 ! (condition number estimate from PCG) Revised version of this book is ! available online at http://www-users.cs.umn.edu/~saad/books.html ! @seealso{sparse, pcr} @end deftypefn ! colperm -*- texinfo -*- ! @deftypefn {Function File} {@var{p} =} colperm (@var{s}) ! Returns the column permutations such that the columns of ! @code{@var{s} (:, @var{p})} are ordered in terms of increase number ! of non-zero elements. If @var{s} is symmetric, then @var{p} is chosen ! such that @code{@var{s} (@var{p}, @var{p})} orders the rows and ! columns with increasing number of non zeros elements. @end deftypefn ! spstats -*- texinfo -*- ! @deftypefn {Function File} {[@var{count}, @var{mean}, @var{var}] =} spstats (@var{s}) ! @deftypefnx {Function File} {[@var{count}, @var{mean}, @var{var}] =} spstats (@var{s}, @var{j}) ! Return the stats for the non-zero elements of the sparse matrix @var{s}. ! @var{count} is the number of non-zeros in each column, @var{mean} ! is the mean of the non-zeros in each column, and @var{var} is the ! variance of the non-zeros in each column. ! Called with two input arguments, if @var{s} is the data and @var{j} ! is the bin number for the data, compute the stats for each bin. In ! this case, bins can contain data values of zero, whereas with ! @code{spstats (@var{s})} the zeros may disappear. @end deftypefn ! spy -*- texinfo -*- ! @deftypefn {Function File} {} spy (@var{x}) ! @deftypefnx {Function File} {} spy (@dots{}, @var{markersize}) ! @deftypefnx {Function File} {} spy (@dots{}, @var{LineSpec}) ! Plot the sparsity pattern of the sparse matrix @var{x}. If the argument ! @var{markersize} is given as an scalar value, it is used to determine the ! point size in the plot. If the string @var{LineSpec} is given it is ! passed to @code{plot} and determines the appearance of the plot. ! @seealso{plot} @end deftypefn ! spones -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} spones (@var{x}) ! Replace the non-zero entries of @var{x} with ones. This creates a ! sparse matrix with the same structure as @var{x}. @end deftypefn ! etreeplot -*- texinfo -*- ! @deftypefn {Function File} {} etreeplot (@var{tree}) ! @deftypefnx {Function File} {} etreeplot (@var{tree}, @var{node_style}, @var{edge_style}) ! Plot the elimination tree of the matrix @var{s} or ! @code{@var{s}+@var{s}'} if @var{s} in non-symmetric. The optional ! parameters @var{line_style} and @var{edge_style} define the output ! style. ! @seealso{treeplot, gplot} @end deftypefn ! sprand -*- texinfo -*- ! @deftypefn {Function File} {} sprand (@var{m}, @var{n}, @var{d}) ! @deftypefnx {Function File} {} sprand (@var{s}) ! Generate a random sparse matrix. The size of the matrix will be ! @var{m} by @var{n}, with a density of values given by @var{d}. ! @var{d} should be between 0 and 1. Values will be uniformly ! distributed between 0 and 1. ! ! Note: sometimes the actual density may be a bit smaller than @var{d}. ! This is unlikely to happen for large really sparse matrices. ! If called with a single matrix argument, a random sparse matrix is ! generated wherever the matrix @var{S} is non-zero. ! @seealso{sprandn} @end deftypefn ! pcr -*- texinfo -*- ! @deftypefn {Function File} {@var{x} =} pcr (@var{a}, @var{b}, @var{tol}, @var{maxit}, @var{m}, @var{x0}, @dots{}) ! @deftypefnx {Function File} {[@var{x}, @var{flag}, @var{relres}, @var{iter}, @var{resvec}] =} pcr (@dots{}) ! Solves the linear system of equations @code{@var{a} * @var{x} = ! @var{b}} by means of the Preconditioned Conjugate Residuals iterative ! method. The input arguments are @itemize @item ! @var{a} can be either a square (preferably sparse) matrix or a ! function handle, inline function or string containing the name ! of a function which computes @code{@var{a} * @var{x}}. In principle ! @var{a} should be symmetric and non-singular; if @code{pcr} ! finds @var{a} to be numerically singular, you will get a warning ! message and the @var{flag} output parameter will be set. ! @item ! @var{b} is the right hand side vector. ! @item ! @var{tol} is the required relative tolerance for the residual error, ! @code{@var{b} - @var{a} * @var{x}}. The iteration stops if @code{norm ! (@var{b} - @var{a} * @var{x}) <= @var{tol} * norm (@var{b} - @var{a} * ! @var{x0})}. If @var{tol} is empty or is omitted, the function sets ! @code{@var{tol} = 1e-6} by default. ! @item ! @var{maxit} is the maximum allowable number of iterations; if ! @code{[]} is supplied for @code{maxit}, or @code{pcr} has less ! arguments, a default value equal to 20 is used. ! @item ! @var{m} is the (left) preconditioning matrix, so that the iteration is ! (theoretically) equivalent to solving by @code{pcr} @code{@var{P} * ! @var{x} = @var{m} \ @var{b}}, with @code{@var{P} = @var{m} \ @var{a}}. ! Note that a proper choice of the preconditioner may dramatically ! improve the overall performance of the method. Instead of matrix ! @var{m}, the user may pass a function which returns the results of ! applying the inverse of @var{m} to a vector (usually this is the ! preferred way of using the preconditioner). If @code{[]} is supplied ! for @var{m}, or @var{m} is omitted, no preconditioning is applied. ! @item ! @var{x0} is the initial guess. If @var{x0} is empty or omitted, the ! function sets @var{x0} to a zero vector by default. @end itemize ! The arguments which follow @var{x0} are treated as parameters, and ! passed in a proper way to any of the functions (@var{a} or @var{m}) ! which are passed to @code{pcr}. See the examples below for further ! details. The output arguments are ! @itemize ! @item ! @var{x} is the computed approximation to the solution of ! @code{@var{a} * @var{x} = @var{b}}. ! @item ! @var{flag} reports on the convergence. @code{@var{flag} = 0} means ! the solution converged and the tolerance criterion given by @var{tol} ! is satisfied. @code{@var{flag} = 1} means that the @var{maxit} limit ! for the iteration count was reached. @code{@var{flag} = 3} reports t ! @code{pcr} breakdown, see [1] for details. ! @item ! @var{relres} is the ratio of the final residual to its initial value, ! measured in the Euclidean norm. ! @item ! @var{iter} is the actual number of iterations performed. ! @item ! @var{resvec} describes the convergence history of the method, ! so that @code{@var{resvec} (i)} contains the Euclidean norms of the ! residual after the (@var{i}-1)-th iteration, @code{@var{i} = ! 1,2, @dots{}, @var{iter}+1}. ! @end itemize ! Let us consider a trivial problem with a diagonal matrix (we exploit the ! sparsity of A) @example @group ! N = 10; ! A = diag([1:N]); A = sparse(A); ! b = rand(N,1); @end group @end example ! @sc{Example 1:} Simplest use of @code{pcr} @example ! x = pcr(A, b) @end example ! @sc{Example 2:} @code{pcr} with a function which computes ! @code{@var{a} * @var{x}}. @example @group ! function y = applyA(x) ! y = [1:10]'.*x; ! endfunction ! ! x = pcr('applyA',b) @end group @end example ! @sc{Example 3:} Preconditioned iteration, with full diagnostics. The ! preconditioner (quite strange, because even the original matrix ! @var{a} is trivial) is defined as a function ! @example ! @group ! function y = applyM(x) ! K = floor(length(x)-2); ! y = x; ! y(1:K) = x(1:K)./[1:K]'; ! endfunction ! [x, flag, relres, iter, resvec] = ... ! pcr(A, b, [], [], 'applyM') ! semilogy([1:iter+1], resvec); ! @end group ! @end example ! @sc{Example 4:} Finally, a preconditioner which depends on a ! parameter @var{k}. ! @example ! @group ! function y = applyM(x, varargin) ! K = varargin@{1@}; ! y = x; y(1:K) = x(1:K)./[1:K]'; ! endfunction ! [x, flag, relres, iter, resvec] = ... ! pcr(A, b, [], [], 'applyM', [], 3) ! @end group ! @end example ! @sc{References} ! [1] W. Hackbusch, "Iterative Solution of Large Sparse Systems of ! Equations", section 9.5.4; Springer, 1994 ! @seealso{sparse, pcg} ! @end deftypefn ! gplot ! -*- texinfo -*- ! @deftypefn {Function File} {} gplot (@var{a}, @var{xy}) ! @deftypefnx {Function File} {} gplot (@var{a}, @var{xy}, @var{line_style}) ! @deftypefnx {Function File} {[@var{x}, @var{y}] =} gplot (@var{a}, @var{xy}) ! Plot a graph defined by @var{A} and @var{xy} in the graph theory ! sense. @var{A} is the adjacency matrix of the array to be plotted ! and @var{xy} is an @var{n}-by-2 matrix containing the coordinates of ! the nodes of the graph. ! The optional parameter @var{line_style} defines the output style for ! the plot. Called with no output arguments the graph is plotted ! directly. Otherwise, return the coordinates of the plot in @var{x} ! and @var{y}. ! @seealso{treeplot, etreeplot, spy} @end deftypefn ! normest -*- texinfo -*- ! @deftypefn {Function File} {[@var{n}, @var{c}] =} normest (@var{a}, @var{tol}) ! Estimate the 2-norm of the matrix @var{a} using a power series ! analysis. This is typically used for large matrices, where the cost ! of calculating the @code{norm (@var{a})} is prohibitive and an approximation ! to the 2-norm is acceptable. ! @var{tol} is the tolerance to which the 2-norm is calculated. By default ! @var{tol} is 1e-6. @var{c} returns the number of iterations needed for ! @code{normest} to converge. ! @end deftypefn ! sprandn ! -*- texinfo -*- ! @deftypefn {Function File} {} sprandn (@var{m}, @var{n}, @var{d}) ! @deftypefnx {Function File} {} sprandn (@var{s}) ! Generate a random sparse matrix. The size of the matrix will be ! @var{m} by @var{n}, with a density of values given by @var{d}. ! @var{d} should be between 0 and 1. Values will be normally ! distributed with mean of zero and variance 1. ! Note: sometimes the actual density may be a bit smaller than @var{d}. ! This is unlikely to happen for large really sparse matrices. ! If called with a single matrix argument, a random sparse matrix is ! generated wherever the matrix @var{S} is non-zero. ! @seealso{sprand} ! @end deftypefn ! nonzeros ! -*- texinfo -*- ! @deftypefn {Function File} {} nonzeros (@var{s}) ! Returns a vector of the non-zero values of the sparse matrix @var{s}. @end deftypefn --- 17149,18441 ---- @item 'full' pad @var{x} with zeros on all sides before filtering. @item 'same' ! unpadded @var{x} (default) ! @item 'valid' ! trim @var{x} after filtering so edge effects are no included. ! @end table ! Note this is just a variation on convolution, with the parameters ! reversed and @var{b} rotated 180 degrees. ! @seealso{conv2} @end deftypefn ! fftfilt -*- texinfo -*- ! @deftypefn {Function File} {} fftfilt (@var{b}, @var{x}, @var{n}) ! ! With two arguments, @code{fftfilt} filters @var{x} with the FIR filter ! @var{b} using the FFT. ! ! Given the optional third argument, @var{n}, @code{fftfilt} uses the ! overlap-add method to filter @var{x} with @var{b} using an N-point FFT. ! ! If @var{x} is a matrix, filter each column of the matrix. @end deftypefn ! fftconv -*- texinfo -*- ! @deftypefn {Function File} {} fftconv (@var{a}, @var{b}, @var{n}) ! Return the convolution of the vectors @var{a} and @var{b}, as a vector ! with length equal to the @code{length (a) + length (b) - 1}. If @var{a} ! and @var{b} are the coefficient vectors of two polynomials, the returned ! value is the coefficient vector of the product polynomial. ! The computation uses the FFT by calling the function @code{fftfilt}. If ! the optional argument @var{n} is specified, an N-point FFT is used. @end deftypefn ! triangle_lw -*- texinfo -*- ! @deftypefn {Function File} {} triangle_lw (@var{n}, @var{b}) ! Triangular lag window. Subfunction used for spectral density estimation. @end deftypefn ! ifftshift -*- texinfo -*- ! @deftypefn {Function File} {} ifftshift (@var{v}) ! @deftypefnx {Function File} {} ifftshift (@var{v}, @var{dim}) ! Undo the action of the @code{fftshift} function. For even length ! @var{v}, @code{fftshift} is its own inverse, but odd lengths differ ! slightly. @end deftypefn ! durbinlevinson -*- texinfo -*- ! @deftypefn {Function File} {} durbinlevinson (@var{c}, @var{oldphi}, @var{oldv}) ! Perform one step of the Durbin-Levinson algorithm. ! The vector @var{c} specifies the autocovariances @code{[gamma_0, @dots{}, ! gamma_t]} from lag 0 to @var{t}, @var{oldphi} specifies the ! coefficients based on @var{c}(@var{t}-1) and @var{oldv} specifies the ! corresponding error. ! If @var{oldphi} and @var{oldv} are omitted, all steps from 1 to ! @var{t} of the algorithm are performed. @end deftypefn ! unwrap -*- texinfo -*- ! @deftypefn {Function File} {@var{b} =} unwrap (@var{a}, @var{tol}, @var{dim}) ! Unwrap radian phases by adding multiples of 2*pi as appropriate to ! remove jumps greater than @var{tol}. @var{tol} defaults to pi. ! Unwrap will unwrap along the first non-singleton dimension of ! @var{a}, unless the optional argument @var{dim} is given, in ! which case the data will be unwrapped along this dimension @end deftypefn ! arch_fit -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{b}] =} arch_fit (@var{y}, @var{x}, @var{p}, @var{iter}, @var{gamma}, @var{a0}, @var{b0}) ! Fit an ARCH regression model to the time series @var{y} using the ! scoring algorithm in Engle's original ARCH paper. The model is ! @example ! y(t) = b(1) * x(t,1) + ... + b(k) * x(t,k) + e(t), ! h(t) = a(1) + a(2) * e(t-1)^2 + ... + a(p+1) * e(t-p)^2 ! @end example ! @noindent ! in which @math{e(t)} is @math{N(0, h(t))}, given a time-series vector ! @var{y} up to time @math{t-1} and a matrix of (ordinary) regressors ! @var{x} up to @math{t}. The order of the regression of the residual ! variance is specified by @var{p}. ! If invoked as @code{arch_fit (@var{y}, @var{k}, @var{p})} with a ! positive integer @var{k}, fit an ARCH(@var{k}, @var{p}) process, ! i.e., do the above with the @math{t}-th row of @var{x} given by ! @example ! [1, y(t-1), ..., y(t-k)] ! @end example ! Optionally, one can specify the number of iterations @var{iter}, the ! updating factor @var{gamma}, and initial values @math{a0} and ! @math{b0} for the scoring algorithm. @end deftypefn ! spectral_xdf -*- texinfo -*- ! @deftypefn {Function File} {} spectral_xdf (@var{x}, @var{win}, @var{b}) ! Return the spectral density estimator given a data vector @var{x}, ! window name @var{win}, and bandwidth, @var{b}. ! The window name, e.g., @code{"triangle"} or @code{"rectangle"} is ! used to search for a function called @code{@var{win}_sw}. ! If @var{win} is omitted, the triangle window is used. If @var{b} is ! omitted, @code{1 / sqrt (length (@var{x}))} is used. @end deftypefn ! synthesis -*- texinfo -*- ! @deftypefn {Function File} {} synthesis (@var{y}, @var{c}) ! Compute a signal from its short-time Fourier transform @var{y} and a ! 3-element vector @var{c} specifying window size, increment, and ! window type. ! The values @var{y} and @var{c} can be derived by ! @example ! [@var{y}, @var{c}] = stft (@var{x} , @dots{}) ! @end example @end deftypefn ! rectangle_sw -*- texinfo -*- ! @deftypefn {Function File} {} rectangle_sw (@var{n}, @var{b}) ! Rectangular spectral window. Subfunction used for spectral density ! estimation. @end deftypefn ! yulewalker -*- texinfo -*- ! @deftypefn {Function File} {[@var{a}, @var{v}] =} yulewalker (@var{c}) ! Fit an AR (p)-model with Yule-Walker estimates given a vector @var{c} ! of autocovariances @code{[gamma_0, ..., gamma_p]}. ! ! Returns the AR coefficients, @var{a}, and the variance of white ! noise, @var{v}. @end deftypefn ! arch_test -*- texinfo -*- ! @deftypefn {Function File} {[@var{pval}, @var{lm}] =} arch_test (@var{y}, @var{x}, @var{p}) ! For a linear regression model ! ! @example ! y = x * b + e ! @end example ! ! @noindent ! perform a Lagrange Multiplier (LM) test of the null hypothesis of no ! conditional heteroscedascity against the alternative of CH(@var{p}). ! ! I.e., the model is ! ! @example ! y(t) = b(1) * x(t,1) + @dots{} + b(k) * x(t,k) + e(t), ! @end example ! ! @noindent ! given @var{y} up to @math{t-1} and @var{x} up to @math{t}, ! @math{e}(t) is @math{N(0, h(t))} with ! ! @example ! h(t) = v + a(1) * e(t-1)^2 + @dots{} + a(p) * e(t-p)^2, ! @end example ! ! @noindent ! and the null is @math{a(1)} == @dots{} == @math{a(p)} == 0. ! ! If the second argument is a scalar integer, @math{k}, perform the same ! test in a linear autoregression model of order @math{k}, i.e., with ! ! @example ! [1, y(t-1), @dots{}, y(t-@var{k})] ! @end example ! ! @noindent ! as the @math{t}-th row of @var{x}. ! ! Under the null, LM approximately has a chisquare distribution with ! @var{p} degrees of freedom and @var{pval} is the @math{p}-value (1 ! minus the CDF of this distribution at LM) of the test. ! ! If no output argument is given, the @math{p}-value is displayed. @end deftypefn ! arma_rnd -*- texinfo -*- ! @deftypefn {Function File} {} arma_rnd (@var{a}, @var{b}, @var{v}, @var{t}, @var{n}) ! Return a simulation of the ARMA model ! ! @example ! x(n) = a(1) * x(n-1) + ... + a(k) * x(n-k) ! + e(n) + b(1) * e(n-1) + ... + b(l) * e(n-l) ! @end example ! ! @noindent ! in which @var{k} is the length of vector @var{a}, @var{l} is the ! length of vector @var{b} and @var{e} is gaussian white noise with ! variance @var{v}. The function returns a vector of length @var{t}. ! ! The optional parameter @var{n} gives the number of dummy ! @var{x}(@var{i}) used for initialization, i.e., a sequence of length ! @var{t}+@var{n} is generated and @var{x}(@var{n}+1:@var{t}+@var{n}) ! is returned. If @var{n} is omitted, @var{n} = 100 is used. @end deftypefn ! sinc -*- texinfo -*- ! @deftypefn {Function File} {} sinc (@var{x}) ! Return ! @iftex ! @tex ! $ \sin (\pi x)/(\pi x)$. ! @end tex ! @end iftex ! @ifinfo ! sin(pi*x)/(pi*x). ! @end ifinfo @end deftypefn ! autoreg_matrix -*- texinfo -*- ! @deftypefn {Function File} {} autoreg_matrix (@var{y}, @var{k}) ! Given a time series (vector) @var{y}, return a matrix with ones in the ! first column and the first @var{k} lagged values of @var{y} in the ! other columns. I.e., for @var{t} > @var{k}, @code{[1, ! @var{y}(@var{t}-1), @dots{}, @var{y}(@var{t}-@var{k})]} is the t-th row ! of the result. The resulting matrix may be used as a regressor matrix ! in autoregressions. @end deftypefn ! autocor -*- texinfo -*- ! @deftypefn {Function File} {} autocor (@var{x}, @var{h}) ! Return the autocorrelations from lag 0 to @var{h} of vector @var{x}. ! If @var{h} is omitted, all autocorrelations are computed. ! If @var{x} is a matrix, the autocorrelations of each column are ! computed. @end deftypefn ! bartlett -*- texinfo -*- ! @deftypefn {Function File} {} bartlett (@var{m}) ! Return the filter coefficients of a Bartlett (triangular) window of ! length @var{m}. ! ! For a definition of the Bartlett window, see e.g. A. V. Oppenheim & ! R. W. Schafer, "Discrete-Time Signal Processing". @end deftypefn ! hurst -*- texinfo -*- ! @deftypefn {Function File} {} hurst (@var{x}) ! Estimate the Hurst parameter of sample @var{x} via the rescaled range ! statistic. If @var{x} is a matrix, the parameter is estimated for ! every single column. @end deftypefn ! spencer -*- texinfo -*- ! @deftypefn {Function File} {} spencer (@var{x}) ! Return Spencer's 15 point moving average of every single column of ! @var{x}. @end deftypefn ! conv -*- texinfo -*- ! @deftypefn {Function File} {} conv (@var{a}, @var{b}) ! Convolve two vectors. ! ! @code{y = conv (a, b)} returns a vector of length equal to ! @code{length (a) + length (b) - 1}. ! If @var{a} and @var{b} are polynomial coefficient vectors, @code{conv} ! returns the coefficients of the product polynomial. ! @seealso{deconv, poly, roots, residue, polyval, polyderiv, polyinteg} @end deftypefn ! roots -*- texinfo -*- ! @deftypefn {Function File} {} roots (@var{v}) ! ! For a vector @var{v} with @math{N} components, return ! the roots of the polynomial ! @iftex ! @tex ! $$ ! v_1 z^{N-1} + \cdots + v_{N-1} z + v_N. ! $$ ! @end tex ! @end iftex ! @ifnottex ! ! @example ! v(1) * z^(N-1) + ... + v(N-1) * z + v(N) ! @end example ! @end ifnottex ! ! As an example, the following code finds the roots of the quadratic ! polynomial ! @iftex ! @tex ! $$ p(x) = x^2 - 5. $$ ! @end tex ! @end iftex ! @ifnottex ! @example ! p(x) = x^2 - 5. ! @end example ! @end ifnottex ! @example ! c = [1, 0, -5]; ! roots(c) ! @result{} 2.2361 ! @result{} -2.2361 ! @end example ! Note that the true result is ! @iftex ! @tex ! $\pm \sqrt{5}$ ! @end tex ! @end iftex ! @ifnottex ! @math{+/- sqrt(5)} ! @end ifnottex ! which is roughly ! @iftex ! @tex ! $\pm 2.2361$. ! @end tex ! @end iftex ! @ifnottex ! @math{+/- 2.2361}. ! @end ifnottex ! @seealso{compan} @end deftypefn ! pchip -*- texinfo -*- ! @deftypefn {Function File} {@var{pp} = } pchip (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{yi} = } pchip (@var{x}, @var{y}, @var{xi}) ! ! Piecewise Cubic Hermite interpolating polynomial. Called with two ! arguments, the piece-wise polynomial @var{pp} is returned, that may ! later be used with @code{ppval} to evaluate the polynomial at ! specific points. ! ! The variable @var{x} must be a strictly monotonic vector (either ! increasing or decreasing). While @var{y} can be either a vector or ! array. In the case where @var{y} is a vector, it must have a length ! of @var{n}. If @var{y} is an array, then the size of @var{y} must ! have the form ! @iftex ! @tex ! $$[s_1, s_2, \cdots, s_k, n]$$ ! @end tex ! @end iftex ! @ifinfo ! @code{[@var{s1}, @var{s2}, @dots{}, @var{sk}, @var{n}]} ! @end ifinfo ! The array is then reshaped internally to a matrix where the leading ! dimension is given by ! @iftex ! @tex ! $$s_1 s_2 \cdots s_k$$ ! @end tex ! @end iftex ! @ifinfo ! @code{@var{s1} * @var{s2} * @dots{} * @var{sk}} ! @end ifinfo ! and each row in this matrix is then treated separately. Note that this ! is exactly the opposite treatment than @code{interp1} and is done ! for compatibility. ! ! Called with a third input argument, @code{pchip} evaluates the ! piece-wise polynomial at the points @var{xi}. There is an equivalence ! between @code{ppval (pchip (@var{x}, @var{y}), @var{xi})} and ! @code{pchip (@var{x}, @var{y}, @var{xi})}. ! ! @seealso{spline, ppval, mkpp, unmkpp} @end deftypefn ! polyreduce -*- texinfo -*- ! @deftypefn {Function File} {} polyreduce (@var{c}) ! Reduces a polynomial coefficient vector to a minimum number of terms by ! stripping off any leading zeros. ! @seealso{poly, roots, conv, deconv, residue, filter, polyval, ! polyvalm, polyderiv, polyinteg} @end deftypefn ! compan -*- texinfo -*- ! @deftypefn {Function File} {} compan (@var{c}) ! Compute the companion matrix corresponding to polynomial coefficient ! vector @var{c}. ! ! The companion matrix is ! @iftex ! @tex ! $$ ! A = \left[\matrix{ ! -c_2/c_1 & -c_3/c_1 & \cdots & -c_N/c_1 & -c_{N+1}/c_1\cr ! 1 & 0 & \cdots & 0 & 0 \cr ! 0 & 1 & \cdots & 0 & 0 \cr ! \vdots & \vdots & \ddots & \vdots & \vdots \cr ! 0 & 0 & \cdots & 1 & 0}\right]. ! $$ ! @end tex ! @end iftex ! @ifnottex ! ! @smallexample ! _ _ ! | -c(2)/c(1) -c(3)/c(1) ... -c(N)/c(1) -c(N+1)/c(1) | ! | 1 0 ... 0 0 | ! | 0 1 ... 0 0 | ! A = | . . . . . | ! | . . . . . | ! | . . . . . | ! |_ 0 0 ... 1 0 _| ! @end smallexample ! @end ifnottex ! ! The eigenvalues of the companion matrix are equal to the roots of the ! polynomial. ! @seealso{poly, roots, residue, conv, deconv, polyval, polyderiv, ! polyinteg} @end deftypefn ! residue -*- texinfo -*- ! @deftypefn {Function File} {[@var{r}, @var{p}, @var{k}, @var{e}] =} residue (@var{b}, @var{a}) ! Compute the partial fraction expansion for the quotient of the ! polynomials, @var{b} and @var{a}. ! ! @iftex ! @tex ! $$ ! {B(s)\over A(s)} = \sum_{m=1}^M {r_m\over (s-p_m)^e_m} ! + \sum_{i=1}^N k_i s^{N-i}. ! $$ ! @end tex ! @end iftex ! @ifinfo @example ! B(s) M r(m) N ! ---- = SUM ------------- + SUM k(i)*s^(N-i) ! A(s) m=1 (s-p(m))^e(m) i=1 @end example + @end ifinfo @noindent ! where @math{M} is the number of poles (the length of the @var{r}, ! @var{p}, and @var{e}), the @var{k} vector is a polynomial of order @math{N-1} ! representing the direct contribution, and the @var{e} vector specifies ! the multiplicity of the mth residue's pole. ! ! For example, @example ! @group ! b = [1, 1, 1]; ! a = [1, -5, 8, -4]; ! [r, p, k, e] = residue (b, a); ! @result{} r = [-2; 7; 3] ! @result{} p = [2; 2; 1] ! @result{} k = [](0x0) ! @result{} e = [1; 2; 1] ! @end group @end example ! @noindent ! which represents the following partial fraction expansion ! @iftex ! @tex ! $$ ! {s^2+s+1\over s^3-5s^2+8s-4} = {-2\over s-2} + {7\over (s-2)^2} + {3\over s-1} ! $$ ! @end tex ! @end iftex ! @ifinfo ! ! @example ! s^2 + s + 1 -2 7 3 ! ------------------- = ----- + ------- + ----- ! s^3 - 5s^2 + 8s - 4 (s-2) (s-2)^2 (s-1) ! @end example ! ! @end ifinfo ! ! @deftypefnx {Function File} {[@var{b}, @var{a}] =} residue (@var{r}, @var{p}, @var{k}) ! @deftypefnx {Function File} {[@var{b}, @var{a}] =} residue (@var{r}, @var{p}, @var{k}, @var{e}) ! Compute the reconstituted quotient of polynomials, ! @var{b}(s)/@var{a}(s), from the partial fraction expansion; ! represented by the residues, poles, and a direct polynomial specified ! by @var{r}, @var{p} and @var{k}, and the pole multiplicity @var{e}. ! ! If the multiplicity, @var{e}, is not explicitly specified the multiplicity is ! determined by the script mpoles.m. ! ! For example, ! ! @example ! @group ! r = [-2; 7; 3]; ! p = [2; 2; 1]; ! k = [1, 0]; ! [b, a] = residue (r, p, k); ! @result{} b = [1, -5, 9, -3, 1] ! @result{} a = [1, -5, 8, -4] ! ! where mpoles.m is used to determine e = [1; 2; 1] ! ! @end group ! @end example ! ! Alternatively the multiplicity may be defined explicitly, for example, ! ! @example ! @group ! r = [7; 3; -2]; ! p = [2; 1; 2]; ! k = [1, 0]; ! e = [2; 1; 1]; ! [b, a] = residue (r, p, k, e); ! @result{} b = [1, -5, 9, -3, 1] ! @result{} a = [1, -5, 8, -4] ! @end group ! @end example ! ! @noindent ! which represents the following partial fraction expansion ! @iftex ! @tex ! $$ ! {-2\over s-2} + {7\over (s-2)^2} + {3\over s-1} + s = {s^4-5s^3+9s^2-3s+1\over s^3-5s^2+8s-4} ! $$ ! @end tex ! @end iftex ! @ifinfo ! ! @example ! -2 7 3 s^4 - 5s^3 + 9s^2 - 3s + 1 ! ----- + ------- + ----- + s = -------------------------- ! (s-2) (s-2)^2 (s-1) s^3 - 5s^2 + 8s - 4 ! @end example ! @end ifinfo ! @seealso{poly, roots, conv, deconv, mpoles, polyval, polyderiv, polyinteg} @end deftypefn ! polyint -*- texinfo -*- ! @deftypefn {Function File} {} polyint (@var{c}, @var{k}) ! Return the coefficients of the integral of the polynomial whose ! coefficients are represented by the vector @var{c}. The variable ! @var{k} is the constant of integration, which by default is set to zero. ! @seealso{poly, polyderiv, polyreduce, roots, conv, deconv, residue, ! filter, polyval, and polyvalm} @end deftypefn ! ppval -*- texinfo -*- ! @deftypefn {Function File} {@var{yi} =} ppval (@var{pp}, @var{xi}) ! Evaluate piece-wise polynomial @var{pp} at the points @var{xi}. ! If @code{@var{pp}.d} is a scalar greater than 1, or an array, ! then the returned value @var{yi} will be an array that is ! @code{d1, d1, @dots{}, dk, length (@var{xi})]}. ! @seealso{mkpp, unmkpp, spline} ! @end deftypefn ! spline -*- texinfo -*- ! @deftypefn {Function File} {@var{pp} = } spline (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{yi} = } spline (@var{x}, @var{y}, @var{xi}) ! Returns the cubic spline interpolation of @var{y} at the point ! @var{x}. Called with two arguments the piece-wise polynomial @var{pp} ! that may later be used with @code{ppval} to evaluate the polynomial ! at specific points. ! The variable @var{x} must be a vector of length @var{n}, and @var{y} ! can be either a vector or array. In the case where @var{y} is a ! vector, it can have a length of either @var{n} or @code{@var{n} + 2}. ! If the length of @var{y} is @var{n}, then the 'not-a-knot' end ! condition is used. If the length of @var{y} is @code{@var{n} + 2}, ! then the first and last values of the vector @var{y} are the first ! derivative of the cubic spline at the end-points. ! If @var{y} is an array, then the size of @var{y} must have the form ! @iftex ! @tex ! $$[s_1, s_2, \cdots, s_k, n]$$ ! @end tex ! @end iftex ! @ifinfo ! @code{[@var{s1}, @var{s2}, @dots{}, @var{sk}, @var{n}]} ! @end ifinfo ! or ! @iftex ! @tex ! $$[s_1, s_2, \cdots, s_k, n + 2]$$. ! @end tex ! @end iftex ! @ifinfo ! @code{[@var{s1}, @var{s2}, @dots{}, @var{sk}, @var{n} + 2]}. ! @end ifinfo ! The array is then reshaped internally to a matrix where to leading ! dimension is given by ! @iftex ! @tex ! $$s_1 s_2 \cdots s_k$$ ! @end tex ! @end iftex ! @ifinfo ! @code{@var{s1} * @var{s2} * @dots{} * @var{sk}} ! @end ifinfo ! and each row this matrix is then treated separately. Note that this ! is exactly the opposite treatment than @code{interp1} and is done ! for compatibility. ! ! Called with a third input argument, @code{spline} evaluates the ! piece-wise spline at the points @var{xi}. There is an equivalence ! between @code{ppval (spline (@var{x}, @var{y}), @var{xi})} and ! @code{spline (@var{x}, @var{y}, @var{xi})}. ! ! @seealso{ppval, mkpp, unmkpp} @end deftypefn ! polyfit -*- texinfo -*- ! @deftypefn {Function File} {[@var{p}, @var{s}, @var{mu}] =} polyfit (@var{x}, @var{y}, @var{n}) ! Return the coefficients of a polynomial @var{p}(@var{x}) of degree ! @var{n} that minimizes the least-squares-error of the fit. ! The polynomial coefficients are returned in a row vector. ! The second output is a structure containing the following fields: ! @table @samp ! @item R ! Triangular factor R from the QR decomposition. ! @item X ! The Vandermonde matrix used to compute the polynomial coefficients. ! @item df ! The degrees of freedom. ! @item normr ! The norm of the residuals. ! @item yf ! The values of the polynomial for each value of @var{x}. ! @end table ! The second output may be used by @code{polyval} to calculate the ! statistical error limits of the predicted values. + When the third output, @var{mu}, is present the + coefficients, @var{p}, are associated with a polynomial in + @var{xhat} = (@var{x}-@var{mu}(1))/@var{mu}(2). + Where @var{mu}(1) = mean (@var{x}), and @var{mu}(2) = std (@var{x}). + This linear transformation of @var{x} improves the numerical + stability of the fit. + @seealso{polyval, polyconf, residue} @end deftypefn ! polyder -*- texinfo -*- ! @deftypefn {Function File} {} polyder (@var{c}) ! @deftypefnx {Function File} {[@var{q}] =} polyder (@var{b}, @var{a}) ! @deftypefnx {Function File} {[@var{q}, @var{r}] =} polyder (@var{b}, @var{a}) ! See polyderiv. ! @end deftypefn ! polygcd ! -*- texinfo -*- ! @deftypefn {Function File} {@var{q} =} polygcd (@var{b}, @var{a}, @var{tol}) ! Find greatest common divisor of two polynomials. This is equivalent ! to the polynomial found by multiplying together all the common roots. ! Together with deconv, you can reduce a ratio of two polynomials. ! Tolerance defaults to ! @example ! sqrt(eps). ! @end example ! Note that this is an unstable ! algorithm, so don't try it on large polynomials. + Example @example ! polygcd (poly(1:8), poly(3:12)) - poly(3:8) ! @result{} [ 0, 0, 0, 0, 0, 0, 0 ] ! deconv (poly(1:8), polygcd (poly(1:8), poly(3:12))) ... ! - poly(1:2) ! @result{} [ 0, 0, 0 ] @end example ! @seealso{poly, polyinteg, polyderiv, polyreduce, roots, conv, deconv, ! residue, filter, polyval, and polyvalm} @end deftypefn ! polyderiv -*- texinfo -*- ! @deftypefn {Function File} {} polyderiv (@var{c}) ! @deftypefnx {Function File} {[@var{q}] =} polyderiv (@var{b}, @var{a}) ! @deftypefnx {Function File} {[@var{q}, @var{r}] =} polyderiv (@var{b}, @var{a}) ! Return the coefficients of the derivative of the polynomial whose ! coefficients are given by vector @var{c}. If a pair of polynomials ! is given @var{b} and @var{a}, the derivative of the product is ! returned in @var{q}, or the quotient numerator in @var{q} and the ! quotient denominator in @var{r}. ! @seealso{poly, polyinteg, polyreduce, roots, conv, deconv, residue, ! filter, polygcd, polyval, polyvalm} @end deftypefn ! deconv -*- texinfo -*- ! @deftypefn {Function File} {} deconv (@var{y}, @var{a}) ! Deconvolve two vectors. ! @code{[b, r] = deconv (y, a)} solves for @var{b} and @var{r} such that ! @code{y = conv (a, b) + r}. ! If @var{y} and @var{a} are polynomial coefficient vectors, @var{b} will ! contain the coefficients of the polynomial quotient and @var{r} will be ! a remainder polynomial of lowest order. ! @seealso{conv, poly, roots, residue, polyval, polyderiv, polyinteg} ! @end deftypefn ! mkpp ! -*- texinfo -*- ! @deftypefn {Function File} {@var{pp} = } mkpp (@var{x}, @var{p}) ! @deftypefnx {Function File} {@var{pp} = } mkpp (@var{x}, @var{p}, @var{d}) ! Construct a piece-wise polynomial structure from sample points ! @var{x} and coefficients @var{p}. The ith row of @var{p}, ! @code{@var{p} (@var{i},:)}, contains the coefficients for the polynomial ! over the @var{i}-th interval, ordered from highest to ! lowest. There must be one row for each interval in @var{x}, so ! @code{rows (@var{p}) == length (@var{x}) - 1}. ! You can concatenate multiple polynomials of the same order over the ! same set of intervals using @code{@var{p} = [ @var{p1}; @var{p2}; ! @dots{}; @var{pd} ]}. In this case, @code{rows (@var{p}) == @var{d} ! * (length (@var{x}) - 1)}. ! @var{d} specifies the shape of the matrix @var{p} for all except the ! last dimension. If @var{d} is not specified it will be computed as ! @code{round (rows (@var{p}) / (length (@var{x}) - 1))} instead. ! @seealso{unmkpp, ppval, spline} ! @end deftypefn ! mpoles ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{multp}, @var{indx}] =} mpoles (@var{p}) ! @deftypefnx {Function File} {[@var{multp}, @var{indx}] =} mpoles (@var{p}, @var{tol}) ! @deftypefnx {Function File} {[@var{multp}, @var{indx}] =} mpoles (@var{p}, @var{tol}, @var{reorder}) ! Identifiy unique poles in @var{p} and associates their multiplicity, ! ordering them from largest to smallest. ! If the relative difference of the poles is less than @var{tol}, then ! they are considered to be multiples. The default value for @var{tol} ! is 0.001. ! If the optional parameter @var{reorder} is zero, poles are not sorted. ! The value @var{multp} is a vector specifying the multiplicity of the ! poles. @var{multp}(:) refers to mulitplicity of @var{p}(@var{indx}(:)). ! For example, @example @group ! p = [2 3 1 1 2]; ! [m, n] = mpoles(p); ! @result{} m = [1; 1; 2; 1; 2] ! @result{} n = [2; 5; 1; 4; 3] ! @result{} p(n) = [3, 2, 2, 1, 1] @end group @end example ! @seealso{poly, roots, conv, deconv, polyval, polyderiv, polyinteg, residue} ! @end deftypefn ! polyval ! -*- texinfo -*- ! @deftypefn {Function File} {@var{y}=} polyval (@var{p}, @var{x}) ! @deftypefnx {Function File} {@var{y}=} polyval (@var{p}, @var{x}, [], @var{mu}) ! Evaluate the polynomial at of the specified values for @var{x}. When @var{mu} ! is present evaluate the polynomial for (@var{x}-@var{mu}(1))/@var{mu}(2). ! If @var{x} is a vector or matrix, the polynomial is evaluated for each of ! the elements of @var{x}. ! @deftypefnx {Function File} {[@var{y}, @var{dy}] =} polyval (@var{p}, @var{x}, @var{s}) ! @deftypefnx {Function File} {[@var{y}, @var{dy}] =} polyval (@var{p}, @var{x}, @var{s}, @var{mu}) ! In addition to evaluating the polynomial, the second output ! represents the prediction interval, @var{y} +/- @var{dy}, which ! contains at least 50% of the future predictions. To calculate the ! prediction interval, the structured variable @var{s}, originating ! form `polyfit', must be present. ! @seealso{polyfit, polyvalm, poly, roots, conv, deconv, residue, filter, ! polyderiv, polyinteg} ! @end deftypefn ! polyvalm ! -*- texinfo -*- ! @deftypefn {Function File} {} polyvalm (@var{c}, @var{x}) ! Evaluate a polynomial in the matrix sense. ! @code{polyvalm (@var{c}, @var{x})} will evaluate the polynomial in the ! matrix sense, i.e. matrix multiplication is used instead of element by ! element multiplication as is used in polyval. + The argument @var{x} must be a square matrix. + @seealso{polyval, poly, roots, conv, deconv, residue, filter, + polyderiv, and polyinteg} + @end deftypefn + polyout + -*- texinfo -*- + @deftypefn {Function File} {} polyout (@var{c}, @var{x}) + Write formatted polynomial + @iftex + @tex + $$ c(x) = c_1 x^n + \ldots + c_n x + c_{n+1} $$ + @end tex + @end iftex + @ifinfo @example ! c(x) = c(1) * x^n + ... + c(n) x + c(n+1) @end example + @end ifinfo + and return it as a string or write it to the screen (if + @var{nargout} is zero). + @var{x} defaults to the string @code{"s"}. + @seealso{polyval, polyvalm, poly, roots, conv, deconv, residue, + filter, polyderiv, and polyinteg} + @end deftypefn + unmkpp + -*- texinfo -*- + @deftypefn {Function File} {[@var{x}, @var{p}, @var{n}, @var{k}, @var{d}] =} unmkpp (@var{pp}) ! Extract the components of a piece-wise polynomial structure @var{pp}. ! These are as follows: ! @table @asis ! @item @var{x} ! Samples points. ! @item @var{p} ! Polynomial coefficients for points in sample interval. @code{@var{p} ! (@var{i}, :)} contains the coefficients for the polynomial over ! interval @var{i} ordered from highest to lowest. If @code{@var{d} > ! 1}, @code{@var{p} (@var{r}, @var{i}, :)} contains the coefficients for ! the r-th polynomial defined on interval @var{i}. However, this is ! stored as a 2-D array such that @code{@var{c} = reshape (@var{p} (:, ! @var{j}), @var{n}, @var{d})} gives @code{@var{c} (@var{i}, @var{r})} ! is the j-th coefficient of the r-th polynomial over the i-th interval. ! @item @var{n} ! Number of polynomial pieces. ! @item @var{k} ! Order of the polynomial plus 1. ! @item @var{d} ! Number of polynomials defined for each interval. ! @end table + @seealso{mkpp, ppval, spline} + @end deftypefn + poly + -*- texinfo -*- + @deftypefn {Function File} {} poly (@var{a}) + If @var{a} is a square @math{N}-by-@math{N} matrix, @code{poly (@var{a})} + is the row vector of the coefficients of @code{det (z * eye (N) - a)}, + the characteristic polynomial of @var{a}. As an example we can use + this to find the eigenvalues of @var{a} as the roots of @code{poly (@var{a})}. @example ! roots(poly(eye(3))) ! @result{} 1.00000 + 0.00000i ! @result{} 1.00000 - 0.00000i ! @result{} 1.00000 + 0.00000i @end example + In real-life examples you should, however, use the @code{eig} function + for computing eigenvalues. ! If @var{x} is a vector, @code{poly (@var{x})} is a vector of coefficients ! of the polynomial whose roots are the elements of @var{x}. That is, ! of @var{c} is a polynomial, then the elements of ! @code{@var{d} = roots (poly (@var{c}))} are contained in @var{c}. ! The vectors @var{c} and @var{d} are, however, not equal due to sorting ! and numerical errors. ! @seealso{eig, roots} ! @end deftypefn ! npv ! -*- texinfo -*- ! @deftypefn {Function File} {} npv (@var{r}, @var{p}, @var{i}) ! Returns the net present value of a series of irregular (i.e., not ! necessarily identical) payments @var{p} which occur at the ends of @var{n} ! consecutive periods. @var{r} specifies the one-period interest rates and ! can either be a scalar (constant rates) or a vector of the same ! length as @var{p}. ! The optional argument @var{i} may be used to specify an initial ! investment. ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). ! @seealso{irr, pv} ! @end deftypefn ! irr ! -*- texinfo -*- ! @deftypefn {Function File} {} irr (@var{p}, @var{i}) ! Return the internal rate of return of a series of payments @var{p} ! from an initial investment @var{i} (i.e., the solution of ! @code{npv (r, p) = i}. If the second argument is omitted, a value of ! 0 is used. ! @seealso{npv, pv, rate} ! @end deftypefn ! pmt ! -*- texinfo -*- ! @deftypefn {Function File} {} pmt (@var{r}, @var{n}, @var{a}, @var{l}, @var{method}) ! Return the amount of periodic payment necessary to amortize a loan ! of amount a with interest rate @var{r} in @var{n} periods. ! The optional argument @var{l} may be used to specify a terminal ! lump-sum payment. ! The optional argument @var{method} may be used to specify whether ! payments are made at the end (@var{"e"}, default) or at the beginning ! (@var{"b"}) of each period. ! @seealso{pv, nper, rate} ! @end deftypefn ! fvl ! -*- texinfo -*- ! @deftypefn {Function File} {} fvl (@var{r}, @var{n}, @var{l}) ! Return the future value at the end of @var{n} periods of an initial ! lump sum investment @var{l}, given a per-period interest rate ! @var{r}. ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). ! @end deftypefn ! rate ! -*- texinfo -*- ! @deftypefn {Function File} {} rate (@var{n}, @var{p}, @var{v}, @var{l}, @var{method}) ! Return the rate of return on an investment of present value @var{v} which ! pays @var{p} in @var{n} consecutive periods. + The optional argument @var{l} may be used to specify an additional + lump-sum payment made at the end of @var{n} periods. ! The optional string argument @var{method} may be used to specify ! whether payments are made at the end (@code{"e"}, default) or at the ! beginning (@code{"b"}) of each period. ! @seealso{pv, pmt, nper, npv} @end deftypefn ! fv -*- texinfo -*- ! @deftypefn {Function File} {} fv (@var{r}, @var{n}, @var{p}, @var{l}, @var{method}) ! Return the future value at the end of period @var{n} of an investment ! which consists of @var{n} payments of @var{p} in each period, ! assuming an interest rate @var{r}. ! ! The optional argument @var{l} may be used to specify an ! additional lump-sum payment. ! ! The optional argument @var{method} may be used to specify whether the ! payments are made at the end (@code{"e"}, default) or at the ! beginning (@code{"b"}) of each period. ! ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). @end deftypefn ! pvl -*- texinfo -*- ! @deftypefn {Function File} {} pvl (@var{r}, @var{n}, @var{p}) ! Return the present value of an investment that will pay off @var{p} ! in one lump sum at the end of @var{n} periods, given the interest ! rate @var{r}. ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). @end deftypefn ! vol -*- texinfo -*- ! @deftypefn {Function File} {} vol (@var{x}, @var{m}, @var{n}) ! Return the volatility of each column of the input matrix @var{x}. ! The number of data sets per period is given by @var{m} (e.g. the ! number of data per year if you want to compute the volatility per ! year). The optional parameter @var{n} gives the number of past ! periods used for computation, if it is omitted, a value of 1 is used. ! If @var{t} is the number of rows of @var{x}, @code{vol} returns the ! volatility from @code{n*m} to @var{t}. @end deftypefn ! pv -*- texinfo -*- ! @deftypefn {Function File} {} pv (@var{r}, @var{n}, @var{p}, @var{l}, @var{method}) ! Returns the present value of an investment that will pay off @var{p} for @var{n} ! consecutive periods, assuming an interest @var{r}. ! ! The optional argument @var{l} may be used to specify an additional ! lump-sum payment made at the end of @var{n} periods. ! ! The optional argument @var{method} may be used to specify whether ! payments are made at the end (@code{"e"}, default) or at the ! beginning (@code{"b"}) of each period. ! ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). ! @seealso{pmt, nper, rate, npv} @end deftypefn ! nper -*- texinfo -*- ! @deftypefn {Function File} {} nper (@var{r}, @var{p}, @var{a}, @var{l}, @var{method}) ! Return the number of regular payments of @var{p} necessary to ! amortize @var{a} loan of amount @var{a} and interest @var{r}. ! ! The optional argument @var{l} may be used to specify an additional ! lump-sum payment of @var{l} made at the end of the amortization time. ! ! The optional argument @var{method} may be used to specify whether ! payments are made at the end (@var{"e"}, default) or at the beginning ! (@var{"b"}) of each period. ! ! Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ! not 5 percent). ! @seealso{pv, pmt, rate, npv} @end deftypefn ! is_leap_year -*- texinfo -*- ! @deftypefn {Function File} {} is_leap_year (@var{year}) ! Return 1 if the given year is a leap year and 0 otherwise. If no ! arguments are provided, @code{is_leap_year} will use the current year. ! For example, ! @example ! @group ! is_leap_year (2000) ! @result{} 1 ! @end group ! @end example @end deftypefn ! datenum -*- texinfo -*- ! @deftypefn {Function File} {} datenum (@var{year}, @var{month}, @var{day}) ! @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}) ! @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}) ! @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}, @var{second}) ! @deftypefnx {Function File} {} datenum (@code{"date"}) ! @deftypefnx {Function File} {} datenum (@code{"date"}, @var{p}) ! Returns the specified local time as a day number, with Jan 1, 0000 ! being day 1. By this reckoning, Jan 1, 1970 is day number 719529. ! The fractional portion, @var{p}, corresponds to the portion of the ! specified day. ! Notes: @itemize @item ! Years can be negative and/or fractional. @item ! Months below 1 are considered to be January. @item ! Days of the month start at 1. @item ! Days beyond the end of the month go into subsequent months. @item ! Days before the beginning of the month go to the previous month. @item ! Days can be fractional. @end itemize ! @strong{Warning:} this function does not attempt to handle Julian ! calendars so dates before Octave 15, 1582 are wrong by as much ! as eleven days. Also be aware that only Roman Catholic countries ! adopted the calendar in 1582. It took until 1924 for it to be ! adopted everywhere. See the Wikipedia entry on the Gregorian ! calendar for more details. ! @strong{Warning:} leap seconds are ignored. A table of leap seconds ! is available on the Wikipedia entry for leap seconds. ! @seealso{date, clock, now, datestr, datevec, calendar, weekday} ! @end deftypefn ! weekday ! -*- texinfo -*- ! @deftypefn {Function File} {[@var{n}, @var{s}] =} weekday (@var{d}, [@var{form}]) ! Return the day of week as a number in @var{n} and a string in @var{s}, ! for example @code{[1, "Sun"]}, @code{[2, "Mon"]}, @dots{}, or ! @code{[7, "Sat"]}. ! ! @var{d} is a serial date number or a date string. ! ! If the string @var{form} is given and is @code{"long"}, @var{s} will ! contain the full name of the weekday; otherwise (or if @var{form} is ! @code{"short"}), @var{s} will contain the abbreviated name of the weekday. ! @seealso{datenum, datevec, eomday} ! @end deftypefn ! calendar ! -*- texinfo -*- ! @deftypefn {Function File} {} calendar (@dots{}) ! @deftypefnx {Function File} {@var{c} =} calendar () ! @deftypefnx {Function File} {@var{c} =} calendar (@var{d}) ! @deftypefnx {Function File} {@var{c} =} calendar (@var{y}, @var{m}) ! If called with no arguments, return the current monthly calendar in ! a 6x7 matrix. ! ! If @var{d} is specified, return the calendar for the month containing ! the day @var{d}, which must be a serial date number or a date string. ! ! If @var{y} and @var{m} are specified, return the calendar for year @var{y} ! and month @var{m}. ! ! If no output arguments are specified, print the calendar on the screen ! instead of returning a matrix. ! @seealso{datenum} ! @end deftypefn ! date ! -*- texinfo -*- ! @deftypefn {Function File} {} date () ! Return the date as a character string in the form DD-MMM-YY. For ! example, ! ! @example ! @group ! date () ! @result{} "20-Aug-93" ! @end group ! @end example ! @end deftypefn ! asctime ! -*- texinfo -*- ! @deftypefn {Function File} {} asctime (@var{tm_struct}) ! Convert a time structure to a string using the following five-field ! format: Thu Mar 28 08:40:14 1996. For example, ! @example ! @group ! asctime (localtime (time ())) ! @result{} "Mon Feb 17 01:15:06 1997\n" ! @end group ! @end example ! This is equivalent to @code{ctime (time ())}. ! @end deftypefn ! eomday ! -*- texinfo -*- ! @deftypefn {Function File} {@var{e} =} eomday (@var{y}, @var{m}) ! Return the last day of the month @var{m} for the year @var{y}. ! @seealso{datenum, datevec, weekday, eomdate} ! @end deftypefn ! datevec ! -*- texinfo -*- ! @deftypefn {Function File} {@var{v} =} datevec (@var{date}) ! @deftypefnx {Function File} {@var{v} =} datevec (@var{date}, @var{f}) ! @deftypefnx {Function File} {@var{v} =} datevec (@var{date}, @var{p}) ! @deftypefnx {Function File} {@var{v} =} datevec (@var{date}, @var{f}, @var{p}) ! @deftypefnx {Function File} {[@var{y}, @var{m}, @var{d}, @var{h}, @var{mi}, @var{s}] =} datevec (@dots{}) ! Convert a serial date number (see @code{datenum}) or date string (see ! @code{datestr}) into a date vector. ! A date vector is a row vector with six members, representing the year, ! month, day, hour, minute, and seconds respectively. ! @var{f} is the format string used to interpret date strings ! (see @code{datestr}). ! @var{p} is the year at the start of the century in which two-digit years ! are to be interpreted in. If not specified, it defaults to the current ! year minus 50. ! @seealso{datenum, datestr, date, clock, now} ! @end deftypefn ! clock ! -*- texinfo -*- ! @deftypefn {Function File} {} clock () ! Return a vector containing the current year, month (1-12), day (1-31), ! hour (0-23), minute (0-59) and second (0-61). For example, @example @group ! clock () ! @result{} [ 1993, 8, 20, 4, 56, 1 ] @end group @end example ! The function clock is more accurate on systems that have the ! @code{gettimeofday} function. ! @end deftypefn ! etime ! -*- texinfo -*- ! @deftypefn {Function File} {} etime (@var{t1}, @var{t2}) ! Return the difference (in seconds) between two time values returned from ! @code{clock}. For example: @example ! t0 = clock (); ! many computations later... ! elapsed_time = etime (clock (), t0); @end example ! @noindent ! will set the variable @code{elapsed_time} to the number of seconds since ! the variable @code{t0} was set. ! @seealso{tic, toc, clock, cputime} ! @end deftypefn ! ctime ! -*- texinfo -*- ! @deftypefn {Function File} {} ctime (@var{t}) ! Convert a value returned from @code{time} (or any other nonnegative ! integer), to the local time and return a string of the same form as ! @code{asctime}. The function @code{ctime (time)} is equivalent to ! @code{asctime (localtime (time))}. For example, @example @group ! ctime (time ()) ! @result{} "Mon Feb 17 01:15:06 1997\n" @end group @end example + @end deftypefn + datestr + -*- texinfo -*- + @deftypefn {Function File} {@var{str} =} datestr (@var{date}, [@var{f}, [@var{p}]]) + Format the given date/time according to the format @code{f} and return + the result in @var{str}. @var{date} is a serial date number (see + @code{datenum}) or a date vector (see @code{datevec}). The value of + @var{date} may also be a string or cell array of strings. ! @var{f} can be an integer which corresponds to one of the codes in ! the table below, or a date format string. ! @var{p} is the year at the start of the century in which two-digit years ! are to be interpreted in. If not specified, it defaults to the current ! year minus 50. ! For example, the date 730736.65149 (2000-09-07 15:38:09.0934) would be ! formatted as follows: ! @multitable @columnfractions 0.1 0.45 0.35 ! @headitem Code @tab Format @tab Example ! @item 0 @tab dd-mmm-yyyy HH:MM:SS @tab 07-Sep-2000 15:38:09 ! @item 1 @tab dd-mmm-yyyy @tab 07-Sep-2000 ! @item 2 @tab mm/dd/yy @tab 09/07/00 ! @item 3 @tab mmm @tab Sep ! @item 4 @tab m @tab S ! @item 5 @tab mm @tab 09 ! @item 6 @tab mm/dd @tab 09/07 ! @item 7 @tab dd @tab 07 ! @item 8 @tab ddd @tab Thu ! @item 9 @tab d @tab T ! @item 10 @tab yyyy @tab 2000 ! @item 11 @tab yy @tab 00 ! @item 12 @tab mmmyy @tab Sep00 ! @item 13 @tab HH:MM:SS @tab 15:38:09 ! @item 14 @tab HH:MM:SS PM @tab 03:38:09 PM ! @item 15 @tab HH:MM @tab 15:38 ! @item 16 @tab HH:MM PM @tab 03:38 PM ! @item 17 @tab QQ-YY @tab Q3-00 ! @item 18 @tab QQ @tab Q3 ! @item 19 @tab dd/mm @tab 13/03 ! @item 20 @tab dd/mm/yy @tab 13/03/95 ! @item 21 @tab mmm.dd.yyyy HH:MM:SS @tab Mar.03.1962 13:53:06 ! @item 22 @tab mmm.dd.yyyy @tab Mar.03.1962 ! @item 23 @tab mm/dd/yyyy @tab 03/13/1962 ! @item 24 @tab dd/mm/yyyy @tab 12/03/1962 ! @item 25 @tab yy/mm/dd @tab 95/03/13 ! @item 26 @tab yyyy/mm/dd @tab 1995/03/13 ! @item 27 @tab QQ-YYYY @tab Q4-2132 ! @item 28 @tab mmmyyyy @tab Mar2047 ! @item 29 @tab yyyymmdd @tab 20470313 ! @item 30 @tab yyyymmddTHHMMSS @tab 20470313T132603 ! @item 31 @tab yyyy-mm-dd HH:MM:SS @tab 1047-03-13 13:26:03 ! @end multitable ! If @var{f} is a format string, the following symbols are recognised: ! @multitable @columnfractions 0.1 0.7 0.2 ! @headitem Symbol @tab Meaning @tab Example ! @item yyyy @tab Full year @tab 2005 ! @item yy @tab Two-digit year @tab 2005 ! @item mmmm @tab Full month name @tab December ! @item mmm @tab Abbreviated month name @tab Dec ! @item mm @tab Numeric month number (padded with zeros) @tab 01, 08, 12 ! @item m @tab First letter of month name (capitalized) @tab D ! @item dddd @tab Full weekday name @tab Sunday ! @item ddd @tab Abbreviated weekday name @tab Sun ! @item dd @tab Numeric day of month (padded with zeros) @tab 11 ! @item d @tab First letter of weekday name (capitalized) @tab S ! @item HH @tab Hour of day, padded with zeros if PM is set @tab 09:00 ! @item @tab and not padded with zeros otherwise @tab 9:00 AM ! @item MM @tab Minute of hour (padded with zeros) @tab 10:05 ! @item SS @tab Second of minute (padded with zeros) @tab 10:05:03 ! @item PM @tab Use 12-hour time format @tab 11:30 PM ! @end multitable ! If @var{f} is not specified or is @code{-1}, then use 0, 1 or 16, ! depending on whether the date portion or the time portion of ! @var{date} is empty. ! If @var{p} is nor specified, it defaults to the current year minus 50. ! If a matrix or cell array of dates is given, a vector of date strings is ! returned. ! @seealso{datenum, datevec, date, clock, now, datetick} @end deftypefn ! now -*- texinfo -*- ! @deftypefn {Function File} {t =} now () ! Returns the current local time as the number of days since Jan 1, 0000. ! By this reckoning, Jan 1, 1970 is day number 719529. ! The integral part, @code{floor (now)} corresponds to 00:00:00 today. ! The fractional part, @code{rem (now, 1)} corresponds to the current ! time on Jan 1, 0000. ! The returned value is also called a "serial date number" ! (see @code{datenum}). ! @seealso{clock, date, datenum} @end deftypefn diff -cNr octave-3.0.3/scripts/general/accumarray.m octave-3.0.4/scripts/general/accumarray.m *** octave-3.0.3/scripts/general/accumarray.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/general/accumarray.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 35,41 **** ## column vector and returns a scalar. The result of the function should not ## depend on the order of the subscripts. ## ! ## The elements of the returned array that have no subscripts assoicated with ## them are set to zero. Defining @var{fillval} to some other value allows ## these values to be defined. ## --- 35,41 ---- ## column vector and returns a scalar. The result of the function should not ## depend on the order of the subscripts. ## ! ## The elements of the returned array that have no subscripts associated with ## them are set to zero. Defining @var{fillval} to some other value allows ## these values to be defined. ## diff -cNr octave-3.0.3/scripts/general/postpad.m octave-3.0.4/scripts/general/postpad.m *** octave-3.0.3/scripts/general/postpad.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/general/postpad.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 19,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} postpad (@var{x}, @var{l}, @var{c}) ! ## See prepad. ## @end deftypefn ## Author: Tony Richardson --- 19,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} postpad (@var{x}, @var{l}, @var{c}) ! ## @seealso{prepad, resize} ## @end deftypefn ## Author: Tony Richardson diff -cNr octave-3.0.3/scripts/general/prepad.m octave-3.0.4/scripts/general/prepad.m *** octave-3.0.3/scripts/general/prepad.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/general/prepad.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 33,38 **** --- 33,39 ---- ## ## If the optional @var{dim} argument is given, then operate along this ## dimension. + ## @seealso{postpad} ## @end deftypefn ## Author: Tony Richardson diff -cNr octave-3.0.3/scripts/general/sortrows.m octave-3.0.4/scripts/general/sortrows.m *** octave-3.0.3/scripts/general/sortrows.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/general/sortrows.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 21,27 **** ## Sort the rows of the matrix @var{a} according to the order of the ## columns specified in @var{c}. If @var{c} is omitted, a ## lexicographical sort is used. By default ascending order is used ! ## however if elements of @var{c} are negative then the corrosponding ## column is sorted in descending order. ## @end deftypefn --- 21,27 ---- ## Sort the rows of the matrix @var{a} according to the order of the ## columns specified in @var{c}. If @var{c} is omitted, a ## lexicographical sort is used. By default ascending order is used ! ## however if elements of @var{c} are negative then the corresponding ## column is sorted in descending order. ## @end deftypefn diff -cNr octave-3.0.3/scripts/gethelp.cc octave-3.0.4/scripts/gethelp.cc *** octave-3.0.3/scripts/gethelp.cc 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/gethelp.cc 2009-02-23 21:09:00.000000000 +0100 *************** *** 24,31 **** #define __USE_STD_IOSTREAM #endif ! #include #include #ifndef NPOS #define NPOS std::string::npos --- 24,33 ---- #define __USE_STD_IOSTREAM #endif ! #include ! #include + #include #ifndef NPOS #define NPOS std::string::npos diff -cNr octave-3.0.3/scripts/image/gmap40.m octave-3.0.4/scripts/image/gmap40.m *** octave-3.0.3/scripts/image/gmap40.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/image/gmap40.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 19,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} gmap40 (@var{n}) ## Create a color colormap. The colormap is red, green, blue, yellow, ! ## magneta and cyan. These are the colors that are allowed with patch ## objects using gnuplot 4.0, and so this colormap function is specially ## designed for users of gnuplot 4.0. The argument @var{n} should be ## a scalar. If it is omitted, a length of 6 is assumed. Larger values --- 19,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} gmap40 (@var{n}) ## Create a color colormap. The colormap is red, green, blue, yellow, ! ## magenta and cyan. These are the colors that are allowed with patch ## objects using gnuplot 4.0, and so this colormap function is specially ## designed for users of gnuplot 4.0. The argument @var{n} should be ## a scalar. If it is omitted, a length of 6 is assumed. Larger values diff -cNr octave-3.0.3/scripts/image/image.m octave-3.0.4/scripts/image/image.m *** octave-3.0.3/scripts/image/image.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/image/image.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 22,28 **** ## @deftypefnx {Function File} {} image (@var{x}, @var{y}, @var{img}) ## Display a matrix as a color image. The elements of @var{x} are indices ## into the current colormap, and the colormap will be scaled so that the ! ## extremes of @var{x} are mapped to the extremes of teh colormap. ## ## It first tries to use @code{gnuplot}, then @code{display} from ## @code{ImageMagick}, then @code{xv}, and then @code{xloadimage}. --- 22,28 ---- ## @deftypefnx {Function File} {} image (@var{x}, @var{y}, @var{img}) ## Display a matrix as a color image. The elements of @var{x} are indices ## into the current colormap, and the colormap will be scaled so that the ! ## extremes of @var{x} are mapped to the extremes of the colormap. ## ## It first tries to use @code{gnuplot}, then @code{display} from ## @code{ImageMagick}, then @code{xv}, and then @code{xloadimage}. diff -cNr octave-3.0.3/scripts/miscellaneous/fileparts.m octave-3.0.4/scripts/miscellaneous/fileparts.m *** octave-3.0.3/scripts/miscellaneous/fileparts.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/miscellaneous/fileparts.m 2009-02-18 08:25:54.000000000 +0100 *************** *** 27,41 **** if (nargin == 1) if (ischar (filename)) ! ds = rindex (filename, filesep); es = rindex (filename, "."); ## These can be the same if they are both 0 (no dir or ext). if (es <= ds) es = length(filename)+1; endif ! directory = filename(1:ds-1); name = filename(ds+1:es-1); ! if (es > 0) extension = filename(es:end); else extension = ""; --- 27,51 ---- if (nargin == 1) if (ischar (filename)) ! if !( findstr (octave_config_info('canonical_host_type'), 'msvc') || findstr (octave_config_info('canonical_host_type'), 'mingw') ) ! ds = rindex (filename, filesep); ! else ! ds = max (rindex (filename, "\\"),rindex (filename, "/")); ! endif es = rindex (filename, "."); ## These can be the same if they are both 0 (no dir or ext). if (es <= ds) es = length(filename)+1; endif ! if (ds == 0) ! directory = ""; ! elseif (ds == 1) ! directory = filename(1); ! else ! directory = filename(1:ds-1); ! endif name = filename(ds+1:es-1); ! if (es > 0 && es <= length (filename)) extension = filename(es:end); else extension = ""; *************** *** 49,51 **** --- 59,97 ---- endif endfunction + + %!test + %! [d, n, e] = fileparts ("file"); + %! assert (strcmp (d, "") && strcmp (n, "file") && strcmp (e, "")); + + %!test + %! [d, n, e] = fileparts ("file.ext"); + %! assert (strcmp (d, "") && strcmp (n, "file") && strcmp (e, ".ext")); + + %!test + %! [d, n, e] = fileparts ([filesep "file.ext"]); + %! assert (strcmp (d, filesep) && strcmp (n, "file") && strcmp (e, ".ext")); + + %!test + %! [d, n, e] = fileparts (["dir" filesep "file.ext"]); + %! assert (strcmp (d, "dir") && strcmp (n, "file") && strcmp (e, ".ext")); + + %!test + %! [d, n, e] = fileparts (["." filesep "file.ext"]); + %! assert (strcmp (d, ".") && strcmp (n, "file") && strcmp (e, ".ext")); + + %!test + %! [d, n, e] = fileparts (["d1" filesep "d2" filesep "file.ext"]); + %! assert (strcmp (d, ["d1" filesep "d2"]) && strcmp (n, "file") && strcmp (e, ".ext")); + + %!test + %! [d, n, e] = fileparts ([filesep "d1" filesep "d2" filesep "file.ext"]); + %! assert (strcmp (d, [filesep "d1" filesep "d2"]) && strcmp (n, "file") && strcmp (e, ".ext")); + + %!test + %! [d, n, e] = fileparts ([filesep ".ext"]); + %! assert (strcmp (d, filesep) && strcmp (n, char (zeros (1, 0))) && strcmp (e, ".ext")); + + %!test + %! [d, n, e] = fileparts (".ext"); + %! assert (strcmp (d, "") && strcmp (n, char (zeros (1, 0))) && strcmp (e, ".ext")); diff -cNr octave-3.0.3/scripts/miscellaneous/unpack.m octave-3.0.4/scripts/miscellaneous/unpack.m *** octave-3.0.3/scripts/miscellaneous/unpack.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/miscellaneous/unpack.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 97,102 **** --- 97,108 ---- files = {files{:} tmpfiles{:}}; endfor + ## Return output if requested. + if (nargout > 0) + filelist = files; + endif + + return else error ("unpack: invalid input file class, %s", class(file)); endif diff -cNr octave-3.0.3/scripts/miscellaneous/warning_ids.m octave-3.0.4/scripts/miscellaneous/warning_ids.m *** octave-3.0.3/scripts/miscellaneous/warning_ids.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/miscellaneous/warning_ids.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 202,208 **** ## automatically in literal matrices. ## ## @item Octave:single-quote-string ! ## Print warning if a signle quote character is used to introduce a ## string constant. ## ## @item Octave:str-to-num --- 202,208 ---- ## automatically in literal matrices. ## ## @item Octave:single-quote-string ! ## Print warning if a single quote character is used to introduce a ## string constant. ## ## @item Octave:str-to-num diff -cNr octave-3.0.3/scripts/optimization/sqp.m octave-3.0.4/scripts/optimization/sqp.m *** octave-3.0.3/scripts/optimization/sqp.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/optimization/sqp.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 17,23 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{x}, @var{obj}, @var{info}, @var{iter}, @var{nf}, @var{lambda}] =} sqp (@var{x}, @var{phi}, @var{g}, @var{h}) ## Solve the nonlinear program ## @iftex ## @tex --- 17,23 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{x}, @var{obj}, @var{info}, @var{iter}, @var{nf}, @var{lambda}] =} sqp (@var{x}, @var{phi}, @var{g}, @var{h}, @var{lb}, @var{ub}, @var{maxiter}, @var{tolerance}) ## Solve the nonlinear program ## @iftex ## @tex *************** *** 38,44 **** ## @iftex ## @tex ## $$ ! ## g(x) = 0 \qquad h(x) \geq 0 ## $$ ## @end tex ## @end iftex --- 38,44 ---- ## @iftex ## @tex ## $$ ! ## g(x) = 0 \qquad h(x) \geq 0 \qquad lb \leq x \leq ub ## $$ ## @end tex ## @end iftex *************** *** 47,52 **** --- 47,53 ---- ## @example ## g(x) = 0 ## h(x) >= 0 + ## lb <= x <= ub ## @end example ## @end ifnottex ## *************** *** 131,136 **** --- 132,148 ---- ## @end example ## @end ifnottex ## + ## The fifth and sixth arguments are vectors containing lower and upper bounds + ## on @var{x}. These must be consistent with equality and inequality + ## constraints @var{g} and @var{h}. If the bounds are not specified, or are + ## empty, they are set to -@var{realmax} and @var{realmax} by default. + ## + ## The seventh argument is max. number of iterations. If not specified, + ## the default value is 100. + ## + ## The eighth argument is tolerance for stopping criteria. If not specified, + ## the default value is @var{eps}. + ## ## Here is an example of calling @code{sqp}: ## ## @example diff -cNr octave-3.0.3/scripts/pkg/pkg.m octave-3.0.4/scripts/pkg/pkg.m *** octave-3.0.3/scripts/pkg/pkg.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/pkg/pkg.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 1228,1234 **** if (isempty (getenv ("RANLIB"))) flags = strcat (flags, " RANLIB=\"", octave_config_info ("RANLIB"), "\""); endif ! [status, output] = shell (strcat ("cd ", src, "; ./configure --prefix=\"", desc.dir, "\"", flags)); if (status != 0) rm_rf (desc.dir); --- 1228,1234 ---- if (isempty (getenv ("RANLIB"))) flags = strcat (flags, " RANLIB=\"", octave_config_info ("RANLIB"), "\""); endif ! [status, output] = shell (strcat ("cd '", src, "'; ./configure --prefix=\"", desc.dir, "\"", flags)); if (status != 0) rm_rf (desc.dir); *************** *** 1242,1248 **** ## make if (exist (fullfile (src, "Makefile"), "file")) [status, output] = shell (strcat ("export INSTALLDIR=\"", desc.dir, ! "\"; make -C ", src)); if (status != 0) rm_rf (desc.dir); error ("'make' returned the following error: %s", output); --- 1242,1248 ---- ## make if (exist (fullfile (src, "Makefile"), "file")) [status, output] = shell (strcat ("export INSTALLDIR=\"", desc.dir, ! "\"; make -C '", src, "'")); if (status != 0) rm_rf (desc.dir); error ("'make' returned the following error: %s", output); *************** *** 1281,1301 **** m = dir (fullfile (src, "*.m")); oct = dir (fullfile (src, "*.oct")); mex = dir (fullfile (src, "*.mex")); ! archdependent = ""; ! archindependent = ""; ! filenames = ""; ! if (length (m) > 0) ! filenames = sprintf (fullfile (src, "%s "), m.name); ! endif ! if (length (oct) > 0) ! filenames = strcat (filenames, " ", ! sprintf (fullfile (src, "%s "), oct.name)); ! endif ! if (length (mex) > 0) ! filenames = strcat (filenames, " ", ! sprintf (fullfile (src, "%s "), mex.name)); ! endif ! filenames = split_by (filenames, " "); endif ## Split into architecture dependent and independent files --- 1281,1290 ---- m = dir (fullfile (src, "*.m")); oct = dir (fullfile (src, "*.oct")); mex = dir (fullfile (src, "*.mex")); ! ! filenames = cellfun (@(x) fullfile (src, x), ! {m.name, oct.name, mex.name}, ! "UniformOutput", false); endif ## Split into architecture dependent and independent files diff -cNr octave-3.0.3/scripts/plot/area.m octave-3.0.4/scripts/plot/area.m *** octave-3.0.3/scripts/plot/area.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/area.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 23,34 **** ## @deftypefnx {Function File} {} area (@var{y}, @dots{}) ## @deftypefnx {Function File} {} area (@var{h}, @dots{}) ## @deftypefnx {Function File} {@var{h} =} area (@dots{}) ! ## Area plot of cummulative sum of the columns of @var{y}. This shows the ## contributions of a value to a sum, and is functionally similar to ## @code{plot (@var{x}, cumsum (@var{y}, 2))}, except that the area under ## the curve is shaded. ## ! ## If the @var{x} argument is ommitted it is assumed to be given by ## @code{1 : rows (@var{y})}. A value @var{lvl} can be defined that determines ## where the base level of the shading under the curve should be defined. ## --- 23,34 ---- ## @deftypefnx {Function File} {} area (@var{y}, @dots{}) ## @deftypefnx {Function File} {} area (@var{h}, @dots{}) ## @deftypefnx {Function File} {@var{h} =} area (@dots{}) ! ## Area plot of cumulative sum of the columns of @var{y}. This shows the ## contributions of a value to a sum, and is functionally similar to ## @code{plot (@var{x}, cumsum (@var{y}, 2))}, except that the area under ## the curve is shaded. ## ! ## If the @var{x} argument is omitted it is assumed to be given by ## @code{1 : rows (@var{y})}. A value @var{lvl} can be defined that determines ## where the base level of the shading under the curve should be defined. ## diff -cNr octave-3.0.3/scripts/plot/clf.m octave-3.0.4/scripts/plot/clf.m *** octave-3.0.3/scripts/plot/clf.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/clf.m 2009-03-25 15:10:10.000000000 +0100 *************** *** 18,41 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} clf () ! ## Clear the current figure. ! ## @seealso{close, delete} ## @end deftypefn ## Author: jwe ! function clf () ! if (nargin == 0) ! cf = gcf (); ! set (cf, "currentaxes", []); ! for k = get (cf, "children") ! if (ishandle (k)) ! delete (k); ! endif ! endfor ! else print_usage (); endif endfunction --- 18,81 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} clf () ! ## @deftypefnx {Function File} {} clf ("reset") ! ## @deftypefnx {Function File} {} clf (@var{hfig}) ! ## @deftypefnx {Function File} {} clf (@var{hfig}, "reset") ! ## @deftypefnx {Function File} {@var{hfig} =} clf (@dots{}) ! ## Delete the children of the current figure with visible handles. ! ## If @var{hfig} is specified and is an figure object handle, operate on it ! ## instead of the current figure. If the optional argument @code{"reset"} ! ## is specified, also delete the figure's children with hidden handles. ! ## @seealso{cla, close, delete} ## @end deftypefn ## Author: jwe ! function clf (varargin) ! if (nargin > 2) print_usage (); + elseif (nargin > 1) + if (isfigure (varargin{1}) && ischar (varargin{2}) + && strcmpi (varargin{2}, "reset")) + oldfig = gcf; + hfig = varargin{1}; + do_reset = true; + else + print_usage (); + endif + elseif (nargin == 1) + if (isfigure (varargin{1})) + oldfig = gcf; + hfig = varargin{1}; + do_reset = false; + elseif (ischar (varargin{1}) && strcmpi (varargin{1}, "reset")) + hfig = gcf; + oldfig = hfig; + do_reset = true; + else + print_usage (); + endif + else + hfig = gcf; + oldfig = hfig; + do_reset = false; + end + + if (do_reset) + ## Select all the children, including the one with hidden handles. + hc = allchild (hfig); + reset (hfig) + else + ## Select only the chilren with visible handles. + hc = get (hfig, "children"); endif + set (hfig, "currentaxes", []); + ## Delete the children. + for k = get (hfig, "children") + if (ishandle (k)) + delete (k); + endif + endfor endfunction diff -cNr octave-3.0.3/scripts/plot/contourc.m octave-3.0.4/scripts/plot/contourc.m *** octave-3.0.3/scripts/plot/contourc.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/contourc.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{c}, @var{lev}] =} contourc (@var{x}, @var{y}, @var{z}, @var{vn}) ! ## Compute isolines (countour lines) of the matrix @var{z}. ## Parameters @var{x}, @var{y} and @var{vn} are optional. ## ## The return value @var{lev} is a vector of the contour levels. --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{c}, @var{lev}] =} contourc (@var{x}, @var{y}, @var{z}, @var{vn}) ! ## Compute isolines (contour lines) of the matrix @var{z}. ## Parameters @var{x}, @var{y} and @var{vn} are optional. ## ## The return value @var{lev} is a vector of the contour levels. diff -cNr octave-3.0.3/scripts/plot/contourf.m octave-3.0.4/scripts/plot/contourf.m *** octave-3.0.3/scripts/plot/contourf.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/contourf.m 2009-02-18 08:25:54.000000000 +0100 *************** *** 227,233 **** arg(1:4) = []; endif ! if (!isvector (X) || !isvector (Y) && any (size (X) != size (Y))) error ("patch: X and Y must be of same size") endif --- 227,233 ---- arg(1:4) = []; endif ! if (! ((isvector (X) && isvector (Y)) || size_equal (X, Y))) error ("patch: X and Y must be of same size") endif diff -cNr octave-3.0.3/scripts/plot/__errplot__.m octave-3.0.4/scripts/plot/__errplot__.m *** octave-3.0.3/scripts/plot/__errplot__.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/__errplot__.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 35,55 **** for i = 1:nplots ## Set the plot type based on linestyle. ! if (fmt.linestyle == "~") ! ifmt = "yerr"; ! elseif (fmt.linestyle == ">") ! ifmt = "xerr"; ! elseif (fmt.linestyle == "~>") ! ifmt = "xyerr"; ! elseif (fmt.linestyle == "#") ! ifmt = "box"; ! elseif (fmt.linestyle == "#~") ! ifmt = "boxy"; ! elseif (fmt.linestyle == "#~>") ! ifmt = "boxxy"; ! else ! print_usage (); ! endif h = __line__ (p); --- 35,56 ---- for i = 1:nplots ## Set the plot type based on linestyle. ! switch (fmt.linestyle) ! case "~" ! ifmt = "yerr"; ! case ">" ! ifmt = "xerr"; ! case "~>" ! ifmt = "xyerr"; ! case "#" ! ifmt = "box"; ! case "#~" ! ifmt = "boxy"; ! case "#~>" ! ifmt = "boxxy"; ! otherwise ! print_usage (); ! endswitch h = __line__ (p); diff -cNr octave-3.0.3/scripts/plot/fplot.m octave-3.0.4/scripts/plot/fplot.m *** octave-3.0.3/scripts/plot/fplot.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/fplot.m 2009-02-24 07:48:52.000000000 +0100 *************** *** 40,46 **** ## Author: Paul Kienzle function fplot (fn, limits, n, linespec) ! if (nargin < 2 || nargin > 3) print_usage (); endif --- 40,46 ---- ## Author: Paul Kienzle function fplot (fn, limits, n, linespec) ! if (nargin < 2 || nargin > 4) print_usage (); endif *************** *** 98,112 **** y = feval (fn, x); endif - if (length (limits) > 2) - axis (limits); - endif - if (have_linespec) plot (x, y, linespec); else plot (x, y); endif if (isvector(y)) legend (nam); else --- 98,113 ---- y = feval (fn, x); endif if (have_linespec) plot (x, y, linespec); else plot (x, y); endif + + if (length (limits) > 2) + axis (limits); + endif + if (isvector(y)) legend (nam); else diff -cNr octave-3.0.3/scripts/plot/grid.m octave-3.0.4/scripts/plot/grid.m *** octave-3.0.3/scripts/plot/grid.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/grid.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 20,33 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} grid (@var{arg}) ## @deftypefnx {Function File} {} grid ("minor", @var{arg2}) ## Force the display of a grid on the plot. ! ## The argument may be either @code{"on"} or @code{"off"}. If it is ! ## omitted, the current grid state is toggled. ## ## If @var{arg} is @code{"minor"} then the minor grid is toggled. When ## using a minor grid a second argument @var{arg2} is allowed, which can ## be either @code{"on"} or @code{"off"} to explicitly set the state of ## the minor grid. ## @seealso{plot} ## @end deftypefn --- 20,37 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} grid (@var{arg}) ## @deftypefnx {Function File} {} grid ("minor", @var{arg2}) + ## @deftypefnx {Function File} {} grid (@var{hax}, @dots{}) ## Force the display of a grid on the plot. ! ## The argument may be either @code{"on"}, or @code{"off"}. ! ## If it is omitted, the current grid state is toggled. ## ## If @var{arg} is @code{"minor"} then the minor grid is toggled. When ## using a minor grid a second argument @var{arg2} is allowed, which can ## be either @code{"on"} or @code{"off"} to explicitly set the state of ## the minor grid. + ## + ## If the first argument is an axis handle, @var{hax}, operate on the + ## specified axis object. ## @seealso{plot} ## @end deftypefn *************** *** 42,48 **** [ax, varargin, nargs] = __plt_get_axis_arg__ ("grid", varargin{:}); ! if (nargs > 1) print_usage (); elseif (nargs == 0) grid_on = ! grid_on; --- 46,52 ---- [ax, varargin, nargs] = __plt_get_axis_arg__ ("grid", varargin{:}); ! if (nargs > 2) print_usage (); elseif (nargs == 0) grid_on = ! grid_on; *************** *** 54,63 **** elseif (strcmp ("on", x)) grid_on = true; elseif (strcmp ("minor", x)) ! minor_on = ! minor_on; ! if (minor_on) ! grid_on = true; ! endif else print_usage (); endif --- 58,79 ---- elseif (strcmp ("on", x)) grid_on = true; elseif (strcmp ("minor", x)) ! if (nargs == 2) ! x2 = varargin{2}; ! if (strcmpi (x2, "on")) ! minor_on = true; ! grid_on=true; ! elseif (strcmpi (x2, "off")) ! minor_on = false; ! else ! print_usage (); ! endif ! else ! minor_on = ! minor_on ! if (minor_on) ! grid_on = true; ! endif ! endif else print_usage (); endif diff -cNr octave-3.0.3/scripts/plot/hist.m octave-3.0.4/scripts/plot/hist.m *** octave-3.0.3/scripts/plot/hist.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/hist.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 23,29 **** ## ## With one vector input argument, plot a histogram of the values with ## 10 bins. The range of the histogram bins is determined by the range ! ## of the data. ## ## Given a second scalar argument, use that as the number of bins. ## --- 23,30 ---- ## ## With one vector input argument, plot a histogram of the values with ## 10 bins. The range of the histogram bins is determined by the range ! ## of the data. With one matrix input argument, plot a hystogram where ! ## each bin contains a bar per input column. ## ## Given a second scalar argument, use that as the number of bins. ## *************** *** 59,65 **** max_val = max (y(:)); min_val = min (y(:)); else ! error ("hist: first argument must be a vector"); endif iarg = 1; --- 60,66 ---- max_val = max (y(:)); min_val = min (y(:)); else ! error ("hist: first argument must be real valued"); endif iarg = 1; diff -cNr octave-3.0.3/scripts/plot/hold.m octave-3.0.4/scripts/plot/hold.m *** octave-3.0.3/scripts/plot/hold.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/hold.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 69,74 **** --- 69,77 ---- endif if (isfigure (h)) + if (isempty (get (h, "currentaxes"))) + set (h, "currentaxes", __go_axes__ (h)) + endif axes_objs = findobj (h, "type", "axes"); h = [h; axes_objs]; endif diff -cNr octave-3.0.3/scripts/plot/legend.m octave-3.0.4/scripts/plot/legend.m *** octave-3.0.3/scripts/plot/legend.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/legend.m 2009-02-25 08:58:43.000000000 +0100 *************** *** 201,206 **** --- 201,212 ---- %!demo %! close all; + %! plot(1:10, 1:10, 'b', 1:10, fliplr(1:10), 'g'); + %! title("incline is blue and decline is green"); + %! legend({"I'm blue", "I'm green"}, "location", "east") + + %!demo + %! close all; %! plot(1:10, 1:10); %! title("a very long label can sometimes cause problems"); %! legend({"hello world"}, "location", "northeastoutside") *************** *** 208,215 **** %!demo %! close all; %! labels = {}; %! for i = 1:5 ! %! plot(1:100, i + rand(100,1)); hold on; %! labels = {labels{:}, strcat("Signal ", num2str(i))}; %! endfor; hold off; %! title("Signals with random offset and uniform noise") --- 214,222 ---- %!demo %! close all; %! labels = {}; + %! color = 'bgryk'; %! for i = 1:5 ! %! plot(1:100, i + rand(100,1), color(i)); hold on; %! labels = {labels{:}, strcat("Signal ", num2str(i))}; %! endfor; hold off; %! title("Signals with random offset and uniform noise") diff -cNr octave-3.0.3/scripts/plot/pie.m octave-3.0.4/scripts/plot/pie.m *** octave-3.0.3/scripts/plot/pie.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/pie.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 24,30 **** ## @deftypefnx {Function File} {@var{h} =} pie (@dots{}); ## Produce a pie chart. ## ! ## Called with a single vector arrgument, produces a pie chart of the ## elements in @var{x}, with the size of the slice determined by percentage ## size of the values of @var{x}. ## --- 24,30 ---- ## @deftypefnx {Function File} {@var{h} =} pie (@dots{}); ## Produce a pie chart. ## ! ## Called with a single vector argument, produces a pie chart of the ## elements in @var{x}, with the size of the slice determined by percentage ## size of the values of @var{x}. ## diff -cNr octave-3.0.3/scripts/plot/subplot.m octave-3.0.4/scripts/plot/subplot.m *** octave-3.0.3/scripts/plot/subplot.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/plot/subplot.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 117,123 **** set (cf, "nextplot", "add"); found = false; ! for child = get (cf, "children") ## Check whether this child is still valid; this might not be the ## case anymore due to the deletion of previous children (due to ## "deletefcn" callback or for legends/colorbars that are deleted --- 117,124 ---- set (cf, "nextplot", "add"); found = false; ! kids = get (cf, "children"); ! for child = reshape (kids, 1, numel (kids)) ## Check whether this child is still valid; this might not be the ## case anymore due to the deletion of previous children (due to ## "deletefcn" callback or for legends/colorbars that are deleted diff -cNr octave-3.0.3/scripts/polynomial/conv.m octave-3.0.4/scripts/polynomial/conv.m *** octave-3.0.3/scripts/polynomial/conv.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/polynomial/conv.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 47,75 **** ly = la + lb - 1; - ## Ensure that both vectors are row vectors. - if (rows (a) > 1) - a = reshape (a, 1, la); - endif - if (rows (b) > 1) - b = reshape (b, 1, lb); - endif - ## Use the shortest vector as the coefficent vector to filter. if (la < lb) if (ly > lb) ! x = [b, (zeros (1, ly - lb))]; else x = b; endif y = filter (a, 1, x); else if(ly > la) ! x = [a, (zeros (1, ly - la))]; else x = a; endif y = filter (b, 1, x); endif endfunction --- 47,108 ---- ly = la + lb - 1; ## Use the shortest vector as the coefficent vector to filter. + ## Preserve the row/column orientation of the longer input. if (la < lb) if (ly > lb) ! if (size (b, 1) <= size (b, 2)) ! x = [b, (zeros (1, ly - lb))]; ! else ! x = [b; (zeros (ly - lb, 1))]; ! endif else x = b; endif y = filter (a, 1, x); else if(ly > la) ! if (size (a, 1) <= size (a, 2)) ! x = [a, (zeros (1, ly - la))]; ! else ! x = [a; (zeros (ly - la, 1))]; ! endif else x = a; endif y = filter (b, 1, x); endif + %!test + %! a = 1:10; + %! b = 1:3; + %! c = conv (a, b); + %! assert (size(c), [1, numel(a)+numel(b)-1]) + %!test + %! a = (1:10).'; + %! b = 1:3; + %! c = conv (a, b); + %! assert (size(c), [numel(a)+numel(b)-1, 1]) + %!test + %! a = 1:10; + %! b = (1:3).'; + %! c = conv (a, b); + %! assert (size(c), [1, numel(a)+numel(b)-1]) + + %!test + %! b = 1:10; + %! a = 1:3; + %! c = conv (a, b); + %! assert (size(c), [1, numel(a)+numel(b)-1]) + %!test + %! b = (1:10).'; + %! a = 1:3; + %! c = conv (a, b); + %! assert (size(c), [numel(a)+numel(b)-1, 1]) + %!test + %! b = 1:10; + %! a = (1:3).'; + %! c = conv (a, b); + %! assert (size(c), [1, numel(a)+numel(b)-1]) + endfunction diff -cNr octave-3.0.3/scripts/polynomial/deconv.m octave-3.0.4/scripts/polynomial/deconv.m *** octave-3.0.3/scripts/polynomial/deconv.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/polynomial/deconv.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 49,54 **** --- 49,59 ---- lb = ly - la + 1; + ## Ensure A is oriented as Y. + if (diff (size (y)(1:2)) * diff (size (a)(1:2)) < 0) + a = permute (a, [2, 1]); + endif + if (ly > la) b = filter (y, a, [1, (zeros (1, ly - la))]); elseif (ly == la) *************** *** 61,67 **** if (ly == lc) r = y - conv (a, b); else ! r = [(zeros (1, lc - ly)), y] - conv (a, b); endif endfunction --- 66,81 ---- if (ly == lc) r = y - conv (a, b); else ! ## Respect the orientation of Y" ! if (size (y, 1) <= size (y, 2)) ! r = [(zeros (1, lc - ly)), y] - conv (a, b); ! else ! r = [(zeros (lc - ly, 1)); y] - conv (a, b); ! endif ! if (ly < la) ! ## Trim the remainder is equal to the length of Y. ! r = r(end-(length(y)-1):end); ! endif endif endfunction diff -cNr octave-3.0.3/scripts/polynomial/polyfit.m octave-3.0.4/scripts/polynomial/polyfit.m *** octave-3.0.3/scripts/polynomial/polyfit.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/polynomial/polyfit.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 18,47 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{p}, @var{s}] =} polyfit (@var{x}, @var{y}, @var{n}) ## Return the coefficients of a polynomial @var{p}(@var{x}) of degree ! ## @var{n} that minimizes ! ## @iftex ! ## @tex ! ## $$ ! ## \sum_{i=1}^N (p(x_i) - y_i)^2 ! ## $$ ! ## @end tex ! ## @end iftex ! ## @ifinfo ! ## @code{sumsq (p(x(i)) - y(i))}, ! ## @end ifinfo ! ## to best fit the data in the least squares sense. ## ## The polynomial coefficients are returned in a row vector. ## ! ## If two output arguments are requested, the second is a structure ! ## containing the following fields: ## ! ## @table @code ## @item R ! ## The Cholesky factor of the Vandermonde matrix used to compute the ! ## polynomial coefficients. ## @item X ## The Vandermonde matrix used to compute the polynomial coefficients. ## @item df --- 18,34 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{p}, @var{s}, @var{mu}] =} polyfit (@var{x}, @var{y}, @var{n}) ## Return the coefficients of a polynomial @var{p}(@var{x}) of degree ! ## @var{n} that minimizes the least-squares-error of the fit. ## ## The polynomial coefficients are returned in a row vector. ## ! ## The second output is a structure containing the following fields: ## ! ## @table @samp ## @item R ! ## Triangular factor R from the QR decomposition. ## @item X ## The Vandermonde matrix used to compute the polynomial coefficients. ## @item df *************** *** 51,56 **** --- 38,54 ---- ## @item yf ## The values of the polynomial for each value of @var{x}. ## @end table + ## + ## The second output may be used by @code{polyval} to calculate the + ## statistical error limits of the predicted values. + ## + ## When the third output, @var{mu}, is present the + ## coefficients, @var{p}, are associated with a polynomial in + ## @var{xhat} = (@var{x}-@var{mu}(1))/@var{mu}(2). + ## Where @var{mu}(1) = mean (@var{x}), and @var{mu}(2) = std (@var{x}). + ## This linear transformation of @var{x} improves the numerical + ## stability of the fit. + ## @seealso{polyval, polyconf, residue} ## @end deftypefn ## Author: KH *************** *** 59,70 **** function [p, s, mu] = polyfit (x, y, n) ! ! if (nargin != 3) print_usage (); endif ! if (! (isvector (x) && isvector (y) && size_equal (x, y))) error ("polyfit: x and y must be vectors of the same size"); endif --- 57,73 ---- function [p, s, mu] = polyfit (x, y, n) ! if (nargin < 3 || nargin > 4) print_usage (); endif ! if (nargout > 2) ! ## Normalized the x values. ! mu = [mean(x), std(x)]; ! x = (x - mu(1)) / mu(2); ! endif ! ! if (! size_equal (x, y)) error ("polyfit: x and y must be vectors of the same size"); endif *************** *** 74,90 **** y_is_row_vector = (rows (y) == 1); ! l = length (x); x = reshape (x, l, 1); y = reshape (y, l, 1); ! X = (x * ones (1, n+1)) .^ (ones (l, 1) * (n : -1 : 0)); ! p = X \ y; if (nargout > 1) ! ! yf = X*p; if (y_is_row_vector) s.yf = yf.'; --- 77,97 ---- y_is_row_vector = (rows (y) == 1); ! ## Reshape x & y into column vectors. ! l = numel (x); x = reshape (x, l, 1); y = reshape (y, l, 1); ! ## Construct the Vandermonde matrix. ! v = (x * ones (1, n+1)) .^ (ones (l, 1) * (n : -1 : 0)); ! ## Solve by QR decomposition. ! [q, r, k] = qr (v, 0); ! p = r \ (y' * q)'; ! p(k) = p; if (nargout > 1) ! yf = v*p; if (y_is_row_vector) s.yf = yf.'; *************** *** 92,106 **** s.yf = yf; endif ! [s.R, dummy] = chol (X'*X); ! s.X = X; s.df = l - n - 1; s.normr = norm (yf - y); - endif ! ## Return value should be a row vector. ! p = p.'; endfunction --- 99,152 ---- s.yf = yf; endif ! s.R = r; ! s.X = v; s.df = l - n - 1; s.normr = norm (yf - y); endif ! ## Return a row vector. p = p.'; + ## Test difficult case where scaling is really needed. This example + ## demonstrates the rather poor result which occurs when the dependent + ## variable is not normalized properly. + ## Also check the usage of 2nd & 3rd output arguments. + %!test + %! x = [ -1196.4, -1195.2, -1194, -1192.8, -1191.6, -1190.4, -1189.2, -1188, \ + %! -1186.8, -1185.6, -1184.4, -1183.2, -1182]; + %! y = [ 315571.7086, 315575.9618, 315579.4195, 315582.6206, 315585.4966, \ + %! 315588.3172, 315590.9326, 315593.5934, 315596.0455, 315598.4201, \ + %! 315600.7143, 315602.9508, 315605.1765 ]; + %! [p1, s1] = polyfit (x, y, 10); + %! [p2, s2, mu] = polyfit (x, y, 10); + %! assert (2*s2.normr < s1.normr) + + %!test + %! x = 1:4; + %! p0 = [1i, 0, 2i, 4]; + %! y0 = polyval (p0, x); + %! p = polyfit (x, y0, numel(p0)-1); + %! assert (p, p0, 1000*eps) + + %!test + %! x = 1000 + (-5:5); + %! xn = (x - mean (x)) / std (x); + %! pn = ones (1,5); + %! y = polyval (pn, xn); + %! [p, s, mu] = polyfit (x, y, numel(pn)-1); + %! [p2, s2] = polyfit (x, y, numel(pn)-1); + %! assert (p, pn, s.normr) + %! assert (s.yf, y, s.normr) + %! assert (mu, [mean(x), std(x)]) + %! assert (s.normr/s2.normr < sqrt(eps)) + + %!test + %! x = [1, 2, 3; 4, 5, 6]; + %! y = [0, 0, 1; 1, 0, 0]; + %! p = polyfit (x, y, 5); + %! expected = [0, 1, -14, 65, -112, 60]/12; + %! assert (p, expected, sqrt(eps)) + + endfunction diff -cNr octave-3.0.3/scripts/polynomial/polyval.m octave-3.0.4/scripts/polynomial/polyval.m *** octave-3.0.3/scripts/polynomial/polyval.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/polynomial/polyval.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 18,32 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} polyval (@var{c}, @var{x}) ! ## Evaluate a polynomial. ! ## ! ## @code{polyval (@var{c}, @var{x})} will evaluate the polynomial at the ! ## specified value of @var{x}. ! ## ! ## If @var{x} is a vector or matrix, the polynomial is evaluated at each of ## the elements of @var{x}. ! ## @seealso{polyvalm, poly, roots, conv, deconv, residue, filter, ## polyderiv, polyinteg} ## @end deftypefn --- 18,37 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {@var{y}=} polyval (@var{p}, @var{x}) ! ## @deftypefnx {Function File} {@var{y}=} polyval (@var{p}, @var{x}, [], @var{mu}) ! ## Evaluate the polynomial at of the specified values for @var{x}. When @var{mu} ! ## is present evaluate the polynomial for (@var{x}-@var{mu}(1))/@var{mu}(2). ! ## If @var{x} is a vector or matrix, the polynomial is evaluated for each of ## the elements of @var{x}. ! ## @deftypefnx {Function File} {[@var{y}, @var{dy}] =} polyval (@var{p}, @var{x}, @var{s}) ! ## @deftypefnx {Function File} {[@var{y}, @var{dy}] =} polyval (@var{p}, @var{x}, @var{s}, @var{mu}) ! ## In addition to evaluating the polynomial, the second output ! ## represents the prediction interval, @var{y} +/- @var{dy}, which ! ## contains at least 50% of the future predictions. To calculate the ! ## prediction interval, the structured variable @var{s}, originating ! ## form `polyfit', must be present. ! ## @seealso{polyfit, polyvalm, poly, roots, conv, deconv, residue, filter, ## polyderiv, polyinteg} ## @end deftypefn *************** *** 34,63 **** ## Created: June 1994 ## Adapted-By: jwe ! function y = polyval (c, x) ! if (nargin != 2) print_usage (); endif ! if (! (isvector (c) || isempty (c))) error ("polyval: first argument must be a vector"); endif if (isempty (x)) y = []; return; endif ! if (length (c) == 0) ! y = c; return; endif ! n = length (c); ! y = c (1) * ones (rows (x), columns (x)); ! for index = 2:n ! y = c (index) + x .* y; ! endfor endfunction --- 39,126 ---- ## Created: June 1994 ## Adapted-By: jwe ! function [y, dy] = polyval (p, x, s, mu) ! if (nargin < 2 || nargin > 4 || (nargout == 2 && nargin < 3)) print_usage (); endif ! if (nargin < 3) ! s = []; ! endif ! ! if (! (isvector (p) || isempty (p))) error ("polyval: first argument must be a vector"); endif + if (nargin < 4) + mu = [0, 1]; + endif + if (isempty (x)) y = []; return; endif ! if (length (p) == 0) ! y = p; return; endif ! n = length (p) - 1; ! k = numel (x); ! x = (x - mu(1)) / mu(2); ! A = (x(:) * ones (1, n+1)) .^ (ones (k, 1) * (n:-1:0)); ! y(:) = A * p(:); ! y = reshape (y, size (x)); ! ! if (nargout == 2) ! ## Note: the F-Distribution is generally considered to be single-sided. ! ## http://www.itl.nist.gov/div898/handbook/eda/section3/eda3673.htm ! ## t = finv (1-alpha, s.df, s.df); ! ## dy = t * sqrt (1 + sumsq (A/s.R, 2)) * s.normr / sqrt (s.df) ! ## If my inference is correct, then t must equal 1 for polyval. ! ## This is because finv (0.5, n, n) = 1.0 for any n. ! dy = sqrt (1 + sumsq (A/s.R, 2)) * s.normr / sqrt (s.df); ! dy = reshape (dy, size (x)); ! endif endfunction + + %!test + %! fail("polyval([1,0;0,1],0:10)"); + + %!test + %! r = 0:10:50; + %! p = poly (r); + %! p = p / max(abs(p)); + %! x = linspace(0,50,11); + %! y = polyval(p,x) + 0.25*sin(100*x); + %! [pf, s] = polyfit (x, y, numel(r)); + %! [y1, delta] = polyval (pf, x, s); + %! expected = [0.37235, 0.35854, 0.32231, 0.32448, 0.31328, ... + %! 0.32036, 0.31328, 0.32448, 0.32231, 0.35854, 0.37235]; + %! assert (delta, expected, 0.00001) + + %!test + %! x = 10 + (-2:2); + %! y = [0, 0, 1, 0, 2]; + %! p = polyfit (x, y, numel (x) - 1); + %! [pn, s, mu] = polyfit (x, y, numel (x) - 1); + %! y1 = polyval (p, x); + %! yn = polyval (pn, x, [], mu); + %! assert (y1, y, sqrt(eps)) + %! assert (yn, y, sqrt(eps)) + + %!test + %! p = [0, 1, 0]; + %! x = 1:10; + %! assert (x, polyval(p,x), eps) + %! x = x(:); + %! assert (x, polyval(p,x), eps) + %! x = reshape(x, [2, 5]); + %! assert (x, polyval(p,x), eps) + %! x = reshape(x, [5, 2]); + %! assert (x, polyval(p,x), eps) + %! x = reshape(x, [1, 1, 5, 2]); + %! assert (x, polyval(p,x), eps) diff -cNr octave-3.0.3/scripts/polynomial/spline.m octave-3.0.4/scripts/polynomial/spline.m *** octave-3.0.3/scripts/polynomial/spline.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/polynomial/spline.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 125,134 **** e = h(2:n-2); - size(a) - size(h) - n - g = 3 * diff (a(2:n,:)) ./ h(2:n-1,idx) ... - 3 * diff (a(1:n-1,:)) ./ h(1:n-2,idx); g(1,:) = 3 * (a(3,:) - a(2,:)) / h(2) ... --- 125,130 ---- diff -cNr octave-3.0.3/scripts/set/create_set.m octave-3.0.4/scripts/set/create_set.m *** octave-3.0.3/scripts/set/create_set.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/set/create_set.m 2009-03-26 07:51:30.000000000 +0100 *************** *** 1,4 **** ! ## Copyright (C) 1994, 1996, 1997, 1999, 2000, 2004, 2005, 2006, 2007 ## John W. Eaton ## ## This file is part of Octave. --- 1,4 ---- ! ## Copyright (C) 1994, 1996, 1997, 1999, 2000, 2004, 2005, 2006, 2007, 2008 ## John W. Eaton ## ## This file is part of Octave. *************** *** 19,55 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} create_set (@var{x}) ## Return a row vector containing the unique values in @var{x}, sorted in ## ascending order. For example, ## ## @example ## @group ! ## create_set ([ 1, 2; 3, 4; 4, 2 ]) ## @result{} [ 1, 2, 3, 4 ] ## @end group ## @end example ! ## @seealso{union, intersection, complement} ## @end deftypefn ## Author: jwe ! function y = create_set(x) ! if (nargin != 1) print_usage (); endif ! ! if (isempty(x)) ! y = []; else ! nel = numel (x); ! y = sort (reshape (x, 1, nel)); ! els = find (y(1:nel-1) != y(2:nel)); ! if (isempty (els)); ! y = y(1); ! else ! y = y([1, els+1]); ! endif endif endfunction --- 19,63 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} create_set (@var{x}) + ## @deftypefnx{Function File} {} create_set (@var{x}, "rows") ## Return a row vector containing the unique values in @var{x}, sorted in ## ascending order. For example, ## ## @example ## @group ! ## create_set ([ 1, 2; 3, 4; 4, 2; 1, 2 ]) ## @result{} [ 1, 2, 3, 4 ] ## @end group ## @end example ! ## ! ## If the optional second input argument is the string "rows" each row of ! ## the matrix @var{x} will be considered an element of set. For example, ! ## @example ! ## @group ! ## create_set ([ 1, 2; 3, 4; 4, 2; 1, 2 ], "rows") ! ## @result{} 1 2 ! ## 3 4 ! ## 4 2 ! ## @end group ! ## @end example ! ## @seealso{union, intersection, complement, unique} ## @end deftypefn ## Author: jwe ! function y = create_set (x, rows_opt) ! if (nargin < 1 || nargin > 2) print_usage (); endif ! ! if (nargin == 1) ! y = unique (x); ! y = y(:).'; ! elseif (strcmpi (rows_opt, "rows")) ! y = unique (x, "rows"); else ! error ("create_set: expecting \"rows\" as second argument"); endif endfunction diff -cNr octave-3.0.3/scripts/set/intersect.m octave-3.0.4/scripts/set/intersect.m *** octave-3.0.3/scripts/set/intersect.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/set/intersect.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 1,4 **** --- 1,5 ---- ## Copyright (C) 2000, 2006, 2007 Paul Kienzle + ## Copyright (C) 2008 Jaroslav Hajek ## ## This file is part of Octave. ## *************** *** 30,62 **** ## @end deftypefn ## @seealso{unique, union, setxor, setdiff, ismember} ! function [c, ia, ib] = intersect (a, b) ! if (nargin != 2) print_usage (); endif if (isempty (a) || isempty (b)) c = ia = ib = []; else ## form a and b into sets ! [a, ja] = unique (a); ! [b, jb] = unique (b); ! ! c = [a(:); b(:)]; ! [c, ic] = sort (c); ## [a(:);b(:)](ic) == c ! if (iscellstr (c)) ! ii = find (strcmp (c(1:end-1), c(2:end))); else ! ii = find (c(1:end-1) == c(2:end)); endif ! c = c(ii); ## The answer ! ia = ja(ic(ii)); ## a(ia) == c ! ib = jb(ic(ii+1) - length (a)); ## b(ib) == c ! if (size (b, 1) == 1 || size (a, 1) == 1) c = c.'; endif endif --- 31,80 ---- ## @end deftypefn ## @seealso{unique, union, setxor, setdiff, ismember} ! function [c, ia, ib] = intersect (a, b, varargin) ! ! if (nargin < 2 || nargin > 3) print_usage (); endif + if (nargin == 3 && ! strcmpi (varargin{1}, "rows")) + error ("intersect: if a third input argument is present, it must be the string 'rows'"); + endif + + if (isempty (a) || isempty (b)) c = ia = ib = []; else ## form a and b into sets ! if (nargout > 1) ! [a, ja] = unique (a, varargin{:}); ! [b, jb] = unique (b, varargin{:}); ! endif ! if (nargin > 2) ! c = [a; b]; ! [c, ic] = sortrows (c); ! ii = find (all (c(1:end-1,:) == c(2:end,:), 2)); ! c = c(ii,:); else ! c = [a(:); b(:)]; ! [c, ic] = sort (c); ## [a(:);b(:)](ic) == c ! if (iscellstr (c)) ! ii = find (strcmp (c(1:end-1), c(2:end))); ! else ! ii = find (c(1:end-1) == c(2:end)); ! endif ! c = c(ii); endif ! ! if (nargout > 1) ! ia = ja(ic(ii)); ## a(ia) == c ! ib = jb(ic(ii+1) - length (a)); ## b(ib) == c ! endif ! if (nargin == 2 && (size (b, 1) == 1 || size (a, 1) == 1)) c = c.'; endif endif *************** *** 74,76 **** --- 92,103 ---- %! assert(ib,[5 1 2 6]); %! assert(a(ia),c); %! assert(b(ib),c); + %!test + %! a = [1,1,2;1,4,5;2,1,7]; + %! b = [1,4,5;2,3,4;1,1,2;9,8,7]; + %! [c,ia,ib] = intersect(a,b,'rows'); + %! assert(c,[1,1,2;1,4,5]); + %! assert(ia,[1;2]); + %! assert(ib,[3;1]); + %! assert(a(ia,:),c); + %! assert(b(ib,:),c); diff -cNr octave-3.0.3/scripts/set/setdiff.m octave-3.0.4/scripts/set/setdiff.m *** octave-3.0.3/scripts/set/setdiff.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/set/setdiff.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 1,4 **** --- 1,5 ---- ## Copyright (C) 2000, 2005, 2006, 2007 Paul Kienzle + ## Copyright (C) 2008 Jaroslav Hajek ## ## This file is part of Octave. ## *************** *** 19,37 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} setdiff (@var{a}, @var{b}) ## @deftypefnx {Function File} {} setdiff (@var{a}, @var{b}, "rows") ## Return the elements in @var{a} that are not in @var{b}, sorted in ## ascending order. If @var{a} and @var{b} are both column vectors ## return a column vector, otherwise return a row vector. ## ## Given the optional third argument @samp{"rows"}, return the rows in ## @var{a} that are not in @var{b}, sorted in ascending order by rows. ## @seealso{unique, union, intersect, setxor, ismember} ## @end deftypefn ## Author: Paul Kienzle ## Adapted-by: jwe ! function c = setdiff (a, b, byrows_arg) if (nargin < 2 || nargin > 3) print_usage (); --- 20,41 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} setdiff (@var{a}, @var{b}) ## @deftypefnx {Function File} {} setdiff (@var{a}, @var{b}, "rows") + ## @deftypefnx {Function File} {[@var{c}, @var{i}] = } setdiff (@var{a}, @var{b}) ## Return the elements in @var{a} that are not in @var{b}, sorted in ## ascending order. If @var{a} and @var{b} are both column vectors ## return a column vector, otherwise return a row vector. ## ## Given the optional third argument @samp{"rows"}, return the rows in ## @var{a} that are not in @var{b}, sorted in ascending order by rows. + ## + ## If requested, return @var{i} such that @code{c = a(i)}. ## @seealso{unique, union, intersect, setxor, ismember} ## @end deftypefn ## Author: Paul Kienzle ## Adapted-by: jwe ! function [c, i] = setdiff (a, b, byrows_arg) if (nargin < 2 || nargin > 3) print_usage (); *************** *** 50,56 **** endif if (byrows) ! c = unique (a, "rows"); if (! isempty (c) && ! isempty (b)) ## Form a and b into combined set. b = unique (b, "rows"); --- 54,64 ---- endif if (byrows) ! if (nargout > 1) ! [c, i] = unique (a, "rows"); ! else ! c = unique (a, "rows"); ! endif if (! isempty (c) && ! isempty (b)) ## Form a and b into combined set. b = unique (b, "rows"); *************** *** 58,66 **** ## Eliminate those elements of a that are the same as in b. dups = find (all (dummy(1:end-1,:) == dummy(2:end,:), 2)); c(idx(dups),:) = []; endif else ! c = unique (a); if (! isempty (c) && ! isempty (b)) ## Form a and b into combined set. b = unique (b); --- 66,81 ---- ## Eliminate those elements of a that are the same as in b. dups = find (all (dummy(1:end-1,:) == dummy(2:end,:), 2)); c(idx(dups),:) = []; + if (nargout > 1) + i(idx(dups),:) = []; + endif endif else ! if (nargout > 1) ! [c, i] = unique (a); ! else ! c = unique (a); ! endif if (! isempty (c) && ! isempty (b)) ## Form a and b into combined set. b = unique (b); *************** *** 72,77 **** --- 87,95 ---- dups = find (dummy(1:end-1) == dummy(2:end)); endif c(idx(dups)) = []; + if (nargout > 1) + i(idx(dups)) = []; + endif ## Reshape if necessary. if (size (c, 1) != 1 && size (b, 1) == 1) c = c.'; *************** *** 88,90 **** --- 106,114 ---- %!assert(setdiff([1; 2; 3; 4], [1; 2; 4], "rows"), 3) %!assert(setdiff([1, 2; 3, 4], [1, 2; 3, 6], "rows"), [3, 4]) %!assert(setdiff({"one","two";"three","four"},{"one","two";"three","six"}), {"four"}) + + %!test + %! a = [3, 1, 4, 1, 5]; b = [1, 2, 3, 4]; + %! [y, i] = setdiff (a, b.'); + %! assert(y, [5]); + %! assert(y, a(i)); diff -cNr octave-3.0.3/scripts/set/setxor.m octave-3.0.4/scripts/set/setxor.m *** octave-3.0.3/scripts/set/setxor.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/set/setxor.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 1,4 **** --- 1,5 ---- ## Copyright (C) 2000, 2006, 2007 Paul Kienzle + ## Copyright (C) 2008 Jaroslav Hajek ## ## This file is part of Octave. ## *************** *** 18,39 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} setxor (@var{a}, @var{b}) ## ## Return the elements exclusive to @var{a} or @var{b}, sorted in ascending ## order. If @var{a} and @var{b} are both column vectors return a column ## vector, otherwise return a row vector. ## ## @seealso{unique, union, intersect, setdiff, ismember} ## @end deftypefn ! function c = setxor (a, b) ! if (nargin != 2) print_usage (); endif ## Form A and B into sets. ! a = unique (a); ! b = unique (b); if (isempty (a)) c = b; --- 19,56 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} setxor (@var{a}, @var{b}) + ## @deftypefnx {Function File} {} setxor (@var{a}, @var{b}, 'rows') ## ## Return the elements exclusive to @var{a} or @var{b}, sorted in ascending ## order. If @var{a} and @var{b} are both column vectors return a column ## vector, otherwise return a row vector. ## + ## @deftypefnx {Function File} {[@var{c}, @var{ia}, @var{ib}] =} setxor (@var{a}, @var{b}) + ## + ## Return index vectors @var{ia} and @var{ib} such that @code{a==c(ia)} and + ## @code{b==c(ib)}. + ## ## @seealso{unique, union, intersect, setdiff, ismember} ## @end deftypefn ! function [c, ia, ib] = setxor (a, b, varargin) ! ! if (nargin < 2 || nargin > 3) print_usage (); endif + if (nargin == 3 && ! strcmpi (varargin{1}, "rows")) + error ("setxor: if a third input argument is present, it must be the string 'rows'"); + endif + ## Form A and B into sets. ! if (nargout > 1) ! [a, ia] = unique (a, varargin{:}); ! [b, ib] = unique (b, varargin{:}); ! else ! a = unique (a, varargin{:}); ! b = unique (b, varargin{:}); ! endif if (isempty (a)) c = b; *************** *** 41,56 **** c = a; else ## Reject duplicates. ! c = sort ([a(:); b(:)]); ! n = length (c); ! idx = find (c(1:n-1) == c(2:n)); ! if (! isempty (idx)) ! c([idx, idx+1]) = []; ! endif ! if (size (a, 1) == 1 || size (b, 1) == 1) ! c = c.'; endif endif endfunction %!assert(setxor([1,2,3],[2,3,4]),[1,4]) --- 58,96 ---- c = a; else ## Reject duplicates. ! if (nargin > 2) ! na = rows (a); nb = rows (b); ! [c, i] = sortrows ([a; b]); ! n = rows (c); ! idx = find (all (c(1:n-1) == c(2:n), 2)); ! if (! isempty (idx)) ! c([idx, idx+1],:) = []; ! i([idx, idx+1],:) = []; ! endif ! else ! na = numel (a); nb = numel (b); ! [c, i] = sort ([a(:); b(:)]); ! n = length (c); ! idx = find (c(1:n-1) == c(2:n)); ! if (! isempty (idx)) ! c([idx, idx+1]) = []; ! i([idx, idx+1]) = []; ! endif ! if (size (a, 1) == 1 || size (b, 1) == 1) ! c = c.'; ! endif endif endif + if (nargout > 1) + ia = ia(i(i <= na)); + ib = ib(i(i > na) - na); + endif + endfunction %!assert(setxor([1,2,3],[2,3,4]),[1,4]) + %!test + %! a = [3, 1, 4, 1, 5]; b = [1, 2, 3, 4]; + %! [y, ia, ib] = setxor (a, b.'); + %! assert(y, [2, 5]); + %! assert(y, sort([a(ia), b(ib)])); diff -cNr octave-3.0.3/scripts/set/union.m octave-3.0.4/scripts/set/union.m *** octave-3.0.3/scripts/set/union.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/set/union.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 1,5 **** ## Copyright (C) 1994, 1996, 1997, 1999, 2000, 2003, 2004, 2005, 2006, ! ## 2007 John W. Eaton ## ## This file is part of Octave. ## --- 1,6 ---- ## Copyright (C) 1994, 1996, 1997, 1999, 2000, 2003, 2004, 2005, 2006, ! ## 2007, 2008 John W. Eaton ! ## Copyright (C) 2008 Jaroslav Hajek ## ## This file is part of Octave. ## *************** *** 18,55 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} union (@var{x}, @var{y}) ! ## Return the set of elements that are in either of the sets @var{x} and ! ## @var{y}. For example, ## ## @example ## @group ! ## union ([ 1, 2, 4 ], [ 2, 3, 5 ]) ! ## @result{} [ 1, 2, 3, 4, 5 ] ## @end group ## @end example ## @seealso{create_set, intersection, complement} ## @end deftypefn ## Author: jwe ! function y = union(a,b) ! if (nargin != 2) print_usage (); endif ! if (isempty (a)) ! y = create_set (b); ! elseif (isempty (b)) ! y = create_set (a); ! else ! y = create_set ([a(:); b(:)]); if (size (a, 1) == 1 || size (b, 1) == 1) ! y = y(:).'; ! else ! y = y(:); endif endif endfunction --- 19,92 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} union (@var{a}, @var{b}) ! ## @deftypefnx{Function File} {} union (@var{a}, @var{b}, "rows") ! ## Return the set of elements that are in either of the sets @var{a} and ! ## @var{b}. For example, ## ## @example ## @group ! ## union ([1, 2, 4], [2, 3, 5]) ! ## @result{} [1, 2, 3, 4, 5] ## @end group ## @end example + ## + ## If the optional third input argument is the string "rows" each row of + ## the matrices @var{a} and @var{b} will be considered an element of sets. + ## For example, + ## @example + ## @group + ## union([1, 2; 2, 3], [1, 2; 3, 4], "rows") + ## @result{} 1 2 + ## 2 3 + ## 3 4 + ## @end group + ## @end example + ## + ## @deftypefnx {Function File} {[@var{c}, @var{ia}, @var{ib}] =} union (@var{a}, @var{b}) + ## + ## Return index vectors @var{ia} and @var{ib} such that @code{a==c(ia)} and + ## @code{b==c(ib)}. + ## ## @seealso{create_set, intersection, complement} ## @end deftypefn ## Author: jwe ! function [y, ia, ib] = union (a, b, varargin) ! if (nargin < 2 || nargin > 3) print_usage (); endif ! if (nargin == 3 && ! strcmpi (varargin{1}, "rows")) ! error ("union: if a third input argument is present, it must be the string 'rows'"); ! endif ! ! if (nargin == 2) ! y = [a(:); b(:)]; ! na = numel (a); nb = numel (b); if (size (a, 1) == 1 || size (b, 1) == 1) ! y = y.'; endif + elseif (ndims (a) == 2 && ndims (b) == 2 && columns (a) == columns (b)) + y = [a; b]; + na = rows (a); nb = rows (b); + else + error ("union: input arguments must contain the same number of columns when \"rows\" is specified"); + endif + + if (nargout == 1) + y = unique (y, varargin{:}); + else + [y, i] = unique (y, varargin{:}); + ia = i(i <= na); + ib = i(i > na) - na; endif + %!test + %! a = [3, 1, 4, 1, 5]; b = [1, 2, 3, 4]; + %! [y, ia, ib] = union (a, b.'); + %! assert(y, [1, 2, 3, 4, 5]); + %! assert(y, sort([a(ia), b(ib)])); endfunction diff -cNr octave-3.0.3/scripts/set/unique.m octave-3.0.4/scripts/set/unique.m *** octave-3.0.3/scripts/set/unique.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/set/unique.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 1,4 **** --- 1,5 ---- ## Copyright (C) 2000, 2001, 2005, 2006, 2007 Paul Kienzle + ## Copyright (C) 2008 Jaroslav Hajek ## ## This file is part of Octave. ## *************** *** 31,49 **** ## ## Return index vectors @var{i} and @var{j} such that @code{x(i)==y} and ## @code{y(j)==x}. ## @seealso{union, intersect, setdiff, setxor, ismember} ## @end deftypefn ! function [y, i, j] = unique (x, r) ! if (nargin < 1 || nargin > 2 || (nargin == 2 && ! strcmp (r, "rows"))) print_usage (); endif ! if (nargin == 1) ! n = numel (x); else n = size (x, 1); endif y = x; --- 32,83 ---- ## ## Return index vectors @var{i} and @var{j} such that @code{x(i)==y} and ## @code{y(j)==x}. + ## + ## Additionally, one of 'first' or 'last' can be given as an argument. + ## 'last' (default) specifies that the highest possible indices are returned + ## in @var{i}, while 'first' means the lowest. ## @seealso{union, intersect, setdiff, setxor, ismember} ## @end deftypefn ! function [y, i, j] = unique (x, varargin) ! if (nargin < 1) print_usage (); endif ! if (nargin > 1) ! ! ## parse options ! if (iscellstr (varargin)) ! varargin = unique (varargin); ! optfirst = strmatch ('first', varargin) > 0; ! optlast = strmatch ('last', varargin) > 0; ! optrows = strmatch ('rows', varargin) > 0 && size (x, 2) > 1; ! if (optfirst && optlast) ! error ("unique: cannot specify both 'last' and 'first'."); ! elseif (optfirst + optlast + optrows != nargin-1) ! error ("unique: invalid option."); ! endif ! else ! error ("unique: options must be strings"); ! endif ! ! if (optrows && iscell (x)) ! warning ("unique: 'rows' is ignored for cell arrays"); ! optrows = false; ! endif ! else + optfirst = 0; + optrows = 0; + endif + + if (optrows) n = size (x, 1); + dim = 1; + else + n = numel (x); + dim = (size (x, 1) == 1) + 1; endif y = x; *************** *** 55,74 **** return; endif ! if (ischar (x)) ! y = toascii (y); ! endif ! ! if (nargin == 2 && size (y, 2) > 1) [y, i] = sortrows (y); ! if (iscell (y)) ! match = cellfun ("size", y(1:n-1,:), 1) == cellfun ("size", y(2:n,:), 1); ! idx = find (match); ! match(idx) = all (char (y(idx)) == char (y(idx+1)), 2); ! match = all (match'); ! else ! match = all ([y(1:n-1,:) == y(2:n,:)]'); ! endif idx = find (match); y(idx,:) = []; else --- 89,97 ---- return; endif ! if (optrows) [y, i] = sortrows (y); ! match = all (y(1:n-1,:) == y(2:n,:), 2); idx = find (match); y(idx,:) = []; else *************** *** 77,104 **** endif [y, i] = sort (y); if (iscell (y)) ! match = cellfun ("length", y(1:n-1)) == cellfun ("length", y(2:n)); ! idx = find(match); ! match(idx) = all (char (y(idx)) == char (y(idx+1)), 2); else ! match = [y(1:n-1) == y(2:n)]; endif idx = find (match); y(idx) = []; endif - ## I don't know why anyone would need reverse indices, but it - ## was an interesting challenge. I welcome cleaner solutions. if (nargout >= 3) j = i; ! j(i) = cumsum (prepad (! match, n, 1)); endif - i(idx) = []; ! if (ischar (x)) ! y = char (y); endif endfunction %!assert(unique([1 1 2; 1 2 1; 1 1 2]),[1;2]) --- 100,129 ---- endif [y, i] = sort (y); if (iscell (y)) ! match = strcmp (y(1:n-1), y(2:n)); else ! match = (y(1:n-1) == y(2:n)); endif idx = find (match); y(idx) = []; endif if (nargout >= 3) j = i; ! if (dim == 1) ! j(i) = cumsum ([1; !match]); ! else ! j(i) = cumsum ([1, !match]); ! end endif ! if (optfirst) ! i(idx+1) = []; ! else ! i(idx) = []; endif + endfunction %!assert(unique([1 1 2; 1 2 1; 1 1 2]),[1;2]) *************** *** 109,112 **** %!assert(unique([1;2]),[1;2]) %!assert(unique([1,NaN,Inf,NaN,Inf]),[1,Inf,NaN,NaN]) %!assert(unique({'Foo','Bar','Foo'}),{'Bar','Foo'}) ! %!assert(unique({'Foo','Bar','FooBar'}),{'Bar','Foo','FooBar'}) --- 134,162 ---- %!assert(unique([1;2]),[1;2]) %!assert(unique([1,NaN,Inf,NaN,Inf]),[1,Inf,NaN,NaN]) %!assert(unique({'Foo','Bar','Foo'}),{'Bar','Foo'}) ! %!assert(unique({'Foo','Bar','FooBar'}'),{'Bar','Foo','FooBar'}') ! ! %!test ! %! [a,i,j] = unique([1,1,2,3,3,3,4]); ! %! assert(a,[1,2,3,4]) ! %! assert(i,[2,3,6,7]) ! %! assert(j,[1,1,2,3,3,3,4]) ! %! ! %!test ! %! [a,i,j] = unique([1,1,2,3,3,3,4]','first'); ! %! assert(a,[1,2,3,4]') ! %! assert(i,[1,3,4,7]') ! %! assert(j,[1,1,2,3,3,3,4]') ! %! ! %!test ! %! [a,i,j] = unique({'z'; 'z'; 'z'}); ! %! assert(a,{'z'}) ! %! assert(i,[3]') ! %! assert(j,[1,1,1]') ! %! ! %!test ! %! A=[1,2,3;1,2,3]; ! %! [a,i,j] = unique(A,'rows'); ! %! assert(a,[1,2,3]) ! %! assert(A(i,:),a) ! %! assert(a(j,:),A) diff -cNr octave-3.0.3/scripts/sparse/spdiags.m octave-3.0.4/scripts/sparse/spdiags.m *** octave-3.0.3/scripts/sparse/spdiags.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/sparse/spdiags.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 33,39 **** ## Otherwise a matrix of @var{m} by @var{n} is created with the ## diagonals given by @var{v}. ## ! ## Negative values of @var{c} representive diagonals below the main ## diagonal, and positive values of @var{c} diagonals above the main ## diagonal. ## --- 33,39 ---- ## Otherwise a matrix of @var{m} by @var{n} is created with the ## diagonals given by @var{v}. ## ! ## Negative values of @var{c} represent diagonals below the main ## diagonal, and positive values of @var{c} diagonals above the main ## diagonal. ## diff -cNr octave-3.0.3/scripts/specfun/bessel.m octave-3.0.4/scripts/specfun/bessel.m *** octave-3.0.3/scripts/specfun/bessel.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/specfun/bessel.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 26,46 **** ## ## @table @code ## @item besselj ! ## Bessel functions of the first kind. ## @item bessely ! ## Bessel functions of the second kind. ## @item besseli ! ## Modified Bessel functions of the first kind. ## @item besselk ! ## Modified Bessel functions of the second kind. ## @item besselh ## Compute Hankel functions of the first (@var{k} = 1) or second (@var{k} ! ## = 2) kind. ! ## @end table ! ## ! ## If the argument @var{opt} is supplied, the result is scaled by the ## @code{exp (-I*@var{x})} for @var{k} = 1 or @code{exp (I*@var{x})} for ! ## @var{k} = 2. ## ## If @var{alpha} is a scalar, the result is the same size as @var{x}. ## If @var{x} is a scalar, the result is the same size as @var{alpha}. --- 26,48 ---- ## ## @table @code ## @item besselj ! ## Bessel functions of the first kind. If the argument @var{opt} is supplied, ! ## the result is multiplied by @code{exp(-abs(imag(x)))}. ## @item bessely ! ## Bessel functions of the second kind. If the argument @var{opt} is supplied, ! ## the result is multiplied by @code{exp(-abs(imag(x)))}. ## @item besseli ! ## Modified Bessel functions of the first kind. If the argument @var{opt} is supplied, ! ## the result is multiplied by @code{exp(-abs(real(x)))}. ## @item besselk ! ## Modified Bessel functions of the second kind. If the argument @var{opt} is supplied, ! ## the result is multiplied by @code{exp(x)}. ## @item besselh ## Compute Hankel functions of the first (@var{k} = 1) or second (@var{k} ! ## = 2) kind. If the argument @var{opt} is supplied, the result is multiplied by ## @code{exp (-I*@var{x})} for @var{k} = 1 or @code{exp (I*@var{x})} for ! ## @var{k} = 2. ! ## @end table ## ## If @var{alpha} is a scalar, the result is the same size as @var{x}. ## If @var{x} is a scalar, the result is the same size as @var{alpha}. diff -cNr octave-3.0.3/scripts/specfun/nchoosek.m octave-3.0.4/scripts/specfun/nchoosek.m *** octave-3.0.3/scripts/specfun/nchoosek.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/specfun/nchoosek.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 75,83 **** elseif (k == n) A = v(:).'; else ! m = round (exp (sum (log (k:n-1)) - sum (log (2:n-k)))); ! A = [v(1)*ones(m,1), nchoosek(v(2:n),k-1); ! nchoosek(v(2:n),k)]; endif endfunction --- 75,100 ---- elseif (k == n) A = v(:).'; else ! oldmax = max_recursion_depth (); ! unwind_protect ! max_recursion_depth (n); ! A = nck (v, k); ! unwind_protect_cleanup ! max_recursion_depth (oldmax); ! end_unwind_protect endif + endfunction + function A = nck (v, k) + n = length (v); + if (n == 1 || k < 2 || k == n) + A = nchoosek (v, k); + else + m = nchoosek (n-1, k-1); + A = [v(1)*ones(m,1), nck(v(2:n),k-1); + nck(v(2:n), k)]; + endif endfunction + + %!assert (nchoosek(100,45), bincoeff(100,45), -1e-14) + %!assert (nchoosek(1:5,3),[1:3;1,2,4;1,2,5;1,3,4;1,3,5;1,4,5;2:4;2,3,5;2,4,5;3:5]) diff -cNr octave-3.0.3/scripts/statistics/base/Makefile.in octave-3.0.4/scripts/statistics/base/Makefile.in *** octave-3.0.3/scripts/statistics/base/Makefile.in 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/statistics/base/Makefile.in 2009-02-18 07:57:46.000000000 +0100 *************** *** 32,42 **** INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ ! SOURCES = center.m cloglog.m cor.m corrcoef.m cov.m cut.m gls.m \ ! iqr.m kendall.m kurtosis.m logit.m mahalanobis.m mean.m meansq.m \ ! median.m mode.m moment.m ols.m ppplot.m probit.m qqplot.m range.m \ ! ranks.m run_count.m skewness.m spearman.m statistics.m std.m \ ! studentize.m table.m values.m var.m DISTFILES = $(addprefix $(srcdir)/, Makefile.in $(SOURCES)) --- 32,42 ---- INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ ! SOURCES = __quantile__.m center.m cloglog.m cor.m corrcoef.m cov.m \ ! cut.m gls.m iqr.m kendall.m kurtosis.m logit.m mahalanobis.m mean.m \ ! meansq.m median.m mode.m moment.m ols.m ppplot.m prctile.m probit.m \ ! qqplot.m quantile.m range.m ranks.m run_count.m skewness.m spearman.m \ ! statistics.m std.m studentize.m table.m values.m var.m DISTFILES = $(addprefix $(srcdir)/, Makefile.in $(SOURCES)) diff -cNr octave-3.0.3/scripts/statistics/base/prctile.m octave-3.0.4/scripts/statistics/base/prctile.m *** octave-3.0.3/scripts/statistics/base/prctile.m 1970-01-01 01:00:00.000000000 +0100 --- octave-3.0.4/scripts/statistics/base/prctile.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 0 **** --- 1,156 ---- + ## Copyright (C) 2008 Ben Abbott + ## + ## This file is part of Octave. + ## + ## Octave is free software; you can redistribute it and/or modify it + ## under the terms of the GNU General Public License as published by + ## the Free Software Foundation; either version 3 of the License, or (at + ## your option) any later version. + ## + ## Octave is distributed in the hope that it will be useful, but + ## WITHOUT ANY WARRANTY; without even the implied warranty of + ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ## General Public License for more details. + ## + ## You should have received a copy of the GNU General Public License + ## along with Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {@var{y} =} prctile (@var{x}, @var{p}) + ## @deftypefnx {Function File} {@var{q} =} prctile (@var{x}, @var{p}, @var{dim}) + ## For a sample @var{x}, compute the the quantiles, @var{y}, corresponding + ## to the cumulative probability values, P, in percent. All non-numeric + ## values (NaNs) of X are ignored. + ## + ## If @var{x} is a matrix, compute the the percentiles for each column and + ## return them in a matrix, such that the i-th row of @var{y} contains the + ## @var{p}(i)th percentiles of each column of @var{x}. + ## + ## The optional argument @var{dim} determines the dimension along which + ## the percentiles are calculated. If @var{dim} is omitted, and @var{x} is + ## a vector or matrix, it defaults to 1 (column wise quantiles). In the + ## instance that @var{x} is a N-d array, @var{dim} defaults to the first + ## dimension whose size greater than unity. + ## + ## @end deftypefn + + ## Author: Ben Abbott + ## Description: Matlab style prctile function. + + function q = prctile (x, p, dim) + + if (nargin < 1 || nargin > 3) + print_usage (); + endif + + if (nargin < 2) + p = 100*[0.00 0.25, 0.50, 0.75, 1.00]; + endif + + if (nargin < 3) + if (ndims (x) == 2) + ## If a matrix or vector, use the 1st dimension. + dim = 1; + else + ## If an N-d array, use the firt dimension with a length > 1. + dim = find (size(v) != 1); + if (isempty (dim)) + dim = 1; + endif + endif + endif + + ## Convert from percent. + p = 0.01 * p; + + ## The 5th method is compatible with Matlab. + method = 5; + + ## Call the quantile function + q = quantile (x, p, dim, method); + + endfunction + + %!test + %! pct = 50; + %! q = prctile (1:4, pct, 1); + %! qa = [1, 2, 3, 4]; + %! assert (q, qa); + %! q = prctile (1:4, pct, 2); + %! qa = 2.5000; + %! assert (q, qa); + + %!test + %! pct = 50; + %! x = [0.1126, 0.1148, 0.0521, 0.2364, 0.1393 + %! 0.1718, 0.7273, 0.2041, 0.4531, 0.1585 + %! 0.2795, 0.7978, 0.3296, 0.5567, 0.7307 + %! 0.4288, 0.8753, 0.6477, 0.6287, 0.8165 + %! 0.9331, 0.9312, 0.9635, 0.7796, 0.8461]; + %! tol = 0.0001; + %! q = prctile (x, pct, 1); + %! qa = [0.2795, 0.7978, 0.3296, 0.5567, 0.7307]; + %! assert (q, qa, tol); + %! q = prctile (x, pct, 2); + %! qa = [0.1148; 0.2041; 0.5567; 0.6477; 0.9312]; + %! assert (q, qa, tol); + + %!test + %! pct = 50; + %! tol = 0.0001; + %! x = [0.1126, 0.1148, 0.0521, 0.2364, 0.1393 + %! 0.1718, 0.7273, 0.2041, 0.4531, 0.1585 + %! 0.2795, 0.7978, 0.3296, 0.5567, 0.7307 + %! 0.4288, 0.8753, 0.6477, 0.6287, 0.8165 + %! 0.9331, 0.9312, 0.9635, 0.7796, 0.8461]; + %! x(5,5) = Inf; + %! q = prctile (x, pct, 1); + %! qa = [0.2795, 0.7978, 0.3296, 0.5567, 0.7307]; + %! assert (q, qa, tol); + %! x(5,5) = -Inf; + %! q = prctile (x, pct, 1); + %! qa = [0.2795, 0.7978, 0.3296, 0.5567, 0.1585]; + %! assert (q, qa, tol); + %! x(1,1) = Inf; + %! q = prctile (x, pct, 1); + %! qa = [0.4288, 0.7978, 0.3296, 0.5567, 0.1585]; + %! assert (q, qa, tol); + + %!test + %! pct = 50; + %! tol = 0.0001; + %! x = [0.1126, 0.1148, 0.0521, 0.2364, 0.1393 + %! 0.1718, 0.7273, 0.2041, 0.4531, 0.1585 + %! 0.2795, 0.7978, 0.3296, 0.5567, 0.7307 + %! 0.4288, 0.8753, 0.6477, 0.6287, 0.8165 + %! 0.9331, 0.9312, 0.9635, 0.7796, 0.8461]; + %! x(3,3) = Inf; + %! q = prctile (x, pct, 1); + %! qa = [0.2795, 0.7978, 0.6477, 0.5567, 0.7307]; + %! assert (q, qa, tol); + %! q = prctile (x, pct, 2); + %! qa = [0.1148; 0.2041; 0.7307; 0.6477; 0.9312]; + %! assert (q, qa, tol); + + %!test + %! pct = 50; + %! tol = 0.0001; + %! x = [0.1126, 0.1148, 0.0521, 0.2364, 0.1393 + %! 0.1718, 0.7273, 0.2041, 0.4531, 0.1585 + %! 0.2795, 0.7978, 0.3296, 0.5567, 0.7307 + %! 0.4288, 0.8753, 0.6477, 0.6287, 0.8165 + %! 0.9331, 0.9312, 0.9635, 0.7796, 0.8461]; + %! x(5,5) = NaN; + %! q = prctile (x, pct, 2); + %! qa = [0.1148; 0.2041; 0.5567; 0.6477; 0.9322]; + %! assert (q, qa, tol); + %! x(1,1) = NaN; + %! q = prctile (x, pct, 2); + %! qa = [0.1270; 0.2041; 0.5567; 0.6477; 0.9322]; + %! assert (q, qa, tol); + %! x(3,3) = NaN; + %! q = prctile (x, pct, 2); + %! qa = [0.1270; 0.2041; 0.6437; 0.6477; 0.9322]; + %! assert (q, qa, tol); + diff -cNr octave-3.0.3/scripts/statistics/base/__quantile__.m octave-3.0.4/scripts/statistics/base/__quantile__.m *** octave-3.0.3/scripts/statistics/base/__quantile__.m 1970-01-01 01:00:00.000000000 +0100 --- octave-3.0.4/scripts/statistics/base/__quantile__.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 0 **** --- 1,265 ---- + ## Copyright (C) 2008 Ben Abbott, Jaroslav Hajek + ## + ## This file is part of Octave. + ## + ## Octave is free software; you can redistribute it and/or modify it + ## under the terms of the GNU General Public License as published by + ## the Free Software Foundation; either version 3 of the License, or (at + ## your option) any later version. + ## + ## Octave is distributed in the hope that it will be useful, but + ## WITHOUT ANY WARRANTY; without even the implied warranty of + ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ## General Public License for more details. + ## + ## You should have received a copy of the GNU General Public License + ## along with Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {@var{q} =} __quantile__ (@var{x}, @var{p}) + ## @deftypefnx {Function File} {@var{q} =} __quantile__ (@var{x}, @var{p}, @var{method}) + ## For the cumulative probability values in @var{p}, compute the + ## quantiles, @var{q} (the inverse of the cdf), for the sample, @var{x}. + ## + ## The optional input, @var{method}, refers to nine methods available in R + ## (http://www.r-project.org/). The default is @var{method} = 7. For more + ## detail, see `help quantile'. + ## @seealso{prctile, quantile, statistics} + ## @end deftypefn + + ## Author: Ben Abbott + ## Vectorized version: Jaroslav Hajek + ## Description: Quantile function of a empirical samples + + function inv = __quantile__ (x, p, method = 5) + + if (nargin < 2 || nargin > 3) + print_usage (); + endif + + if (! ismatrix (x)) + error ("quantile: x must be a matrix"); + endif + + ## Save length and set shape of quantiles. + n = numel (p); + p = p(:); + + ## Save length and set shape of samples. + ## TODO: does sort guarantee that NaN's come at the end? + x = sort (x); + m = sum (! isnan (x)); + mx = size (x, 1); + nx = size (x, 2); + + ## Initialize output values. + inv = Inf*(-(p < 0) + (p > 1)); + inv = repmat (inv, 1, nx); + + ## Do the work. + if (any(k = find((p >= 0) & (p <= 1)))) + n = length (k); + p = p (k); + ## Special case. + if (mx == 1) + inv(k,:) = repmat (x, n, 1); + return + endif + + ## The column-distribution indices. + pcd = kron (ones (n, 1), mx*(0:nx-1)); + mm = kron (ones (n, 1), m); + switch method + case {1, 2, 3} + switch method + case 1 + p = max (ceil (kron (p, m)), 1); + inv(k,:) = x(p + pcd); + + case 2 + p = kron (p, m); + p_lr = max (ceil (p), 1); + p_rl = min (floor (p + 1), mm); + inv(k,:) = (x(p_lr + pcd) + x(p_rl + pcd))/2; + + case 3 + ## Used by SAS, method PCTLDEF=2. + ## http://support.sas.com/onlinedoc/913/getDoc/en/statug.hlp/stdize_sect14.htm + t = max (kron (p, m), 1); + # t = roundb (t); + # roundb unsupported in 3.0.x, so supply a hack + t1 = round (t); + t1m = (abs (t - t1) == 0.5) & (mod (t1, 2) == 1); + t1 (t1m) += 2 * (t-t1)(t1m); + t = t1; + inv(k,:) = x(t + pcd); + endswitch + + otherwise + switch method + case 4 + p = kron (p, m); + + case 5 + ## Used by Matlab. + p = kron (p, m) + 0.5; + + case 6 + ## Used by Minitab and SPSS. + p = kron (p, m+1); + + case 7 + ## Used by S and R. + p = kron (p, m-1) + 1; + + case 8 + ## Median unbiased . + p = kron (p, m+1/3) + 1/3; + + case 9 + ## Approximately unbiased respecting order statistics. + p = kron (p, m+0.25) + 0.375; + + otherwise + error ("quantile: Unknown method, '%d'",method) + endswitch + + ## Duplicate single values. + imm1 = mm == 1; + x(2,imm1) = x(1,imm1); + + ## Interval indices. + pi = max (min (floor (p), mm-1), 1); + pr = max (min (p - pi, 1), 0); + pi += pcd; + inv(k,:) = (1-pr) .* x(pi) + pr .* x(pi+1); + endswitch + endif + + endfunction + + %!test + %! p = 0.5; + %! x = sort (rand (11)); + %! q = __quantile__ (x, p); + %! assert (q, x(6,:)) + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [1; 2; 3; 4]; + %! a = [1.0000 1.0000 2.0000 3.0000 4.0000 + %! 1.0000 1.5000 2.5000 3.5000 4.0000 + %! 1.0000 1.0000 2.0000 3.0000 4.0000 + %! 1.0000 1.0000 2.0000 3.0000 4.0000 + %! 1.0000 1.5000 2.5000 3.5000 4.0000 + %! 1.0000 1.2500 2.5000 3.7500 4.0000 + %! 1.0000 1.7500 2.5000 3.2500 4.0000 + %! 1.0000 1.4167 2.5000 3.5833 4.0000 + %! 1.0000 1.4375 2.5000 3.5625 4.0000]; + %! for m = (1:9) + %! q = __quantile__ (x, p, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [1; 2; 3; 4; 5]; + %! a = [1.0000 2.0000 3.0000 4.0000 5.0000 + %! 1.0000 2.0000 3.0000 4.0000 5.0000 + %! 1.0000 1.0000 2.0000 4.0000 5.0000 + %! 1.0000 1.2500 2.5000 3.7500 5.0000 + %! 1.0000 1.7500 3.0000 4.2500 5.0000 + %! 1.0000 1.5000 3.0000 4.5000 5.0000 + %! 1.0000 2.0000 3.0000 4.0000 5.0000 + %! 1.0000 1.6667 3.0000 4.3333 5.0000 + %! 1.0000 1.6875 3.0000 4.3125 5.0000]; + %! for m = (1:9) + %! q = __quantile__ (x, p, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [1; 2; 5; 9]; + %! a = [1.0000 1.0000 2.0000 5.0000 9.0000 + %! 1.0000 1.5000 3.5000 7.0000 9.0000 + %! 1.0000 1.0000 2.0000 5.0000 9.0000 + %! 1.0000 1.0000 2.0000 5.0000 9.0000 + %! 1.0000 1.5000 3.5000 7.0000 9.0000 + %! 1.0000 1.2500 3.5000 8.0000 9.0000 + %! 1.0000 1.7500 3.5000 6.0000 9.0000 + %! 1.0000 1.4167 3.5000 7.3333 9.0000 + %! 1.0000 1.4375 3.5000 7.2500 9.0000]; + %! for m = (1:9) + %! q = __quantile__ (x, p, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [1; 2; 5; 9; 11]; + %! a = [1.0000 2.0000 5.0000 9.0000 11.0000 + %! 1.0000 2.0000 5.0000 9.0000 11.0000 + %! 1.0000 1.0000 2.0000 9.0000 11.0000 + %! 1.0000 1.2500 3.5000 8.0000 11.0000 + %! 1.0000 1.7500 5.0000 9.5000 11.0000 + %! 1.0000 1.5000 5.0000 10.0000 11.0000 + %! 1.0000 2.0000 5.0000 9.0000 11.0000 + %! 1.0000 1.6667 5.0000 9.6667 11.0000 + %! 1.0000 1.6875 5.0000 9.6250 11.0000]; + %! for m = (1:9) + %! q = __quantile__ (x, p, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [16; 11; 15; 12; 15; 8; 11; 12; 6; 10]; + %! a = [6.0000 10.0000 11.0000 15.0000 16.0000 + %! 6.0000 10.0000 11.5000 15.0000 16.0000 + %! 6.0000 8.0000 11.0000 15.0000 16.0000 + %! 6.0000 9.0000 11.0000 13.5000 16.0000 + %! 6.0000 10.0000 11.5000 15.0000 16.0000 + %! 6.0000 9.5000 11.5000 15.0000 16.0000 + %! 6.0000 10.2500 11.5000 14.2500 16.0000 + %! 6.0000 9.8333 11.5000 15.0000 16.0000 + %! 6.0000 9.8750 11.5000 15.0000 16.0000]; + %! for m = (1:9) + %! q = __quantile__ (x, p, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [-0.58851; 0.40048; 0.49527; -2.551500; -0.52057; ... + %! -0.17841; 0.057322; -0.62523; 0.042906; 0.12337]; + %! a = [-2.551474 -0.588505 -0.178409 0.123366 0.495271 + %! -2.551474 -0.588505 -0.067751 0.123366 0.495271 + %! -2.551474 -0.625231 -0.178409 0.123366 0.495271 + %! -2.551474 -0.606868 -0.178409 0.090344 0.495271 + %! -2.551474 -0.588505 -0.067751 0.123366 0.495271 + %! -2.551474 -0.597687 -0.067751 0.192645 0.495271 + %! -2.551474 -0.571522 -0.067751 0.106855 0.495271 + %! -2.551474 -0.591566 -0.067751 0.146459 0.495271 + %! -2.551474 -0.590801 -0.067751 0.140686 0.495271]; + %! for m = (1:9) + %! q = __quantile__ (x, p, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = 0.5; + %! x = [0.112600, 0.114800, 0.052100, 0.236400, 0.139300 + %! 0.171800, 0.727300, 0.204100, 0.453100, 0.158500 + %! 0.279500, 0.797800, 0.329600, 0.556700, 0.730700 + %! 0.428800, 0.875300, 0.647700, 0.628700, 0.816500 + %! 0.933100, 0.931200, 0.963500, 0.779600, 0.846100]; + %! tol = 0.00001; + %! x(5,5) = NaN; + %! assert (__quantile__ (x, p), [0.27950, 0.79780, 0.32960, 0.55670, 0.44460], tol); + %! x(1,1) = NaN; + %! assert (__quantile__ (x, p), [0.35415, 0.79780, 0.32960, 0.55670, 0.44460], tol); + %! x(3,3) = NaN; + %! assert (__quantile__ (x, p), [0.35415, 0.79780, 0.42590, 0.55670, 0.44460], tol); + diff -cNr octave-3.0.3/scripts/statistics/base/quantile.m octave-3.0.4/scripts/statistics/base/quantile.m *** octave-3.0.3/scripts/statistics/base/quantile.m 1970-01-01 01:00:00.000000000 +0100 --- octave-3.0.4/scripts/statistics/base/quantile.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 0 **** --- 1,267 ---- + ## Copyright (C) 2008 Ben Abbott + ## + ## This file is part of Octave. + ## + ## Octave is free software; you can redistribute it and/or modify it + ## under the terms of the GNU General Public License as published by + ## the Free Software Foundation; either version 3 of the License, or (at + ## your option) any later version. + ## + ## Octave is distributed in the hope that it will be useful, but + ## WITHOUT ANY WARRANTY; without even the implied warranty of + ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ## General Public License for more details. + ## + ## You should have received a copy of the GNU General Public License + ## along with Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {@var{q} =} quantile (@var{x}, @var{p}) + ## @deftypefnx {Function File} {@var{q} =} quantile (@var{x}, @var{p}, @var{dim}) + ## @deftypefnx {Function File} {@var{q} =} quantile (@var{x}, @var{p}, @var{dim}, @var{method} ) + ## For a sample, @var{x}, calculate the quantiles, @var{q}, corresponding to + ## the cumulative probability values in @var{p}. All non-numeric values (NaNs) of + ## @var{x} are ignored. + ## + ## If @var{x} is a matrix, compute the quantiles for each column and + ## return them in a matrix, such that the i-th row of @var{q} contains + ## the @var{p}(i)th quantiles of each column of @var{x}. + ## + ## The optional argument @var{dim} determines the dimension along which + ## the percentiles are calculated. If @var{dim} is omitted, and @var{x} is + ## a vector or matrix, it defaults to 1 (column wise quantiles). In the + ## instance that @var{x} is a N-d array, @var{dim} defaults to the first + ## dimension whose size greater than unity. + ## + ## The methods available to calculate sample quantiles are the nine methods + ## used by R (http://www.r-project.org/). The default value is METHOD = 5. + ## + ## Discontinuous sample quantile methods 1, 2, and 3 + ## + ## @enumerate 1 + ## @item Method 1: Inverse of empirical distribution function. + ## @item Method 2: Similar to method 1 but with averaging at discontinuities. + ## @item Method 3: SAS definition: nearest even order statistic. + ## @end enumerate + ## + ## Continuous sample quantile methods 4 through 9, where p(k) is the linear + ## interpolation function respecting each methods' representative cdf. + ## + ## @enumerate 4 + ## @item Method 4: p(k) = k / n. That is, linear interpolation of the empirical cdf. + ## @item Method 5: p(k) = (k - 0.5) / n. That is a piecewise linear function where + ## the knots are the values midway through the steps of the empirical cdf. + ## @item Method 6: p(k) = k / (n + 1). + ## @item Method 7: p(k) = (k - 1) / (n - 1). + ## @item Method 8: p(k) = (k - 1/3) / (n + 1/3). The resulting quantile estimates + ## are approximately median-unbiased regardless of the distribution of @var{x}. + ## @item Method 9: p(k) = (k - 3/8) / (n + 1/4). The resulting quantile estimates + ## are approximately unbiased for the expected order statistics if @var{x} is + ## normally distributed. + ## @end enumerate + ## + ## Hyndman and Fan (1996) recommend method 8. Maxima, S, and R + ## (versions prior to 2.0.0) use 7 as their default. Minitab and SPSS + ## use method 6. Matlab uses method 5. + ## + ## References: + ## + ## @itemize @bullet + ## @item Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New + ## S Language. Wadsworth & Brooks/Cole. + ## + ## @item Hyndman, R. J. and Fan, Y. (1996) Sample quantiles in + ## statistical packages, American Statistician, 50, 361-365. + ## + ## @item R: A Language and Environment for Statistical Computing; + ## @url{http://cran.r-project.org/doc/manuals/fullrefman.pdf}. + ## @end itemize + ## @end deftypefn + + ## Author: Ben Abbott + ## Description: Matlab style quantile function of a discrete/continuous distribution + + function q = quantile (x, p, dim, method) + + if (nargin < 1 || nargin > 4) + print_usage (); + endif + + if (nargin < 2) + p = [0.00 0.25, 0.50, 0.75, 1.00]; + endif + + if (nargin < 3) + dim = 1; + endif + + if (nargin < 4) + method = 5; + endif + + if (dim > ndims(x)) + error ("quantile: invalid dimension.") + endif + + # Set the permutation vector. + perm = 1:ndims(x); + perm(1) = dim; + perm(dim) = 1; + + # Permute dim to the 1st index. + x = permute (x, perm); + + # Save the size of the permuted x N-d array. + sx = size (x); + + # Reshape to a 2-d array. + x = reshape (x, [sx(1), prod(sx(2:end))]); + + # Calculate the quantiles. + q = __quantile__ (x, p, method); + + # Return the shape to the original N-d array. + q = reshape (q, [numel(p), sx(2:end)]); + + # Permute the 1st index back to dim. + q = ipermute (q, perm); + + endfunction + + %!test + %! p = 0.5; + %! x = sort (rand (11)); + %! q = quantile (x, p); + %! assert (q, x(6,:)) + %! x = x.'; + %! q = quantile (x, p, 2); + %! assert (q, x(:,6)); + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [1; 2; 3; 4]; + %! a = [1.0000 1.0000 2.0000 3.0000 4.0000 + %! 1.0000 1.5000 2.5000 3.5000 4.0000 + %! 1.0000 1.0000 2.0000 3.0000 4.0000 + %! 1.0000 1.0000 2.0000 3.0000 4.0000 + %! 1.0000 1.5000 2.5000 3.5000 4.0000 + %! 1.0000 1.2500 2.5000 3.7500 4.0000 + %! 1.0000 1.7500 2.5000 3.2500 4.0000 + %! 1.0000 1.4167 2.5000 3.5833 4.0000 + %! 1.0000 1.4375 2.5000 3.5625 4.0000]; + %! for m = (1:9) + %! q = quantile (x, p, 1, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [1; 2; 3; 4; 5]; + %! a = [1.0000 2.0000 3.0000 4.0000 5.0000 + %! 1.0000 2.0000 3.0000 4.0000 5.0000 + %! 1.0000 1.0000 2.0000 4.0000 5.0000 + %! 1.0000 1.2500 2.5000 3.7500 5.0000 + %! 1.0000 1.7500 3.0000 4.2500 5.0000 + %! 1.0000 1.5000 3.0000 4.5000 5.0000 + %! 1.0000 2.0000 3.0000 4.0000 5.0000 + %! 1.0000 1.6667 3.0000 4.3333 5.0000 + %! 1.0000 1.6875 3.0000 4.3125 5.0000]; + %! for m = (1:9) + %! q = quantile (x, p, 1, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [1; 2; 5; 9]; + %! a = [1.0000 1.0000 2.0000 5.0000 9.0000 + %! 1.0000 1.5000 3.5000 7.0000 9.0000 + %! 1.0000 1.0000 2.0000 5.0000 9.0000 + %! 1.0000 1.0000 2.0000 5.0000 9.0000 + %! 1.0000 1.5000 3.5000 7.0000 9.0000 + %! 1.0000 1.2500 3.5000 8.0000 9.0000 + %! 1.0000 1.7500 3.5000 6.0000 9.0000 + %! 1.0000 1.4167 3.5000 7.3333 9.0000 + %! 1.0000 1.4375 3.5000 7.2500 9.0000]; + %! for m = (1:9) + %! q = quantile (x, p, 1, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [1; 2; 5; 9; 11]; + %! a = [1.0000 2.0000 5.0000 9.0000 11.0000 + %! 1.0000 2.0000 5.0000 9.0000 11.0000 + %! 1.0000 1.0000 2.0000 9.0000 11.0000 + %! 1.0000 1.2500 3.5000 8.0000 11.0000 + %! 1.0000 1.7500 5.0000 9.5000 11.0000 + %! 1.0000 1.5000 5.0000 10.0000 11.0000 + %! 1.0000 2.0000 5.0000 9.0000 11.0000 + %! 1.0000 1.6667 5.0000 9.6667 11.0000 + %! 1.0000 1.6875 5.0000 9.6250 11.0000]; + %! for m = (1:9) + %! q = quantile (x, p, 1, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [16; 11; 15; 12; 15; 8; 11; 12; 6; 10]; + %! a = [6.0000 10.0000 11.0000 15.0000 16.0000 + %! 6.0000 10.0000 11.5000 15.0000 16.0000 + %! 6.0000 8.0000 11.0000 15.0000 16.0000 + %! 6.0000 9.0000 11.0000 13.5000 16.0000 + %! 6.0000 10.0000 11.5000 15.0000 16.0000 + %! 6.0000 9.5000 11.5000 15.0000 16.0000 + %! 6.0000 10.2500 11.5000 14.2500 16.0000 + %! 6.0000 9.8333 11.5000 15.0000 16.0000 + %! 6.0000 9.8750 11.5000 15.0000 16.0000]; + %! for m = (1:9) + %! q = quantile (x, p, 1, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = [0.00, 0.25, 0.50, 0.75, 1.00]; + %! x = [-0.58851; 0.40048; 0.49527; -2.551500; -0.52057; ... + %! -0.17841; 0.057322; -0.62523; 0.042906; 0.12337]; + %! a = [-2.551474 -0.588505 -0.178409 0.123366 0.495271 + %! -2.551474 -0.588505 -0.067751 0.123366 0.495271 + %! -2.551474 -0.625231 -0.178409 0.123366 0.495271 + %! -2.551474 -0.606868 -0.178409 0.090344 0.495271 + %! -2.551474 -0.588505 -0.067751 0.123366 0.495271 + %! -2.551474 -0.597687 -0.067751 0.192645 0.495271 + %! -2.551474 -0.571522 -0.067751 0.106855 0.495271 + %! -2.551474 -0.591566 -0.067751 0.146459 0.495271 + %! -2.551474 -0.590801 -0.067751 0.140686 0.495271]; + %! for m = (1:9) + %! q = quantile (x, p, 1, m).'; + %! assert (q, a(m,:), 0.0001) + %! endfor + + %!test + %! p = 0.5; + %! x = [0.112600, 0.114800, 0.052100, 0.236400, 0.139300 + %! 0.171800, 0.727300, 0.204100, 0.453100, 0.158500 + %! 0.279500, 0.797800, 0.329600, 0.556700, 0.730700 + %! 0.428800, 0.875300, 0.647700, 0.628700, 0.816500 + %! 0.933100, 0.931200, 0.963500, 0.779600, 0.846100]; + %! tol = 0.00001; + %! x(5,5) = NaN; + %! assert (quantile(x, p, 1), [0.27950, 0.79780, 0.32960, 0.55670, 0.44460], tol); + %! x(1,1) = NaN; + %! assert (quantile(x, p, 1), [0.35415, 0.79780, 0.32960, 0.55670, 0.44460], tol); + %! x(3,3) = NaN; + %! assert (quantile(x, p, 1), [0.35415, 0.79780, 0.42590, 0.55670, 0.44460], tol); + + %!test + %! sx = [2, 3, 4]; + %! x = rand (sx); + %! dim = 2; + %! p = 0.5; + %! yobs = quantile (x, p, dim); + %! yexp = median (x, dim); + %! assert (yobs, yexp); + diff -cNr octave-3.0.3/scripts/statistics/base/statistics.m octave-3.0.4/scripts/statistics/base/statistics.m *** octave-3.0.3/scripts/statistics/base/statistics.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/statistics/base/statistics.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 21,29 **** ## @deftypefn {Function File} {} statistics (@var{x}) ## If @var{x} is a matrix, return a matrix with the minimum, first ## quartile, median, third quartile, maximum, mean, standard deviation, ! ## skewness and kurtosis of the columns of @var{x} as its rows. ## ! ## If @var{x} is a vector, treat it as a column vector. ## @end deftypefn ## Author: KH --- 21,30 ---- ## @deftypefn {Function File} {} statistics (@var{x}) ## If @var{x} is a matrix, return a matrix with the minimum, first ## quartile, median, third quartile, maximum, mean, standard deviation, ! ## skewness and kurtosis of the columns of @var{x} as its columns. ## ! ## If @var{x} is a vector, calculate the statistics along the ! ## non-singleton dimension. ## @end deftypefn ## Author: KH *************** *** 59,83 **** error ("statistics: invalid argument"); endif ! ## This code is a bit heavy, but is needed until empirical_inv ! ## takes other than vector arguments. ! c = sz(dim); ! stride = prod (sz(1:dim-1)); ! sz(dim) = 3; ! emp_inv = zeros (sz); ! for i = 1 : nel / c; ! offset = i; ! offset2 = 0; ! while (offset > stride) ! offset -= stride; ! offset2++; ! endwhile ! rng = [0 : c-1] * stride + offset + offset2 * stride * c; ! rng2 = [0 : 2] * stride + offset + offset2 * stride * 3; ! emp_inv(rng2) = empirical_inv ([0.25; 0.5; 0.75], X(rng)); ! endfor S = cat (dim, min (X, [], dim), emp_inv, max (X, [], dim), mean (X, dim), std (X, [], dim), skewness (X, dim), kurtosis (X, dim)); endfunction --- 60,74 ---- error ("statistics: invalid argument"); endif ! emp_inv = quantile (X, [0.25; 0.5; 0.75], dim, 7); S = cat (dim, min (X, [], dim), emp_inv, max (X, [], dim), mean (X, dim), std (X, [], dim), skewness (X, dim), kurtosis (X, dim)); endfunction + + %!test + %! x = rand(7,5); + %! s = statistics (x); + %! m = median (x); + %! assert (m, s(3,:), eps); diff -cNr octave-3.0.3/scripts/statistics/distributions/chi2rnd.m octave-3.0.4/scripts/statistics/distributions/chi2rnd.m *** octave-3.0.3/scripts/statistics/distributions/chi2rnd.m 2008-09-24 09:13:48.000000000 +0200 --- octave-3.0.4/scripts/statistics/distributions/chi2rnd.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 84,90 **** k = find ((n > 0) & (n < Inf)); if (any (k)) ! rnd(k) = 2 * randg(n(k)/2, size(k)) endif endif --- 84,90 ---- k = find ((n > 0) & (n < Inf)); if (any (k)) ! rnd(k) = 2 * randg(n(k)/2, size(k)); endif endif diff -cNr octave-3.0.3/scripts/strings/strrep.m octave-3.0.4/scripts/strings/strrep.m *** octave-3.0.3/scripts/strings/strrep.m 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/scripts/strings/strrep.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 20,26 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} strrep (@var{s}, @var{x}, @var{y}) ## Replaces all occurrences of the substring @var{x} of the string @var{s} ! ## with the string @var{y}. For example, ## ## @example ## strrep ("This is a test string", "is", "&%$") --- 20,26 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} strrep (@var{s}, @var{x}, @var{y}) ## Replaces all occurrences of the substring @var{x} of the string @var{s} ! ## with the string @var{y} and returns the result. For example, ## ## @example ## strrep ("This is a test string", "is", "&%$") diff -cNr octave-3.0.3/scripts/testfun/assert.m octave-3.0.4/scripts/testfun/assert.m *** octave-3.0.3/scripts/testfun/assert.m 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/scripts/testfun/assert.m 2009-02-18 07:57:46.000000000 +0100 *************** *** 36,42 **** ## ## @item assert(@var{observed}, @var{expected}, @var{tol}) ## Accept a tolerance when comparing numbers. ! ## If @var{tol} is possitive use it as an absolute tolerance, will produce an error if ## @code{abs(@var{observed} - @var{expected}) > abs(@var{tol})}. ## If @var{tol} is negative use it as a relative tolerance, will produce an error if ## @code{abs(@var{observed} - @var{expected}) > abs(@var{tol} * @var{expected})}. --- 36,42 ---- ## ## @item assert(@var{observed}, @var{expected}, @var{tol}) ## Accept a tolerance when comparing numbers. ! ## If @var{tol} is positive use it as an absolute tolerance, will produce an error if ## @code{abs(@var{observed} - @var{expected}) > abs(@var{tol})}. ## If @var{tol} is negative use it as a relative tolerance, will produce an error if ## @code{abs(@var{observed} - @var{expected}) > abs(@var{tol} * @var{expected})}. diff -cNr octave-3.0.3/src/bitfcns.cc octave-3.0.4/src/bitfcns.cc *** octave-3.0.3/src/bitfcns.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/bitfcns.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 498,504 **** "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} bitmax ()\n\ Return the largest integer that can be represented as a floating point\n\ ! value. On IEEE-754 compatiable systems, @code{bitmax} is @code{2^53 - 1}.\n\ @end deftypefn") { octave_value retval; --- 498,504 ---- "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} bitmax ()\n\ Return the largest integer that can be represented as a floating point\n\ ! value. On IEEE-754 compatible systems, @code{bitmax} is @code{2^53 - 1}.\n\ @end deftypefn") { octave_value retval; diff -cNr octave-3.0.3/src/ChangeLog octave-3.0.4/src/ChangeLog *** octave-3.0.3/src/ChangeLog 2008-09-29 08:03:11.000000000 +0200 --- octave-3.0.4/src/ChangeLog 2009-04-01 10:43:25.000000000 +0200 *************** *** 1,3 **** --- 1,84 ---- + 2009-01-16 Jaroslav Hajek + + Version 3.0.4 released. + + 2009-03-18 Benjamin Lindner + + * ls-oct-ascii.cc (extract_keyword): fix leaving stray '\r' in stream + when reading from CRLF data file by replacing loop with call to + read_until_newline() + + 2009-03-03 Benjamin Lindner + + * ls-ascii-helper.h ls-ascii-helper.cc: New files, provide helper + functions skip_until_newline(), skip_preceeding_newline() and + read_until_newline() that take care of CR/LF handling. + * Makefile.in: add new files + * load-save.cc: Open files always in binary mode in Fload + * ls-mat-ascii.cc (get_mat_data_input_line), ls-oct-ascii.cc + (extract_keyword, read_ascii_data), ls-oct-ascii.h (extract_keyword), + ov-fcn-handle.cc, ov-fcn-inline.cc, ov-range.cc, ov-str-mat.cc + (load_ascii): Use helper functions + + 2009-02-25 Marco Caliari + + * graphics.cc (base_properties::remove_child): Fix order of dims. + + 2009-02-13 John W. Eaton + + * oct-stream.cc (octave_base_stream::do_gets): Handle CRLF and CR. + + 2009-01-23 Jaroslav Hajek + + * DLD-FUNCTIONS/ranpd.cc: Use relative tolerance for randp tests. + + 2008-12-26 Francesco Potortì + + * data.cc (resize): Add cross reference to postpad. + + 2008-10-28 Brian Gough + + * DLD-FUNCTIONS/besselj.cc: Added tests. + + 2008-10-16 John W. Eaton + + * graphics.cc (make_handle_fraction): New static function. + (gh_manager::get_handle): Use it. + (gh_manager::do_free): Call make_handle_fraction to replace + fractional part of non-figure handles. + + * graphics.cc (base_properties::remove_child): Handle children as + a column vector instead of a row vector. + + 2008-12-08 Jaroslav Hajek + + * pt-select.cc (equal): Make empty matrices match. + + 2008-11-12 David Bateman + + * OPERATORS/op-cell.cc (op_catop_matrix_cell): Cast args in the correct + order. + * OPERATORS/op-struct.cc (op_catop_matrix_struct): Ditto. + + 2008-10-31 David Bateman + + * ov-base-scalar.h (octave_value octave_base_scalar::reshape + (const dim_vector&) const): New method. + + 2008-10-30 John W. Eaton + + * oct-map.cc (Octave_map::index): Copy key_list. + + 2008-10-17 John W. Eaton + + * DLD-FUNCTIONS/__qp__.cc (qp): Undo part of change from + 2007-09-04 (compute Y at each iteration). + + 2008-10-02 John W. Eaton + + * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): + Don't insert undefined elements in return list. + 2008-09-24 Jaroslav Hajek Version 3.0.3 released. diff -cNr octave-3.0.3/src/data.cc octave-3.0.4/src/data.cc *** octave-3.0.3/src/data.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/data.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 1524,1530 **** @deftypefn {Built-in Function} {} isinteger (@var{x})\n\ Return true if @var{x} is an integer object (int8, uint8, int16, etc.).\n\ Note that @code{isinteger (14)} is false because numeric constants in\n\ ! are double precision floating point values.\n\ @seealso{isreal, isnumeric, class, isa}\n\ @end deftypefn") { --- 1524,1530 ---- @deftypefn {Built-in Function} {} isinteger (@var{x})\n\ Return true if @var{x} is an integer object (int8, uint8, int16, etc.).\n\ Note that @code{isinteger (14)} is false because numeric constants in\n\ ! Octave are double precision floating point values.\n\ @seealso{isreal, isnumeric, class, isa}\n\ @end deftypefn") { *************** *** 2670,2676 **** dimensions of the result are given by the elements of @var{m}.\n\ If both @var{m} and @var{n} are scalars, then the dimensions of\n\ the result are @var{m}-by-@var{n}.\n\ ! @seealso{reshape}\n\ @end deftypefn") { octave_value retval; --- 2670,2676 ---- dimensions of the result are given by the elements of @var{m}.\n\ If both @var{m} and @var{n} are scalars, then the dimensions of\n\ the result are @var{m}-by-@var{n}.\n\ ! @seealso{reshape, postpad}\n\ @end deftypefn") { octave_value retval; diff -cNr octave-3.0.3/src/DLD-FUNCTIONS/besselj.cc octave-3.0.4/src/DLD-FUNCTIONS/besselj.cc *** octave-3.0.3/src/DLD-FUNCTIONS/besselj.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/DLD-FUNCTIONS/besselj.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 287,307 **** \n\ @table @code\n\ @item besselj\n\ ! Bessel functions of the first kind.\n\ @item bessely\n\ ! Bessel functions of the second kind.\n\ @item besseli\n\ ! Modified Bessel functions of the first kind.\n\ @item besselk\n\ ! Modified Bessel functions of the second kind.\n\ @item besselh\n\ Compute Hankel functions of the first (@var{k} = 1) or second (@var{k}\n\ ! = 2) kind.\n\ ! @end table\n\ ! \n\ ! If the argument @var{opt} is supplied, the result is scaled by the\n\ @code{exp (-I*@var{x})} for @var{k} = 1 or @code{exp (I*@var{x})} for\n\ ! @var{k} = 2.\n\ \n\ If @var{alpha} is a scalar, the result is the same size as @var{x}.\n\ If @var{x} is a scalar, the result is the same size as @var{alpha}.\n\ --- 287,309 ---- \n\ @table @code\n\ @item besselj\n\ ! Bessel functions of the first kind. If the argument @var{opt} is supplied, \n\ ! the result is multiplied by @code{exp(-abs(imag(x)))}.\n\ @item bessely\n\ ! Bessel functions of the second kind. If the argument @var{opt} is supplied,\n\ ! the result is multiplied by @code{exp(-abs(imag(x)))}.\n\ @item besseli\n\ ! Modified Bessel functions of the first kind. If the argument @var{opt} is supplied,\n\ ! the result is multiplied by @code{exp(-abs(real(x)))}.\n\ @item besselk\n\ ! Modified Bessel functions of the second kind. If the argument @var{opt} is supplied,\n\ ! the result is multiplied by @code{exp(x)}.\n\ @item besselh\n\ Compute Hankel functions of the first (@var{k} = 1) or second (@var{k}\n\ ! = 2) kind. If the argument @var{opt} is supplied, the result is multiplied by\n\ @code{exp (-I*@var{x})} for @var{k} = 1 or @code{exp (I*@var{x})} for\n\ ! @var{k} = 2.\n\ ! @end table\n\ \n\ If @var{alpha} is a scalar, the result is the same size as @var{x}.\n\ If @var{x} is a scalar, the result is the same size as @var{alpha}.\n\ *************** *** 504,509 **** --- 506,793 ---- } /* + %! # Test values computed with GP/PARI version 2.3.3 + %! + %!shared alpha, x, jx, yx, ix, kx, nix + %! + %! # Bessel functions, even order, positive and negative x + %! alpha = 2; x = 1.25; + %! jx = 0.1710911312405234823613091417; + %! yx = -1.193199310178553861283790424; + %! ix = 0.2220184483766341752692212604; + %! kx = 0.9410016167388185767085460540; + %! + %!assert(besselj(alpha,x), jx, 100*eps) + %!assert(bessely(alpha,x), yx, 100*eps) + %!assert(besseli(alpha,x), ix, 100*eps) + %!assert(besselk(alpha,x), kx, 100*eps) + %!assert(besselh(alpha,1,x), jx + I*yx, 100*eps) + %!assert(besselh(alpha,2,x), jx - I*yx, 100*eps) + %! + %!assert(besselj(alpha,x,1), jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(alpha,1,x,1), (jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(alpha,2,x,1), (jx - I*yx)*exp(I*x), 100*eps) + %! + %!assert(besselj(-alpha,x), jx, 100*eps) + %!assert(bessely(-alpha,x), yx, 100*eps) + %!assert(besseli(-alpha,x), ix, 100*eps) + %!assert(besselk(-alpha,x), kx, 100*eps) + %!assert(besselh(-alpha,1,x), jx + I*yx, 100*eps) + %!assert(besselh(-alpha,2,x), jx - I*yx, 100*eps) + %! + %!assert(besselj(-alpha,x,1), jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(-alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(-alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(-alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(-alpha,1,x,1), (jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(-alpha,2,x,1), (jx - I*yx)*exp(I*x), 100*eps) + %! + %! x *= -1; + %! yx = -1.193199310178553861283790424 + 0.3421822624810469647226182835*I; + %! kx = 0.9410016167388185767085460540 - 0.6974915263814386815610060884*I; + %! + %!assert(besselj(alpha,x), jx, 100*eps) + %!assert(bessely(alpha,x), yx, 100*eps) + %!assert(besseli(alpha,x), ix, 100*eps) + %!assert(besselk(alpha,x), kx, 100*eps) + %!assert(besselh(alpha,1,x), jx + I*yx, 100*eps) + %!assert(besselh(alpha,2,x), jx - I*yx, 100*eps) + %! + %!assert(besselj(alpha,x,1), jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(alpha,1,x,1), (jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(alpha,2,x,1), (jx - I*yx)*exp(I*x), 100*eps) + %! + %! # Bessel functions, odd order, positive and negative x + %! alpha = 3; x = 2.5; + %! jx = 0.2166003910391135247666890035; + %! yx = -0.7560554967536709968379029772; + %! ix = 0.4743704087780355895548240179; + %! kx = 0.2682271463934492027663765197; + %! + %!assert(besselj(alpha,x), jx, 100*eps) + %!assert(bessely(alpha,x), yx, 100*eps) + %!assert(besseli(alpha,x), ix, 100*eps) + %!assert(besselk(alpha,x), kx, 100*eps) + %!assert(besselh(alpha,1,x), jx + I*yx, 100*eps) + %!assert(besselh(alpha,2,x), jx - I*yx, 100*eps) + %! + %!assert(besselj(alpha,x,1), jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(alpha,1,x,1), (jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(alpha,2,x,1), (jx - I*yx)*exp(I*x), 100*eps) + %! + %!assert(besselj(-alpha,x), -jx, 100*eps) + %!assert(bessely(-alpha,x), -yx, 100*eps) + %!assert(besseli(-alpha,x), ix, 100*eps) + %!assert(besselk(-alpha,x), kx, 100*eps) + %!assert(besselh(-alpha,1,x), -(jx + I*yx), 100*eps) + %!assert(besselh(-alpha,2,x), -(jx - I*yx), 100*eps) + %! + %!assert(besselj(-alpha,x,1), -jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(-alpha,x,1), -yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(-alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(-alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(-alpha,1,x,1), -(jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(-alpha,2,x,1), -(jx - I*yx)*exp(I*x), 100*eps) + %! + %! x *= -1; + %! jx = -jx; + %! yx = 0.7560554967536709968379029772 - 0.4332007820782270495333780070*I; + %! ix = -ix; + %! kx = -0.2682271463934492027663765197 - 1.490278591297463775542004240*I; + %! + %!assert(besselj(alpha,x), jx, 100*eps) + %!assert(bessely(alpha,x), yx, 100*eps) + %!assert(besseli(alpha,x), ix, 100*eps) + %!assert(besselk(alpha,x), kx, 100*eps) + %!assert(besselh(alpha,1,x), jx + I*yx, 100*eps) + %!assert(besselh(alpha,2,x), jx - I*yx, 100*eps) + %! + %!assert(besselj(alpha,x,1), jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(alpha,1,x,1), (jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(alpha,2,x,1), (jx - I*yx)*exp(I*x), 100*eps) + %! + %! # Bessel functions, fractional order, positive and negative x + %! + %! alpha = 3.5; x = 2.75; + %! jx = 0.1691636439842384154644784389; + %! yx = -0.8301381935499356070267953387; + %! ix = 0.3930540878794826310979363668; + %! kx = 0.2844099013460621170288192503; + %! + %!assert(besselj(alpha,x), jx, 100*eps) + %!assert(bessely(alpha,x), yx, 100*eps) + %!assert(besseli(alpha,x), ix, 100*eps) + %!assert(besselk(alpha,x), kx, 100*eps) + %!assert(besselh(alpha,1,x), jx + I*yx, 100*eps) + %!assert(besselh(alpha,2,x), jx - I*yx, 100*eps) + %! + %!assert(besselj(alpha,x,1), jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(alpha,1,x,1), (jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(alpha,2,x,1), (jx - I*yx)*exp(I*x), 100*eps) + %! + %! nix = 0.2119931212254662995364461998; + %! + %!assert(besselj(-alpha,x), yx, 100*eps) + %!assert(bessely(-alpha,x), -jx, 100*eps) + %!assert(besseli(-alpha,x), nix, 100*eps) + %!assert(besselk(-alpha,x), kx, 100*eps) + %!assert(besselh(-alpha,1,x), -I*(jx + I*yx), 100*eps) + %!assert(besselh(-alpha,2,x), I*(jx - I*yx), 100*eps) + %! + %!assert(besselj(-alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(-alpha,x,1), -jx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(-alpha,x,1), nix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(-alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(-alpha,1,x,1), -I*(jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(-alpha,2,x,1), I*(jx - I*yx)*exp(I*x), 100*eps) + %! + %! x *= -1; + %! jx *= -I; + %! yx = -0.8301381935499356070267953387*I; + %! ix *= -I; + %! kx = -0.9504059335995575096509874508*I; + %! + %!assert(besselj(alpha,x), jx, 100*eps) + %!assert(bessely(alpha,x), yx, 100*eps) + %!assert(besseli(alpha,x), ix, 100*eps) + %!assert(besselk(alpha,x), kx, 100*eps) + %!assert(besselh(alpha,1,x), jx + I*yx, 100*eps) + %!assert(besselh(alpha,2,x), jx - I*yx, 100*eps) + %! + %!assert(besselj(alpha,x,1), jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(alpha,1,x,1), (jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(alpha,2,x,1), (jx - I*yx)*exp(I*x), 100*eps) + %! + %! # Bessel functions, even order, complex x + %! + %! alpha = 2; x = 1.25 + 3.625 * I; + %! jx = -1.299533366810794494030065917 + 4.370833116012278943267479589*I; + %! yx = -4.370357232383223896393056727 - 1.283083391453582032688834041*I; + %! ix = -0.6717801680341515541002273932 - 0.2314623443930774099910228553*I; + %! kx = -0.01108009888623253515463783379 + 0.2245218229358191588208084197*I; + %! + %!assert(besselj(alpha,x), jx, 100*eps) + %!assert(bessely(alpha,x), yx, 100*eps) + %!assert(besseli(alpha,x), ix, 100*eps) + %!assert(besselk(alpha,x), kx, 100*eps) + %!assert(besselh(alpha,1,x), jx + I*yx, 100*eps) + %!assert(besselh(alpha,2,x), jx - I*yx, 100*eps) + %! + %!assert(besselj(alpha,x,1), jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(alpha,1,x,1), (jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(alpha,2,x,1), (jx - I*yx)*exp(I*x), 100*eps) + %! + %!assert(besselj(-alpha,x), jx, 100*eps) + %!assert(bessely(-alpha,x), yx, 100*eps) + %!assert(besseli(-alpha,x), ix, 100*eps) + %!assert(besselk(-alpha,x), kx, 100*eps) + %!assert(besselh(-alpha,1,x), jx + I*yx, 100*eps) + %!assert(besselh(-alpha,2,x), jx - I*yx, 100*eps) + %! + %!assert(besselj(-alpha,x,1), jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(-alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(-alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(-alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(-alpha,1,x,1), (jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(-alpha,2,x,1), (jx - I*yx)*exp(I*x), 100*eps) + %! + %! # Bessel functions, odd order, complex x + %! + %! alpha = 3; x = 2.5 + 1.875 * I; + %! jx = 0.1330721523048277493333458596 + 0.5386295217249660078754395597*I; + %! yx = -0.6485072392105829901122401551 + 0.2608129289785456797046996987*I; + %! ix = -0.6182064685486998097516365709 + 0.4677561094683470065767989920*I; + %! kx = -0.1568585587733540007867882337 - 0.05185853709490846050505141321*I; + %! + %!assert(besselj(alpha,x), jx, 100*eps) + %!assert(bessely(alpha,x), yx, 100*eps) + %!assert(besseli(alpha,x), ix, 100*eps) + %!assert(besselk(alpha,x), kx, 100*eps) + %!assert(besselh(alpha,1,x), jx + I*yx, 100*eps) + %!assert(besselh(alpha,2,x), jx - I*yx, 100*eps) + %! + %!assert(besselj(alpha,x,1), jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(alpha,1,x,1), (jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(alpha,2,x,1), (jx - I*yx)*exp(I*x), 100*eps) + %! + %!assert(besselj(-alpha,x), -jx, 100*eps) + %!assert(bessely(-alpha,x), -yx, 100*eps) + %!assert(besseli(-alpha,x), ix, 100*eps) + %!assert(besselk(-alpha,x), kx, 100*eps) + %!assert(besselh(-alpha,1,x), -(jx + I*yx), 100*eps) + %!assert(besselh(-alpha,2,x), -(jx - I*yx), 100*eps) + %! + %!assert(besselj(-alpha,x,1), -jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(-alpha,x,1), -yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(-alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(-alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(-alpha,1,x,1), -(jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(-alpha,2,x,1), -(jx - I*yx)*exp(I*x), 100*eps) + %! + %! # Bessel functions, fractional order, complex x + %! + %! alpha = 3.5; x = 1.75 + 4.125 * I; + %! jx = -3.018566131370455929707009100 - 0.7585648436793900607704057611*I; + %! yx = 0.7772278839106298215614791107 - 3.018518722313849782683792010*I; + %! ix = 0.2100873577220057189038160913 - 0.6551765604618246531254970926*I; + %! kx = 0.1757147290513239935341488069 + 0.08772348296883849205562558311*I; + %! + %!assert(besselj(alpha,x), jx, 100*eps) + %!assert(bessely(alpha,x), yx, 100*eps) + %!assert(besseli(alpha,x), ix, 100*eps) + %!assert(besselk(alpha,x), kx, 100*eps) + %!assert(besselh(alpha,1,x), jx + I*yx, 100*eps) + %!assert(besselh(alpha,2,x), jx - I*yx, 100*eps) + %! + %!assert(besselj(alpha,x,1), jx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(alpha,x,1), ix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(alpha,1,x,1), (jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(alpha,2,x,1), (jx - I*yx)*exp(I*x), 100*eps) + %! + %! nix = 0.09822388691172060573913739253 - 0.7110230642207380127317227407*I; + %! + %!assert(besselj(-alpha,x), yx, 100*eps) + %!assert(bessely(-alpha,x), -jx, 100*eps) + %!assert(besseli(-alpha,x), nix, 100*eps) + %!assert(besselk(-alpha,x), kx, 100*eps) + %!assert(besselh(-alpha,1,x), -I*(jx + I*yx), 100*eps) + %!assert(besselh(-alpha,2,x), I*(jx - I*yx), 100*eps) + %! + %!assert(besselj(-alpha,x,1), yx*exp(-abs(imag(x))), 100*eps) + %!assert(bessely(-alpha,x,1), -jx*exp(-abs(imag(x))), 100*eps) + %!assert(besseli(-alpha,x,1), nix*exp(-abs(real(x))), 100*eps) + %!assert(besselk(-alpha,x,1), kx*exp(x), 100*eps) + %!assert(besselh(-alpha,1,x,1), -I*(jx + I*yx)*exp(-I*x), 100*eps) + %!assert(besselh(-alpha,2,x,1), I*(jx - I*yx)*exp(I*x), 100*eps) + */ + + /* ;;; Local Variables: *** ;;; mode: C++ *** ;;; End: *** diff -cNr octave-3.0.3/src/DLD-FUNCTIONS/matrix_type.cc octave-3.0.4/src/DLD-FUNCTIONS/matrix_type.cc *** octave-3.0.3/src/DLD-FUNCTIONS/matrix_type.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/DLD-FUNCTIONS/matrix_type.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 99,105 **** matrix type.\n\ \n\ Also the test for positive definiteness is a low cost test for a hermitian\n\ ! matrix with a real positive diagonal. This does not guarentee that the matrix\n\ is positive definite, but only that it is a probable candidate. When such a\n\ matrix is factorized, a Cholesky factorization is first attempted, and if\n\ that fails the matrix is then treated with an LU factorization. Once the\n\ --- 99,105 ---- matrix type.\n\ \n\ Also the test for positive definiteness is a low cost test for a hermitian\n\ ! matrix with a real positive diagonal. This does not guarantee that the matrix\n\ is positive definite, but only that it is a probable candidate. When such a\n\ matrix is factorized, a Cholesky factorization is first attempted, and if\n\ that fails the matrix is then treated with an LU factorization. Once the\n\ diff -cNr octave-3.0.3/src/DLD-FUNCTIONS/__qp__.cc octave-3.0.4/src/DLD-FUNCTIONS/__qp__.cc *** octave-3.0.3/src/DLD-FUNCTIONS/__qp__.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/DLD-FUNCTIONS/__qp__.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 233,238 **** --- 233,241 ---- // FIXME -- still remain to handle the case of // non-full rank active set matrix. + // Computing the Y matrix (orthogonal to Z) + Y = Aact.pseudo_inverse (); + // Reduced Hessian Matrix Zt = Z.transpose (); Matrix rH = Zt * H * Z; *************** *** 327,333 **** // Computing the multipliers only for the inequality // constraints that are active. We do NOT compute // multipliers for the equality constraints. - Y = Aact.pseudo_inverse (); Matrix Yt = Y.transpose (); Yt = Yt.extract_n (n_eq, 0, n_act-n_eq, n); lambda_tmp = Yt * (g + H * p); --- 330,335 ---- diff -cNr octave-3.0.3/src/DLD-FUNCTIONS/rand.cc octave-3.0.4/src/DLD-FUNCTIONS/rand.cc *** octave-3.0.3/src/DLD-FUNCTIONS/rand.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/DLD-FUNCTIONS/rand.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 341,347 **** available, otherwise from cpu time, wall clock time and the current\n\ fraction of a second.\n\ \n\ ! To compute the psuedo-random sequence, @code{rand} uses the Mersenne\n\ Twister with a period of 2^19937-1 (See M. Matsumoto and T. Nishimura,\n\ ``Mersenne Twister: A 623-dimensionally\n\ equidistributed uniform pseudorandom number generator'', ACM Trans. on\n\ --- 341,347 ---- available, otherwise from cpu time, wall clock time and the current\n\ fraction of a second.\n\ \n\ ! To compute the pseudo-random sequence, @code{rand} uses the Mersenne\n\ Twister with a period of 2^19937-1 (See M. Matsumoto and T. Nishimura,\n\ ``Mersenne Twister: A 623-dimensionally\n\ equidistributed uniform pseudorandom number generator'', ACM Trans. on\n\ *************** *** 884,890 **** @item For matrix @var{l} > 10, use patchwork rejection method.\n\ Stadlober E., et al., WinRand source code, available via FTP, or\n\ H. Zechner, 'Efficient sampling from continuous and discrete\n\ ! unimodal distributions', Doctoral Dissertaion, 156pp., Technical\n\ University Graz, Austria, 1994.\n\ @item For @var{l} > 1e8, use normal approximation.\n\ L. Montanet, et al., 'Review of Particle Properties', Physical Review\n\ --- 884,890 ---- @item For matrix @var{l} > 10, use patchwork rejection method.\n\ Stadlober E., et al., WinRand source code, available via FTP, or\n\ H. Zechner, 'Efficient sampling from continuous and discrete\n\ ! unimodal distributions', Doctoral Dissertation, 156pp., Technical\n\ University Graz, Austria, 1994.\n\ @item For @var{l} > 1e8, use normal approximation.\n\ L. Montanet, et al., 'Review of Particle Properties', Physical Review\n\ *************** *** 938,944 **** %!test %! % Test fixed state %! randp("state",1); ! %! assert(randp(1e9,1,6),[999915677 999976657 1000047684 1000019035 999985749 999977692],1e-6) %!test %! % Test fixed state %! randp("seed",1); --- 938,944 ---- %!test %! % Test fixed state %! randp("state",1); ! %! assert(randp(1e9,1,6),[999915677 999976657 1000047684 1000019035 999985749 999977692],-1e-6) %!test %! % Test fixed state %! randp("seed",1); *************** *** 951,957 **** %!test %! % Test fixed state %! randp("seed",1); ! %! assert(randp(1e9,1,6),[1000006208 1000012224 999981120 999963520 999963072 999981440],1e-6) %!test %! if (__random_statistical_tests__) %! % statistical tests may fail occasionally. --- 951,957 ---- %!test %! % Test fixed state %! randp("seed",1); ! %! assert(randp(1e9,1,6),[1000006208 1000012224 999981120 999963520 999963072 999981440],-1e-6) %!test %! if (__random_statistical_tests__) %! % statistical tests may fail occasionally. diff -cNr octave-3.0.3/src/DOCSTRINGS octave-3.0.4/src/DOCSTRINGS *** octave-3.0.3/src/DOCSTRINGS 2008-09-24 10:31:10.000000000 +0200 --- octave-3.0.4/src/DOCSTRINGS 2009-03-27 12:52:49.000000000 +0100 *************** *** 260,280 **** @table @code @item besselj ! Bessel functions of the first kind. @item bessely ! Bessel functions of the second kind. @item besseli ! Modified Bessel functions of the first kind. @item besselk ! Modified Bessel functions of the second kind. @item besselh Compute Hankel functions of the first (@var{k} = 1) or second (@var{k} ! = 2) kind. ! @end table ! ! If the argument @var{opt} is supplied, the result is scaled by the @code{exp (-I*@var{x})} for @var{k} = 1 or @code{exp (I*@var{x})} for ! @var{k} = 2. If @var{alpha} is a scalar, the result is the same size as @var{x}. If @var{x} is a scalar, the result is the same size as @var{alpha}. --- 260,282 ---- @table @code @item besselj ! Bessel functions of the first kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(-abs(imag(x)))}. @item bessely ! Bessel functions of the second kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(-abs(imag(x)))}. @item besseli ! Modified Bessel functions of the first kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(-abs(real(x)))}. @item besselk ! Modified Bessel functions of the second kind. If the argument @var{opt} is supplied, ! the result is multiplied by @code{exp(x)}. @item besselh Compute Hankel functions of the first (@var{k} = 1) or second (@var{k} ! = 2) kind. If the argument @var{opt} is supplied, the result is multiplied by @code{exp (-I*@var{x})} for @var{k} = 1 or @code{exp (I*@var{x})} for ! @var{k} = 2. ! @end table If @var{alpha} is a scalar, the result is the same size as @var{x}. If @var{x} is a scalar, the result is the same size as @var{alpha}. *************** *** 446,452 **** -*- texinfo -*- @deftypefn {Built-in Function} {} bitmax () Return the largest integer that can be represented as a floating point ! value. On IEEE-754 compatiable systems, @code{bitmax} is @code{2^53 - 1}. @end deftypefn intmax -*- texinfo -*- --- 448,454 ---- -*- texinfo -*- @deftypefn {Built-in Function} {} bitmax () Return the largest integer that can be represented as a floating point ! value. On IEEE-754 compatible systems, @code{bitmax} is @code{2^53 - 1}. @end deftypefn intmax -*- texinfo -*- *************** *** 1903,1909 **** @deftypefn {Built-in Function} {} isinteger (@var{x}) Return true if @var{x} is an integer object (int8, uint8, int16, etc.). Note that @code{isinteger (14)} is false because numeric constants in ! are double precision floating point values. @seealso{isreal, isnumeric, class, isa} @end deftypefn iscomplex --- 1905,1911 ---- @deftypefn {Built-in Function} {} isinteger (@var{x}) Return true if @var{x} is an integer object (int8, uint8, int16, etc.). Note that @code{isinteger (14)} is false because numeric constants in ! Octave are double precision floating point values. @seealso{isreal, isnumeric, class, isa} @end deftypefn iscomplex *************** *** 2233,2239 **** dimensions of the result are given by the elements of @var{m}. If both @var{m} and @var{n} are scalars, then the dimensions of the result are @var{m}-by-@var{n}. ! @seealso{reshape} @end deftypefn reshape -*- texinfo -*- --- 2235,2241 ---- dimensions of the result are given by the elements of @var{m}. If both @var{m} and @var{n} are scalars, then the dimensions of the result are @var{m}-by-@var{n}. ! @seealso{reshape, postpad} @end deftypefn reshape -*- texinfo -*- *************** *** 4803,4809 **** genpath -*- texinfo -*- @deftypefn {Built-in Function} {} genpath (@var{dir}) ! Return a path constructed from @var{dir} and all its subdiretories. @end deftypefn rehash -*- texinfo -*- --- 4805,4811 ---- genpath -*- texinfo -*- @deftypefn {Built-in Function} {} genpath (@var{dir}) ! Return a path constructed from @var{dir} and all its subdirectories. @end deftypefn rehash -*- texinfo -*- *************** *** 5877,5883 **** matrix type. Also the test for positive definiteness is a low cost test for a hermitian ! matrix with a real positive diagonal. This does not guarentee that the matrix is positive definite, but only that it is a probable candidate. When such a matrix is factorized, a Cholesky factorization is first attempted, and if that fails the matrix is then treated with an LU factorization. Once the --- 5879,5885 ---- matrix type. Also the test for positive definiteness is a low cost test for a hermitian ! matrix with a real positive diagonal. This does not guarantee that the matrix is positive definite, but only that it is a probable candidate. When such a matrix is factorized, a Cholesky factorization is first attempted, and if that fails the matrix is then treated with an LU factorization. Once the *************** *** 7347,7353 **** available, otherwise from cpu time, wall clock time and the current fraction of a second. ! To compute the psuedo-random sequence, @code{rand} uses the Mersenne Twister with a period of 2^19937-1 (See M. Matsumoto and T. Nishimura, ``Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator'', ACM Trans. on --- 7349,7355 ---- available, otherwise from cpu time, wall clock time and the current fraction of a second. ! To compute the pseudo-random sequence, @code{rand} uses the Mersenne Twister with a period of 2^19937-1 (See M. Matsumoto and T. Nishimura, ``Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator'', ACM Trans. on *************** *** 7504,7510 **** @item For matrix @var{l} > 10, use patchwork rejection method. Stadlober E., et al., WinRand source code, available via FTP, or H. Zechner, 'Efficient sampling from continuous and discrete ! unimodal distributions', Doctoral Dissertaion, 156pp., Technical University Graz, Austria, 1994. @item For @var{l} > 1e8, use normal approximation. L. Montanet, et al., 'Review of Particle Properties', Physical Review --- 7506,7512 ---- @item For matrix @var{l} > 10, use patchwork rejection method. Stadlober E., et al., WinRand source code, available via FTP, or H. Zechner, 'Efficient sampling from continuous and discrete ! unimodal distributions', Doctoral Dissertation, 156pp., Technical University Graz, Austria, 1994. @item For @var{l} > 1e8, use normal approximation. L. Montanet, et al., 'Review of Particle Properties', Physical Review *************** *** 10376,10382 **** @item -variables, -v Clears the local variable names. @end table ! With the execption of @code{exclusive}, all long options can be used without the dash as well. @end deffn __print_symtab_info__ --- 10378,10384 ---- @item -variables, -v Clears the local variable names. @end table ! With the exception of @code{exclusive}, all long options can be used without the dash as well. @end deffn __print_symtab_info__ diff -cNr octave-3.0.3/src/graphics.cc octave-3.0.4/src/graphics.cc *** octave-3.0.3/src/graphics.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/graphics.cc 2009-02-25 08:48:09.000000000 +0100 *************** *** 430,435 **** --- 430,442 ---- error ("set: invalid number of arguments"); } + static double + make_handle_fraction (void) + { + static double maxrand = RAND_MAX + 2.0; + + return (rand () + 1.0) / maxrand; + } graphics_handle gh_manager::get_handle (const std::string& go_name) *************** *** 438,443 **** --- 445,453 ---- if (go_name == "figure") { + // Figure handles are positive integers corresponding to the + // figure number. + // We always want the lowest unused figure number. retval = 1; *************** *** 447,452 **** --- 457,467 ---- } else { + // Other graphics handles are negative integers plus some random + // fractional part. To avoid running out of integers, we + // recycle the integer part but tack on a new random part each + // time. + free_list_iterator p = handle_free_list.begin (); if (p != handle_free_list.end ()) *************** *** 456,466 **** } else { - static double maxrand = RAND_MAX + 2.0; - retval = graphics_handle (next_handle); ! next_handle = ceil (next_handle) - 1.0 - (rand () + 1.0) / maxrand; } } --- 471,479 ---- } else { retval = graphics_handle (next_handle); ! next_handle = ceil (next_handle) - 1.0 - make_handle_fraction (); } } *************** *** 481,487 **** handle_map.erase (p); if (h.value () < 0) ! handle_free_list.insert (h); } else error ("graphics_handle::free: invalid object %g", h.value ()); --- 494,500 ---- handle_map.erase (p); if (h.value () < 0) ! handle_free_list.insert (ceil (h.value ()) - make_handle_fraction ()); } else error ("graphics_handle::free: invalid object %g", h.value ()); diff -cNr octave-3.0.3/src/load-path.cc octave-3.0.4/src/load-path.cc *** octave-3.0.3/src/load-path.cc 2008-09-29 07:36:19.000000000 +0200 --- octave-3.0.4/src/load-path.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 1298,1304 **** DEFUN (genpath, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} genpath (@var{dir})\n\ ! Return a path constructed from @var{dir} and all its subdiretories.\n\ @end deftypefn") { octave_value retval; --- 1298,1304 ---- DEFUN (genpath, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} genpath (@var{dir})\n\ ! Return a path constructed from @var{dir} and all its subdirectories.\n\ @end deftypefn") { octave_value retval; diff -cNr octave-3.0.3/src/load-save.cc octave-3.0.4/src/load-save.cc *** octave-3.0.3/src/load-save.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/load-save.cc 2009-03-27 12:28:33.000000000 +0100 *************** *** 906,920 **** std::ios::openmode mode = std::ios::in; ! if (format == LS_BINARY ! #ifdef HAVE_HDF5 ! || format == LS_HDF5 ! #endif ! || format == LS_MAT_BINARY ! || format == LS_MAT5_BINARY ! || format == LS_MAT7_BINARY) ! mode |= std::ios::binary; ! #ifdef HAVE_ZLIB if (use_zlib) { --- 906,917 ---- std::ios::openmode mode = std::ios::in; ! // Open in binary mode in any case, to fix annoying bug that ! // text-mode opened streams cannot be seekg'ed/tellg'ed with ! // mingw32 (See http://oldwiki.mingw.org/index.php/Known%20Problems ) ! // The CR/LF issues are handled in ls-ascii-helper.cc ! mode |= std::ios::binary; ! #ifdef HAVE_ZLIB if (use_zlib) { diff -cNr octave-3.0.3/src/ls-ascii-helper.cc octave-3.0.4/src/ls-ascii-helper.cc *** octave-3.0.3/src/ls-ascii-helper.cc 1970-01-01 01:00:00.000000000 +0100 --- octave-3.0.4/src/ls-ascii-helper.cc 2009-03-27 12:28:33.000000000 +0100 *************** *** 0 **** --- 1,160 ---- + /* + + Copyright (C) 2003, 2005, 2006, 2007 John W. Eaton + + This file is part of Octave. + + Octave is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 3 of the License, or (at your + option) any later version. + + Octave is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with Octave; see the file COPYING. If not, see + . + + */ + + + #include "ls-ascii-helper.h" + + #include + #include + + // Helper functions when reading from ascii files. + // These function take care of CR/LF issues when files are opened in text-mode for reading + + // Skip characters from stream IS until a newline is reached. + // Depending on KEEP_NEWLINE, either eat newline from stream or + // keep it unread + + void + skip_until_newline( std::istream& is, bool keep_newline ) + { + if (!is) + return; + + char c,d; + + while (is) + { + c = is.peek(); + if (c == '\n' || c == '\r') + { + // reached newline + if (keep_newline == false) + { + // eat the CR or LF character + is.get(d); + + // make sure that for binary-mode opened ascii files containing CRLF line endings + // we skip the LF after CR... + if (c == '\r' && is.peek()=='\n') + { + // yes, LF following CR, eat it... + is.get(d); + } + } + + // Newline was found, and read from stream if keep_newline==true, so exit loop + break; + } + else + // no newline charater peeked, so read it and proceed to next character + is.get(d); + } + + return; + } + + + // If stream IS currently points to a newline (a leftover from a previous read) + // then eat newline(s) until a non-newline character is found + + void + skip_preceeding_newline( std::istream& is ) + { + if (!is) + return; + + char c,d; + + // Check if IS currently points to newline character + c = is.peek(); + if (c == '\n' || c == '\r') + { + // Yes, at newline + do { + // eat the CR or LF character + is.get(d); + + // make sure that for binary-mode opened ascii files containing CRLF line endings + // we skip the LF after CR... + if (c == '\r' && is.peek() == '\n') + { + // yes, LF following CR, eat it... + is.get(d); + } + + // Peek into next character + c = is.peek(); + // Loop while still a newline ahead + } while( c == '\n' || c == '\r' ); + } + + return; + } + + + // Read charaters from stream IS until a newline is reached. + // Depending on KEEP_NEWLINE, either eat newline from stream or + // keep it unread + // Characters read are stored and returned as std::string + + std::string + read_until_newline( std::istream& is, bool keep_newline ) + { + if (!is) + return std::string(); + + char c,d; + std::ostringstream buf; + + while (is) + { + c = is.peek(); + if (c == '\n' || c == '\r') + { + // reached newline + if (keep_newline == false) + { + // eat the CR or LF character + is.get(d); + + // make sure that for binary-mode opened ascii files containing CRLF line endings + // we skip the LF after CR... + if (c == '\r' && is.peek() == '\n') + { + // yes, LF following CR, eat it... + is.get(d); + } + } + + // Newline was found, and read from stream if keep_newline==true, so exit loop + break; + } + else + { + // no newline charater peeked, so read it, store it, and proceed to next + is.get(d); + buf << d; + } + } + + return buf.str(); + } diff -cNr octave-3.0.3/src/ls-ascii-helper.h octave-3.0.4/src/ls-ascii-helper.h *** octave-3.0.3/src/ls-ascii-helper.h 1970-01-01 01:00:00.000000000 +0100 --- octave-3.0.4/src/ls-ascii-helper.h 2009-03-27 12:28:33.000000000 +0100 *************** *** 0 **** --- 1,40 ---- + /* + + Copyright (C) 2003, 2005, 2006, 2007 John W. Eaton + + This file is part of Octave. + + Octave is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 3 of the License, or (at your + option) any later version. + + Octave is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with Octave; see the file COPYING. If not, see + . + + */ + + #if !defined (octave_ls_ascii_helper_h) + #define octave_ls_ascii_helper_h 1 + + #include + #include + + #include "oct-dlldefs.h" + + extern OCTINTERP_API void + skip_until_newline( std::istream& is, bool keep_newline = false ); + + extern OCTINTERP_API void + skip_preceeding_newline( std::istream& is ); + + extern OCTINTERP_API std::string + read_until_newline( std::istream& is, bool keep_newline = false ); + + #endif // !defined (octave_ls_ascii_helper_h) diff -cNr octave-3.0.3/src/ls-mat-ascii.cc octave-3.0.4/src/ls-mat-ascii.cc *** octave-3.0.3/src/ls-mat-ascii.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/ls-mat-ascii.cc 2009-03-27 12:28:33.000000000 +0100 *************** *** 65,70 **** --- 65,71 ---- #include "dMatrix.h" #include "ls-mat-ascii.h" + #include "ls-ascii-helper.h" static std::string get_mat_data_input_line (std::istream& is) *************** *** 81,94 **** while (is.get (c)) { if (c == '\n' || c == '\r') ! break; if (c == '%' || c == '#') { // skip to end of line ! while (is.get (c)) ! if (c == '\n' || c == '\r') ! break; break; } --- 82,97 ---- while (is.get (c)) { if (c == '\n' || c == '\r') ! { ! // Let skip_until_newline handle CR/LF issues... ! skip_until_newline (is, false); ! break; ! } if (c == '%' || c == '#') { // skip to end of line ! skip_until_newline (is, false); break; } diff -cNr octave-3.0.3/src/ls-oct-ascii.cc octave-3.0.4/src/ls-oct-ascii.cc *** octave-3.0.3/src/ls-oct-ascii.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/ls-oct-ascii.cc 2009-03-27 12:28:33.000000000 +0100 *************** *** 108,121 **** while (is.get (c) && (c == ' ' || c == '\t' || c == ':')) ; // Skip whitespace and the colon. ! if (c != '\n' && c != '\r') ! { ! value << c; ! while (is.get (c) && c != '\n' && c != '\r') ! value << c; ! } ! ! retval = value.str (); break; } else if (next_only) --- 108,115 ---- while (is.get (c) && (c == ' ' || c == '\t' || c == ':')) ; // Skip whitespace and the colon. ! is.putback(c); ! retval = read_until_newline (is, false); break; } else if (next_only) diff -cNr octave-3.0.3/src/ls-oct-ascii.h octave-3.0.4/src/ls-oct-ascii.h *** octave-3.0.3/src/ls-oct-ascii.h 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/ls-oct-ascii.h 2009-03-27 12:28:33.000000000 +0100 *************** *** 29,34 **** --- 29,35 ---- #include #include "str-vec.h" + #include "ls-ascii-helper.h" // Flag for cell elements #define CELL_ELT_TAG "" *************** *** 103,110 **** is >> value; if (is) status = true; ! while (is.get (c) && c != '\n' && c != '\r') ! ; // Skip to beginning of next line; break; } else if (next_only) --- 104,111 ---- is >> value; if (is) status = true; ! // Skip to beginning of next line; ! skip_until_newline (is, false); break; } else if (next_only) *************** *** 165,172 **** is >> value; if (is) status = true; ! while (is.get (c) && c != '\n' && c != '\r') ! ; // Skip to beginning of next line; return status; } } --- 166,173 ---- is >> value; if (is) status = true; ! // Skip to beginning of next line; ! skip_until_newline (is, false); return status; } } diff -cNr octave-3.0.3/src/Makefile.in octave-3.0.4/src/Makefile.in *** octave-3.0.3/src/Makefile.in 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/Makefile.in 2009-03-27 12:28:33.000000000 +0100 *************** *** 116,122 **** comment-list.h debug.h defun-dld.h defun-int.h defun.h \ dirfns.h dynamic-ld.h error.h file-io.h gripes.h help.h \ input.h lex.h load-path.h load-save.h ls-hdf5.h \ ! ls-mat-ascii.h ls-mat4.h ls-mat5.h ls-oct-ascii.h \ ls-oct-binary.h ls-utils.h mex.h mexproto.h oct-errno.h \ oct-fstrm.h oct-hist.h oct-iostrm.h oct-map.h oct-obj.h \ oct-prcstrm.h oct-procbuf.h oct-stdstrm.h oct-stream.h \ --- 116,122 ---- comment-list.h debug.h defun-dld.h defun-int.h defun.h \ dirfns.h dynamic-ld.h error.h file-io.h gripes.h help.h \ input.h lex.h load-path.h load-save.h ls-hdf5.h \ ! ls-mat-ascii.h ls-mat4.h ls-mat5.h ls-oct-ascii.h ls-ascii-helper.h \ ls-oct-binary.h ls-utils.h mex.h mexproto.h oct-errno.h \ oct-fstrm.h oct-hist.h oct-iostrm.h oct-map.h oct-obj.h \ oct-prcstrm.h oct-procbuf.h oct-stdstrm.h oct-stream.h \ *************** *** 186,192 **** cutils.c data.cc debug.cc defaults.cc defun.cc dirfns.cc \ dynamic-ld.cc error.cc file-io.cc graphics.cc gripes.cc \ help.cc input.cc lex.l load-path.cc load-save.cc ls-hdf5.cc \ ! ls-mat-ascii.cc ls-mat4.cc ls-mat5.cc ls-oct-ascii.cc \ ls-oct-binary.cc ls-utils.cc main.c mappers.cc matherr.c \ mex.cc oct-fstrm.cc oct-hist.cc oct-iostrm.cc oct-map.cc \ oct-obj.cc oct-prcstrm.cc oct-procbuf.cc oct-stream.cc \ --- 186,192 ---- cutils.c data.cc debug.cc defaults.cc defun.cc dirfns.cc \ dynamic-ld.cc error.cc file-io.cc graphics.cc gripes.cc \ help.cc input.cc lex.l load-path.cc load-save.cc ls-hdf5.cc \ ! ls-mat-ascii.cc ls-mat4.cc ls-mat5.cc ls-oct-ascii.cc ls-ascii-helper.cc \ ls-oct-binary.cc ls-utils.cc main.c mappers.cc matherr.c \ mex.cc oct-fstrm.cc oct-hist.cc oct-iostrm.cc oct-map.cc \ oct-obj.cc oct-prcstrm.cc oct-procbuf.cc oct-stream.cc \ diff -cNr octave-3.0.3/src/oct-map.cc octave-3.0.4/src/oct-map.cc *** octave-3.0.3/src/oct-map.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/oct-map.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 487,492 **** --- 487,495 ---- retval.assign (key(p), tmp); } + + // Preserve order of keys. + retval.key_list = key_list; } else retval = *this; *************** *** 509,514 **** --- 512,520 ---- retval.assign (key (p), tmp); } + // Preserve order of keys. + retval.key_list = key_list; + return retval; } *************** *** 528,533 **** --- 534,542 ---- retval.assign (key (p), tmp); } + // Preserve order of keys. + retval.key_list = key_list; + return retval; } *************** *** 547,552 **** --- 556,564 ---- retval.assign (key (p), tmp); } + // Preserve order of keys. + retval.key_list = key_list; + return retval; } diff -cNr octave-3.0.3/src/oct-stream.cc octave-3.0.4/src/oct-stream.cc *** octave-3.0.3/src/oct-stream.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/oct-stream.cc 2009-02-23 21:09:00.000000000 +0100 *************** *** 982,988 **** { char_count++; ! if (c == '\n') { if (! strip_newline) buf << static_cast (c); --- 982,1012 ---- { char_count++; ! // Handle CRLF, CR, or LF as line ending. ! ! if (c == '\r') ! { ! if (! strip_newline) ! buf << static_cast (c); ! ! c = is.get (); ! ! if (c != EOF) ! { ! if (c == '\n') ! { ! char_count++; ! ! if (! strip_newline) ! buf << static_cast (c); ! } ! else ! is.putback (c); ! } ! ! break; ! } ! else if (c == '\n') { if (! strip_newline) buf << static_cast (c); diff -cNr octave-3.0.3/src/OPERATORS/op-cell.cc octave-3.0.4/src/OPERATORS/op-cell.cc *** octave-3.0.3/src/OPERATORS/op-cell.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/OPERATORS/op-cell.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 70,76 **** const Array&) { octave_value retval; ! CAST_BINOP_ARGS (const octave_cell&, const octave_matrix&); NDArray tmp = v1.array_value (); dim_vector dv = tmp.dims (); if (dv.all_zero ()) --- 70,76 ---- const Array&) { octave_value retval; ! CAST_BINOP_ARGS (const octave_matrix&, const octave_cell&); NDArray tmp = v1.array_value (); dim_vector dv = tmp.dims (); if (dv.all_zero ()) diff -cNr octave-3.0.3/src/OPERATORS/op-struct.cc octave-3.0.4/src/OPERATORS/op-struct.cc *** octave-3.0.3/src/OPERATORS/op-struct.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/OPERATORS/op-struct.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 69,75 **** const Array&) { octave_value retval; ! CAST_BINOP_ARGS (const octave_struct&, const octave_matrix&); NDArray tmp = v1.array_value (); dim_vector dv = tmp.dims (); if (dv.all_zero ()) --- 69,75 ---- const Array&) { octave_value retval; ! CAST_BINOP_ARGS (const octave_matrix&, const octave_struct&); NDArray tmp = v1.array_value (); dim_vector dv = tmp.dims (); if (dv.all_zero ()) diff -cNr octave-3.0.3/src/ov-base-scalar.h octave-3.0.4/src/ov-base-scalar.h *** octave-3.0.3/src/ov-base-scalar.h 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/ov-base-scalar.h 2009-02-18 07:57:47.000000000 +0100 *************** *** 87,92 **** --- 87,95 ---- octave_value permute (const Array&, bool = false) const { return scalar; } + octave_value reshape (const dim_vector& new_dims) const + { return array_value ().reshape (new_dims); } + size_t byte_size (void) const { return sizeof (ST); } octave_value all (int = 0) const { return (scalar != ST ()); } diff -cNr octave-3.0.3/src/ov-fcn-handle.cc octave-3.0.4/src/ov-fcn-handle.cc *** octave-3.0.3/src/ov-fcn-handle.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/ov-fcn-handle.cc 2009-03-27 12:28:33.000000000 +0100 *************** *** 56,61 **** --- 56,62 ---- #include "ls-oct-binary.h" #include "ls-hdf5.h" #include "ls-utils.h" + #include "ls-ascii-helper.h" DEFINE_OCTAVE_ALLOCATOR (octave_fcn_handle); *************** *** 330,355 **** { octave_idx_type len = 0; char c; ! std::ostringstream buf; // Skip preceeding newline(s). ! while (is.get (c) && c == '\n') ! /* do nothing */; if (is) { - buf << c; // Get a line of text whitespace characters included, leaving // newline in the stream. - while (is.peek () != '\n') - { - is.get (c); - if (! is) - break; - buf << c; - } } pos = is.tellg (); --- 331,348 ---- { octave_idx_type len = 0; char c; ! std::string buf; // Skip preceeding newline(s). ! skip_preceeding_newline (is); if (is) { // Get a line of text whitespace characters included, leaving // newline in the stream. + buf = read_until_newline (is, true); } pos = is.tellg (); *************** *** 408,414 **** int parse_status; octave_value anon_fcn_handle = ! eval_string (buf.str (), true, parse_status); if (parse_status == 0) { --- 401,407 ---- int parse_status; octave_value anon_fcn_handle = ! eval_string (buf, true, parse_status); if (parse_status == 0) { diff -cNr octave-3.0.3/src/ov-fcn-inline.cc octave-3.0.4/src/ov-fcn-inline.cc *** octave-3.0.3/src/ov-fcn-inline.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/ov-fcn-inline.cc 2009-03-27 12:28:33.000000000 +0100 *************** *** 47,52 **** --- 47,53 ---- #include "ls-oct-ascii.h" #include "ls-hdf5.h" #include "ls-utils.h" + #include "ls-ascii-helper.h" DEFINE_OCTAVE_ALLOCATOR (octave_fcn_inline); *************** *** 139,165 **** nm = ""; char c; ! std::ostringstream buf; // Skip preceeding newline(s) ! while (is.get (c) && c == '\n'); if (is) { - buf << c; // Get a line of text whitespace characters included, leaving // newline in the stream ! while (is.peek () != '\n') ! { ! is.get (c); ! if (! is) ! break; ! buf << c; ! } } ! iftext = buf.str (); octave_fcn_inline tmp (iftext, ifargs, nm); fcn = tmp.fcn; --- 140,159 ---- nm = ""; char c; ! std::string buf; // Skip preceeding newline(s) ! skip_preceeding_newline (is); if (is) { // Get a line of text whitespace characters included, leaving // newline in the stream ! buf = read_until_newline (is, true); } ! iftext = buf; octave_fcn_inline tmp (iftext, ifargs, nm); fcn = tmp.fcn; diff -cNr octave-3.0.3/src/ov-range.cc octave-3.0.4/src/ov-range.cc *** octave-3.0.3/src/ov-range.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/ov-range.cc 2009-03-27 12:28:33.000000000 +0100 *************** *** 41,46 **** --- 41,47 ---- #include "byte-swap.h" #include "ls-hdf5.h" #include "ls-utils.h" + #include "ls-ascii-helper.h" DEFINE_OCTAVE_ALLOCATOR (octave_range); *************** *** 274,287 **** break; } ! for (;;) ! { ! if (is && (c == '%' || c == '#')) ! while (is.get (c) && c != '\n') ! ; // Skip to beginning of next line, ignoring everything. ! else ! break; ! } } bool --- 275,283 ---- break; } ! // Skip to beginning of next line, ignoring everything. ! skip_until_newline (is, false); ! } bool diff -cNr octave-3.0.3/src/ov-str-mat.cc octave-3.0.4/src/ov-str-mat.cc *** octave-3.0.3/src/ov-str-mat.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/ov-str-mat.cc 2009-03-27 12:28:33.000000000 +0100 *************** *** 48,53 **** --- 48,54 ---- #include "pr-output.h" #include "pt-mat.h" #include "utils.h" + #include "ls-ascii-helper.h" DEFINE_OCTAVE_ALLOCATOR (octave_char_matrix_str); DEFINE_OCTAVE_ALLOCATOR (octave_char_matrix_sq_str); *************** *** 344,351 **** char *ftmp = tmp.fortran_vec (); // Skip the return line ! if (! is.read (ftmp, 1)) ! return false; if (! is.read (ftmp, dv.numel ()) || !is) { --- 345,351 ---- char *ftmp = tmp.fortran_vec (); // Skip the return line ! skip_preceeding_newline (is); if (! is.read (ftmp, dv.numel ()) || !is) { diff -cNr octave-3.0.3/src/pt-arg-list.cc octave-3.0.4/src/pt-arg-list.cc *** octave-3.0.3/src/pt-arg-list.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/pt-arg-list.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 198,204 **** for (int i = 0; i < n; i++) args(j++) = tl(i); } ! else args(j++) = tmp; } } --- 198,204 ---- for (int i = 0; i < n; i++) args(j++) = tl(i); } ! else if (tmp.is_defined ()) args(j++) = tmp; } } diff -cNr octave-3.0.3/src/pt-select.cc octave-3.0.4/src/pt-select.cc *** octave-3.0.3/src/pt-select.cc 2008-09-24 09:13:49.000000000 +0200 --- octave-3.0.4/src/pt-select.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 168,174 **** octave_value tmp = do_binary_op (octave_value::op_eq, val, test); if (! error_state && tmp.is_defined ()) ! retval = tmp.is_true (); } return retval; --- 168,174 ---- octave_value tmp = do_binary_op (octave_value::op_eq, val, test); if (! error_state && tmp.is_defined ()) ! retval = tmp.is_true () || tmp.is_empty (); } return retval; diff -cNr octave-3.0.3/src/variables.cc octave-3.0.4/src/variables.cc *** octave-3.0.3/src/variables.cc 2008-09-29 07:36:19.000000000 +0200 --- octave-3.0.4/src/variables.cc 2009-02-18 07:57:47.000000000 +0100 *************** *** 2453,2459 **** @item -variables, -v\n\ Clears the local variable names.\n\ @end table\n\ ! With the execption of @code{exclusive}, all long options can be used \n\ without the dash as well.\n\ @end deffn") { --- 2453,2459 ---- @item -variables, -v\n\ Clears the local variable names.\n\ @end table\n\ ! With the exception of @code{exclusive}, all long options can be used \n\ without the dash as well.\n\ @end deffn") { diff -cNr octave-3.0.3/src/version.h octave-3.0.4/src/version.h *** octave-3.0.3/src/version.h 2008-09-29 08:03:11.000000000 +0200 --- octave-3.0.4/src/version.h 2009-04-01 10:43:51.000000000 +0200 *************** *** 24,34 **** #if !defined (octave_version_h) #define octave_version_h 1 ! #define OCTAVE_VERSION "3.0.3" #define OCTAVE_API_VERSION "api-v32" ! #define OCTAVE_RELEASE_DATE "2008-09-24" #define OCTAVE_COPYRIGHT "Copyright (C) 2008 John W. Eaton and others." --- 24,34 ---- #if !defined (octave_version_h) #define octave_version_h 1 ! #define OCTAVE_VERSION "3.0.4" #define OCTAVE_API_VERSION "api-v32" ! #define OCTAVE_RELEASE_DATE "2009-04-01" #define OCTAVE_COPYRIGHT "Copyright (C) 2008 John W. Eaton and others." *************** *** 45,51 **** "This is free software; see the source code for copying conditions." #define X_OCTAVE_WARRANTY_STATEMENT(ARG) \ ! "There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or\n\ FITNESS FOR A PARTICULAR PURPOSE." ARG #define OCTAVE_WARRANTY_STATEMENT \ --- 45,51 ---- "This is free software; see the source code for copying conditions." #define X_OCTAVE_WARRANTY_STATEMENT(ARG) \ ! "There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or\n\ FITNESS FOR A PARTICULAR PURPOSE." ARG #define OCTAVE_WARRANTY_STATEMENT \ diff -cNr octave-3.0.3/test/ChangeLog octave-3.0.4/test/ChangeLog *** octave-3.0.3/test/ChangeLog 2008-09-29 08:03:11.000000000 +0200 --- octave-3.0.4/test/ChangeLog 2009-04-01 10:43:25.000000000 +0200 *************** *** 1,3 **** --- 1,11 ---- + 2009-01-16 Jaroslav Hajek + + Version 3.0.4 released. + + 2009-03-26 Tatsuro Matsuoka + + * test_string.m: Use more accurate platform test. + 2008-09-24 Jaroslav Hajek Version 3.0.3 released. diff -cNr octave-3.0.3/test/test_poly.m octave-3.0.4/test/test_poly.m *** octave-3.0.3/test/test_poly.m 2008-09-24 09:13:50.000000000 +0200 --- octave-3.0.4/test/test_poly.m 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,184 **** - ## Copyright (C) 2006, 2007 John W. Eaton - ## - ## This file is part of Octave. - ## - ## Octave is free software; you can redistribute it and/or modify it - ## under the terms of the GNU General Public License as published by - ## the Free Software Foundation; either version 3 of the License, or (at - ## your option) any later version. - ## - ## Octave is distributed in the hope that it will be useful, but - ## WITHOUT ANY WARRANTY; without even the implied warranty of - ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - ## General Public License for more details. - ## - ## You should have received a copy of the GNU General Public License - ## along with Octave; see the file COPYING. If not, see - ## . - - %% Automatically generated from DejaGNU files - - %% test/octave.test/poly/compan-1.m - %!assert(all (all (compan ([1, 2, 3]) == [-2, -3; 1, 0]))); - - %% test/octave.test/poly/compan-2.m - %!assert(all (all (compan ([1; 2; 3]) == [-2, -3; 1, 0]))); - - %% test/octave.test/poly/compan-3.m - %!assert(isempty (compan (4))); - - %% test/octave.test/poly/compan-4.m - %!assert(all (all (compan ([3, 2, 1]) == [-2/3, -1/3; 1, 0]))); - - %% test/octave.test/poly/compan-5.m - %!error compan ([1,2;3,4]); - - %% test/octave.test/poly/compan-6.m - %!error compan ([]); - - %% test/octave.test/poly/conv-1.m - %!assert(all (all (conv (ones (3, 1), ones (3, 1)) == [1, 2, 3, 2, 1]))); - - %% test/octave.test/poly/conv-2.m - %!assert(all (all (conv (ones (1, 3), ones (3, 1)) == [1, 2, 3, 2, 1]))); - - %% test/octave.test/poly/conv-3.m - %!assert(all (all (conv (3, [1, 2, 3]) == [3, 6, 9]))); - - %% test/octave.test/poly/conv-4.m - %!error conv ([1, 2; 3, 4], 3); - - %% test/octave.test/poly/conv-5.m - %!assert(conv (2, 3),6); - - %% test/octave.test/poly/conv-6.m - %!error conv (2, []); - - %% test/octave.test/poly/deconv-1.m - %!test - %! [b, r] = deconv ([3, 6, 9, 9], [1, 2, 3]); - %! assert(all (all (b == [3, 0])) && all (all (r == [0, 0, 0, 9]))); - - %% test/octave.test/poly/deconv-2.m - %!test - %! [b, r] = deconv ([3, 6], [1, 2, 3]); - %! assert(b == 0 && all (all (r == [0, 3, 6]))); - - %% test/octave.test/poly/deconv-3.m - %!test - %! [b, r] = deconv ([3, 6], [1; 2; 3]); - %! assert(b == 0 && all (all (r == [0, 3, 6]))); - - %% test/octave.test/poly/deconv-4.m - %!error [b, r] = deconv ([3, 6], [1, 2; 3, 4]);; - - %% test/octave.test/poly/deconv-5.m - %!error [b, r] = deconv ([3; 6], [1, 2, 3]); - - %% test/octave.test/poly/poly-1.m - %!assert(all (all (poly ([1, 2, 3]) == [1, -6, 11, -6]))); - - %% test/octave.test/poly/poly-2.m - %!assert(all (all (abs (poly ([1, 2; 3, 4]) - [1, -5, -2]) < sqrt (eps)))); - - %% test/octave.test/poly/poly-3.m - %!error poly ([1, 2, 3; 4, 5, 6]); - - %% test/octave.test/poly/poly-4.m - %!assert(poly ([]),1); - - %% test/octave.test/poly/polyderiv-1.m - %!assert(all (all (polyderiv ([1, 2, 3]) == [2, 2]))); - - %% test/octave.test/poly/polyderiv-2.m - %!assert(polyderiv (13) == 0); - - %% test/octave.test/poly/polyderiv-3.m - %!error polyderiv ([]); - - %% test/octave.test/poly/polyderiv-4.m - %!error polyderiv ([1, 2; 3, 4]); - - %% test/octave.test/poly/polyfit-1.m - %!test - %! x = [-2, -1, 0, 1, 2]; - %! assert(all (all (abs (polyfit (x, x.^2+x+1, 2) - [1, 1, 1]) < sqrt (eps)))); - - %% test/octave.test/poly/polyfit-2.m - %!test - %! x = [-2, -1, 0, 1, 2]; - %! assert(all (all (abs (polyfit (x, x.^2+x+1, 3) - [0, 1, 1, 1]) < sqrt (eps)))); - - %% test/octave.test/poly/polyfit-3.m - %!error polyfit ([1, 2; 3, 4], [1, 2; 3, 4], 4); - - %% test/octave.test/poly/polyfit-4.m - %!test - %! x = [-2, -1, 0, 1, 2]; - %! fail("polyfit (x, x.^2+x+1)"); - - %% test/octave.test/poly/polyfit-5.m - %!test - %! x = [-2, -1, 0, 1, 2]; - %! fail("polyfit (x, x.^2+x+1, [])"); - - %% test/octave.test/poly/polyinteg-1.m - %!assert(all (all (polyinteg ([2, 2]) == [1, 2, 0]))); - - %% test/octave.test/poly/polyinteg-2.m - %!assert(isempty (polyinteg ([]))); - - %% test/octave.test/poly/polyinteg-3.m - %!assert(all (all (polyinteg (3) == [3, 0]))); - - %% test/octave.test/poly/polyinteg-4.m - %!error polyinteg ([1, 2; 3, 4]); - - %% test/octave.test/poly/polyreduce-1.m - %!assert(all (all (polyreduce ([0, 0, 1, 2, 3]) == [1, 2, 3]))); - - %% test/octave.test/poly/polyreduce-2.m - %!assert(all (all (polyreduce ([1, 2, 3, 0, 0]) == [1, 2, 3, 0, 0]))); - - %% test/octave.test/poly/polyreduce-3.m - %!assert(all (all (polyreduce ([1, 0, 3]) == [1, 0, 3]))); - - %% test/octave.test/poly/polyreduce-4.m - %!assert(isempty (polyreduce ([]))); - - %% test/octave.test/poly/polyreduce-5.m - %!error polyreduce ([1, 2; 3, 4]); - - %% test/octave.test/poly/polyval-1.m - %!assert(polyval ([1, 1, 1], 2) == 7); - - %% test/octave.test/poly/polyval-2.m - %!assert(all (all (polyval ([1, 1, 1], [0; 1; 2]) == [1; 3; 7]))); - - %% test/octave.test/poly/polyval-3.m - %!assert(isempty (polyval ([1, 1, 1], []))); - - %% test/octave.test/poly/polyval-4.m - %!assert(all (all (polyval ([1, 1, 1], [-1, 0; 1, 2]) == [1, 1; 3, 7]))); - - %% test/octave.test/poly/polyval-5.m - %!error polyval ([1, 2; 3, 4], [-1, 0; 1, 2]); - - %% test/octave.test/poly/polyval-6.m - %!assert(isempty (polyval ([], [-1, 0; 1, 2]))); - - %% test/octave.test/poly/polyvalm-1.m - %!assert(isempty (polyvalm ([], [1, 2; 3, 4]))); - - %% test/octave.test/poly/polyvalm-2.m - %!error polyvalm ([1, 1, 1], [1, 2; 3, 4; 5, 6]); - - %% test/octave.test/poly/roots-1.m - %!assert(all (all (abs (roots ([1, -6, 11, -6]) - [3; 2; 1]) < sqrt (eps)))); - - %% test/octave.test/poly/roots-2.m - %!assert(isempty (roots ([]))); - - %% test/octave.test/poly/roots-3.m - %!error roots ([1, 2; 3, 4]); - --- 0 ---- diff -cNr octave-3.0.3/test/test_string.m octave-3.0.4/test/test_string.m *** octave-3.0.3/test/test_string.m 2008-09-24 09:13:50.000000000 +0200 --- octave-3.0.4/test/test_string.m 2009-03-26 07:51:30.000000000 +0100 *************** *** 532,538 **** %! result = zeros (1, 128); %! %! result (33:127) = 1; ! %! if (ispc () && ! isunix ()) %! result(10) = 1; %! endif %! --- 532,538 ---- %! result = zeros (1, 128); %! %! result (33:127) = 1; ! %! if (size(findstr (octave_config_info('canonical_host_type'), 'msvc'),2)) %! result(10) = 1; %! endif %! PATCH_EOF