*** README~ Sat Apr 2 19:26:24 1994 --- README Sun Dec 15 23:50:35 1996 *************** *** 104,107 **** --- 104,130 ---- + Version 2.02f: + + * Fixed a bug which broke `I', `H', `K' prefix keys in recent Emacs. + + * Fixed a bug in calc.texinfo which prevented "make tex2" from working. + + * Updated `C-y' (calc-yank) to understand Emacs 19 generalized kill ring. + + * Added a copy of "calccard.tex", the Calc quick reference card. + + + Version 2.02e: + + * Fixed an installation bug caused by recent changes to `write-region'. + + + Version 2.02d: + + * Fixed a minor installation problem with a Emacs 19.29 byte-compiler bug. + + * Removed archaic "macedit" package (superseded by "edmacro"). + + Version 2.02c: *** calc-ext.el~ Sat Apr 2 19:26:34 1994 --- calc-ext.el Sun Dec 15 23:50:46 1996 *************** *** 1364,1367 **** --- 1364,1368 ---- (message (if prefix msg ""))) (and prefix + nil ; Excise broken code we can live without. -- daveg 12/12/96 (not calc-is-keypad-press) (let ((event (calc-read-key t))) *** calc-yank.el~ Tue Jun 1 06:40:18 1993 --- calc-yank.el Sun Dec 15 23:50:38 1996 *************** *** 110,113 **** --- 110,114 ---- ;;; This function uses calc-last-kill if possible to get an exact result, ;;; otherwise it just parses the yanked string. + ;;; Modified to use Emacs 19 extended concept of kill-ring. -- daveg 12/15/96 (defun calc-yank () (interactive) *************** *** 115,130 **** (calc-pop-push-record-list 0 "yank" ! (if (eq (car-safe calc-last-kill) (car kill-ring-yank-pointer)) ! (cdr calc-last-kill) ! (if (stringp (car kill-ring-yank-pointer)) ! (let ((val (math-read-exprs ! (calc-clean-newlines (car kill-ring-yank-pointer))))) ! (if (eq (car-safe val) 'error) ! (progn ! (setq val (math-read-exprs (car kill-ring-yank-pointer))) ! (if (eq (car-safe val) 'error) ! (error "Bad format in yanked data") ! val)) ! val)))))) ) --- 116,133 ---- (calc-pop-push-record-list 0 "yank" ! (let ((thing (if (fboundp 'current-kill) ! (current-kill 0 t) ! (car kill-ring-yank-pointer)))) ! (if (eq (car-safe calc-last-kill) thing) ! (cdr calc-last-kill) ! (if (stringp thing) ! (let ((val (math-read-exprs (calc-clean-newlines thing)))) ! (if (eq (car-safe val) 'error) ! (progn ! (setq val (math-read-exprs thing)) ! (if (eq (car-safe val) 'error) ! (error "Bad format in yanked data") ! val)) ! val))))))) ) *** calc.el~ Sun Sep 22 16:12:20 1996 --- calc.el Sun Dec 15 23:50:47 1996 *************** *** 681,686 **** (put 'math-underflow 'error-message "Floating-point underflow occurred") ! (setq calc-version "2.02e" ! calc-version-date "Tue Sep 22 1996" calc-trail-pointer nil ; "Current" entry in trail buffer. calc-trail-overlay nil ; Value of overlay-arrow-string. --- 681,686 ---- (put 'math-underflow 'error-message "Floating-point underflow occurred") ! (setq calc-version "2.02f" ! calc-version-date "Sun Dec 15 1996" calc-trail-pointer nil ; "Current" entry in trail buffer. calc-trail-overlay nil ; Value of overlay-arrow-string. *** calc.texinfo~ Sat Apr 2 19:28:12 1994 --- calc.texinfo Sun Dec 15 23:50:57 1996 *************** *** 126,129 **** --- 126,130 ---- \futurelet\next\calcindexerxxx } + \gdef\indexstar{} \gdef\bumpoddpages{\ifodd\calcpageno\hskip7.3in\fi} %\gdef\bumpoddpages{\hskip7.3in} % for marginal notes on right side always *** calccard.tex~ Thu Jan 1 00:00:00 1970 --- calccard.tex Sun Dec 15 23:50:58 1996 *************** *** 0 **** --- 1,669 ---- + % Reference Card for GNU Emacs Calc 2.02 + %**start of header + \newcount\columnsperpage + + % The format for this file is adapted from the GNU Emacs reference + % card version 1.9, by Stephen Gildea. + + % This file can be printed with 1, 2, or 3 columns per page (see below). + % Specify how many you want here. Nothing else needs to be changed. + + \columnsperpage=3 + + % Typical command to format: tex calccard.tex + % Typical command to print (3 cols): dvips -t landscape calccard.dvi + + % Copyright (c) 1987, 1992 Free Software Foundation, Inc. + + % This file is part of GNU Emacs. + + % GNU Emacs 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 1, or (at your option) + % any later version. + + % GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to + % the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + + % This file is intended to be processed by plain TeX (TeX82). + % + % The final reference card has six columns, three on each side. + % This file can be used to produce it in any of three ways: + % 1 column per page + % produces six separate pages, each of which needs to be reduced to 80%. + % This gives the best resolution. + % 2 columns per page + % produces three already-reduced pages. + % You will still need to cut and paste. + % 3 columns per page + % produces two pages which must be printed sideways to make a + % ready-to-use 8.5 x 11 inch reference card. + % For this you need a dvi device driver that can print sideways. + % Which mode to use is controlled by setting \columnsperpage above. + % + % Author (Calc reference card): + % Dave Gillespie + % UUCP: uunet!synaptx!daveg + % Internet: daveg@synaptics.com + % + % Author (refcard.tex format): + % Stephen Gildea + % UUCP: mit-erl!gildea + % Internet: gildea@erl.mit.edu + + \def\versionnumber{2.02} + \def\versiondate{January 1992} + \def\year{1992} + \def\version{v\versionnumber} + + \def\shortcopyrightnotice{\vskip 1ex plus 2 fill + \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. + Permissions on back. v\versionnumber}} + + \def\copyrightnotice{ + \vskip 1ex plus 2 fill\begingroup\small + \centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} + \centerline{designed by Dave Gillespie and Stephen Gildea, \version} + \centerline{for GNU Emacs Calc version \versionnumber\ (\versiondate)} + + Permission is granted to make and distribute copies of + this card provided the copyright notice and this permission notice + are preserved on all copies. + + For copies of the GNU Emacs Calc manual, write to the Free Software + Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. + + \endgroup} + + % make \bye not \outer so that the \def\bye in the \else clause below + % can be scanned without complaint. + \def\bye{\par\vfill\supereject\end} + + \newdimen\intercolumnskip + \newbox\columna + \newbox\columnb + + \def\ncolumns{\the\columnsperpage} + + \message{[\ncolumns\space + column\if 1\ncolumns\else s\fi\space per page]} + + \def\scaledmag#1{ scaled \magstep #1} + + % This multi-way format was designed by Stephen Gildea + % October 1986. + \if 1\ncolumns + \hsize 4in + \vsize 10in + \voffset -.7in + \font\titlefont=\fontname\tenbf \scaledmag3 + \font\headingfont=\fontname\tenbf \scaledmag2 + \font\smallfont=\fontname\sevenrm + \font\smallsy=\fontname\sevensy + + \footline{\hss\folio} + \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}} + \else + \hsize 3.2in + \vsize 7.95in + \hoffset -.75in + \voffset -.745in + \font\titlefont=cmbx10 \scaledmag2 + \font\headingfont=cmbx10 \scaledmag1 + \font\smallfont=cmr6 + \font\smallsy=cmsy6 + \font\eightrm=cmr8 + \font\eightbf=cmbx8 + \font\eightit=cmti8 + \font\eighttt=cmtt8 + \font\eightsy=cmsy8 + \textfont0=\eightrm + \textfont2=\eightsy + \def\rm{\eightrm} + \def\bf{\eightbf} + \def\it{\eightit} + \def\tt{\eighttt} + \normalbaselineskip=.8\normalbaselineskip + \normallineskip=.8\normallineskip + \normallineskiplimit=.8\normallineskiplimit + \normalbaselines\rm %make definitions take effect + + \if 2\ncolumns + \let\maxcolumn=b + \footline{\hss\rm\folio\hss} + \def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}} + \else \if 3\ncolumns + \let\maxcolumn=c + \nopagenumbers + \else + \errhelp{You must set \columnsperpage equal to 1, 2, or 3.} + \errmessage{Illegal number of columns per page} + \fi\fi + + \intercolumnskip=.46in + \def\abc{a} + \output={% + % This next line is useful when designing the layout. + %\immediate\write16{Column \folio\abc\space starts with \firstmark} + \if \maxcolumn\abc \multicolumnformat \global\def\abc{a} + \else\if a\abc + \global\setbox\columna\columnbox \global\def\abc{b} + %% in case we never use \columnb (two-column mode) + \global\setbox\columnb\hbox to -\intercolumnskip{} + \else + \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi} + \def\multicolumnformat{\shipout\vbox{\makeheadline + \hbox{\box\columna\hskip\intercolumnskip + \box\columnb\hskip\intercolumnskip\columnbox} + \makefootline}\advancepageno} + \def\columnbox{\leftline{\pagebody}} + + \def\bye{\par\vfill\supereject + \if a\abc \else\null\vfill\eject\fi + \if a\abc \else\null\vfill\eject\fi + \end} + \fi + + % we won't be using math mode much, so redefine some of the characters + % we might want to talk about + \catcode`\^=12 + \catcode`\_=12 + + \chardef\\=`\\ + \chardef\{=`\{ + \chardef\}=`\} + + \hyphenation{mini-buf-fer} + + \parindent 0pt + \parskip 1ex plus .5ex minus .5ex + + \def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip} + + \outer\def\newcolumn{\vfill\eject} + + \outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex} + + \outer\def\section#1{\par\filbreak + \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}% + \vskip 2ex plus 1ex minus 1.5ex} + + \newdimen\keyindent + + \def\beginindentedkeys{\keyindent=1em} + \def\endindentedkeys{\keyindent=0em} + \endindentedkeys + + \def\paralign{\vskip\parskip\halign} + + \def\<#1>{$\langle${\rm #1}$\rangle$} + + \def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows + + \def\beginexample{\par\leavevmode\begingroup + \obeylines\obeyspaces\parskip0pt\tt} + {\obeyspaces\global\let =\ } + \def\endexample{\endgroup} + + \def\key#1#2{\leavevmode\hbox to \hsize{\vtop + {\hsize=.75\hsize\rightskip=1em + \hskip\keyindent\relax#1}\kbd{#2}\hfil}} + + \newbox\metaxbox + \setbox\metaxbox\hbox{\kbd{M-x }} + \newdimen\metaxwidth + \metaxwidth=\wd\metaxbox + + \def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize + {\hskip\keyindent\relax#1\hfil}% + \hskip -\metaxwidth minus 1fil + \kbd{#2}\hfil}} + + \def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad + &\kbd{#3}\quad\cr} + + % + % Calc-specific commands here: + % + + \let\^=^ + \let\_=_ + \catcode`\^=7 + \catcode`\_=8 + + % Redefine to make spaces a bit smaller + \let\wkbd=\kbd + \def\kbd#1{{\spaceskip=.37em\tt#1}\null} + + \def\wkey#1#2{\leavevmode\hbox to \hsize{\vtop + {\hsize=.75\hsize\rightskip=1em + \hskip\keyindent\relax#1}\wkbd{#2}\hfil}} + \def\wthreecol#1#2#3{\hskip\keyindent\relax#1\hfil&\wkbd{#2}\quad + &\wkbd{#3}\quad\cr} + + \def\stkkey#1#2#3#4{\par\line{\hskip1em\rlap{\kbd{#1}}\hskip4.5em% + \rlap{{#2}}\hskip7.5em\rlap{{#3}}\hskip7.5em\rlap{{#4}}\hfill}\par} + \def\S#1{$S_{\scriptscriptstyle #1}$} + \def\swap{$\leftrightarrow$} + + \def\mhash{M-\#\ } + \def\,{{\rm ,\hskip.55em}\ignorespaces} + \def\lesssectionskip{\vskip-1.5ex} + + \def\iline#1{\par\line{\hskip1em\relax #1\hfill}\par} + + \if 1\ncolumns + \else + \font\eighti=cmmi8 + \textfont1=\eighti + \fi + + %**end of header + + + % Column 1 + + \title{GNU Calc Reference Card} + + \centerline{(for version \versionnumber\ of \versiondate)} + + \section{Starting and Stopping} + + \wkey{start/stop standard Calc}{\mhash c} + \wkey{start/stop X keypad Calc}{\mhash k} + \wkey{\quad start/stop either: \kbd{\mhash \#} or \kbd{\mhash \mhash}}{} + \wkey{stop standard Calc}{q} + + \wkey{Calc tutorial}{\mhash t} + \wkey{run Calc in other window}{\mhash o} + \wkey{quick calculation in minibuffer}{\mhash q} + + \section{Getting Help} + + \lesssectionskip + The \kbd{h} prefix key is Calc's analogue of \kbd{C-h} in Emacs. + + \key{quick summary of keys}{?} + \key{describe key briefly}{h c} + \key{describe key fully}{h k} + \key{describe function or command}{h f} + \key{read on-line manual}{h i{\rm\enskip or\enskip}\mhash i} + \key{read full Calc summary}{h s{\rm\enskip or\enskip}\mhash s} + + \section{Error Recovery} + + \key{abort command in progress}{C-g} + \key{display recent error messages}{w} + \key{undo last operation}{U} + \key{redo last operation}{D} + \key{recall last arguments}{M-RET} + \key{edit top of stack}{`} + \wkey{reset Calc to default state}{\mhash 0 {\rm (zero)}} + + \section{Transferring Data} + + \wkey{grab region from a buffer}{\mhash g} + \wkey{grab rectangle from a buffer}{\mhash r} + \wkey{grab rectangle, summing columns}{\mhash :} + \wkey{grab rectangle, summing rows}{\mhash \_} + + \wkey{yank data to a buffer}{\mhash y} + + Also, try \kbd{C-k}/\kbd{C-y} or X cut and paste. + + \section{Examples} + + \lesssectionskip + In RPN, enter numbers first, separated by \kbd{RET} if necessary, + then type the operator. To enter a calculation in algebraic form, + press the apostrophe first. + + \beginindentedkeys + \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt\hfil\quad&#\hfil\cr + \wthreecol{ }{{\bf RPN style:}}{{\bf algebraic style:}} + \wthreecol{Example:}{2 RET 3 +}{' 2+3 RET} + \wthreecol{Example:}{2 RET 3 + 4 *}{' (2+3)*4 RET} + \wthreecol{Example:}{2 RET 3 RET 4 + *}{' 2*(3+4) RET} + \wthreecol{Example:}{3 RET 6 + Q 3 \^}{' sqrt(3+6)\^3 RET} + \wthreecol{Example:}{P 3 / n S}{' sin(-pi/3) RET =} + } + \endindentedkeys + + \shortcopyrightnotice + + % Column 2 + + \section{Arithmetic} + + \key{add, subtract, multiply, divide}{+\, -\, *\, /} + \key{raise to a power, {\it n\/}th root}{\^\, I \^} + \key{change sign}{n} + \key{reciprocal $1/x$}{\&} + \key{square root $\sqrt x$}{Q} + + \key{set precision}{p} + \key{round off last two digits}{c 2} + \key{convert to fraction, float}{c F\, c f} + + \wkey{enter using algebraic notation}{' 2+3*4} + \wkey{refer to previous result}{' 3*\$\^2} + \wkey{refer to higher stack entries}{' \$1*\$2\^2} + \key{finish alg entry without evaluating}{LFD} + \key{set mode where alg entry used by default}{m a} + + \section{Stack Commands} + + \lesssectionskip + Here \S{n} is the $n$th stack entry, and $N$ is the size of the stack. + + \vskip.5ex + \stkkey{\it key}{\it no prefix}{\it prefix $n$}{\it prefix $-n$} + \stkkey{RET}{copy \S{1}}{copy \S{1..n}}{copy \S{n}} + \stkkey{LFD}{copy \S{2}}{copy \S{n}}{copy \S{1..n}} + \stkkey{DEL}{delete \S{1}}{delete \S{1..n}}{delete \S{n}} + \stkkey{M-DEL}{delete \S{2}}{delete \S{n}}{delete \S{1..n}} + \stkkey{TAB}{swap \S{1}\swap\S{2}}{roll \S{1} to \S{n}}{roll \S{n} to \S{N}} + \stkkey{M-TAB}{roll \S{3} to \S{1}}{roll \S{n} to \S{1}}{roll \S{N} to \S{n}} + + With a 0 prefix, these copy, delete, or reverse \S{1..N}. + + \section{Display} + + \wkey{scroll horizontally, vertically}{< >\, \{ \}} + \key{home cursor}{o} + \key{line numbers on/off}{d l} + \key{trail display on/off}{t d} + + \key{scientific notation}{d s} + \key{fixed-point notation}{d f} + \key{floating-point (normal) notation}{d n} + \key{group digits with commas}{d g} + + For display mode commands, \kbd{H} prefix prevents screen redraw + and \kbd{I} prefix temporarily redraws top of stack. + + \section{Notations} + + \wkey{scientific notation}{6.02e23} + \wkey{minus sign in numeric entry}{\_23{\rm\quad or\quad}23 n} + \wkey{fractions}{3:4} + \wkey{complex numbers}{({\it x}, {\it y})} + \wkey{polar complex numbers}{({\it r}; $\theta$)} + \wkey{vectors (commas optional)}{[1, 2, 3]} + \wkey{matrices (or nested vectors)}{[1, 2; 3, 4]} + \wkey{error forms (\kbd{p} key)}{100 +/- 0.5} + \wkey{interval forms}{[2 ..\ 5)} + \wkey{modulo forms (\kbd{M} key)}{6 mod 24} + \wkey{HMS forms}{5@ 30' 0"} + \wkey{date forms}{} + \wkey{infinity, indeterminate}{inf\, nan} + + % Column 3 + + \section{Scientific Functions} + + \key{ln, log${}_{\scriptscriptstyle 10}$, log${}_b$}{L\, H L\, B} + \key{exponential {\it e}${}^x$, 10${}^x$}{E\, H E} + \key{sin, cos, tan}{S\, C\, T} + \key{arcsin, arccos, arctan}{I S\, I C\, I T} + \key{inverse, hyperbolic prefix keys}{I\, H} + \key{two-argument arctan}{f T} + \key{degrees, radians modes}{m d\, m r} + \key{pi ($\pi$)}{P} + + \key{factorial, double factorial}{!\, k d} + \key{combinations, permutations}{k c\, H k c} + \key{prime factorization}{k f} + \key{next prime, previous prime}{k n\, I k n} + \key{GCD, LCM}{k g\, k l} + \key{random number, shuffle}{k r\, k h} + \key{minimum, maximum}{f n\, f x} + + \key{error functions erf, erfc}{f e\, I f e} + \key{gamma, beta functions}{f g\, f b} + \key{incomplete gamma, beta functions}{f G\, f B} + \key{Bessel $J_\nu$, $Y_\nu$ functions}{f j\, f y} + + \key{complex magnitude, arg, conjugate}{A\, G\, J} + \key{real, imaginary parts}{f r\, f i} + \key{convert polar/rectangular}{c p} + + \section{Financial Functions} + + \key{enter percentage}{M-\%} + \key{convert to percentage}{c \%} + \key{percentage change}{b \%} + + \key{present value}{b P} + \key{future value}{b F} + \key{rate of return}{b T} + \key{number of payments}{b \#} + \key{size of payments}{b M} + \key{net present value, int.\ rate of return}{b N\, b I} + + Above computations assume payments at end of period. Use \kbd{I} + prefix for beginning of period, or \kbd{H} for a lump sum investment. + + \key{straight-line depreciation}{b S} + \key{sum-of-years'-digits}{b Y} + \key{double declining balance}{b D} + + \section{Units} + + \wkey{enter with units}{' 55 mi/hr} + \key{convert to new units, base units}{u c\, u b} + \key{convert temperature units}{u t} + \key{simplify units expression}{u s} + \key{view units table}{u v} + + Common units: + \iline{distance: \kbd{m}, \kbd{cm}, \kbd{mm}, \kbd{km}; + \kbd{in}, \kbd{ft}, \kbd{mi}, \kbd{mfi}; + \kbd{point}, \kbd{lyr}} + \iline{volume: \kbd{l} or \kbd{L}, \kbd{ml}; + \kbd{gal}, \kbd{qt}, \kbd{pt}, \kbd{cup}, \kbd{floz}, + \kbd{tbsp}, \kbd{tsp}} + \iline{mass: \kbd{g}, \kbd{mg}, \kbd{kg}, \kbd{t}; + \kbd{lb}, \kbd{oz}, \kbd{ton}} + \iline{time: \kbd{s} or \kbd{sec}, \kbd{ms}, \kbd{us}, \kbd{ns}, \kbd{min}, + \kbd{hr}, \kbd{day}, \kbd{wk}} + \iline{temperature: \kbd{degC}, \kbd{degF}, \kbd{K}} + + % Column 4 + + \newcolumn + \title{GNU Calc Reference Card} + + \section{Programmer's Functions} + + \key{binary, octal, hex display}{d 2\, d 8\, d 6} + \key{decimal, other radix display}{d 0\, d r} + \key{display leading zeros}{d z} + \key{entering non-decimal numbers}{16\#7FFF} + + \key{binary word size}{b w} + \key{binary AND, OR, XOR}{b a\, b o\, b x} + \key{binary DIFF, NOT}{b d\, b n} + \key{left shift}{b l} + \key{logical right shift}{b r} + \key{arithmetic right shift}{b R} + + \key{integer quotient, remainder}{\\\, \%} + \key{integer square root, logarithm}{f Q\, f I} + \key{floor, ceiling, round to integer}{F\, I F\, R} + + \section{Variables} + + \lesssectionskip + Variable names are single digits or whole words. + + \key{store to variable}{s t} + \key{store and keep on stack}{s s} + \key{recall from variable}{s r} + \key{shorthands for digit variables}{t {\it n}\, s {\it n}\, r {\it n}} + \key{unstore, exchange variable}{s u\, s x} + \key{edit variable}{s e} + + \section{Vector Operations} + + \key{vector of 1, 2, $\ldots\mskip\thinmuskip$, {\it n}}{v x {\it n}} + \key{vector of {\it n} counts from {\it a} by {\it b}}{C-u v x} + \key{vector of copies of a value}{v b} + \key{concatenate into vector}{|} + \key{pack many stack items into vector}{v p} + \key{unpack vector or object}{v u} + + \key{length of vector (list)}{v l} + \key{reverse vector}{v v} + \key{sort, grade vector}{V S\, V G} + \key{histogram of vector data}{V H} + \key{extract vector element}{v r} + + \key{matrix determinant, inverse}{V D\, \&} + \key{matrix transpose, trace}{v t\, V T} + \key{cross, dot products}{V C\, *} + \key{identity matrix}{v i} + \key{extract matrix row, column}{v r\, v c} + + \key{intersection, union, diff of sets}{V \^\, V V\, V -} + \key{cardinality of set}{V \#} + + \key{add vectors elementwise (i.e., map \kbd{+})}{V M +} + \key{sum elements in vector (i.e., reduce \kbd{+})}{V R +} + \key{sum rows in matrix}{V R \_ +} + \key{sum columns in matrix}{V R : +} + \key{sum elements, accumulate results}{V U +} + + % Column 5 + + \section{Algebra} + + \wkey{enter an algebraic formula}{' 2x+3y\^2} + \wkey{enter an equation}{' 2x\^2=18} + + \key{symbolic (vs.\ numeric) mode}{m s} + \key{fractions (vs.\ float) mode}{m f} + \key{suppress evaluation of formulas}{m O} + \key{simplify formulas automatically}{m S} + \key{return to default evaluation rules}{m D} + + \key{``Big'' display mode}{d B} + \key{C, Pascal, FORTRAN modes}{d C\, d P\, d F} + \key{\TeX, eqn modes}{d T\, d E} + \key{Unformatted mode}{d U} + \key{Normal language mode}{d N} + + \key{simplify formula}{a s} + \key{put formula into rational form}{a n} + \key{evaluate variables in formula}{=} + \key{evaluate numerically}{N} + \key{let variable equal a value in formula}{s l {\it x\/}={\it val}} + \key{declare properties of variable}{s d} + \iline{Common decls: \kbd{pos}, \kbd{int}, \kbd{real}, + \kbd{scalar}, \kbd{[{\it a}..{\it b}\hskip.1em]}.} + + \key{expand, collect terms}{a x\, a c} + \key{factor, partial fractions}{a f\, a a} + \key{polynomial quotient, remainder, GCD}{a \\\, a \%\, a g} + \key{derivative, integral}{a d\, a i} + \key{taylor series}{a t} + + \key{principal solution to equation(s)}{a S} + \key{list of solutions}{a P} + \key{generic solution}{H a S} + \key{apply function to both sides of eqn}{a M} + + \key{rewrite formula}{a r} + \iline{Example: \wkbd{a r a*b + a*c := a*(b+c)}} + \iline{Example: \wkbd{a r sin(x)\^2 := 1-cos(x)\^2}} + \iline{Example: \wkbd{a r cos(n pi) := 1 ::\ integer(n) ::\ n\%2 = 0}} + \iline{Example: \wkbd{a r [f(0) := 1, f(n) := n f(n-1) ::\ n > 0]}} + \iline{Put rules in \kbd{EvalRules} to have them apply automatically.} + \iline{Put rules in \kbd{AlgSimpRules} to apply during \kbd{a s} + command.} + \iline{Common markers: \kbd{opt}, \kbd{plain}, \kbd{quote}, \kbd{eval}, + \kbd{let}, \kbd{remember}.} + + \section{Numerical Computations} + + \key{sum formula over a range}{a +} + \key{product of formula over a range}{a *} + \key{tabulate formula over a range}{a T} + \key{integrate numerically over a range}{a I} + \key{find zero of formula or equation}{a R} + \key{find local min, max of formula}{a N\, a X} + \key{fit data to line or curve}{a F} + + \key{mean of data in vector or variable}{u M} + \key{median of data}{H u M} + \key{geometric mean of data}{u G} + \key{sum, product of data}{u +\, u *} + \key{minimum, maximum of data}{u N\, u X} + \key{sample, pop.\ standard deviation}{u S\, I u S} + + % Column 6 + + \section{Selections} + + \key{select subformula under cursor}{j s} + \key{select {\it n\/}th subformula}{j {\it n}} + \key{select more}{j m} + \key{unselect this, all formulas}{j u\, j c} + + \key{copy indicated subformula}{j RET} + \key{delete indicated subformula}{j DEL} + + \key{commute selected terms}{j C} + \key{commute term leftward, rightward}{j L\, j R} + \key{distribute, merge selection}{j D\, j M} + \key{isolate selected term in equation}{j I} + \key{negate, invert term in context}{j N\, j \&} + \key{rewrite selected term}{j r} + + \section{Graphics} + + \key{graph function or data}{g f} + \key{graph 3D function or data}{g F} + \key{replot current graph}{g p} + \key{print current graph}{g P} + \key{add curve to graph}{g a} + \key{set number of data points}{g N} + \key{set line, point styles}{g s\, g S} + \key{set log vs.\ linear {\it x, y} axis}{g l\, g L} + \key{set range for {\it x, y} axis}{g r\, g R} + \key{close graphics window}{g q} + + \section{Programming} + + \key{begin, end recording a macro}{C-x (\, C-x )} + \key{replay keyboard macro}{X} + \wkey{read region as written-out macro}{\mhash m} + \key{if, else, endif}{Z [\, Z :\, Z ]} + \key{equal to, less than, member of}{a =\, a <\, a \{} + \key{repeat {\it n} times, break from loop}{Z <\, Z >\, Z /} + \key{``for'' loop: start, end; body, step}{Z (\, Z )} + \key{save, restore mode settings}{Z `\, Z '} + \key{display message during macro}{Z =} + \key{query user during macro}{Z \#} + \key{put finished macro on a key}{Z K} + + \key{define function with formula}{Z F} + \key{edit definition}{Z E} + + \key{record user-defined command permanently}{Z P} + \key{record variable value permanently}{s p} + \key{record mode settings permanently}{m m} + + \copyrightnotice + + \bye + + % Local variables: + % compile-command: "tex calccard" + % End: