diff doc/refcard/refcard.tex @ 2333:b1a56412c385

[project @ 1996-07-19 02:20:16 by jwe] Initial revision
author jwe
date Fri, 19 Jul 1996 02:26:23 +0000
parents
children 8b262e771614
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/refcard/refcard.tex	Fri Jul 19 02:26:23 1996 +0000
@@ -0,0 +1,952 @@
+% refcard.tex
+%
+% This file is TeX source for a reference card describing Octave.
+%
+% John W. Eaton
+% jwe@che.utexas.edu
+% Department of Chemical Engineering
+% The University of Texas at Austin
+%
+% Heavily modified by jwe from the source for the gdb reference card,
+% which was orignally written by Roland Pesch <pesch@cygnus.com>.
+%
+%   Copyright (C) 1991, 1992 Free Software Foundation, Inc.
+%   Permission is granted to make and distribute verbatim copies of
+%   this reference provided the copyright notices and permission notices
+%   are preserved on all copies.
+%
+% TeX markup is a programming language; accordingly this file is source
+% for a program to generate a reference.
+%
+% This program 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 2, or (at your option)
+% any later version.
+%
+% This program 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 can find a copy of the GNU General Public License in the GDB
+% manual; or write to the Free Software Foundation, Inc.,
+% 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+%
+% You only have to set the total width and height of the paper, the
+% horizontal and vertical margin space measured from *paper edge*
+% and the interline and interspec spacing.
+% In order to support a new papersize, you have to fiddle with the
+% latter four dimensions. Just try out a few values.
+% All other values will be computed at process time so it should be
+% quite easy to support different paper sizes - only four values to
+% guess :-)
+%
+% To find the configuration places, just search for the string
+% "User configuration".
+%
+%   -- Andreas Vogel (av@ssw.de)
+%
+% NOTE ON INTENTIONAL OMISSIONS: This reference card includes many
+% Octave commands, but due to space constraints there are some things
+% I chose to omit.  In general, not all synonyms for commands are
+% covered, nor all variations of a command.
+
+\def\octaveversion{1.1.1}
+\def\refcardedition{1.1}
+
+% ------------------
+% multicolumn format
+% ------------------
+
+% Declarations (these must come first)
+
+\newdimen\totalwidth
+\newdimen\totalheight
+\newdimen\hmargin
+\newdimen\vmargin
+\newdimen\secskip
+\newdimen\lskip
+\newdimen\barwidth
+\newdimen\barheight
+\newdimen\intersecwidth
+
+\newcount\columnsperpage
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                     %
+% CONFIGURATION                                                       %
+%                                                                     %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% There are currently 8 total columns, so some of these options will
+% not create a single page reference card.
+
+% Choose a paper size.  Default is US letter size.
+
+\def\refcardafoursize{a4}      % 3 columns, A4 paper (1 in = 254 mm)
+\def\refcardlegalsize{legal}   % 4 columns, US legal paper (8.5 x 14in)
+\def\refcardlettersize{letter} % 3 columns, US letter paper (8.5 x 14in)
+
+\ifx\refcardsize\refcardafoursize
+  \columnsperpage=3     % total number of columns to typeset
+  \totalwidth=297mm     % total width of paper
+  \totalheight=210mm    % total height of paper
+  \hmargin=9mm          % horizontal margin width
+  \vmargin=7mm          % vertical margin width
+  \secskip=3mm          % space between refcard secs
+  \lskip=0.4mm          % extra skip between \sec entries
+\else
+  \ifx\refcardsize\refcardlegalsize
+    \columnsperpage=4   % total number of columns to typeset
+    \totalwidth=14in    % total width of paper
+    \totalheight=8.5in  % total height of paper
+    \hmargin=0.20in     % horizontal margin width
+    \vmargin=0.25in     % vertical margin width
+    \secskip=0.75pc     % space between refcard secs
+    \lskip=2pt          % extra skip between \sec entries
+  \else
+    \columnsperpage=3   % total number of columns to typeset
+    \totalwidth=11in    % total width of paper
+    \totalheight=8.5in  % total height of paper
+    \hmargin=0.25in     % horizontal margin width
+    \vmargin=0.25in     % vertical margin width
+    \secskip=0.75pc     % space between refcard secs
+    \lskip=2pt          % extra skip between \sec entries
+  \fi
+\fi
+
+% Change according to personal taste, not papersize dependent.
+
+\barwidth=.1pt       % width of the cropmark bar
+\barheight=2pt       % height of the cropmark bar
+\intersecwidth=0.5em % width between \itmwid and \dfnwid
+
+% Uncomment only one of the following definitions for folding guides.
+
+% No printed folding guide:
+
+%\def\vdecor{\hskip\hmargin plus1fil
+%  \hskip\barwidth plus1fil
+%  \hskip\hmargin plus1fil}
+
+% Solid line folding guide:
+
+%\def\vdecor{\hskip\hmargin plus1fil%
+%  \vrule width \barwidth%
+%  \hskip\hmargin plus1fil}
+
+% For small marks near top and bottom as folding guide:
+
+\def\vdecor{\hskip\hmargin plus1fil%
+  \vbox to \vsize{\hbox to \barwidth{\vrule height\barheight width\barwidth}%
+  \vfill
+  \hbox to \barwidth{\vrule height\barheight width\barwidth}}%
+  \hskip\hmargin plus1fil}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                      %
+% END CONFIGURATION                                                    %
+%                                                                      %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% values to be computed based on above definitions.
+% nothing to configure
+
+\newdimen\fullhsize          % width of area without margins
+\newdimen\itmwid             % width of item column
+\newdimen\dfnwid             % width of definition column
+\newdimen\idnwid             % width of indented text
+\newdimen\temp               % only for temporary use
+
+% an alternate section format, used in some cases to make text fit better.
+
+\newdimen\altitmwid        % width of item column in altsec
+\newdimen\altdfnwid        % width of definition column in altsec
+
+% Subtract hmargin for left and right sides of paper from full width.
+%
+%   fullhsize = totalwidth - (2 * hmargin)
+
+\fullhsize=\totalwidth
+\temp=\hmargin
+\multiply \temp by 2
+\advance \fullhsize by -\temp
+
+% intercolumn space is composed of hmargin barwidth hmargin so that we
+% get the same amount of space on either side of the (optional) rule
+% between columns.  For N columns, we need to subtract this amount of
+% space N-1 times.  Divide by the number of columns to get the final
+% value of \hsize that we use to typeset columns.
+
+% hsize = (fullhsize - (ncols-1)*barwidth - 2*(ncols-1)*hmargin) / ncols
+
+\newcount\tmpcnt
+\tmpcnt\columnsperpage
+\advance \tmpcnt by -1
+
+\hsize=\fullhsize
+
+\temp=\barwidth
+\multiply \temp by \tmpcnt
+\advance \hsize by -\temp
+
+\multiply \tmpcnt by 2
+
+\temp=\hmargin
+\multiply \temp by \tmpcnt
+\advance \hsize by -\temp
+
+\divide \hsize by \columnsperpage
+
+% Vertical size is easy -- same amount of space above and below.
+%
+%   vsize = totalheight - (2 * vmargin)
+
+\vsize=\totalheight
+\temp=\vmargin
+\multiply \temp by 2
+\advance \vsize by -\temp
+
+% adjust the offsets so the margins are measured *from paper edge*
+
+\hoffset=-1in \advance \hoffset by \hmargin
+\voffset=-1in \advance \voffset by \vmargin
+
+% Width of items in a section.
+
+% itmwid = (hsize - intersecwidth) * 1/3
+% dfnwid = (hsize - intersecwidth) * 2/3
+
+% width of the item
+
+\temp=\hsize
+\advance \temp by -\intersecwidth
+\divide \temp by 3
+\itmwid=\temp
+
+% width of the corresponding definition
+
+\dfnwid=\hsize
+\advance \dfnwid by -\itmwid
+
+% indentation for sub items, etc.
+
+\temp=\hsize \advance\temp by -1em
+\idnwid=\temp
+
+% Width of items in an alt section.
+
+\altitmwid=\itmwid \advance \altitmwid by 0.35in
+\altdfnwid=\dfnwid \advance \altdfnwid by -0.35in
+
+% Output macros.
+%
+% Strategy:
+%
+%   * set each column in a box
+%   * append new columns in a global `holding' box, inserting
+%     intercolumn decorations as necessary.
+%   * when we fill a page, dump the saved box and the latest column,
+%     separated by the intercolumn decoration.
+
+\newbox\holdbox
+\newcount\colno
+\colno=0
+
+\output={\relax
+  \global\advance\colno by 1
+  \ifnum\colno=1
+    \global\setbox\holdbox=\columnbox
+  \else
+    \ifnum\colno=\columnsperpage
+      \shipout\hbox to \fullhsize{\box\holdbox\vdecor\columnbox}
+      \advancepageno
+      \global\colno=0
+    \else
+      \global\setbox\holdbox=\vbox{\hbox{\box\holdbox\vdecor\columnbox}}
+    \fi
+  \fi}
+
+\def\columnbox{\leftline{\pagebody}}
+
+\def\bye{\par\vfill
+  \supereject
+  \if R\lcr \null\vfill\eject \fi
+  \end}
+
+% -----
+% Fonts
+% -----
+
+\font\bbf=cmbx10
+\font\vbbf=cmbx12
+\font\smrm=cmr6
+\font\brm=cmr10
+\font\rm=cmr7
+\font\it=cmti7
+\font\tt=cmtt8
+
+% We can afford to allow some slop
+
+\hfuzz=1pt
+\vfuzz=1pt
+\hyphenpenalty=5000
+\tolerance=2000
+\raggedright
+\raggedbottom
+\normalbaselineskip=9pt
+\baselineskip=9pt
+
+\parindent=0pt
+\parskip=0pt
+\footline={\vbox to0pt{\hss}}
+
+\def\ctl#1{{\tt C-#1}}
+\def\opt#1{{\brm[{\rm #1}]}}
+\def\xtra#1{\noalign{\smallskip{\tt#1}}}
+
+% A normal section
+
+\long\def\sec#1;#2\endsec{\vskip \secskip
+  \halign{%
+%
+% column 1 (of halign):
+%
+    \vtop{\hsize=\itmwid\tt ##\par\vskip \lskip }\hfil
+%
+% column 2 (of halign):
+%
+    &\vtop{%
+      \hsize=\dfnwid
+      \hangafter=1
+      \hangindent=\intersecwidth
+      \rm ##\par\vskip \lskip}\cr
+%
+% Tail of \long\def fills in halign body with \sec args:
+%
+    \noalign{{\bbf #1}%
+      \vskip \lskip}
+    #2}}
+
+\long\def\widesec#1;#2\endsec{\vskip \secskip
+  \halign{%
+%
+% column 1 (of halign):
+%
+    \vbox{\tt
+      ##\par\vskip \lskip }\cr
+%
+% Tail of \long\def fills in halign body with \sec args:
+%
+      \noalign{{\bbf #1}\vskip 3\lskip}
+    #2}}
+
+% an alternate section format, used in some cases to make text fit better.
+
+\long\def\altsec#1;#2\endsec{\vskip \secskip
+  \halign{%
+%
+% column 1 (of halign):
+%
+    \vtop{\hsize=\altitmwid\tt
+      ##\par\vskip \lskip}\hfil
+%
+% column 2 (of halign):
+%
+    &\vtop{%
+      \hsize=\altdfnwid
+      \hangafter=1
+      \hangindent=\intersecwidth
+      \rm ##\par\vskip \lskip}\cr
+%
+% Tail of \long\def fills in halign body with \sec args:
+%
+    \noalign{{\bbf #1}\vskip \lskip}
+    #2}}
+
+% -------------------------------------
+% The actual text of the reference card
+% -------------------------------------
+
+{\vbbf Octave Quick Reference}\hfil{\smrm Octave Version \octaveversion}\qquad
+
+\sec Starting Octave;
+octave&start interactive Octave session\cr
+octave {\it file}&run Octave on commands in {\it file}\cr
+octave --help&describe command line options\cr
+\endsec
+
+\sec Stopping Octave;
+quit {\rm or} exit&exit Octave\cr
+INTERRUPT&({\it e.g.} \ctl{c}) terminate current command and return to
+  top-level prompt\cr
+\endsec
+
+\sec Getting Help;
+help&list all commands and built-in variables\cr
+help {\it command}&briefly describe {\it command}\cr
+help -i&use Info to browse Octave manual\cr
+help -i {\it command}&search for {\it command\/} in Octave manual\cr
+\endsec
+
+\sec Motion in Info;
+SPC {\rm or} C-v&scroll forward one screenful\cr
+DEL {\rm or} M-v&scroll backward one screenful\cr
+C-l&redraw the display\cr
+\endsec
+
+\sec Node Selection in Info;
+n&select the next node\cr
+p&select the previous node\cr
+u&select the `up' node\cr
+t&select the `top' node\cr
+d&select the directory node\cr
+<&select the first node in the current file\cr
+>&select the last node in the current file\cr
+% ]&move forward through the node structure\cr
+% [&move backward through the nodes\cr
+g&reads the name of a node and selects it\cr
+C-x k&kills the current node\cr
+\endsec
+
+\sec Searching in Info;
+s&search for a string\cr
+C-s&search forward incrementally\cr
+C-r&search backward incrementally\cr
+i&search index \& go to corresponding node\cr
+,&go to next match from last `i' command\cr
+\endsec
+
+\sec Command-Line Cursor Motion;
+C-b&move back one character\cr
+C-f&move forward one character\cr
+C-a&move the the start of the line\cr
+C-e&move to the end of the line\cr
+M-f&move forward a word\cr
+M-b&move backward a word\cr
+C-l&clear screen, reprinting current line at top\cr
+\endsec
+
+\sec Inserting or Changing Text;
+M-TAB&insert a tab character\cr
+DEL&delete character to the left of the cursor\cr
+C-d&delete character under the cursor\cr
+C-v&add the next character verbatim\cr
+C-t&transpose characters at the point\cr
+M-t&transpose words at the point\cr
+% M-u&uppercase the current word\cr
+% M-l&lowercase the current word\cr
+% M-c&capitalize the current word\cr
+\endsec
+
+\vfill
+\line{\smrm \opt{ } surround optional arguments
+  \hfill ... show one or more arguments}
+\vskip0.25\baselineskip
+\centerline{\smrm Copyright 1996, John W. Eaton\qquad Permissions on back}
+\eject
+
+\sec Killing and Yanking;
+C-k&kill to the end of the line\cr
+C-y&yank the most recently killed text\cr
+M-d&kill to the end of the current word\cr
+M-DEL&kill the word behind the cursor\cr
+M-y&rotate the kill ring and yank the new top\cr
+\endsec
+
+\sec Command Completion and History;
+TAB&complete a command or variable name\cr
+M-?&list possible completions\cr
+
+RET&enter the current line \cr
+C-p&move `up' through the history list\cr
+C-n&move `down' through the history list\cr
+M-<&move to the first line in the history\cr
+M->&move to the last line in the history\cr
+C-r&search backward in the history list\cr
+C-s&search forward in the history list\cr
+
+history \opt{{-q}} \opt{{\it N\/}}&list {\it N\/} previous history lines,
+  omitting history numbers if {\tt -q}\cr
+history -w \opt{{\it file}}&write history to {\it file\/} ({\tt
+  \char'0176/.octave\_hist} if no {\it file\/} argument)\cr
+history -r \opt{{\it file}}&read history from {\it file\/} ({\tt
+  \char'0176/.octave\_hist} if no {\it file\/} argument)\cr
+
+edit\_history {\it lines}&edit and then run previous
+  commands from the history list\cr
+run\_history {\it lines}&run previous commands from the
+  history list\cr
+\quad\opt{{\it beg\/}} \opt{{\it end\/}}&Specify the first and last
+  history commands to edit or run.\cr
+\omit\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
+  If {\it beg}\/ is greater than {\it end},
+  reverse the list of commands before editing.  If {\it end\/} is
+  omitted, select commands from {\it beg\/} to the end of the history
+  list.  If both arguments are omitted, edit the previous item in the
+  history list.}\span\cr
+\endsec
+
+\sec Shell Commands;
+cd {\it dir}&change working directory to {\it dir}\cr
+pwd&print working directory\cr
+ls \opt{{\it options}}&print directory listing\cr
+getenv ({\it string})&return value of named environment variable\cr
+system ({\it cmd})&execute arbitrary shell command string\cr
+\endsec
+
+\sec Matrices;
+\omit\vbox{\rm\vskip0.25ex
+  Square brackets delimit literal matrices.  Commas separate elements
+  on the same row.  Semicolons separate rows.  Commas may be replaced
+  by spaces, and semicolons may be replaced by one or more newlines.
+  Elements of a matrix may be arbitrary   expressions, provided that
+  all the dimensions agree.\vskip0.75ex}\span\cr
+[ {\it x}, {\it y}, ... ]&enter a row vector\cr
+[ {\it x}; {\it y}; ... ]&enter a column vector\cr
+[ {\it w}, {\it x}; {\it y}, {\it z} ]&enter a 2$\times$2 matrix\cr
+\endsec
+
+\sec Ranges;
+{\it base} : {\it limit}\cr
+{\it base} : {\it incr} : {\it limit}\cr
+\omit\hfill\vbox{\hsize=\idnwid\rm\vskip0.75ex
+  Specify a range of values beginning with {\it base\/} with no elements
+  greater than {\it limit}.  If it is omitted, the default value of
+  {\it incr\/} is 1.  Negative increments are permitted.}\span\cr
+\endsec
+
+\vfill\eject
+
+\sec Strings and Common Escape Sequences;
+\omit\vbox{\rm\vskip0.5ex
+  A {\it string constant\/} consists of a sequence of characters
+  enclosed in either double-quote or single-quote marks.\vskip0.75ex}\span\cr
+\char'134\char'134&a literal backslash\cr
+\char'134 "&a literal double-quote character\cr
+\char'134 '&a literal single-quote character\cr
+\char'134 n&newline, ASCII code 10\cr
+\char'134 t&horizontal tab, ASCII code 9\cr
+\endsec
+
+\sec Index Expressions;
+{\it var} ({\it idx})&select elements of a vector\cr
+{\it var} ({\it idx1}, {\it idx2})&select elements of a matrix\cr
+
+\quad {\it scalar}&select row (column) corresponding to {\it scalar}\cr
+\quad {\it vector}&select rows (columns) corresponding to the elements
+  of {\it vector}\cr
+\quad {\it range}&select rows (columns) corresponding to the elements
+  of {\it range}\cr
+\quad :&select all rows (columns)\cr
+\endsec
+
+\sec Global Variables;
+global {\it var1} ...&Declare variables global.\cr
+\omit\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
+  Global variables may be accessed inside the body of a function
+  without having to be passed in the function parameter list provided
+  they are also declared global within the function.}\span\cr
+\endsec
+
+\sec Selected Built-in Variables;
+EDITOR&editor to use with {\tt edit\_history}\cr
+Inf, NaN&IEEE infinity, NaN\cr
+LOADPATH&path to search for function files\cr
+PAGER&program to use to paginate output\cr
+ans&last result not explicitly assigned\cr
+eps&machine precision\cr
+pi&$\pi$\cr
+realmax&maximum representable value\cr
+realmin&minimum representable value\cr
+\endsec
+\vskip -\secskip
+\vskip -2\lskip
+\altsec \null;
+automatic\_replot&automatically redraw plots\cr
+do\_fortran\_indexing&Fortran-style indexing of matrices\cr
+implicit\_str\_to\_num\_ok&allow strings to become numbers\cr
+output\_max\_field\_width&maximum numeric field width\cr
+output\_precision&min significant figures displayed\cr
+page\_screen\_output&control whether output is paged\cr
+prefer\_column\_vectors&create column vectors by default\cr
+resize\_on\_range\_error&automatic resizing of matrices\cr
+save\_precision&digits stored by {\tt save} command\cr
+silent\_functions&suppress output from functions\cr
+warn\_divide\_by\_zero&suppress divide by zero errors\cr
+\endsec
+\vskip -\secskip
+\vskip -2\lskip
+\widesec \null;
+commas\_in\_literal\_matrix\vskip\lskip\cr
+\omit\hfill\vbox{\hsize=\idnwid\rm
+  control handling of spaces in matrices\vskip3\lskip}\cr
+ignore\_function\_time\_stamp\cr
+\omit\hfill\vbox{\hsize=\idnwid\rm
+  ignore changes in function files during session\vskip3\lskip}\cr
+ok\_to\_lose\_imaginary\_part\cr
+\omit\hfill\vbox{\hsize=\idnwid\rm
+  allow complex to real conversion\vskip3\lskip}\cr
+prefer\_zero\_one\_indexing\cr
+\omit\hfill\vbox{\hsize=\idnwid\rm
+  if ambiguous, prefer 0-1 style indexing\vskip3\lskip}\cr
+\endsec
+
+\vfill\eject
+
+\sec Arithmetic and Increment Operators;
+{\it x} + {\it y}&addition\cr
+{\it x} - {\it y}&subtraction\cr
+{\it x} * {\it y}&matrix multiplication\cr
+{\it x} .* {\it y}&element by element multiplication\cr
+{\it x} / {\it y}&right division, conceptually equivalent to
+  {\tt (inverse~(y')~*~x')'}\cr
+{\it x} ./ {\it y}&element by element right division\cr
+{\it x} \char'134{} {\it y}&left division, conceptually equivalent to
+  {\tt inverse~(x)~*~y}\cr
+{\it x} .\char'134{} {\it y}&element by element left division\cr
+{\it x} \char'136{} {\it y}&power operator\cr
+{\it x} .\char'136{} {\it y}&element by element power operator\cr
+- {\it x}&negation\cr
++ {\it x}&unary plus (a no-op)\cr
+{\it x} '&complex conjugate transpose\cr
+{\it x} .'&transpose\cr
+++ {\it x}\quad{\rm(}-- {\it x}{\rm)}&increment (decrement) {\it x},
+  return {\it new\/} value\cr
+{\it x} ++\quad{\rm(}{\it x} --{\rm)}&increment (decrement) {\it x},
+  return {\it old\/} value\cr
+\endsec
+
+\sec Assignment Expressions;
+{\it var} = {\it expr}&assign expression to variable\cr
+{\it var} ({\it idx}) = {\it expr}&assign expression to indexed variable\cr
+\endsec
+
+\sec Comparison and Boolean Operators;
+\omit \vbox{\rm\vskip0.75ex
+  These operators work on an element-by-element basis.  Both arguments
+  are always evaluated.\vskip0.75ex}\span\cr
+{\it x} < {\it y}&true if {\it x\/} is less than {\it y}\cr
+{\it x} <= {\it y}&true if {\it x\/} is less than or equal to {\it y}\cr
+{\it x} == {\it y}&true if {\it x\/} is greater than {\it y}\cr
+{\it x} >= {\it y}&true if {\it x\/} is greater than or equal to {\it y}\cr
+{\it x} > {\it y}&true if {\it x\/} is equal to {\it y}\cr
+{\it x} != {\it y}&true if {\it x\/} is not equal to {\it y}\cr
+{\it x} \& {\it y}&true if both {\it x\/} and {\it y\/} are true\cr
+{\it x} | {\it y}&true if at least one of {\it x\/} or {\it y\/} is true\cr 
+! {\it bool}&true {\it bool\/} is false\cr
+\endsec
+
+\sec Short-circuit Boolean Operators;
+\omit \vbox{\rm\vskip0.75ex
+  Operators evaluate left-to-right, expecting scalar operands.
+  Operands are only evaluated if necessary, stopping once overall
+  truth value can be determined.  Operands are converted to scalars by
+  applying the {\tt all} function.\vskip0.75ex}\span\cr   
+{\it x} \&\& {\it y}&true if both {\it x\/} and {\it y\/} are true\cr
+{\it x} || {\it y}&true if at least one of {\it x\/} or {\it y\/} is true\cr
+\endsec
+
+\sec Operator Precedence;
+\omit \vbox{\rm\vskip0.5ex
+  Here is a table of the operators in Octave, in order of increasing
+  precedence.\vskip0.75ex}\span\cr
+;\ \ ,&statement separators\cr
+=&assignment, groups left to right\cr
+||\ \ \&\&&logical ``or'' and ``and''\cr
+|\ \ \&&element-wise ``or'' and ``and''\cr
+< <= == >= > !=&relational operators\cr
+:&colon\cr
++\ \ -&addition and subtraction\cr
+* / \char'134\ \ .*\ \ ./\ \ .\char'134&multiplication and division\cr
+'\ \ .'&transpose\cr
++\ \ -\ \ ++\ \ --\ \ !&unary minus, increment, logical ``not''\cr
+\char'136\ \ .\char'136&exponentiation\cr
+\endsec
+
+\vfill\eject
+
+\widesec Statements;
+for {\it identifier} = {\it expr} {\it stmt-list} endfor\cr
+\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
+  Execute {\it stmt-list} once for each column of {\it expr}.  The
+  variable {\it identifier} is set to the value of the current column
+  during each iteration.}\cr\cr
+while ({\it condition}) {\it stmt-list} endwhile\cr
+\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
+  Execute {\it stmt-list} while {\it condition} is true.}\cr\cr
+\hbox{\vtop{\hsize=\itmwid\tt break}
+  \vtop{\hsize=\dfnwid\rm exit innermost loop}}\cr
+\hbox{\vtop{\hsize=\itmwid\tt continue}
+  \vtop{\hsize=\dfnwid\rm go to beginning of innermost loop}}\cr
+\hbox{\vtop{\hsize=\itmwid\tt return}
+  \vtop{\hsize=\dfnwid\rm return to calling function}}\cr\cr
+if ({\it condition}) {\it if-body} \opt{{\tt else} {\it else-body}} endif\cr
+\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
+  Execute {\it if-body} if {\it condition} is true, otherwise execute
+  {\it else-body}.}\cr
+if ({\it condition}) {\it if-body} \opt{{\tt elseif} ({\it condition})
+  {\it elseif-body}} endif\cr
+\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
+  Execute {\it if-body} if {\it condition} is true, otherwise execute
+  the {\it elseif-body} corresponding to the first {\tt elseif}
+  condition that is true, otherwise execute {\it else-body}.}\cr
+\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
+  Any number of {\tt elseif} clauses may appear in an {\tt if}
+  statement.}\cr\cr
+unwind\_protect {\it body} unwind\_protect\_cleanup {\it cleanup} end\cr
+\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
+  Execute {\it body}.  Execute {\it cleanup} no matter how control
+exits {\it body}.}\cr
+\endsec
+
+\widesec Defining Functions;
+function \opt{{\it ret-list}} {\it function-name}
+  \opt{\hskip0.2em({\it arg-list})\hskip0.2em}\cr
+\quad{\it function-body}\cr
+endfunction\cr\cr
+{\rm {\it ret-list\/} may be a single identifier or a comma-separated
+  list of identifiers delimited by square-brackets.\vskip0.75ex}\cr
+{\rm {\it arg-list\/} is a comma-separated list of identifiers and may
+  be empty.}\cr
+\endsec
+
+\sec Basic Matrix Manipulations;
+rows ({\it a})&return number of rows of {\it a}\cr
+columns ({\it a})&return number of columns of {\it a}\cr
+all ({\it a})&check if all elements of {\it a\/} nonzero\cr
+any ({\it a})&check if any elements of {\it a\/} nonzero\cr
+find ({\it a})&return indices of nonzero elements\cr
+sort ({\it a})&order elements in each column of {\it a}\cr
+sum ({\it a})&sum elements in columns of {\it a}\cr
+prod ({\it a})&product of elements in columns of {\it a}\cr
+min ({\it args})&find minimum values\cr
+max ({\it args})&find maximum values\cr
+rem ({\it x}, {\it y})&find remainder of {\it x}/{\it y}\cr
+reshape ({\it a}, {\it m}, {\it n})&reformat {\it a} to be {\it m} by
+  {\it n}\cr\cr
+diag ({\it v}, {\it k})&create diagonal matrices\cr
+linspace ({\it b}, {\it l}, {\it n})&create vector of linearly-spaced
+  elements\cr
+logspace ({\it b}, {\it l}, {\it n})&create vector of log-spaced
+  elements\cr
+eye ({\it n}, {\it m})&create {\it n\/} by {\it m\/} identity matrix\cr
+ones ({\it n}, {\it m})&create {\it n\/} by {\it m\/} matrix of ones\cr
+zeros ({\it n}, {\it m})&create {\it n\/} by {\it m\/} matrix of zeros\cr
+rand ({\it n}, {\it m})&create {\it n\/} by {\it m\/} matrix of random
+  values\cr 
+\endsec
+
+\vfill\eject
+
+% sin({\it a}) cos({\it a}) tan({\it a})&trigonometric functions\cr
+% asin({\it a}) acos({\it a}) atan({\it a})&inverse trigonometric functions\cr
+% sinh({\it a}) cosh({\it a}) tanh({\it a})&hyperbolic trig functions\cr
+% asinh({\it a}) acosh({\it a}) atanh({\it a})&inverse hyperbolic trig
+% functions\cr\cr 
+
+\sec Linear Algebra;
+chol ({\it a})&Cholesky factorization\cr
+det ({\it a})&compute the determinant of a matrix\cr
+eig ({\it a})&eigenvalues and eigenvectors\cr
+expm ({\it a})&compute the exponential of a matrix\cr
+hess ({\it a})&compute Hessenberg decomposition\cr
+inverse ({\it a})&invert a square matrix\cr
+norm ({\it a}, {\it p})&compute the {\it p}-norm of a matrix\cr
+pinv ({\it a})&compute pseudoinverse of {\it a}\cr
+qr ({\it a})&compute the QR factorization of a matrix\cr
+rank ({\it a})&matrix rank\cr
+schur ({\it a})&Schur decomposition of a matrix\cr
+svd ({\it a})&singular value decomposition\cr
+syl ({\it a}, {\it b}, {\it c})&solve the Sylvester equation\cr
+\endsec
+
+\sec Equations, ODEs, DAEs, Quadrature;
+*fsolve&solve nonlinear algebraic equations\cr
+*lsode&integrate nonlinear ODEs\cr
+*dassl&integrate nonlinear DAEs\cr
+*quad&integrate nonlinear functions\cr\cr
+perror ({\it nm}, {\it code})&for functions that return numeric
+  codes, print error message for named function and given error
+  code\cr\cr
+\omit \vbox{\rm
+  {\tt *} See the on-line or printed manual for the complete list of
+  arguments for these functions.}\span\cr
+\endsec
+
+\sec Signal Processing;
+fft ({\it a})&Fast Fourier Transform using FFTPACK\cr
+ifft ({\it a})&inverse FFT using FFTPACK\cr
+freqz ({\it args})&FIR filter frequency response\cr
+sinc ({\it x})&returns {\tt sin ($\pi$ x)/($\pi$ x)}\cr
+\endsec
+
+\altsec Image Processing;
+colormap ({\it map})&set the current colormap\cr
+gray2ind ({\it i}, {\it n})&convert gray scale to Octave image\cr
+image ({\it img}, {\it zoom})&display an Octave image matrix\cr
+imagesc ({\it img}, {\it zoom})&display scaled matrix as image\cr
+imshow ({\it img}, {\it map})&display Octave image\cr
+imshow ({\it i}, {\it n})&display gray scale image\cr
+imshow ({\it r}, {\it g}, {\it b})&display RGB image\cr
+ind2gray ({\it img}, {\it map})&convert Octave image to gray scale\cr
+ind2rgb ({\it img}, {\it map})&convert indexed image to RGB\cr
+loadimage ({\it file})&load an image file\cr
+rgb2ind ({\it r}, {\it g}, {\it b})&convert RGB to Octave image\cr
+\omit\tt saveimage ({\it file}, {\it img}, {\it fmt}, {\it map})\quad\rm
+save a matrix to {\it file}\span\cr
+\endsec
+
+\altsec Sets;
+create\_set ({\it a}, {\it b})&create row vector of unique values\cr
+complement ({\it a}, {\it b})&elements of {\it b} not in {\it a}\cr
+intersection ({\it a}, {\it b})&intersection of sets {\it a} and {\it b}\cr
+union ({\it a}, {\it b})&union of sets {\it a} and {\it b}\cr
+\endsec
+
+\altsec Strings;
+strcmp ({\it s}, {\it t})&compare strings\cr
+strcat ({\it s}, {\it t}, ...)&concatenate strings\cr
+\endsec
+
+\vfill\eject
+
+\altsec C-style Input and Output;
+fopen ({\it name}, {\it mode})&open file {\it name}\cr
+fclose ({\it file})&close {\it file}\cr
+printf ({\it fmt}, ...)&formatted output to {\tt stdout}\cr
+fprintf ({\it file}, {\it fmt}, ...)&formatted output to {\it file}\cr
+sprintf ({\it fmt}, ...)&formatted output to string\cr
+scanf ({\it fmt})&formatted input from {\tt stdin}\cr
+fscanf ({\it file}, {\it fmt})&formatted input from {\it file}\cr
+sscanf ({\it str}, {\it fmt})&formatted input from {\it string}\cr
+fgets ({\it file}, {\it len})&read {\it len\/} characters from {\it file\/}\cr
+fflush ({\it file})&flush pending output to {\it file}\cr
+ftell ({\it file})&return file pointer position\cr
+frewind ({\it file})&move file pointer to beginning\cr
+freport&print a info for open files\cr
+fread ({\it file}, {\it size}, {\it prec})&read binary data files\cr
+fwrite ({\it file}, {\it size}, {\it prec})&write binary data files\cr
+feof ({\it file})&determine if pointer is at EOF\cr
+\omit \vbox{\rm\vskip0.75ex
+  A file may be referenced either by name or by the number returned
+  from {\tt fopen}.  Three files are preconnected when Octave starts:
+  {\tt stdin}, {\tt stdout}, and {\tt stderr}.\vskip0.75ex}\span\cr
+\endsec
+
+\sec Other Input and Output functions;
+save {\it file} {\it var} ...&save variables in {\it file}\cr
+load {\it file}&load variables from {\it file}\cr
+disp ({\it var})&display value of {\it var} to screen\cr
+\endsec
+
+\sec Miscellaneous Functions;
+eval ({\it str})&evaluate {\it str} as a command\cr
+feval ({\it str}, ...)&evaluate function named by {\it str},
+  passing remaining args to called function\cr\cr
+error ({\it message})&print message and return to top level\cr\cr
+clear {\it pattern}&clear variables matching pattern\cr
+exist ({\it str})&check existence of variable or function\cr
+who&list current variables\cr
+\endsec
+
+\sec Polynomials;
+compan ({\it p})&companion matrix\cr
+conv ({\it a}, {\it b})&convolution\cr
+deconv ({\it a}, {\it b})&deconvolve two vectors\cr
+poly ({\it a})&create polynomial from a matrix\cr
+polyderiv ({\it p})&derivative of polynomial\cr
+polyreduce ({\it p})&integral of polynomial\cr
+polyval ({\it p}, {\it x})&value of polynomial at {\it x}\cr
+polyvalm ({\it p}, {\it x})&value of polynomial at {\it x}\cr
+roots ({\it p})&polynomial roots\cr
+residue ({\it a}, {\it b})&partial fraction expansion of
+ratio {\it a}/{\it b}\cr
+\endsec
+
+\sec Statistics;
+corrcoef ({\it x}, {\it y})&correlation coefficient\cr
+cov ({\it x}, {\it y})&covariance\cr
+mean ({\it a})&mean value\cr
+median ({\it a})&median value\cr
+std ({\it a})&standard deviation\cr
+var ({\it a})&variance\cr
+\endsec
+
+\vfill\eject
+
+\sec Basic Plotting;
+\omit \vbox{\tt
+gplot \opt{{\it ranges}} {\it expr} \opt{{\it using}}
+  \opt{{\it title}} \opt{{\it style}}\hfill{\rm 2D plotting}
+  \par\vskip \lskip}\span\cr
+\omit \vbox{\tt
+gsplot \opt{{\it ranges}} {\it expr} \opt{{\it using}}
+  \opt{{\it title}} \opt{{\it style}}\hfill{\rm 3D plotting}
+  \par\vskip \lskip}\span\cr
+\quad{\it ranges}&specify data ranges\cr
+\quad{\it expr}&expression to plot\cr
+\quad{\it using}&specify columns to plot\cr
+\quad{\it title}&specify line title for legend\cr
+\quad{\it style}&specify line style\cr
+\omit \vbox{\rm\vskip0.85ex 
+  If {\it ranges\/} are supplied, they must come before the expression
+  to plot.  The {\it using\/}, {\it title\/}, and {\it style\/}
+  options may appear in any order after {\it expr\/}.  Multiple
+  expressions may be plotted with a single command by separating them
+  with commas.\vskip1ex}\span\cr
+set {\it options}&set plotting options\cr
+show {\it options}&show plotting options\cr
+replot&redisplay current plot\cr
+closeplot&close stream to {\tt gnuplot} process\cr
+purge\_tmp\_files&clean up temporary plotting files\cr
+automatic\_replot&built-in variable\cr
+\endsec
+
+\sec Other Plotting Functions;
+plot ({\it args})&2D plot with linear axes\cr
+semilogx ({\it args})&2D plot with logarithmic x-axis\cr
+semilogy ({\it args})&2D plot with logarithmic y-axis\cr
+loglog ({\it args})&2D plot with logarithmic axes\cr
+bar ({\it args})&plot bar charts\cr
+stairs ({\it x}, {\it y})&plot stairsteps\cr
+hist ({\it y}, {\it x})&plot histograms\cr\cr
+title ({\it string})&set plot title\cr\cr
+axis ({\it limits})&set axis ranges\cr
+xlabel ({\it string})&set x-axis label\cr
+ylabel ({\it string})&set y-axis label\cr
+grid \opt{on$|$off}&set grid state\cr
+hold \opt{on$|$off}&set hold state\cr
+ishold&return 1 if hold is on, 0 otherwise\cr\cr
+mesh ({\it x}, {\it y}, {\it z})&plot 3D surface\cr
+meshdom ({\it x}, {\it y})&create mesh coordinate matrices\cr
+\endsec
+
+\vskip 0pt plus 2fill
+\hrule width \hsize
+\par\vskip10pt
+{\smrm\parskip=6pt
+Edition \refcardedition for Octave Version \octaveversion.  Copyright
+1996, John W. Eaton
+(jwe@che.utexas.edu).  The author assumes no responsibility for any
+errors on this card.
+
+This card may be freely distributed under the terms of the GNU
+General Public License.
+
+\TeX{} Macros for this card by Roland Pesch (pesch@cygnus.com),
+originally for the GDB reference card
+
+Octave itself is free software; you are welcome to distribute copies of
+it under the terms of the GNU General Public License.  There is
+absolutely no warranty for Octave.
+}
+
+\end
+
+% For AUCTeX:
+%
+% Local Variables: 
+% mode: tex
+% TeX-master: t
+% End: