home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / calculat / amp30.zip / MANUAL.TXT < prev    next >
Text File  |  1989-03-24  |  155KB  |  7,619 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.           Copyright 1987, 1989 Cerebral Software
  10.  
  11.  
  12.           Algebraic
  13.           Manipulation
  14.           Program
  15.  
  16.           (Version 3.0)
  17.  
  18.           Users Manual (Evaluation Version)
  19.  
  20.           Program and Manual by Mark Garber
  21.  
  22.           Cerebral 
  23.             Software
  24.  
  25.           for IBMR PC/XT, PC/AT and 100%  compatibles with 640 kilobytes of
  26.           memory or more.
  27.  
  28.           Copyright 1987, 1989
  29.  
  30.           Cerebral Software
  31.           P.O. Box 80332
  32.           Chamblee, Georgia 30366
  33.           Ph (404)-452-1129
  34.  
  35.           This publication and  accompanying software  is protected by  the
  36.           copyright  laws  of the  United  States  of America.    Users may
  37.           distribute this manual on a non commercial basis.
  38.  
  39.           Cerebral Software reserves all copyrights and all other rights on
  40.           its software.  
  41.  
  42.           Cerebral Software does not warrant that its software package will
  43.           function properly in every hardware/software configuration.
  44.  
  45.           NOTICE: CEREBRAL SOFTWARE IS NOT LIABLE FOR DAMAGES IN CONNECTION
  46.           WITH THE USE OF THIS SOFTWARE OR MANUAL.
  47.  
  48.           Cerebral Software reserves  the right to revise  this publication
  49.           and to make changes  to its content hereof without  obligation to
  50.           notify any person of such revision or changes.
  51.  
  52.           Production  copies of the software and  manual are available from
  53.           Cerebral Software for  $90 plus  $3 shipping and  handling.   (Ga
  54.           residents add 3% sales tax.)
  55.  
  56.           AMP  was  written   in  Modula-2  using  the   Logitech  Software
  57.           Development System.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.           Copyright 1987, 1989 Cerebral Software
  76.  
  77.           Acknowlegment
  78.  
  79.           Cerebral  Software would  like to  acknowlegde Mike King  and Tom
  80.           Mackovica of Motorola for their constructive criticism of AMP 2.0
  81.           during  the development stage  of that product.   A great deal of
  82.           what was learned on that product has gone into this one.  A great
  83.           deal  of  thanks  goes to  Hugh  Horton  of  TRW for  his  timely
  84.           evaluation and bug hunting during the early development stages of
  85.           AMP 3.0.
  86.  
  87.           Thanks also to  all the other  beta testers who suffered  through
  88.           the  early  stages   of  this   product  and  supplied   feedback
  89.           information.
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.           Copyright 1987, 1989 Cerebral Software
  142.  
  143.           How To Use This Manual
  144.  
  145.                Chapter I,  Overview, gives a  brief description of  the AMP
  146.           interpreter.   Chapter  II, Installation, gives  instructions for
  147.           installing the  program on  a hard  disk.   Chapter III,  Getting
  148.           Started,  chapter IV, Structure and chapter  V, Tutorial, give an
  149.           introduction on how to use the AMP interpreter to solve problems.
  150.           You should go through these chapters in detail.
  151.                Once you  have gone through  the tutorial you  should browse
  152.           though Chapters  VI  and become  familiar with  the command  set.
  153.           Chapter  VII  describes  detailed  instructions for  constructing
  154.           procedures.  Chapter  VIII gives the  rules for than AMP  follows
  155.           when it performs computations using relations.
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.           Copyright 1987, 1989 Cerebral Software
  208.  
  209.                                   Table of Contents
  210.  
  211.           I.Overview  . . . . . . . . . . . . . . . . . . . . . . . . .   1
  212.  
  213.           II.Installation . . . . . . . . . . . . . . . . . . . . . . .   1
  214.  
  215.           III.Getting Started . . . . . . . . . . . . . . . . . . . . .   2
  216.  
  217.           IV.Structure  . . . . . . . . . . . . . . . . . . . . . . . .  11
  218.                Labels . . . . . . . . . . . . . . . . . . . . . . . . .  11
  219.                Constants  . . . . . . . . . . . . . . . . . . . . . . .  12
  220.                Units  . . . . . . . . . . . . . . . . . . . . . . . . .  12
  221.                Indices and Index Expressions  . . . . . . . . . . . . .  12
  222.                Variables  . . . . . . . . . . . . . . . . . . . . . . .  13
  223.                Functions  . . . . . . . . . . . . . . . . . . . . . . .  13
  224.                Standard Functions . . . . . . . . . . . . . . . . . . .  13
  225.                Summations . . . . . . . . . . . . . . . . . . . . . . .  14
  226.                Products . . . . . . . . . . . . . . . . . . . . . . . .  14
  227.                Derivatives  . . . . . . . . . . . . . . . . . . . . . .  15
  228.                Integrals  . . . . . . . . . . . . . . . . . . . . . . .  15
  229.                Expressions  . . . . . . . . . . . . . . . . . . . . . .  16
  230.                Magnitudes . . . . . . . . . . . . . . . . . . . . . . .  16
  231.                Equations  . . . . . . . . . . . . . . . . . . . . . . .  16
  232.                Relations  . . . . . . . . . . . . . . . . . . . . . . .  16
  233.                Procedures . . . . . . . . . . . . . . . . . . . . . . .  16
  234.                Special Operators  . . . . . . . . . . . . . . . . . . .  17
  235.  
  236.           V.Tutorial  . . . . . . . . . . . . . . . . . . . . . . . . .  18
  237.                Numerical Calculations . . . . . . . . . . . . . . . . .  18
  238.                Simplifications  . . . . . . . . . . . . . . . . . . . .  20
  239.                Two Equations  . . . . . . . . . . . . . . . . . . . . .  22
  240.                Matrix Manipulation  . . . . . . . . . . . . . . . . . .  25
  241.                Identities   . . . . . . . . . . . . . . . . . . . . . .  30
  242.                Special Differentiation  . . . . . . . . . . . . . . . .  31
  243.  
  244.           VI.Command Dictionary . . . . . . . . . . . . . . . . . . . .  32
  245.                ":" -- DEFINITION OPERATOR . . . . . . . . . . . . . . .  34
  246.                ":=" - ASSIGNMENT OPERATOR . . . . . . . . . . . . . . .  37
  247.                ADD  . . . . . . . . . . . . . . . . . . . . . . . . . .  39
  248.                ARGUMENT . . . . . . . . . . . . . . . . . . . . . . . .  40
  249.                CENTER . . . . . . . . . . . . . . . . . . . . . . . . .  41
  250.                CLEAR  . . . . . . . . . . . . . . . . . . . . . . . . .  42
  251.                COEFFICIENT ISOLATE  . . . . . . . . . . . . . . . . . .  43
  252.                COLLECT TERM . . . . . . . . . . . . . . . . . . . . . .  44
  253.                COLLECT OPERATOR . . . . . . . . . . . . . . . . . . . .  45
  254.                CONSTANT . . . . . . . . . . . . . . . . . . . . . . . .  46
  255.                DECIMAL  . . . . . . . . . . . . . . . . . . . . . . . .  47
  256.                DEGREES  . . . . . . . . . . . . . . . . . . . . . . . .  48
  257.                DERIVATIVE ISOLATE . . . . . . . . . . . . . . . . . . .  49
  258.                DIFFERENTIAL ISOLATE . . . . . . . . . . . . . . . . . .  50
  259.                DISTRIBUTE TERM  . . . . . . . . . . . . . . . . . . . .  51
  260.                DISTRIBUTE OPERATOR  . . . . . . . . . . . . . . . . . .  52
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.           Copyright 1987, 1989 Cerebral Software
  274.  
  275.                DIVIDE . . . . . . . . . . . . . . . . . . . . . . . . .  53
  276.                DISPLAY  . . . . . . . . . . . . . . . . . . . . . . . .  54
  277.                ECHO . . . . . . . . . . . . . . . . . . . . . . . . . .  55
  278.                EXIT . . . . . . . . . . . . . . . . . . . . . . . . . .  56
  279.                EXPAND . . . . . . . . . . . . . . . . . . . . . . . . .  57
  280.                EXPAND OPERATOR  . . . . . . . . . . . . . . . . . . . .  58
  281.                FACTOR . . . . . . . . . . . . . . . . . . . . . . . . .  59
  282.                FLOATING . . . . . . . . . . . . . . . . . . . . . . . .  60
  283.                FUNCTION . . . . . . . . . . . . . . . . . . . . . . . .  61
  284.                GRADIANS . . . . . . . . . . . . . . . . . . . . . . . .  62
  285.                HIGHBOUND  . . . . . . . . . . . . . . . . . . . . . . .  63
  286.                IMAGINARY  . . . . . . . . . . . . . . . . . . . . . . .  64
  287.                IN . . . . . . . . . . . . . . . . . . . . . . . . . . .  65
  288.                INDEX  . . . . . . . . . . . . . . . . . . . . . . . . .  66
  289.                INTEGRAL ISOLATE . . . . . . . . . . . . . . . . . . . .  67
  290.                ITERATE  . . . . . . . . . . . . . . . . . . . . . . . .  68
  291.                LABEL  . . . . . . . . . . . . . . . . . . . . . . . . .  69
  292.                LEFT . . . . . . . . . . . . . . . . . . . . . . . . . .  70
  293.                LIST . . . . . . . . . . . . . . . . . . . . . . . . . .  71
  294.                LOAD . . . . . . . . . . . . . . . . . . . . . . . . . .  72
  295.                LOWBOUND . . . . . . . . . . . . . . . . . . . . . . . .  73
  296.                MULTIPLY . . . . . . . . . . . . . . . . . . . . . . . .  74
  297.                NEGATE . . . . . . . . . . . . . . . . . . . . . . . . .  75
  298.                NOTATION . . . . . . . . . . . . . . . . . . . . . . . .  76
  299.                ON . . . . . . . . . . . . . . . . . . . . . . . . . . .  77
  300.                PRINT  . . . . . . . . . . . . . . . . . . . . . . . . .  78
  301.                PROCEDURE  . . . . . . . . . . . . . . . . . . . . . . .  79
  302.                PRODUCT  . . . . . . . . . . . . . . . . . . . . . . . .  80
  303.                QUOTIENT . . . . . . . . . . . . . . . . . . . . . . . .  82
  304.                RADIANS  . . . . . . . . . . . . . . . . . . . . . . . .  83
  305.                RAISE  . . . . . . . . . . . . . . . . . . . . . . . . .  84
  306.                REMAINDER  . . . . . . . . . . . . . . . . . . . . . . .  85
  307.                REPLACE  . . . . . . . . . . . . . . . . . . . . . . . .  86
  308.                RIGHT  . . . . . . . . . . . . . . . . . . . . . . . . .  87
  309.                SAVE . . . . . . . . . . . . . . . . . . . . . . . . . .  88
  310.                SCIENTIFIC . . . . . . . . . . . . . . . . . . . . . . .  89
  311.                SOUND  . . . . . . . . . . . . . . . . . . . . . . . . .  90
  312.                STANDARD . . . . . . . . . . . . . . . . . . . . . . . .  91
  313.                SWITCH . . . . . . . . . . . . . . . . . . . . . . . . .  92
  314.                SUBTRACT . . . . . . . . . . . . . . . . . . . . . . . .  93
  315.                SUM  . . . . . . . . . . . . . . . . . . . . . . . . . .  94
  316.                UNIT . . . . . . . . . . . . . . . . . . . . . . . . . .  96
  317.                VARIABLE . . . . . . . . . . . . . . . . . . . . . . . .  97
  318.  
  319.           VII.Procedures    . . . . . . . . . . . . . . . . . . . . . .  98
  320.                Procedure Heading  . . . . . . . . . . . . . . . . . . .  98
  321.  
  322.           VIII.Relation Arithmetic  . . . . . . . . . . . . . . . . . . 101
  323.  
  324.           INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.           Copyright 1987, 1989 Cerebral Software
  340.  
  341.           I.Overview
  342.  
  343.                AMP  3.0  is  a  symbolic  calculation  tool  for  students,
  344.           teachers,  and  professionals   in  engineering  or  mathematical
  345.           sciences.   AMP allows  the user  to edit  and simplify  numerous
  346.           expressions or equations in a mathematical derivation quickly and
  347.           accurately.
  348.  
  349.                AMP functions in an  interpreter mode and program mode.   In
  350.           the  interpreter mode you  may manipulate up  to 128 expressions,
  351.           equations or inequalities.   In the program mode you  have access
  352.           to  a  combination screen  editor and  compiler  so that  you may
  353.           define procedures using the same type  statements that you use in
  354.           the  interpreter  mode.   Errors  are displayed  with  the cursor
  355.           positioned at the offending statement.
  356.  
  357.                AMP facilitates tensor manipulation using index notation.  
  358.           Tensor elements  may be simple  numbers or complex  expressions :
  359.           elements  which are expressions  are simplified by  AMP.  Tensors
  360.           whose components are  relations may also  be defined.  A  special
  361.           case of tensor manipulation is matrix multiplication.
  362.  
  363.                AMP is language driven and interactive.  You input a command
  364.           line telling AMP what to do.  AMP then echoes  the results to the
  365.           screen.  There are  commands which allow you to direct results of
  366.           a derivation to  the printer.   Expressions and equations may  be
  367.           saved to the disk and then later recalled.
  368.  
  369.           II.Installation
  370.  
  371.                Prior to  installing the program  you should check  your AMP
  372.           disk for the  READ.ME file.  This  file contains late changes  to
  373.           the manual or program (if any).
  374.  
  375.                In  order  to run  AMP you  must  have an  IBM-PC compatible
  376.           computer with a MGA,  CGA, EGA, or VGA  video card running  under
  377.           DOS 2.1  or later.   The computer  must have a  hard disk and  at
  378.           least 640 kilobytes of memory.  
  379.  
  380.                In systems with  extended memory  a ramdisk may  be used  to
  381.           speed processing.   The AMP  program and  associated overlay  and
  382.           help files occupy slightly  less than 800 kilobytes.   You should
  383.           define a ramdisk of at least 1 megabyte.  You will then have room
  384.           for the AMP program files and any data (*.DAT)  and program files
  385.           (*.PRC) that you may define.
  386.  
  387.                After  you have  booted your system  place the  AMP diskette
  388.           into DRIVE A.  Then type :
  389.                                  A:INSTALL C:dirname
  390.  
  391.  
  392.                                                                           1
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.           Copyright 1987, 1989 Cerebral Software
  406.  
  407.           All the necessary files  will be copied to dirname  where dirname
  408.           is the name  of a directory to  which the necessary files  of AMP
  409.           will be reside1.     
  410.  
  411.           III.Getting Started
  412.  
  413.                Make certain that  you are  in the directory  where the  AMP
  414.           files reside.    At the DOS prompt  type AMP.  The  screen should
  415.           suddenly become blank and after a  few seconds you should see the
  416.           copyright information.  Hit any key to initiate the program.  
  417.  
  418.                You  should then  see a screen  as shown  in figure 1.   The
  419.           square prompt and  the blinking cursor indicate  where input from
  420.           the keyboard will be echoed to the screen.  The top of the screen
  421.           lists special soft keys which are used by AMP.  Tables I, II, III
  422.           describes these keys as  well as the functioning of  the keyboard
  423.           under AMP.  
  424.  
  425.                You are now ready to enter your first equation to AMP.   Try
  426.           entering the following equation at the blinking cursor:
  427.  
  428.           Q1 : f(a,b) = (b/c)*(c/b)*d + a + 1/2*a  + 1.5 + 2.2 + X + x
  429.  
  430.           Q1 is  a label which is  used to identify  the equation following
  431.           the colon.  Once you press the carriage return AMP simplifies the
  432.           equation as follows :
  433.  
  434.           (1) The terms "a" and "1/2*a" are added to give "3/2*a".
  435.  
  436.           (2) Factors are cancelled in the term "(b/c)*(c/b)*d" giving "d".
  437.  
  438.           (3) The terms 1.5 and 2.2 are added giving 3.70.
  439.  
  440.           (4) The terms are then ordered alphabetically.
  441.  
  442.           The simplified equation is
  443.  
  444.                         Q1 : f(a,b) = 3/2*a + d + X + x + 3.70
  445.  
  446.                Keep in mind that AMP is case sensitive in many cases.   The
  447.            variables "X" and "x" are not considered the same and hence they
  448.           are not added.
  449.                               
  450.  
  451.                1    The  installation  permits  installation  in  only  the
  452.                     current  directory.   A  statement  such as  "A:INSTALL
  453.                     C:DIR1\DIR2" is not permitted and will  crash.   If you
  454.                     wish to install the program files in another directory,
  455.                     you should first  create the directory and  then change
  456.                     the current directory to the new directory.
  457.  
  458.                                                                           2
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.           Copyright 1987, 1989 Cerebral Software
  472.  
  473.  
  474.                Prior to entering any more  data to AMP you should  read the
  475.           following section on structure,  chapter IV, and you should  work
  476.           through the tutorial. 
  477.  
  478.                If you wish to terminate the  present session with AMP, just
  479.           type "EXIT" at the prompt.  AMP will then return control to DOS.
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.                                                                           3
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.           Copyright 1987, 1989 Cerebral Software
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.             Figure 1     Screen after copyright informations is shown.F1: Greek  F2: Last  F3: Save   F4: Recall  F5: Program  F6:
  569.              Dos  F7: Help
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.                                                                           4
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.           Copyright 1987, 1989 Cerebral Software
  632.  
  633.           TABLE I
  634.  
  635.           Interpreter Edit and Function Keys
  636.  
  637.              Key
  638.           Combination         Description
  639.  
  640.              <-               Moves the curser one space to the left.
  641.  
  642.              ->               Moves the curser one space to the right.
  643.  
  644.                               Moves  the  curser up  one line  of multiline
  645.                               input. 
  646.  
  647.                               Moves the  curser down one line  of multiline
  648.                               input.   
  649.  
  650.           Back Space          Erases input immediately before curser.
  651.  
  652.             <cr>              Ends  the  current input  line  and initiates
  653.                               processing.
  654.  
  655.           Ctrl <-             Moves the  cursor left 10 spaces  or to front
  656.                               of line.
  657.  
  658.           Ctrl ->             Moves the  cursor right  10 spaces or  to the
  659.                               end of line.
  660.  
  661.           Ctrl <cr>           Brings the  cursor to the next  line.  Allows
  662.                               for multiline inputs.
  663.  
  664.           Ctrl Home           Clears Screen.
  665.  
  666.           Ctrl End            Erases input from cursor to end of line.
  667.  
  668.           Ctrl  PgDn          Erases input  from  cursor  to last  line  of
  669.                               multiline input.
  670.  
  671.            Del                Erases input at the cursor.
  672.  
  673.            End                Moves the cursor to the end of line. 
  674.  
  675.            Esc                Erases the current input lines.
  676.  
  677.            Ins                Toggles insert  mode.  Cursor  size indicates
  678.                               mode  status  :   A  large  cursor  indicates
  679.                               character will be  inserted at the cursor;  a
  680.                               small  cursor  indicates  characters will  be
  681.                               overwritten.
  682.  
  683.  
  684.                                                                           5
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.           Copyright 1987, 1989 Cerebral Software
  698.  
  699.            Home               Moves the cursor to front of line.
  700.  
  701.            TABLE I cont'd
  702.  
  703.              Key
  704.           Combination         Description
  705.  
  706.            PgUp               Moves  the  cursor  to the  first  line  of a
  707.                               multiline input.
  708.  
  709.            PgDn               Moves the cursor to the last input line of  a
  710.                               multiline input.
  711.  
  712.            Shift Tab          Moves cursor five spaces left.
  713.  
  714.            Tab                Moves cursor five spaces right.
  715.  
  716.  
  717.           Interpreter Function Keys
  718.  
  719.              Key
  720.           Combination         Description
  721.  
  722.           F1:  Greek          Remaps  the keyboard  to allow  the  input of
  723.                               Greek character set.   Once a key  is struck,
  724.                               the keyboard reverts  to the Roman  character
  725.                               set.
  726.  
  727.           Shift
  728.           F1: Greek           Remaps the keyboard to allow the input of the
  729.                               Greek Character set.
  730.  
  731.           F2: Last            Recalls the last line statement entered.
  732.  
  733.           F3: Save            Saves the current input to a buffer for later
  734.                               recall (See F4 : Recall ).
  735.  
  736.           F4: Recall          Recalls last statement saved to a buffer (See
  737.                               F3: Save ).
  738.  
  739.           F5:  Program        Activates  screen editor  for defining proce-
  740.                               dures. 
  741.  
  742.           F6: Dos             Activate command  processor giving  the  user
  743.                               access to such dos shell commands as COPY and
  744.                               DIR.
  745.  
  746.           F7: Help            Activates help.
  747.  
  748.  
  749.  
  750.                                                                           6
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.           Copyright 1987, 1989 Cerebral Software
  764.  
  765.           TABLE II
  766.  
  767.           Special Character Keys
  768.           (Program and Interpreter Modes)
  769.  
  770.           When the function  key F1: Greek   or Shift  F1: Greek  is  acti-
  771.           vated, the key board is remapped as follows:
  772.  
  773.                Key                 Remap
  774.  
  775.                A,a                 alpha
  776.                B,b                 beta
  777.                D                   DELTA
  778.                d                   delta
  779.  
  780.                E,e                 epsilon
  781.                F                   PHI
  782.                f                   phi
  783.                G,g                 GAMMA
  784.  
  785.                I,i                 infinity
  786.                M,m                 mu
  787.                O,o                 OMEGA
  788.                P                   PI                    
  789.  
  790.                p                   pi
  791.                S                   SIGMA
  792.                s                   sigma
  793.                T                   THETA
  794.  
  795.                t                   tau
  796.  
  797.           All other keys remain the same.
  798.  
  799.  
  800.           Other special keys are :
  801.  
  802.                Ctrl  A             Vertical  bar     which  represents  the
  803.                                    magnitude character.  
  804.  
  805.                Ctrl   D            Highlighted   D  which   represents  the
  806.                                    derivative character.
  807.  
  808.                Ctrl  K             Highlighted  INTEGRAL   character  which
  809.                                    represents the integral character.
  810.  
  811.                Ctrl   L            Highlighted   d  which   represents  the
  812.                                    differential character.
  813.  
  814.  
  815.  
  816.                                                                           7
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.           Copyright 1987, 1989 Cerebral Software
  830.  
  831.           TABLE III
  832.  
  833.           Program Edit and Function Keys
  834.  
  835.              Key 
  836.           Combination         Description
  837.  
  838.              <-               Moves the cursor one space to the left.
  839.  
  840.              ->               Moves the cursor one space to the right.
  841.  
  842.                               Moves the cursor up one line.
  843.  
  844.                               Moves the cursor down one line.
  845.  
  846.           Back Space          Deletes input immediately before the cursor.
  847.  
  848.           Ctrl <-             Moves the  cursor 8 spaces to  the left or to
  849.                               the beginning of the line.
  850.  
  851.           Ctrl ->             Moves the cursor 8 spaces to the right to the
  852.                               end of the line.
  853.  
  854.           Ctrl End            Deletes input from the cursor to end of line.
  855.  
  856.           Ctrl  PgDn          Deletes  input from  cursor to  end of  text.
  857.                               Program  requires  confirmation  before  per-
  858.                               forming this task.
  859.  
  860.            Del                If block mode  is active then whole  block is
  861.                               deleted.   If  block  mode  is inactive  then
  862.                               input at the cursor is deleted.
  863.  
  864.            End                Moves the cursor to the end of the line
  865.  
  866.            Ins                Toggles insert  mode.  Cursor  size indicates
  867.                               mode  status  :   A  large  cursor  indicates
  868.                               character will  be inserted at the  cursor; a
  869.                               small  cursor  indicates  characters will  be
  870.                               overwritten.
  871.  
  872.            Home               Moves the cursor to the front of the line.
  873.  
  874.            PgUp               Moves the cursor  to the top of the screen or
  875.                               to the preceding page.
  876.  
  877.            PgDn               Moves the cursor to the  bottom of the screen
  878.                               or to the following page.
  879.  
  880.           Shift Tab           Moves the cursor 8 positions to the left. 
  881.  
  882.                                                                           8
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.           Copyright 1987, 1989 Cerebral Software
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.                                                                           9
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.           Copyright 1987, 1989 Cerebral Software
  962.  
  963.           TABLE III cont'd
  964.  
  965.           Compiler Function Keys
  966.  
  967.               Key
  968.           Combination         Description
  969.  
  970.           F1:  Greek          Remaps  the keyboard  to allow  the  input of
  971.                               Greek character set.   Once a key  is struck,
  972.                               the keyboard  reverts to the  Roman character
  973.                               set.
  974.  
  975.           Shift
  976.           F1: Greek           Remaps the keyboard to allow the input of the
  977.                               Greek character set.
  978.  
  979.           F2:  Block          Activates  block  mode.  When  this  mode  is
  980.                               active the  functions of  F4: Save   and  F4:
  981.                               Load   is changed.  Text is  saved or  loaded
  982.                               from a temporary buffer.   Otherwise text  is
  983.                               saved or loaded to disk. 
  984.  
  985.           F3: Save            If block  mode is  active then  the block  is
  986.                               saved to  a temporary buffer.    If  the text
  987.                               has  been  successfully  compiled   then  the
  988.                               procedure is saved to a file of the same name
  989.                               in  the  current  directory;   the  extension
  990.                               ".PRC" is appended to the file name.   If the
  991.                               file has not  been compiled then the  user is
  992.                               prompted for a file name.
  993.  
  994.           F4: Load            Prompts  the user  for a  procedure  file  to
  995.                               load.  If no file is specified then text from
  996.                               the  temporary  buffer   is  written  at  the
  997.                               cursor.
  998.  
  999.  
  1000.           F5: Quit            Quits the editor  and returns the user to the
  1001.                               interactive  interpreter  mode.   The current
  1002.                               procedure is saved to a file of the same name
  1003.                               if the file has been compiled; otherwise, the
  1004.                               user is prompted for a name.
  1005.  
  1006.           F6:  Compile        Compiles  current  input  text  and  displays
  1007.                               errors.
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.                                                                          10
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.           Copyright 1987, 1989 Cerebral Software
  1028.  
  1029.  
  1030.           IV.Structure
  1031.  
  1032.                AMP can recognize numbers, variables, functions, summations,
  1033.           products,  derivatives,  and  integrals.   All  these  quantities
  1034.           except  numbers  are abstract  and  have no  particular numerical
  1035.           value.  With these quantities the  user can build complex expres-
  1036.           sions, equations, or relations.
  1037.  
  1038.           Labels
  1039.  
  1040.                The label  is an alphanumeric  string consisting of  no more
  1041.           than ten alphanumeric  characters.  It  is comparable to a  label
  1042.           found  beside  an  equation  or  relation in  an  engineering  or
  1043.           scientific textbooks.  For example 
  1044.  
  1045.                                        f(x) = x   (Q1)
  1046.  
  1047.           is  an equation  describing the  function  f.   Q1  is the  label
  1048.           associated with the equation f(x)=x.   An AMP equation is written
  1049.  
  1050.                                     Q1 : f(x) = x
  1051.  
  1052.                A label may also be subscripted.   Subscripted labels may be
  1053.           defined with no  more than four  subscripts and must be  declared
  1054.           using a LABEL statement:
  1055.  
  1056.                      LABEL A[1..3, 1..3, 1..3, 1..3] , Q[1..10] , E 
  1057.  
  1058.           In the above examples, "E" is a label with no subscripts.  "Q" is
  1059.           the label with one subscript, "A" is a label with the  maximum of
  1060.           four  subscripts.  The  above  statement  is  equivalent  to  the
  1061.           dimension declaration in BASIC.
  1062.  
  1063.                Labels with no subscripts can be declared implicitly when an
  1064.           expression, equation or relation is defined.
  1065.  
  1066.                Other examples of labels are as follows:
  1067.  
  1068.           Q[1] : f(t)=t^2/2 + f(0)
  1069.           Q[2] : g(t)=t^2 + f(1)
  1070.           E : a + b
  1071.  
  1072.           The  labels  Q[1],Q[2]  correspond  to  equations  which describe
  1073.           functions "f" and "g".   "E" corresponds  to the expression "a  +
  1074.           b".
  1075.  
  1076.           Imaginary Unit
  1077.  
  1078.  
  1079.  
  1080.                                                                          11
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.           Copyright 1987, 1989 Cerebral Software
  1094.  
  1095.                The default imaginary unit is "i" and can be changed to  the
  1096.           letter "j" by the following declaration :
  1097.  
  1098.                                      imaginary j
  1099.  
  1100.           Constants
  1101.  
  1102.                AMP can accept  either real or complex constants whose parts
  1103.           are integers,  rationals, or  floating point  numbers.   Floating
  1104.           point numbers are numeric strings followed by a decimal point and
  1105.           another numeric string and then an optional exponent,   or it may
  1106.           be a numeric string followed by an exponent.  Imaginary parts  of
  1107.           numbers  are  any  valid  number   immediately  followed  by  the
  1108.           imaginary unit.  Examples of valid constants are :
  1109.  
  1110.           100                 Integer
  1111.           10/25               Rational
  1112.           12.5                Floating Point
  1113.           19e10               Floating Point
  1114.           1.95e34             Floating Point
  1115.           1+10i               Complex
  1116.           23/57 + 1.2e3i      Complex
  1117.  
  1118.                Integers may  range from -32768  to 32767.   Floating  point
  1119.           numbers may range from 4.19X10E-307 to 1.67X10E308.
  1120.  
  1121.           Units
  1122.  
  1123.                Units are  declared alphanumeric strings of no  more than 10
  1124.           characters.   The  first character  must  be a  letter.   A  unit
  1125.           declaration is used to denote units.  For example :
  1126.  
  1127.                                 UNITS cm, sec, dyne, m
  1128.  
  1129.           defines some of the more common metric units2.
  1130.  
  1131.  
  1132.           Indices and Index Expressions
  1133.  
  1134.                An index consists of a single alpha character in lower case.
  1135.           An  index  expression is  an  algebraic expression  consisting of
  1136.           indices  and real  rational  numbers.   Examples  of valid  index
  1137.           expressions are:
  1138.  
  1139.           j + 3/2
  1140.           6*k*l+j
  1141.                               
  1142.  
  1143.                2    If you type UNITS <cr>,  then AMP will report
  1144.                     the units you have defined.
  1145.  
  1146.                                                                          12
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.           Copyright 1987, 1989 Cerebral Software
  1160.  
  1161.           1/2
  1162.  
  1163.           Variables
  1164.  
  1165.                Variables consist of an alphanumeric string  of no more than
  1166.           ten characters.  The first character must be a letter.   Optional
  1167.           subscripts containing index  expressions  may be specified.   The
  1168.           subscripts must be  surrounded by  square brackets ("[","]")  and
  1169.           separated by commas.  All subscripted variables are limited to no
  1170.           more than four subscripts.  Examples of valid variables :
  1171.  
  1172.           speed               "speed" is  the name  of a  variable with  no
  1173.                               subscripts.
  1174.  
  1175.           SPEED[1,n+j,k^2]    "SPEED" is the name of  a variable with three
  1176.                               subscripts.   "n","j","k" are indices.   Note
  1177.                               that  "SPEED"  is   different  from   "speed"
  1178.                               because of case sensitivity for variables.
  1179.  
  1180.           d[j]                "d" is  the name of a variable  with one sub-
  1181.                               script. "j" is the index.
  1182.  
  1183.           Functions
  1184.  
  1185.                Functions  consist of an alphanumeric string of no more than
  1186.           ten  characters.   The first  character must  be a  letter.   Any
  1187.           function may have from  one to four arguments. All  the arguments
  1188.           are surrounded by parenthesis and separated by commas.   Optional
  1189.           subscripts containing index  expressions may  be specified.   The
  1190.           subscripts must be  surrounded by  square brackets ("[","]")  and
  1191.           separated by commas.  Examples of valid functions :
  1192.  
  1193.           pos(Var  +  VAR[2,n+j,k^2])   "pos" is  the name  of  a function
  1194.                                         with one argument.
  1195.  
  1196.           J[0](12.3+Var)                "J" is the name  of a function with
  1197.                                         one subscript and one argument.
  1198.  
  1199.           f[k,l,m,n](arg1,arg2,arg3)    "f"  is the name of a function with
  1200.                                         four  subscripts  and  three  argu-
  1201.                                         ments.
  1202.  
  1203.                Standard Functions
  1204.  
  1205.                All standard functions  consist of only one  argument.  They
  1206.           are :
  1207.  
  1208.           ArcHypCos           inverse hyperbolic cosine
  1209.           ArcHypSin           inverse hyperbolic sine
  1210.           ArcHypTan           inverse hyperbolic tangent
  1211.  
  1212.                                                                          13
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.           Copyright 1987, 1989 Cerebral Software
  1226.  
  1227.  
  1228.           HypCos              hyperbolic cosine
  1229.           HypSin              hyperbolic sine
  1230.           HypTan              hyperbolic tangent
  1231.  
  1232.           ArcCos              inverse cosine
  1233.           ArcSin              inverse sine
  1234.           ArcTan              inverse tangent
  1235.  
  1236.           Cos                 cosine
  1237.           Sin                 sine
  1238.           Tan                 tangent
  1239.  
  1240.           Exp                 natural exponential function
  1241.           Ln                  natural logarithm
  1242.           Log                 common logarithm
  1243.  
  1244.                AMP has the  capability to  evaluate the standard  functions
  1245.           when the argument  is a real  number.  For example  Sin(3.1415/2)
  1246.           will return 1.00.3
  1247.  
  1248.  
  1249.           Summations
  1250.  
  1251.                Summations  consist  of the  special  greek character  SIGMA
  1252.           followed by an optional bounds of  summation and then followed by
  1253.           an argument.  For example:
  1254.  
  1255.                               SIGMA{j=1,infinity}(a[j])
  1256.  
  1257.           would be written in more conventional notation as
  1258.  
  1259.                     SIGMAinfinitya[j] = a[1]+a[2]+a[3] . . .
  1260.                     j=1
  1261.  
  1262.           An optional step factor may be added so that 
  1263.  
  1264.                     SIGMA{j=2,infinity,2}(a[j]) = a[2]+a[4]+a[6] . . .
  1265.  
  1266.           The bounds of summation may be omitted:
  1267.  
  1268.                           SIGMA{j}(a[j]) or SIGMA(a[j]).
  1269.  
  1270.           Products
  1271.  
  1272.                               
  1273.  
  1274.                3    Since AMP is case sensitivity  with regards to standard
  1275.                     functions, you must type the standard functions exactly
  1276.                     as shown. 
  1277.  
  1278.                                                                          14
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.           Copyright 1987, 1989 Cerebral Software
  1292.  
  1293.                Products consist of the special  greek character PI followed
  1294.           by an optional bounds  of multiplication and then followed  by an
  1295.           argument4.  Its structure will be illustrated by example.
  1296.  
  1297.                                 PI{j=1,infinity}(a[j])
  1298.  
  1299.           would be written in more conventional notation as
  1300.  
  1301.                        PIinfinity(a[j]) = a[1]*a[2]*a[3] . . .
  1302.                           j=1
  1303.  
  1304.           An optional step factor may be added so that 
  1305.  
  1306.                          PI{j=2,infinity,2}(a[j]) = a[2]*a[4]*a[6] . . .
  1307.  
  1308.           The bounds of multiplication may be omitted:
  1309.  
  1310.                               PI{j}(a[j]) or PI(a[j]).
  1311.  
  1312.           Derivatives
  1313.  
  1314.                Derivatives consist of the  highlighted "D" character (which
  1315.           is accessed by  Ctrl D  on the  keyboard) followed by  a list  of
  1316.           differentials and their orders and then followed by  an argument.
  1317.           Optional evaluation points may be specified.
  1318.  
  1319.                          D[x|2,y|3](f(x,y))@(x=0,y=1) 
  1320.  
  1321.           would be written in more conventional notation as
  1322.  
  1323.                          d5
  1324.                         ----  f(x,y)   @  x=0,y=1
  1325.              d3xd2y
  1326.           All derivatives are  limited to a  maximum of four  differentials
  1327.           and four evaluation points.
  1328.  
  1329.           Integrals
  1330.  
  1331.                Integrals  consist of  the highlighted  "integral" character
  1332.           (which  is accessed  by Ctrl  K on  the keyboard) followed  by an
  1333.           optional bounds of integration, followed by an argument  and then
  1334.           a differential.  The differential consists of the highlighted "d"
  1335.           character (accessed  by Ctrl  L on  the keyboard)  followed by  a
  1336.           differential argument.
  1337.  
  1338.                               
  1339.  
  1340.                4 The AMP key board  gives you access to an upper case   and
  1341.           a lower case  .  The upper case   must be used for products.
  1342.  
  1343.                                                                          15
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.           Copyright 1987, 1989 Cerebral Software
  1357.  
  1358.                               "integral"{a,b} g(x) d(x) 
  1359.  
  1360.           (Remember "integral" is Ctrl K)
  1361.           (Remember d - differential is Ctrl L)
  1362.  
  1363.           would be written in more conventional notation as
  1364.                                        _  
  1365.                                         |a  g(x) dx
  1366.                                         |b
  1367.                                          -
  1368.                                 
  1369.           Expressions
  1370.  
  1371.                Expressions  are  quantities  consisting  of the  arithmetic
  1372.           operators (-,+,*,/,^) and the quantities described thus far.  
  1373.           An example of an expression :
  1374.  
  1375.                                c*(a + b)^2 + D[x](f(x))
  1376.  
  1377.           Magnitudes
  1378.  
  1379.                Magnitudes  are   expressions  enclosed  by   vertical  bars
  1380.           (accessed  by  Ctrl  A  on  the  keyboard).  AMP  simplifies  all
  1381.           magnitudes.  If the quantity  inside a magnitude is a  complex or
  1382.           negative number then it is evaluated.   An expression may contain
  1383.           any number of magnitudes. An example of a magnitude :
  1384.  
  1385.                                    ½ßTa + i*b½ßT
  1386.  
  1387.  
  1388.           Equations
  1389.  
  1390.                An  equation  consists of  two  expressions separated  by an
  1391.           equal sign "=".  An example of an equation :
  1392.  
  1393.                                    x^2 + y^2 = a^2
  1394.  
  1395.           Relations
  1396.  
  1397.                A relation consists of two or three expressions separated by
  1398.           inequalities.  Examples are :
  1399.  
  1400.                                    x^2 + y^2 <= c^2
  1401.                              0< "integral"{a,x} f(t) d(t) < x
  1402.  
  1403.           (Remember "integral" is Ctrl K)
  1404.           (Remember d - differential is Ctrl L)
  1405.  
  1406.           Procedures
  1407.  
  1408.  
  1409.                                                                          16
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.           Copyright 1987, 1989 Cerebral Software
  1423.  
  1424.                Procedures  are sequences  of statements  which are  grouped
  1425.           together  with  a procedure  heading.    They are  much  like the
  1426.           procedures  that  found in  other  programming languages  such as
  1427.           FORTRAN.    The big  difference between  an  AMP procedure  and a
  1428.           procedure in these other programming languages is that AMP allows
  1429.           for complex symbol  manipulation and  not just number  crunching.
  1430.           The only limitation  is that AMP  doesn't contain "IF THEN  ELSE"
  1431.           constructs; however, the procedure  definition capability is very
  1432.           useful.   The  procedure heading  consists of  the reserved  word
  1433.           PROCEDURE followed by the procedure name, followed by an argument
  1434.           list enclosed in parenthesis.  For example :
  1435.  
  1436.           PROCEDURE TEST(INTEGER M,N ; LABEL L ; PARAMETER p,q ; INDEX j) ;
  1437.  
  1438.           is a procedure  heading used  in the procedure  definition.   The
  1439.           reserved words INTEGER,  LABEL ,  PARAMETER, INDEX, VARIABLE  and
  1440.           FUNCTION are used  to describe the  attributes of the  arguments.
  1441.           The  arguments,  p and  q, of  type  PARAMETER may  be constants,
  1442.           indices, variables, functions,  standard functions,  derivatives,
  1443.           integrals,  expressions, or  even labels  (provided  those labels
  1444.           have expressions  assigned to them).  Many examples of procedures
  1445.           are given in the  command dictionary.  Rules for  procedure usage
  1446.           are given in chapter VII.
  1447.  
  1448.           Special Operators
  1449.  
  1450.           There are two  special operators which  are very important:   The
  1451.           definition operator, ":" and the  assignment operator ":=".   The
  1452.           definition operator is used to  define expressions, equations, or
  1453.           relations.  Consider the following example :
  1454.  
  1455.                                     R : a < b < c
  1456.                                       E : x + 1
  1457.  
  1458.           "a < b < c" is  a relation among the variables "a", "b",  and "c"
  1459.           and the label for this relation is "R".  "x + 1" is an expression
  1460.           and the label for this expression is "E".  
  1461.  
  1462.                Operations can be performed using combinations of relations,
  1463.           equations and expressions;  these operations are performed  using
  1464.           the assignment operator,  ":=".  For example we can add the twice
  1465.           the expression "x + 1" to the relation "a < b < c".   by entering
  1466.           the following assignment statement :
  1467.  
  1468.                                        R:=R+2*E
  1469.  
  1470.           The resulting relation is :
  1471.  
  1472.                      R : a + 2*x + 2 < b + 2*x + 2 < c + 2*x + 2
  1473.  
  1474.  
  1475.                                                                          17
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.           Copyright 1987, 1989 Cerebral Software
  1489.  
  1490.           Chapter VIII on relation operations gives a detailed discussion.
  1491.  
  1492.           V.Tutorial
  1493.  
  1494.           Numerical Calculations
  1495.  
  1496.                All expressions must have labels.  This includes expressions
  1497.           which  contain  only   numbers.    Try  typing  a  few  numerical
  1498.           expressions.
  1499.  
  1500.           Type in   E1 : 4/5 + 9/2 (cr)
  1501.  
  1502.           Result    E1 : 53/10
  1503.  
  1504.           Note  that  the  result  is  a rational  number.    AMP  has  the
  1505.           capability  to  do  rational arithmetic.    Rational  numbers may
  1506.           contain  integers  up to  32767.   If  you  wish  to convert  the
  1507.           previously defined number to a floating point number then
  1508.  
  1509.           Type in   E1 := DECIMAL(E1) 
  1510.  
  1511.           Result    E1 : 5.30
  1512.  
  1513.                You may abbreviate the  command DECIMAL to DEC.   AMP allows
  1514.           you to abbreviate many  of the longer reserved words to the first
  1515.           three  to  five  letters  (See   Command  Dictionary).    Another
  1516.           alternative to converting  a rational number to  a floating point
  1517.           number is to multiply  the rational number by the  floating point
  1518.           number 1.0.
  1519.  
  1520.           Type in   E1 : 53/10
  1521.  
  1522.           Type in   MULTIPLY 1.0
  1523.  
  1524.           Result    E1 : 5.30
  1525.  
  1526.                You can  declare mneumonics for  repetitively used constants
  1527.           and then later recall them5.
  1528.  
  1529.           Type in   CONSTANT TwoPi=6.28318530
  1530.  
  1531.           Type in   E2 : TwoPi/2
  1532.  
  1533.           Result    E2 : 3.14
  1534.  
  1535.  
  1536.                               
  1537.  
  1538.                5    You can get a report of  the constants you have defined
  1539.                     by typing "CONSTANT <cr>" at the prompt.
  1540.  
  1541.                                                                          18
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.           Copyright 1987, 1989 Cerebral Software
  1555.  
  1556.                Observe that AMP  rounds to the  first two digits after  the
  1557.           decimal point.   This particular rounding is  the default display
  1558.           mode for floating point numbers.  If you wish to display floating
  1559.           point numbers with a maximum of  10 places with four digits after
  1560.           the decimal point then
  1561.  
  1562.           Type in   FLOAT 10.4
  1563.  
  1564.           Type in   LIST E2
  1565.  
  1566.           Result    E2 : 3.1416
  1567.  
  1568.                You can display  more digits after  the decimal point.   For
  1569.           example typing FLOAT 10.8 will display 8 digits after the decimal
  1570.           point.    If  a  number  cannot   fit  into  the  floating  point
  1571.           specification  then AMP defaults to scientific notation.  AMP can
  1572.           display a maximum of 15 digits for floating point numbers.
  1573.  
  1574.                AMP can evaluate the most commonly used functions.
  1575.  
  1576.           Type in   E3 : 3*Sin(pi/3)    where pi is predefined as
  1577.                                         3.141592654  
  1578.  
  1579.           Result    E3 : 2.5891
  1580.  
  1581.           The functions that AMP can evaluate are6 : 
  1582.  
  1583.           ArcHypSin      Inverse Hyperbolic Sine
  1584.           ArcHypCos      Inverse Hyperbolic Cosine
  1585.           ArcHypTan      Inverse Hyperbolic Tangent
  1586.  
  1587.           ArcSin         Inverse Sine
  1588.           ArcCos         Inverse Cosine
  1589.           ArcTan         Inverse Tangent
  1590.  
  1591.           HypSin         Hyperbolic Sine
  1592.           HypCos         Hyperbolic Cosine
  1593.           HypTan         Hyperbolic Tangent
  1594.  
  1595.           Sin            Sine
  1596.           Cos            Cosine
  1597.           Tan            Tangent
  1598.  
  1599.           Exp            Natural Exponent
  1600.           Log            Common Logarithm
  1601.                               
  1602.  
  1603.                6    If  you type  "STANDARD <cr>"  at the prompt,  then AMP
  1604.                     will  display  all  the  standard  functions which  are
  1605.                     available.
  1606.  
  1607.                                                                          19
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.           Copyright 1987, 1989 Cerebral Software
  1621.  
  1622.           Ln             Natural Logarithm
  1623.  
  1624.                Since AMP  is case  sensitive the  functions  must be  typed
  1625.           exactly as shown.
  1626.  
  1627.                Now try an example using the Ln function.
  1628.  
  1629.           Type in   E4 : Ln(0)
  1630.  
  1631.           After typing this expression you get an  error message at the top
  1632.           of the  screen  telling  you  that the  argument  of  Ln  is  not
  1633.           permitted.  The cursor  is positioned at the offending  argument.
  1634.           You may  type over the erroneous  text.  If,instead,  you wish to
  1635.           type a whole new line then press the (Esc) and 
  1636.  
  1637.           Type in   E4 : Ln(1)
  1638.  
  1639.           Result    E4 : 0.0000e0
  1640.  
  1641.                You may use  up to eight levels of parentheses  in a numeric
  1642.           expression just as you would with a calculator.  
  1643.  
  1644.                You can also use AMP  to take the square root of a number or
  1645.           to do complex arithmetic :
  1646.  
  1647.           Type in   E4 : 2^(1/2) (cr)
  1648.  
  1649.           Result    E4 : 1.4142
  1650.  
  1651.           Type in   E5 : 1 + 1i (cr)
  1652.  
  1653.           Type in   E6 : 2 + 2i (cr)
  1654.  
  1655.           Type in   E7 := E5*E6 (cr)
  1656.  
  1657.           Result    E7 : 4i
  1658.  
  1659.           Type in   E8 : 2* E7  (cr)  (The magnitude character is Ctrl A)
  1660.  
  1661.           Result    E8 : 8.0000
  1662.  
  1663.  
  1664.                AMP  observes the usual  precedence for operations.   If you
  1665.           had  typed  E4  :  2^1/2  you  would  get a  result  of  1  since
  1666.           exponentiation has a higher precedence than division.
  1667.  
  1668.           Simplifications
  1669.  
  1670.                AMP has two display modes,  normal and neat.  The neat  mode
  1671.           displays output  in two dimensions.  The  normal mode gives a one
  1672.  
  1673.                                                                          20
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.           Copyright 1987, 1989 Cerebral Software
  1687.  
  1688.           dimensional output and  is the default display mode.   To set the
  1689.           neat display mode
  1690.           Type in   DISPLAY NEAT (cr)
  1691.  
  1692.           Type in   EQ : 2/3*c*y + 2*c*y + 3*a + a = 4*a + 2*a + 3*b  (cr)
  1693.  
  1694.           Result    EQ : 
  1695.                           8*c*y
  1696.                     4*a + ----- = 6*a + 3*b
  1697.                             3
  1698.  
  1699.           Note that  2/3*c*y and  2*c*y have  been added  together to  give
  1700.           8*c*y/3 and that all  terms involving a have been  added together
  1701.           where valid.  Note  also that 4*a appears  before 8*c*y/3 on  the
  1702.           left  side of the equation: AMP  lexigraphically orders all terms
  1703.           as it simplifies.  However, the ordering is clearly  evident only
  1704.           when in the normal display mode.
  1705.  
  1706.                 Now  try to solve for y.  To  do this you must subtract 4*a
  1707.           from both sides of the equation.
  1708.  
  1709.           Type in   SUBTRACT 4*a  (cr)
  1710.  
  1711.           Result    EQ : 
  1712.                     8*c*y
  1713.                     ----- = 2*a + 3*b
  1714.                       3
  1715.  
  1716.           Type in   DIVIDE 8/3*c  (cr)
  1717.  
  1718.           Type in   DISTRIBUTE 1/c  (cr)
  1719.  
  1720.           Result    EQ : 
  1721.                         3*a   9*b
  1722.                     y = --- + ---
  1723.                         4*c   8*c
  1724.  
  1725.           If you wish to solve for y/a then
  1726.  
  1727.           Type in   DIVIDE a  (cr)
  1728.  
  1729.           Type in   DISTRIBUTE 1/a
  1730.  
  1731.           Result    EQ :
  1732.                     1*y    9*b     3
  1733.                     --- = ----- + ---
  1734.                      a    8*a*c   4*c    
  1735.  
  1736.  
  1737.                You can also use AMP to expand expressions.  For example:
  1738.  
  1739.                                                                          21
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.           Copyright 1987, 1989 Cerebral Software
  1753.  
  1754.  
  1755.           Type in   E : (a + b)*(c + d)^2  (cr)
  1756.  
  1757.           Type in   EXPAND (c + d)^2   (cr)
  1758.  
  1759.           Result    E : 
  1760.                               2            2
  1761.                     (a + b)*(c  + 2*c*d + d )
  1762.  
  1763.           Type in   EXPAND  (cr)
  1764.  
  1765.           Result    E :
  1766.                        2                2      2               2 
  1767.                     a*c  + 2*a*c*d + a*d  + b*c + 2*b*c*d + b*d 
  1768.  
  1769.  
  1770.           Two Equations
  1771.  
  1772.                To  solve  two  equations  in  two  unknowns, define  a  one
  1773.           dimensional label7
  1774.  
  1775.           Type in   LABEL Q[1..2]
  1776.  
  1777.           Two  equations Q[1]  and Q[2] will  be defined.   The unknowns in
  1778.           these equations  will be the variables x and y.  A solution for y
  1779.           will be found first.
  1780.  
  1781.           Type in   Q[1] : a1*x + b1*y = c1  (cr)
  1782.  
  1783.           Type in   Q[2] : a2*x + b2*y = c2  (cr)
  1784.  
  1785.           Type in   IN Q[1] DIVIDE a1   (cr)
  1786.  
  1787.           Type in   EXPAND  (cr)
  1788.  
  1789.           Result    Q[1] : 
  1790.                     1*b1*y       1*c1
  1791.                     ------ + x = ----
  1792.                      a1           a1
  1793.  
  1794.           Type in   IN Q[2] DIVIDE a2 (cr)
  1795.  
  1796.           Type in   EXPAND  (cr)
  1797.  
  1798.           Result    Q[2] : 
  1799.                               
  1800.  
  1801.                7    If you type "LABEL <cr>"  at the prompt, then
  1802.                     AMP will  display  all the  labels which  you
  1803.                     have defined.
  1804.  
  1805.                                                                          22
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.           Copyright 1987, 1989 Cerebral Software
  1819.  
  1820.                     1*b2*y       1*c2
  1821.                     ------ + x = ----
  1822.                      a2           a2
  1823.  
  1824.                The variable x must be removed from the two equations.  This
  1825.           is done by subtracting equation Q[2] from Q[1].
  1826.  
  1827.           Type in   Q[1]:=Q[2]-Q[1] 
  1828.  
  1829.           Type in   COLLECT y
  1830.  
  1831.           Result    Q[1] : 
  1832.                           1*b1   1*b2      1*c1   1*c2 
  1833.                     y*( - ---- + ----) = - ---- + ----
  1834.                            a1     a2        a1     a2        
  1835.  
  1836.  
  1837.           Type in   C := COEFF(y) Q[1]
  1838.  
  1839.           Note  that since  the  label C  has no  dimensioning,  it is  not
  1840.           necessary to declare it before usage.
  1841.  
  1842.           Result    C : 
  1843.                       1*b1   1*b2
  1844.                     - ---- + ----
  1845.                        a1     a2
  1846.           Type in   Q[1]:=Q[1]/C
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.                                                                          23
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.           Copyright 1987, 1989 Cerebral Software
  1885.  
  1886.           Result    Q[1] :
  1887.                               1*c1   1*c2
  1888.                         1*( - ---- + ----)
  1889.                                a1     a2
  1890.                     y = ------------------
  1891.                              1*b1   1*b2
  1892.                          ( - ---- + ----)
  1893.                               a1     a2
  1894.  
  1895.  
  1896.           Type in   Y := RIGHT Q[1]
  1897.  
  1898.                Note that Y is a label is implicitly declared as having zero
  1899.           dimension.   y is  a variable.   Y is a  label for the expression
  1900.           which is the solution for y.
  1901.  
  1902.           Type in   IN Q[2] REPLACE y BY Y
  1903.  
  1904.           Result    Q[2] : 
  1905.                              1*c1   1*c2
  1906.                     1*b2*( - ---- + ----)
  1907.                               a1     a2         1*c2
  1908.                     --------------------- + x = ----
  1909.                              1*b1   1*b2         a2
  1910.                       a2*( - ---- + ----)
  1911.                               a1     a2
  1912.                
  1913.  
  1914.           Type in   SUBTRACT x + c2/a2
  1915.  
  1916.           Type in   SWITCH
  1917.  
  1918.           Type in   MULTIPLY -1
  1919.  
  1920.           Result    Q[2] : 
  1921.                                     1*c1   1*c2
  1922.                            1*b2*( - ---- + ----)      
  1923.                                      a1     a2     1*c2
  1924.                     x =  - --------------------- + ----
  1925.                                     1*b1   1*b2     a2
  1926.                              a2*( - ---- + ----)
  1927.                                      a1     a2  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.                                                                          24
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.           Copyright 1987, 1989 Cerebral Software
  1951.  
  1952.           Matrix Manipulation
  1953.  
  1954.                Suppose  you have  a 3X3  matrix, A, whose  eigenvectors you
  1955.           wish to find.  Suppose also that A is :
  1956.  
  1957.                                    ½ßT2   0    1½ßT
  1958.                                    ½ßT          ½ßT
  1959.                               A =  ½ßT0   1    0½ßT
  1960.                                    ½ßT          ½ßT
  1961.                                    ½ßT1   0    2½ßT
  1962.  
  1963.                First declare A as a multidimensional label.
  1964.  
  1965.           Type in   LABEL A[1..3,1..3]  (cr)
  1966.  
  1967.           A has been  declared a 3X3 label.   Assignments must be  made for
  1968.           each component of A.
  1969.  
  1970.           Type in   A[1,1] : 2
  1971.  
  1972.           Type in   A[1,2] : 0
  1973.  
  1974.           Type in   A[1,3] : 1
  1975.  
  1976.           Type in   A[2,1] : 0
  1977.  
  1978.           Type in   A[2,2] : 1
  1979.  
  1980.           Type in   A[2,3] : 0
  1981.  
  1982.           Type in   A[3,1] : 1
  1983.  
  1984.           Type in   A[3,2] : 0
  1985.  
  1986.           Type in   A[3,3] : 2
  1987.  
  1988.                If you wish to review the entries then 
  1989.  
  1990.           Type in   LIST A  (cr)
  1991.  
  1992.           All the entries are echoed to the  screen by column.  Next define
  1993.           a diagonal matrix, D.  First, declare the label:
  1994.  
  1995.           Type in   LABEL D[1..3,1..3]  (cr)
  1996.  
  1997.                Most of  the entries for D will be  zero and you could enter
  1998.           each of the components  one by one as you did  for the components
  1999.           of A.  Instead, a better method will be outlined:
  2000.  
  2001.           Type in   ITERATE I FROM 1 TO 3
  2002.  
  2003.                                                                          25
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.           Copyright 1987, 1989 Cerebral Software
  2017.  
  2018.  
  2019.           Type in   ITERATE J FROM 1 TO 3
  2020.  
  2021.                The quantities I and J are  iteration variables.  They allow
  2022.           you to make  multiple statement  assignments as  well as  issuing
  2023.           commands which allow you to manipulate  more than one equation or
  2024.           expression at a time. 
  2025.  
  2026.                First make the whole D matrix a zero matrix:
  2027.  
  2028.           Type in   D[I,J] : 0
  2029.  
  2030.           Result    D[1,1] : 0
  2031.                     D[2,1] : 0
  2032.                     D[3,1] : 0
  2033.                     D[1,2] : 0
  2034.                     D[2,2] : 0
  2035.                     D[3,2] : 0
  2036.                     D[1,3] : 0
  2037.                     D[2,3] : 0
  2038.                     D[3,3] : 0
  2039.  
  2040.           You could compare  the above  statements to  the iterative  BASIC
  2041.           assignment statement :
  2042.  
  2043.           10 FOR I=1 TO 3
  2044.           20   FOR J = 1 TO 3
  2045.           30     D[I,J] = 0
  2046.           40   NEXT J
  2047.           50 NEXT I
  2048.  
  2049.           Next, assign d to the diagonal:
  2050.  
  2051.           Type in   D[I,I] : d
  2052.  
  2053.           Result    D[1,1] : d
  2054.                     D[2,2] : d
  2055.                     D[3,3] : d
  2056.  
  2057.           Declare one more matrix B:
  2058.  
  2059.           Type in   LABEL B[1..3,1..3]
  2060.  
  2061.           Type in   B[I,J] := D[I,J] - A[I,J]
  2062.  
  2063.           Result    B[1,1] : d - 2
  2064.                     B[2,1] : 0
  2065.                     B[3,1] : - 1
  2066.                     B[1,2] : 0
  2067.                     B[2,2] : d - 1
  2068.  
  2069.                                                                          26
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.           Copyright 1987, 1989 Cerebral Software
  2083.  
  2084.                     B[3,2] : 0
  2085.                     B[1,3] : - 1
  2086.                     B[2,3] : 0
  2087.                     B[3,3] : d - 2
  2088.  
  2089.                The determinant  of B  must now  be determined.   Since  the
  2090.           computation  of determinants from 3X3 matrices is a fairly common
  2091.           operation, then a  procedure should be written.  Depress function
  2092.           key  F5 :  Program to invoke  the screen  editor.  Then  type the
  2093.           following procedure :
  2094.  
  2095.           PROCEDURE DET3X3(LABEL MAT, DET) ;
  2096.             LABEL M11, M12, M13 ;
  2097.             M11 := MAT[2,2]*MAT[3,3]-MAT[2,3]*MAT[3,2] ;
  2098.             M12 := MAT[2,1]*MAT[3,3]-MAT[3,1]*MAT[2,3] ;
  2099.             M13 := MAT[2,1]*MAT[3,2]-MAT[3,1]*MAT[2,2] ;
  2100.             DET := M11*MAT[1,1] - M12*MAT[1,2] + M13*MAT[1,3] ;
  2101.             EXPAND ;
  2102.            EXIT
  2103.  
  2104.           Once you  have entered  this procedure  press function  key F6  :
  2105.           Compile  to compile the procedure.   Any errors are flagged.  (If
  2106.           you find that you have errors, correct them and compile again.)
  2107.  
  2108.                Now return to the interpreter by  pressing function key F5 :
  2109.           Quit.    The   procedure  is  automatically  saved  to  the  file
  2110.           "DET3X3"8.  If  you wish to get  a listing of all  the procedures
  2111.           that are defined then
  2112.  
  2113.           Type in   PROCEDURE
  2114.  
  2115.           Result    DET3X3(LABEL MAT, DET) 
  2116.  
  2117.           Now you are ready to compute the determinant of B:  
  2118.  
  2119.           Type in   LABEL DET  (cr)
  2120.  
  2121.           Type in   DET3X3(B, DET)  (cr)
  2122.  
  2123.           Result    DET : d^3 - 5*d^2 + 7*d - 3 
  2124.  
  2125.  
  2126.                               
  2127.  
  2128.                8    You can recall the procedure  at future sessions.  This
  2129.                     is done by pressing F4 : Load.  You are then  asked for
  2130.                     a file name.   Typing DET3X3 at the prompt  recalls the
  2131.                     program.  When the file is saved to disk, the extension
  2132.                     "PRC" is appended to the file  name.  This extension is
  2133.                     transparent to the user.
  2134.  
  2135.                                                                          27
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.           Copyright 1987, 1989 Cerebral Software
  2149.  
  2150.           We  must  now  factor  the  above  determinant polynomial.    The
  2151.           constant  in  the above  expression  is  a prime  number  and the
  2152.           candidates for factors are d - 1, d + 1, d - 3, d + 3.
  2153.  
  2154.  
  2155.           Type in   R1 := REMAINDER(d + 3) DET
  2156.  
  2157.           Result    R1 :  - 96
  2158.  
  2159.           Type in   R1 := REMAINDER(d - 3) DET
  2160.  
  2161.           Result    R1 : 0
  2162.  
  2163.           Type in   Q1 := QUOTIENT(d-3) DET
  2164.  
  2165.           Result    Q1 : d^2 - 2*d + 1
  2166.  
  2167.                At this point you can see that DET = (d - 1)^2 * (d - 3)
  2168.  
  2169.           Thus the roots are 1,1,3. They  must be substituted back into the
  2170.           matrix  B.   Before  you substitute  this value  back into  B you
  2171.           should save it.
  2172.  
  2173.           Type in   LABEL T[1..3,1..3]  (cr)
  2174.  
  2175.           Type in   T[I,J]:=B[I,J]
  2176.  
  2177.           Type in   IN B[I,J] REPLACE d BY 1
  2178.  
  2179.           Result    B[1,1] : -1 
  2180.                     B[2,1] : 0
  2181.                     B[3,1] : -1
  2182.                     B[1,2] : 0
  2183.                     B[2,2] : 0
  2184.                     B[3,2] : 0
  2185.                     B[1,3] : -1
  2186.                     B[2,3] : 0
  2187.                     B[3,3] : -1
  2188.  
  2189.                From the above  matrix we can explicitly  find the equations
  2190.           defining the eigenvectors :
  2191.  
  2192.           Type in   LABEL V1[1..3], V2[1..3], Q[1..3]
  2193.  
  2194.           Type in   V1[1] : x
  2195.                     V1[2] : y
  2196.                     V1[3] : z
  2197.  
  2198.           Type in   ITERATE I FROM 1 TO 3
  2199.                     ITERATE J FROM 1 TO 3
  2200.  
  2201.                                                                          28
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.           Copyright 1987, 1989 Cerebral Software
  2215.  
  2216.  
  2217.           Type in   V2[I]:=SUM(J) B[I,J]*V1[J]
  2218.  
  2219.           Result    V2[1] : - x - z
  2220.                     V2[2] : 0
  2221.                     V2[3] : - x - z
  2222.  
  2223.           Type in   Q[I] : V2[I] = 0
  2224.  
  2225.           Result    Q[1] : - x - z = 0
  2226.                     Q[2] : 0 = 0
  2227.                     Q[3] : - x - z = 0
  2228.  
  2229.  
  2230.                From  the  above  equations  (0,1,0)  and  (1,0,1)  are  two
  2231.           eigenvectors.  By  substituting 3 for d  in the matrix T  a third
  2232.           eigenvector can be found.
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.                                                                          29
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.           Copyright 1987, 1989 Cerebral Software
  2281.  
  2282.           Identities 
  2283.  
  2284.                With AMP's  procedure definition capabilities you  can write
  2285.           procedures    to    do    function   substitution,    rudimentary
  2286.           differentiation and integration.  Again  invoke the screen editor
  2287.           and type in the following statements :
  2288.  
  2289.           PROCEDURE TRIGSUB(LABEL L ; PARAMETER a,b) ;
  2290.             IN L REPLACE Sin(a + b) BY Sin(a)*Cos(b) + Cos(a)*Sin(b) ;
  2291.             IN L REPLACE Cos(a + b) BY Cos(a)*Cos(b) - Sin(a)*Sin(b) ;
  2292.           EXIT 
  2293.  
  2294.                Compile the above procedure and quit the screen editor.
  2295.  
  2296.           Type in   T1 : a*Cos(a + b + c) + b*Sin(a + b + c)
  2297.  
  2298.  
  2299.           Now we wish to expand the above trig expression in terms of a + c
  2300.           and b.  Thus 
  2301.  
  2302.           Type in   TRIGSUB(T1,(a + c),b)
  2303.  
  2304.           Result    T1 : a*(Cos(a + c)*Cos(b) - Sin(a + c)*Sin(b))
  2305.                     + b*(Cos(a + c)*Sin(b) + Cos(b)*Sin(a + c))
  2306.  
  2307.                You can also  use procedures  to accomplish integration  and
  2308.           differentiation.
  2309.  
  2310.           PROCEDURE TRIGCALC(LABEL L) ;
  2311.             LABEL x,y,lb,ub ;
  2312.             y := INTEGRAL L ;
  2313.             x := DIFFERENTIAL y ;
  2314.             lb:= LOWBOUND y ;
  2315.             ub:= HIGHBOUND y ;
  2316.             IN L REPLACE "integral"{lb,ub} Cos(x) d(x) BY Sin(ub) - Sin(lb)
  2317.           ;
  2318.             IN L REPLACE D[x](Cos(x)) BY - Sin(x) ;
  2319.           EXIT
  2320.             
  2321.           (Remember --- Ctrl k for integral character or "integral",
  2322.                         Ctrl l for differential character or d,
  2323.                         Ctrl D for derivative character of D)
  2324.  
  2325.           Note that each statement is seperated by the delimeter ";". 
  2326.           Compile and save this procedure.   Then return to the interactive
  2327.           interpreter mode.
  2328.  
  2329.           Type   in E   :  "integral"{a,   a   +  3}   Cos(y/z)  d(y/z)   +
  2330.           D[y/z](Cos(y/z))
  2331.  
  2332.  
  2333.                                                                          30
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.           Copyright 1987, 1989 Cerebral Software
  2347.  
  2348.           (Remember Ctrl k for "integral")
  2349.           (Remember Ctrl l is differential d)
  2350.           Type in   TRIGCALC(E)
  2351.  
  2352.           Result    E : Sin(a + 3) - Sin(a) - Sin(y/z)
  2353.  
  2354.  
  2355.           Special Differentiation
  2356.  
  2357.           Type in   E : x^5 + x^4 + x^3 + x^2 
  2358.  
  2359.           Type in   F : D[x](E)   (cr)
  2360.  
  2361.           Result    F : D[x](x^5  + x^4 + x^3 + x^2)
  2362.  
  2363.           Type in   DIST D  (cr)  (Again Ctrl D for derivative character)
  2364.  
  2365.           Result    F : D[x](x^5) + D[x](x^4) + D[x](x^3) + D[x](x^2)
  2366.  
  2367.           Type in   ITERATE I FROM 2 TO 5
  2368.  
  2369.           Type in   ON I REPLACE D[x](x^I) BY I*x^(I-1)
  2370.  
  2371.           Result    F : 
  2372.                        4      3      2
  2373.                     5*x  + 4*x  + 3*x  + 2*x
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.                                                                          31
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.           Copyright 1987, 1989 Cerebral Software
  2413.  
  2414.           VI.Command Dictionary
  2415.  
  2416.                AMP operates  in two  modes: the  interpreter  mode and  the
  2417.           compiler mode.   The following dictionary describes  each command
  2418.           for both modes.
  2419.  
  2420.                The collection of expressions, equations, and relations with
  2421.           their labels is the database for AMP.  When you type an equation,
  2422.           expression  or  relation on  the AMP  command  line while  in the
  2423.           interpreter mode, you are adding it to the database.
  2424.  
  2425.                Examples are given with each command.  Lines in the examples
  2426.           which  are proceeded  by "~"  are items  which  you type  and are
  2427.           assumed to end with a carriage return.
  2428.  
  2429.                Although  AMP  is  case  sensitive,  reserved words  are  an
  2430.           exception:  They  may be entered  in either upper or  lower case.
  2431.           However,  reserved  words are  shown only  in  upper case  in the
  2432.           dictionary.
  2433.  
  2434.                In many of  the commands the  term STRICTLY  is used.   This
  2435.           word refers to how factors are matched.  Two terms with  the same
  2436.           variables  and  functions  are  said  to match  strictly  if  all
  2437.           variables and functions  are raised  to the same  exponent.   For
  2438.           example the terms 2*a^2*b^2 and  5*a^2*b^2 match strictly because
  2439.           the variables a and b in each of the terms are raised to the same
  2440.           exponent.  Two terms are said  to match if they contain the  same
  2441.           variables  and functions.   For example 2*a^2*b  and 5*a*b match;
  2442.           however, they  do not   match  strictly  because a  is raised  to
  2443.           different exponents in each of the terms.
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.                                                                          32
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.           Copyright 1987, 1989 Cerebral Software
  2479.  
  2480.           Conventions in Syntactic Forms
  2481.  
  2482.           monospaced text     means use exactly as indicated.
  2483.  
  2484.           italics             indicates items  you must  replace with  your
  2485.                               own symbols. 
  2486.  
  2487.           {}                  encloses optional items.   When the  optional
  2488.                               item contains a delimeter such as ',' or ';',
  2489.                               then  the item  within  the  brackets may  be
  2490.                               repeated more than once.
  2491.  
  2492.           {|}                 indicates a choice  of an optional item.   E.
  2493.                               g.  {ON|OFF}  indicates  that  you  have  the
  2494.                               optional choice of ON or OFF.
  2495.  
  2496.           Ellipses            Vertical   ellipses   are  used   in  program
  2497.                               examples  to  indicate that  a  portion of  a
  2498.                               program   has   been   omitted    for   space
  2499.                               considerations.
  2500.  
  2501.           .  . .              Indicates  that non-essential information has
  2502.                               been omitted for space considerations.
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.                                                                          33
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.           Copyright 1987, 1989 Cerebral Software
  2545.  
  2546.           ":" -- DEFINITION OPERATOR
  2547.  
  2548.           Syntax    label : expression {= expression}
  2549.  
  2550.                     label : expression {r1 expression{r2 expression}}
  2551.  
  2552.  
  2553.           Where     r1  and r2 are the  relations (<,>,<=,>=,=<,=>).  If r1
  2554.                     is <,   <= or =< then r2 is restricted  to <,<=,=<.  If
  2555.                     r1 is >, >=, => then r2 is restricted to >,>=,=>.
  2556.  
  2557.           Restrictions   expression  may  contain  labels;   however,  only
  2558.                          expressions  may be  associated  with the  labels.
  2559.                          AMP will flag  an error if equations  or relations
  2560.                          are associated with labels in expression.
  2561.  
  2562.           Purpose   Allows input into the database.
  2563.  
  2564.           Examples
  2565.  
  2566.           Option 1 : Single assignment
  2567.  
  2568.           ~E : x + ArcHypSin(x) + "integral"{0,x} Sin(t) d(t)
  2569.  
  2570.           Comment   "E" is the  label corresponding to the expression  "x +
  2571.                     ArcHypSin(x) + "integral"{0,x} Sin(t) d(t)".
  2572.  
  2573.           (Remember Ctrl k for "integral")
  2574.           (Remember Ctrl l is differential d)
  2575.  
  2576.           ~LABEL Q[1..2]
  2577.           ~Q[1] : f(x) = D[x|2,y|2](h(x,y))@(y=0)
  2578.           ~Q[2] : g(x) = x + INTEGRAL{0,x} t^2 + cos(t) + i*sin(t) d(t)
  2579.  
  2580.           Comment   Q is a  one dimensional label with two components which
  2581.                     are equations describing the functions f and g.
  2582.  
  2583.  
  2584.           ~LABEL R[1..2]
  2585.           ~R[1] : 0 < x
  2586.           ~R[2] : 0 <= g(x) < f(x)
  2587.  
  2588.           Comment   R  is a one dimensional label with two components which
  2589.                     are relations.  The first relation defines the range of
  2590.                     the variable x  and the  second relation describes  the
  2591.                     relation between the functions f and g.
  2592.  
  2593.  
  2594.  
  2595.  
  2596.  
  2597.                                                                          34
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.           Copyright 1987, 1989 Cerebral Software
  2611.  
  2612.           Option 2 : Multiple assignment
  2613.  
  2614.           ~LABEL A[1..3,1..3]
  2615.           ~ITERATE I FROM 1 TO 3
  2616.           ~ITERATE J FROM 1 TO 3
  2617.           ~A[I,J] : I + J
  2618.           A[1,1] : 2
  2619.           A[2,1] : 3
  2620.           A[3,1] : 4
  2621.           A[1,2] : 3
  2622.           A[2,2] : 4
  2623.           A[3,2] : 5
  2624.           A[1,3] : 4
  2625.           A[2,3] : 5
  2626.           A[3,3] : 6
  2627.           Comment   A is  a 2  dimensional label  with 9  components.   The
  2628.                     above sequence of  statements could be compared  to the
  2629.                     following iterative assignment statement in BASIC:
  2630.  
  2631.                          FOR I = 1 TO 3
  2632.                               FOR J = 1 TO 3
  2633.                                    A[I,J] = I + J
  2634.                               NEXT J
  2635.                          NEXT I
  2636.  
  2637.           ~LABEL A[1..3,1..3]
  2638.           ~ITERATE I FROM 1 TO 3
  2639.           ~ITERATE J FROM 1 TO 3
  2640.           ~A[I,J] : s[I+k,J+m] + D[x|I](f(x)) + D[y|J](g(x)
  2641.           A[1,1] : s[k+1,m+1] + D[x](f(x)) + D[y](g(x))
  2642.           A[2,1] : s[k+2,m+1] + D[x|2](f(x)) + D[y](g(x))
  2643.           A[3,1] : s[k+3,m+1] + D[x|3](f(x)) + D[y](g(x))
  2644.           A[1,2] : s[k+1,m+2] + D[x](f(x)) + D[y|2](g(x))
  2645.           A[2,2] : s[k+2,m+2] + D[x|2](f(x)) + D[y|2](g(x))
  2646.           A[3,2] : s[k+3,m+2] + D[x|3](f(x)) + D[y|2](g(x))
  2647.           A[1,3] : s[k+1,m+3] + D[x](f(x)) + D[y|3](g(x))
  2648.           A[2,3] : s[k+2,m+3] + D[x|2](f(x)) + D[y|3](g(x))
  2649.           A[3,3] : s[k+3,m+3] + D[x|3](f(x)) + D[y|3](g(x))
  2650.  
  2651.           Comment   The  variable a contains two indices k and m.  Note how
  2652.                     the iterations I and J are used.
  2653.  
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.                                                                          35
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.           Copyright 1987, 1989 Cerebral Software
  2677.  
  2678.  
  2679.           Example with Procedure
  2680.  
  2681.           PROCEDURE ASSIGN(INTEGER N ; LABEL L ; PARAMETER p) ;
  2682.             ITERATE I FROM 1 TO N ;
  2683.             L[I] : p ;
  2684.           EXIT
  2685.  
  2686.           ~LABEL B[1..3]
  2687.           ~ASSIGN(3,B,(x+s[k,m]))
  2688.           B[1] : s[k,m] + x
  2689.           B[2] : s[k,m] + x
  2690.           B[3] : s[k,m] + x
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.  
  2715.  
  2716.  
  2717.  
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.                                                                          36
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.           Copyright 1987, 1989 Cerebral Software
  2743.  
  2744.           ":=" - ASSIGNMENT OPERATOR
  2745.  
  2746.           Syntax    label := expression or
  2747.                     label 2 := reserved word{(argument list)} label 1
  2748.  
  2749.           Where     expression     consists  of  labels  and   numbers  and
  2750.                     parenthesis.
  2751.  
  2752.           Purpose   Permits the  combining  of  expressions,  equations  or
  2753.                     relations.     When   relations   are  involved,   only
  2754.                     mathematically valid operations are permitted.
  2755.  
  2756.           Note      When relations  are used,  AMP checks  for validity  of
  2757.                     operations.  (See Chapter VIII - Relation Arithmetic)
  2758.  
  2759.           Example
  2760.  
  2761.           ~R1 : x < x + y < z
  2762.           R1 : x < x + y < z
  2763.           ~E1 : x
  2764.           E1 : x
  2765.           ~R2:=R1-E1
  2766.           R2 : 0 < y < -x + z
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.                                                                          37
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.           Copyright 1987, 1989 Cerebral Software
  2809.  
  2810.           Example with Procedure
  2811.  
  2812.           PROCEDURE Example(INTEGER N ; LABEL L ; PARAMETER P) ;
  2813.             ITERATE I FROM 1 TO N ;
  2814.             ITERATE J FROM 1 TO N ;
  2815.             LABEL M[1..N,1..N] ;
  2816.             M[I,J] : 0 ;
  2817.             M[I,I] : P ;
  2818.             L[I,J] := L[I,J] - M[I,J] ;
  2819.           EXIT
  2820.  
  2821.           ~ECHO OFF
  2822.           ~LABEL A[1..3,1..3], D[1..3,1..3]
  2823.           ~ITERATE I FROM 1 TO 3
  2824.           ~ITERATE J FROM 1 TO 3
  2825.           ~A[I,J] : 0 
  2826.           ~LIST A
  2827.           A[1,1] : 0
  2828.           A[2,1] : 0
  2829.           A[3,1] : 0
  2830.           A[1,2] : 0
  2831.           A[2,2] : 0
  2832.           A[3,2] : 0
  2833.           A[1,3] : 0
  2834.           A[2,3] : 0
  2835.           A[3,3] : 0
  2836.           ~Example(3,A,d)
  2837.           ~LIST A
  2838.           A[1,1] : -d
  2839.           A[2,1] : 0
  2840.           A[3,1] : 0
  2841.           A[1,2] : 0
  2842.           A[2,2] : -d
  2843.           A[3,2] : 0
  2844.           A[1,3] : 0
  2845.           A[2,3] : 0
  2846.           A[3,3] : -d
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.                                                                          38
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.           Copyright 1987, 1989 Cerebral Software
  2875.  
  2876.           ADD
  2877.  
  2878.           Syntax    {IN label} {ON iteration} ADD expression
  2879.  
  2880.           Purpose   Adds  expression   to  an   expression,  equation,   or
  2881.                     relation.
  2882.  
  2883.           Restrictions   expression  may  contain  labels;   however,  only
  2884.                          expressions  may be  associated  with the  labels.
  2885.                          AMP will flag  an error if equations  or relations
  2886.                          are associated with labels in expression.
  2887.  
  2888.           Example
  2889.  
  2890.           ~R1 : - c < - c + x < - c + d
  2891.           R1 : - c < -c + x < - c + d
  2892.           ~IN R1 ADD c
  2893.           R1 : 0 < x < d
  2894.  
  2895.           Example with Procedure
  2896.  
  2897.           PROCEDURE Example(INTEGER N ; LABEL L ; PARAMETER P) ;
  2898.             ITERATE I FROM 1 TO N ;
  2899.             IN L[I] ADD P ;
  2900.           EXIT
  2901.  
  2902.           ~LABEL V[1..3]
  2903.           ~ITERATE I FROM 1 TO 3
  2904.           ~V[I] : 0
  2905.           V[1] : 0
  2906.           V[2] : 0
  2907.           V[3] : 0
  2908.           ~Example(3,V,(c + d))
  2909.           V[1] : c + d
  2910.           V[2] : c + d
  2911.           V[3] : c + d
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927.                                                                          39
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.           Copyright 1987, 1989 Cerebral Software
  2941.  
  2942.           ARGUMENT
  2943.  
  2944.           Syntax    ARGUMENT 
  2945.  
  2946.           Purpose   Show  whether  trigonometric  function   arguments  are
  2947.                     degrees, radians or gradians.  
  2948.  
  2949.           Note      The default argument is radians.
  2950.  
  2951.           Abbreviation   ARG
  2952.  
  2953.           Note
  2954.  
  2955.           Example
  2956.  
  2957.           ~ARGUMENT 
  2958.           radians
  2959.  
  2960.           Note :    Command cannot be used in a procedure.
  2961.  
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.  
  2989.  
  2990.  
  2991.  
  2992.  
  2993.                                                                          40
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.           Copyright 1987, 1989 Cerebral Software
  3007.  
  3008.           CENTER
  3009.  
  3010.           Syntax    label 2 := CENTER label 1
  3011.  
  3012.           Purpose   The center expression of label 1 is assigned to label 2
  3013.  
  3014.           Example
  3015.  
  3016.           ~R1 : c < d < e
  3017.           R1 : c < d < e
  3018.           ~E1:=CENTER R1
  3019.           E1 : d
  3020.  
  3021.  
  3022.           Example with Procedure
  3023.  
  3024.           PROCEDURE Example(LABEL L1,L2) ;
  3025.             L2 := CENTER L1 ;
  3026.           EXIT
  3027.  
  3028.           ~R1 : c < d < e
  3029.           R1 : c < d < e
  3030.           ~LABEL E1
  3031.           ~Example(R1,E1)
  3032.           E1 : d
  3033.  
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.  
  3044.  
  3045.  
  3046.  
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.                                                                          41
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.           Copyright 1987, 1989 Cerebral Software
  3073.  
  3074.           CLEAR
  3075.  
  3076.           Syntax    CLEAR label
  3077.  
  3078.           Purpose   Removes label from the database.
  3079.  
  3080.           Note      Using  this  command  excessively  may  cause
  3081.                     error,  "Label  table overflow".    When this
  3082.                     command  is  used  table  locations  are  not
  3083.                     reclaimed.
  3084.  
  3085.           Example
  3086.  
  3087.           ~LABEL A[1..3,1..2]
  3088.           ~CLEAR A
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.                                                                          42
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138.           Copyright 1987, 1989 Cerebral Software
  3139.  
  3140.           COEFFICIENT ISOLATE
  3141.  
  3142.           Syntax    label := COEFFICIENT(expression{,occurrence}) label
  3143.  
  3144.           Where     occurrence  is  the number  of the  term.   The default
  3145.                     value is one.
  3146.  
  3147.           Purpose   Isolates the coefficient of a factor .
  3148.  
  3149.           Abbreviation   COEF
  3150.  
  3151.           Example
  3152.  
  3153.           ~E1 : 4*x*y + 2*x*z
  3154.           E1 : 4*x*y + 2*x*z
  3155.           ~E2 := COEFFICIENT(x) E1
  3156.           E2 : 4*y
  3157.           ~E3 := COEFFICIENT(x,2) E1
  3158.           E3 : 2*z
  3159.  
  3160.           Note      "COEFFICIENT(x,2)" isolates the coefficient of x of the
  3161.                     second term.
  3162.  
  3163.           Example with Procedure
  3164.  
  3165.           PROCEDURE Example(INTEGER N ; LABEL L1,L2 ; PARAMETER P) ;
  3166.             ITERATE I FROM 1 TO N ;
  3167.             L2[I]:=COEFFICIENT(P) L1[I] ;
  3168.           EXIT
  3169.  
  3170.           ~LABEL V[1..3]
  3171.           ~ITERATE I FROM 1 TO 3
  3172.           ~V[I] : v[I]*x
  3173.           V[1] : v[1]*x
  3174.           V[2] : v[2]*x
  3175.           V[3] : v[3]*x
  3176.           ~Example(3,V,V,x)
  3177.           V[1] : v[1]
  3178.           V[2] : v[2]
  3179.           V[3] : v[3]
  3180.  
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.                                                                          43
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  
  3199.  
  3200.  
  3201.  
  3202.  
  3203.  
  3204.           Copyright 1987, 1989 Cerebral Software
  3205.  
  3206.           COLLECT TERM
  3207.  
  3208.           Syntax    {IN label} {ON iteration} COLLECT {STRICTLY} term
  3209.  
  3210.           Purpose   Collects  common  terms in  an expression,  equation or
  3211.                     relation.
  3212.  
  3213.           Abbreviation   COL  for  COLLECT
  3214.  
  3215.           Restrictions   term may contain labels; however, only expressions
  3216.                          may be associated with the labels.  AMP will  flag
  3217.                          an error if equations or  relations are associated
  3218.                          with labels in term.
  3219.  
  3220.  
  3221.           Example
  3222.  
  3223.           ~E1 : u[0] + u[1]*x + u[2]*x^2 + v[0] + v[1]*x + v[2]*x^2
  3224.           E1 : u[0] + u[1]*x + u[2]*x^2 + v[0] + v[1]*x + v[2]*x^2
  3225.           ~E2:=E1 
  3226.           E2 : u[0] + u[1]*x + u[2]*x^2 + v[0] + v[1]*x v[2]*x^2
  3227.           ~IN E1 COLLECT x
  3228.           E1 : u[0] + v[0] + x*1(u[1] + u[2]*x + v[1] + v[2]*x)
  3229.           ~ITERATE I FROM 1 TO 2
  3230.           ~IN E2 ON I COLLECT STRICTLY x^I
  3231.           E2 : u[0] + v[0] + x*(u[1] + v[1]) + x^2*(u[2] + v[2])
  3232.  
  3233.           Example with Procedure
  3234.  
  3235.           PROCEDURE Example(INTEGER N ; LABEL L ; PARAMETER P) ;
  3236.             ITERATE I FROM 1 TO N ;
  3237.             IN L[I] COLLECT P ;
  3238.           EXIT
  3239.  
  3240.           ~ITERATE I FROM 1 TO 3
  3241.           ~LABEL V[1..3]
  3242.           ~V[I] : u[I]*x + v[I]*x
  3243.           V[1] : u[1]*x + v[1]*x
  3244.           V[2] : u[2]*x + v[2]*x
  3245.           V[3] : u[3]*x + v[3]*x
  3246.           ~Example(3,V,x)
  3247.           V[1] : x*(u[1] + v[1])
  3248.           V[2] : x*(u[2] + v[2]) 
  3249.           V[3] : x*(u[3] + v[3]) 
  3250.  
  3251.  
  3252.  
  3253.  
  3254.  
  3255.  
  3256.  
  3257.                                                                          44
  3258.  
  3259.  
  3260.  
  3261.  
  3262.  
  3263.  
  3264.  
  3265.  
  3266.  
  3267.  
  3268.  
  3269.  
  3270.           Copyright 1987, 1989 Cerebral Software
  3271.  
  3272.           COLLECT OPERATOR
  3273.  
  3274.           Syntax    {IN label}{ON iteration} COLLECT operator ON term
  3275.  
  3276.           Where     operator is :
  3277.                          D - Derivative operator  (Ctrl D on keyboard)
  3278.                          INTEGRAL -  Integral  operator        (Ctrl  K  on
  3279.           keyboard)
  3280.                          SIGMA - Summation operator   (Greek capital S )
  3281.  
  3282.           Purpose   Collects  operators  in  an  expression,  equation,  or
  3283.                     relation. 
  3284.  
  3285.           Abbreviation   COL
  3286.  
  3287.           Examples
  3288.  
  3289.           ~E1 : D[x](f(x)) + D[x](g(x)) 
  3290.           ~IN E1 COLLECT D 
  3291.           E1 : D[x](f(x) + g(x))
  3292.           ~E1     :     "integral"f(x)d(x)    +     "integral"g(x)d(x)    +
  3293.           "integral"{a,b}f(y)d(y) + "integral"{a,b}g(y)d(y) 
  3294.           E1     :     "integral"f(x)d(x)     +    "integral"g(x)d(x)     +
  3295.           "integral"{a,b}f(y)d(y) + "integral"{a,b}g(y)d(y) 
  3296.           ~COLLECT INTEGRAL ON x
  3297.           E1  :  "integral"f(x)  +  g(x)d(x)  +  "integral"{a,b}f(y)d(y)  +
  3298.           "integral"{a,b}g(y)d(y)
  3299.           E1    :    SIGMA{j=1,20}(u[j])     +    SIGMA{j=1,20)(v[j])     +
  3300.           SIGMA{k=1,30}(u[j]) +         SIGMA{k=1,30}(v[j])
  3301.           ~IN E1 COLLECT SIGMA ON j
  3302.           E1  :   SIGMA{j=1,20}(u[j]  +   v[j])  +   SIGMA{k=1,30}(u[j])  +
  3303.           SIGMA{k=1,30}(v[j])
  3304.  
  3305.           (Remember Ctrl k for "integral")
  3306.           (Remember Ctrl l is differential d)
  3307.  
  3308.           Example with Procedure
  3309.  
  3310.           PROCEDURE Example(INTEGER N ; LABEL L ; PARAMETER P) ;
  3311.             ITERATE I FROM 1 TO N ;
  3312.             IN L ON I COLLECT D ON P ;
  3313.           EXIT
  3314.  
  3315.           ~E1 : D[x](g(x)) + D[x](f(x)) + D[x|2](f(x)) + D[x|2](g(x))
  3316.           E1 : D[x](f(x)) + D[x](g(x)) + D[x|2](f(x)) + D[x|2](g(x))
  3317.           ~Example(2,E1,x)
  3318.           E1 : D[x](f(x) + g(x)) + D[x|2](f(x) + g(x))
  3319.  
  3320.  
  3321.  
  3322.  
  3323.                                                                          45
  3324.  
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336.           Copyright 1987, 1989 Cerebral Software
  3337.  
  3338.           CONSTANT
  3339.  
  3340.           Syntax    CONSTANT {constant=number}{,constant=number}
  3341.  
  3342.           Where     constant is an integer or
  3343.                                    rational number or
  3344.                                    floating point number
  3345.  
  3346.           Purpose   Allows the  user to  define mneumonics  for often  used
  3347.                     constants.  If no constants are declared then AMP gives
  3348.                     a listing of constants which are already defined.
  3349.  
  3350.           Abbreviation   CONST
  3351.  
  3352.           Example
  3353.  
  3354.           ~CONSTANT ½ß¬=113
  3355.           ~CONSTANT
  3356.           pi=3.14             ½ß¬=113
  3357.           Comment   Note that the  floating point number,  pi, is shown  to
  3358.                     two significant  digits after  the decimal  point.   To
  3359.                     show more digits the user must use the command FLOATING
  3360.                     or SCIENTIFIC which are described in this dictionary.
  3361.  
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  
  3371.  
  3372.  
  3373.  
  3374.  
  3375.  
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.                                                                          46
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.           Copyright 1987, 1989 Cerebral Software
  3403.  
  3404.           DECIMAL
  3405.  
  3406.           Syntax    label 2 := DECIMAL label 1
  3407.  
  3408.           Purpose   Converts rational numbers in an expression, equation or
  3409.                     relation to decimal numbers.
  3410.  
  3411.           Abbreviation   DEC for DECIMAL
  3412.  
  3413.           Example
  3414.  
  3415.           ~E1 : 53/10*x
  3416.           E1 : 53/10*x
  3417.           ~E2 := DECIMAL E1
  3418.           E2 : 5.30*x
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.                                                                          47
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.           Copyright 1987, 1989 Cerebral Software
  3469.  
  3470.           DEGREES
  3471.  
  3472.           Syntax    DEGREES
  3473.  
  3474.           Purpose   Forces all  trigonometric functions  to evaluate  their
  3475.                     arguments in degrees.
  3476.  
  3477.           Note      By default  all trigonometic  functions evaluate  their
  3478.                     arguments in radians  if this  command or the  GRADIANS
  3479.                     command is not used.
  3480.  
  3481.           Abbreviation   DEG
  3482.  
  3483.           Restriction    May not be used in a procedure.
  3484.  
  3485.           Example
  3486.  
  3487.           ~DEGREES
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.  
  3506.  
  3507.  
  3508.  
  3509.  
  3510.  
  3511.  
  3512.  
  3513.  
  3514.  
  3515.  
  3516.  
  3517.  
  3518.  
  3519.  
  3520.  
  3521.                                                                          48
  3522.  
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.  
  3530.  
  3531.  
  3532.  
  3533.  
  3534.           Copyright 1987, 1989 Cerebral Software
  3535.  
  3536.           DERIVATIVE ISOLATE
  3537.  
  3538.           Syntax    label := DERIVATIVE{(n)} expression 
  3539.  
  3540.           Where     expression contains labels, and numbers.
  3541.  
  3542.           Purpose   Isolates the nth derivative.  If  n is omitted then the
  3543.                     first derivative is assigned to label.
  3544.  
  3545.           Abbreviation   DERIV 
  3546.  
  3547.           Example
  3548.  
  3549.           ~E : a*b*D[x](f(x)) + 4
  3550.           E : a*b*D[x](f(x)) + 4
  3551.           ~F:=DERIVATIVE E
  3552.           F : D[x](f(x))
  3553.  
  3554.           Example with Procedure
  3555.  
  3556.           PROCEDURE ISOLATE(LABEL L,M) ;
  3557.             M := DERIVATIVE L ;
  3558.           EXIT
  3559.  
  3560.           ~E : a*b*D[x](f(x)) + 4
  3561.           E : a*b*D[x](f(x)) + 4
  3562.           ~ISOLATE(E,F) 
  3563.           F : D[x](f(x))
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576.  
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.                                                                          49
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.           Copyright 1987, 1989 Cerebral Software
  3601.  
  3602.           DIFFERENTIAL ISOLATE
  3603.  
  3604.           Syntax    label := DIFFERENTIAL{(n)} label
  3605.  
  3606.           Purpose   Isolates the nth  differential in  a derivative or  the
  3607.                     differential of an integral.   (See DERIVATIVE  ISOLATE
  3608.                     and INTEGRAL ISOLATE)
  3609.  
  3610.           Abbreviation   DIFF 
  3611.  
  3612.  
  3613.           Example
  3614.  
  3615.           ~E : a + b*D[x|3,y|3](h(x,y))
  3616.           E : a + b*D[x|3,y|3](h(x,y))
  3617.           ~F:=DERIVATIVE E
  3618.           F : D[x|3,y|3](h(x,y))
  3619.           ~G:=DIFFERENTIAL(2) F
  3620.           G : y
  3621.  
  3622.           Example with Procedure
  3623.  
  3624.           PROCEDURE Isolate(LABEL L, M) ;
  3625.             LABEL T ;
  3626.             T := INTEGRAL L ;
  3627.             M := DIFFERENTIAL T ;
  3628.           EXIT
  3629.  
  3630.           ~E : a * b*"integral"Sin(x)d(x)
  3631.           ~Isolate(E,F)
  3632.           ~LIST F
  3633.           F : x
  3634.  
  3635.           (Remember Ctrl k for "integral")
  3636.           (Remember Ctrl l is differential d)
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650.  
  3651.  
  3652.  
  3653.                                                                          50
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.           Copyright 1987, 1989 Cerebral Software
  3667.  
  3668.           DISTRIBUTE TERM
  3669.  
  3670.           Syntax    {IN label} {ON iteration} DISTRIBUTE term
  3671.  
  3672.           Purpose   Distributes term into an  expressions.  If no  label is
  3673.                     given  then  the last  label  used becomes  the default
  3674.                     label.
  3675.  
  3676.           Abbreviation   DIST for DISTRIBUTE
  3677.  
  3678.           Restrictions   term may contain labels; however, only expressions
  3679.                          may be  associated with the labels.  AMP will flag
  3680.                          an error  if equations or relations are associated
  3681.                          with labels in term.
  3682.  
  3683.           Example
  3684.  
  3685.           ~E1 : x*(c + d)
  3686.           E1 : x*(c + d)
  3687.           ~DISTRIBUTE x
  3688.           E1 : c*x + d*x
  3689.  
  3690.           Example with Procedure
  3691.  
  3692.           PROCEDURE Example(INTEGER N ; LABEL L ; PARAMETER P) ;
  3693.             ITERATE I FROM 1 TO N ;
  3694.             IN L DISTRIBUTE P ;
  3695.           EXIT 
  3696.  
  3697.           ~ITERATE I FROM 1 TO 3
  3698.           ~LABEL V[1..3]
  3699.           ~V[I] : c*(u[I]+v[I] )
  3700.           V[1] : c*(u[1] + v[1])
  3701.           V[2] : c*(u[2] + v[2])
  3702.           V[3] : c*(u[3] + v[3])
  3703.           ~Example(3,V,c)
  3704.           V[1] : c*u[1] + c*v[1]
  3705.           V[2] : c*u[2] + c*v[2]
  3706.           V[3] : c*u[3] + c*v[3]
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713.  
  3714.  
  3715.  
  3716.  
  3717.  
  3718.  
  3719.                                                                          51
  3720.  
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728.  
  3729.  
  3730.  
  3731.  
  3732.           Copyright 1987, 1989 Cerebral Software
  3733.  
  3734.           DISTRIBUTE OPERATOR
  3735.  
  3736.           Syntax    {IN  label}  {ON  iteration}  DISTRIBUTE  operator  {ON
  3737.                               expression} 
  3738.  
  3739.           Where     operator is :
  3740.                          D - Derivative operator  (Ctrl D on keyboard)
  3741.                          INTEGRAL  -  Integral operator        (Ctrl  K  on
  3742.           keyboard)
  3743.                          SIGMA - Summation operator   (Greek capital S )
  3744.  
  3745.           Purpose   Distributes a derivative operator
  3746.  
  3747.           Example
  3748.  
  3749.           ~E1 : D[x](f(x) + g(x))
  3750.           E1 : D[x](f(x) + g(x))
  3751.           ~IN E1 DISTRIBUTE D ON x
  3752.           E1 : D[x](f(x)) + D[x](g(x))
  3753.           ~E1 :  "integral"f(x) + g(x)d(x)
  3754.           E1 :  "integral"f(x) + g(x)d(x)
  3755.           ~IN E1 DISTRIBUTE "integral" 
  3756.           E1 : "integral"f(x)d(x) + "integral"g(x)d(x)
  3757.           ~E1 : SIGMA{j=1,infinity}(u[j] + v[j])
  3758.           E1 : SIGMA{j=1,infinity}(u[j] + v[j])
  3759.           ~IN E1 DISTRIBUTE SIGMA ON j
  3760.           E1 : SIGMA{j=1,infinity}(u[j]) + SIGMA{j=1,infinity}(v[j])
  3761.  
  3762.           Note : infinity is accessed by pressing F1 : Greek and then "i".
  3763.  
  3764.           Example with Procedure
  3765.  
  3766.           PROCEDURE Example(LABEL L ; PARAMETER P) ;
  3767.             IN L DISTRIBUTE D ON P ;
  3768.           EXIT
  3769.  
  3770.           ~E1 : D[x](f(x) + g(x))
  3771.           E1 : D[x](f(x) + g(x))
  3772.           ~Example(E1,x)
  3773.           E1 : D[x](f(x)) + D[x](g(x))
  3774.  
  3775.  
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781.  
  3782.  
  3783.  
  3784.  
  3785.                                                                          52
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.           Copyright 1987, 1989 Cerebral Software
  3799.  
  3800.           DIVIDE
  3801.  
  3802.           Syntax    {IN label} {ON iteration} DIVIDE term
  3803.  
  3804.           Purpose   Divides term into the expression, equation, or relation
  3805.                     belonging to label.  
  3806.  
  3807.           Note      When  this command is used  with relations, there is no
  3808.                     check for validity of the operation.  (See Chapter VIII
  3809.                     -Relation Arithmetic)
  3810.  
  3811.           Example
  3812.  
  3813.           ~R1 : c < c*x < d
  3814.           R1 : c < c*x < d
  3815.           ~DIVIDE c
  3816.           R1 : 1 < x < 1/c*d
  3817.  
  3818.           Example with Procedure
  3819.  
  3820.           PROCEDURE Example(INTEGER N ; LABEL L ; PARAMETER P) ;
  3821.             ITERATE I FROM 1 TO N ;
  3822.             IN L[I] DIVIDE P ;
  3823.           EXIT
  3824.  
  3825.           ~ITERATE I FROM 1 TO 3
  3826.           ~LABEL V[1..3]
  3827.           ~V[I] : u[I]
  3828.           V[1] : u[1] 
  3829.           V[2] : u[2]
  3830.           V[3] : u[3]
  3831.           ~Example(3,V,c)
  3832.           V[1] : 1/c*u[1]
  3833.           V[2] : 1/c*u[2]
  3834.           V[3] : 1/c*u[3]
  3835.  
  3836.  
  3837.  
  3838.  
  3839.  
  3840.  
  3841.  
  3842.  
  3843.  
  3844.  
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850.  
  3851.                                                                          53
  3852.  
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.           Copyright 1987, 1989 Cerebral Software
  3865.  
  3866.           DISPLAY
  3867.  
  3868.           Syntax    DISPLAY {NEAT|NORMAL}
  3869.  
  3870.           Purpose   Sets  the  display  in the  NEAT  (two  dimensional) or
  3871.                     NORMAL (one dimensional) display mode.  If the reserved
  3872.                     words  NEAT or NORMAL  are not specified  then AMP will
  3873.                     respond  with  either  of the  reserved  words  NEAT or
  3874.                     NORMAL.
  3875.  
  3876.           Abbreviation   DISP for  DISPLAY
  3877.  
  3878.           Restrictions   Not permitted in procedures.
  3879.  
  3880.           Example
  3881.  
  3882.           ~DISPLAY NEAT
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.  
  3891.  
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  
  3899.  
  3900.  
  3901.  
  3902.  
  3903.  
  3904.  
  3905.  
  3906.  
  3907.  
  3908.  
  3909.  
  3910.  
  3911.  
  3912.  
  3913.  
  3914.  
  3915.  
  3916.  
  3917.                                                                          54
  3918.  
  3919.  
  3920.  
  3921.  
  3922.  
  3923.  
  3924.  
  3925.  
  3926.  
  3927.  
  3928.  
  3929.  
  3930.           Copyright 1987, 1989 Cerebral Software
  3931.  
  3932.           ECHO
  3933.  
  3934.           Syntax    ECHO {ON | OFF}
  3935.  
  3936.           Purpose   Controls automatic echo  of results of instructions  to
  3937.                     the screen.  
  3938.  
  3939.           Abbreviation   ECHO
  3940.  
  3941.           Restrictions   May not be used in a procedure.
  3942.  
  3943.           Example
  3944.  
  3945.           ~ECHO ON
  3946.  
  3947.  
  3948.  
  3949.  
  3950.  
  3951.  
  3952.  
  3953.  
  3954.  
  3955.  
  3956.  
  3957.  
  3958.  
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964.  
  3965.  
  3966.  
  3967.  
  3968.  
  3969.  
  3970.  
  3971.  
  3972.  
  3973.  
  3974.  
  3975.  
  3976.  
  3977.  
  3978.  
  3979.  
  3980.  
  3981.  
  3982.  
  3983.                                                                          55
  3984.  
  3985.  
  3986.  
  3987.  
  3988.  
  3989.  
  3990.  
  3991.  
  3992.  
  3993.  
  3994.  
  3995.  
  3996.           Copyright 1987, 1989 Cerebral Software
  3997.  
  3998.           EXIT
  3999.  
  4000.           Syntax    EXIT
  4001.  
  4002.           Purpose   Allows the user  to exit interpreter  mode of AMP.   In
  4003.                     the program  mode  this  is  a command  for  exiting  a
  4004.                     procedure, much like the RETURN  statement in Pascal or
  4005.                     Basic.  
  4006.  
  4007.           Note      Be certain  to save  important work  before using  this
  4008.                     command.    When  this  command   is  executed  in  the
  4009.                     interpreter mode, all unsaved work is lost.
  4010.  
  4011.           Abbreviation   EXIT
  4012.  
  4013.           Example
  4014.  
  4015.           ~EXIT
  4016.  
  4017.           Example with Procedure
  4018.           PROCEDURE ExitTest() ;
  4019.                .
  4020.                .
  4021.             statements
  4022.                .
  4023.                .
  4024.           EXIT
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  
  4031.  
  4032.  
  4033.  
  4034.  
  4035.  
  4036.  
  4037.  
  4038.  
  4039.  
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.  
  4049.                                                                          56
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.           Copyright 1987, 1989 Cerebral Software
  4063.  
  4064.           EXPAND
  4065.  
  4066.           Syntax    {IN label} {ON iteration} EXPAND {term}
  4067.  
  4068.           Purpose   Expands term by multiplying factors.
  4069.  
  4070.           Example
  4071.  
  4072.           ~E1 : (x + y)*(c + d)^2
  4073.           E1 : (c + d)^2*(x + y)
  4074.           ~EXPAND (c + d)^2
  4075.           E1 : (c^2 + 2*c*d + d^2)*(x + y)
  4076.           ~EXPAND
  4077.           E1 : c^2*x + c^2*y + 2*c*d*x + 2*c*d*y + d^2*x + d^2*y
  4078.  
  4079.  
  4080.           Example with Procedure
  4081.  
  4082.           PROCEDURE Example(INTEGER N ; LABEL L ; PARAMETER P) ;
  4083.             ITERATE I FROM 1 TO N ;
  4084.             IN L ON I EXPAND STRICTLY P^I ;
  4085.           EXIT
  4086.  
  4087.           ~E1 : x + y + (x + y)^2 + (x + y)^3
  4088.           E1 : x + y + (x + y)^3 + (x + y)^2
  4089.           ~Example(3,E1,(x + y))
  4090.           E1 : x^3 + 3*x^2*y + x^2 + 3*x*y^2 + 2*x*y + x + y^3 + y^2 + y
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096.  
  4097.  
  4098.  
  4099.  
  4100.  
  4101.  
  4102.  
  4103.  
  4104.  
  4105.  
  4106.  
  4107.  
  4108.  
  4109.  
  4110.  
  4111.  
  4112.  
  4113.  
  4114.  
  4115.                                                                          57
  4116.  
  4117.  
  4118.  
  4119.  
  4120.  
  4121.  
  4122.  
  4123.  
  4124.  
  4125.  
  4126.  
  4127.  
  4128.           Copyright 1987, 1989 Cerebral Software
  4129.  
  4130.           EXPAND OPERATOR
  4131.  
  4132.           Syntax    {IN label} {ON iteration} EXPAND operator {ON index}
  4133.  
  4134.           Purpose   Expands operator where operator is:
  4135.                          SIGMA{j=m,n,l} - summation operator
  4136.                          PI{j=m,n,l} - multiplication or product operator
  4137.                          and m,n,l are numbers.
  4138.                     The  expansions   are  over  finite   sums  and  finite
  4139.                     products.
  4140.  
  4141.           Example
  4142.  
  4143.           ~E1 : SIGMA{j=1,4}(u[j])
  4144.           E1 : SIGMA{j=1,4}(u[j])
  4145.           ~EXPAND SIGMA ON j
  4146.           E1 : u[1] + u[2] + u[3] + u[4]
  4147.           ~E1 : PI{j=1,4}(u[j]) 
  4148.           ~EXPAND PI
  4149.           E1 : u[1]*u[2]*u[3]*u[4]
  4150.  
  4151.  
  4152.           Example with Procedure
  4153.  
  4154.           PROCEDURE EXPSUM(LABEL L ; INDEX k) ;
  4155.             IN L EXPAND SIGMA ON k ;
  4156.           EXIT
  4157.  
  4158.           ~E1 : SIGMA{j=1,4}(u[j])
  4159.           ~EXPSUM(E1,j)
  4160.           E1 : u[1] + u[2] + u[3] + u[4]
  4161.  
  4162.  
  4163.  
  4164.  
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.                                                                          58
  4182.  
  4183.  
  4184.  
  4185.  
  4186.  
  4187.  
  4188.  
  4189.  
  4190.  
  4191.  
  4192.  
  4193.  
  4194.           Copyright 1987, 1989 Cerebral Software
  4195.  
  4196.           FACTOR
  4197.  
  4198.           Syntax    {IN label} FACTOR expression {ON pivot}
  4199.  
  4200.           Purpose   Factors expression into  label.  The  result is in  the
  4201.                     form of quotient*divisor + remainder.  
  4202.  
  4203.           Comment   pivot specifies  the lead  factor in  divisor.  If  you
  4204.                     want to divide a + b + c into a^2*b + b*c + a, then 'a'
  4205.                     would automatically be the pivot term of  divisor.  'b'
  4206.                     as the pivot term will give a different result.
  4207.           Example
  4208.  
  4209.           ~E1 : c^2 + c*d + b^2
  4210.           E1 : c^2 + c*d + b^2
  4211.           ~IN E1 FACTOR c - d
  4212.           E1 : 3*b^2 + (c - d)*(c + 2*d)
  4213.  
  4214.           Example with Procedure
  4215.  
  4216.           PROCEDURE Example(LABEL E1 ; PARAMETER P) ;
  4217.             IN E1 FACTOR P ;
  4218.           EXIT
  4219.  
  4220.           ~E1 : c^2 + c*d + b^2
  4221.           E1 : c^2 + c*d + b^2
  4222.           ~Example(E1,(c-d))
  4223.           E1 : 3*b^2 + (c - d)*(c + 2*d)
  4224.  
  4225.  
  4226.  
  4227.  
  4228.  
  4229.  
  4230.  
  4231.  
  4232.  
  4233.  
  4234.  
  4235.  
  4236.  
  4237.  
  4238.  
  4239.  
  4240.  
  4241.  
  4242.  
  4243.  
  4244.  
  4245.  
  4246.  
  4247.                                                                          59
  4248.  
  4249.  
  4250.  
  4251.  
  4252.  
  4253.  
  4254.  
  4255.  
  4256.  
  4257.  
  4258.  
  4259.  
  4260.           Copyright 1987, 1989 Cerebral Software
  4261.  
  4262.           FLOATING
  4263.  
  4264.           Syntax    FLOATING m.n
  4265.  
  4266.           Purpose   Forces AMP to display all  numerical output in floating
  4267.                     point form.   m is the total number of places to use to
  4268.                     display the number including sign and decimal point.  n
  4269.                     is the number  of digits to  display after the  decimal
  4270.                     point.  If a number is too large to fit the format then
  4271.                     it is displayed in scientific notation.  
  4272.  
  4273.           Abbreviation   FLOAT
  4274.  
  4275.           Restriction    May not be used in procedure.
  4276.  
  4277.           Example
  4278.  
  4279.           ~FLOATING 10.2
  4280.  
  4281.  
  4282.  
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  
  4288.  
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.  
  4300.  
  4301.  
  4302.  
  4303.  
  4304.  
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311.  
  4312.  
  4313.                                                                          60
  4314.  
  4315.  
  4316.  
  4317.  
  4318.  
  4319.  
  4320.  
  4321.  
  4322.  
  4323.  
  4324.  
  4325.  
  4326.           Copyright 1987, 1989 Cerebral Software
  4327.  
  4328.           FUNCTION
  4329.  
  4330.           Syntax    FUNCTION
  4331.  
  4332.           Purpose   Forces AMP  to display  all functions  which have  been
  4333.                     defined.  Note that this command does not show standard
  4334.                     functions.  (See STANDARD).
  4335.  
  4336.           Abbreviation   FUNCT
  4337.  
  4338.           Restrictions   Cannot be used in procedure.
  4339.  
  4340.           Example
  4341.  
  4342.           ~E : a*f(x) = b*g(x)
  4343.           .
  4344.           .
  4345.           .
  4346.           ~FUNCTION
  4347.           f(x)           g(x)
  4348.  
  4349.           Comment   In  the  above  example  a  relation  between  the  two
  4350.                     functions  "f(x)" and  "g(x)"  is defined.   "FUNCTION"
  4351.                     gives a listing of the functions used.
  4352.  
  4353.  
  4354.  
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.  
  4361.  
  4362.  
  4363.  
  4364.  
  4365.  
  4366.  
  4367.  
  4368.  
  4369.  
  4370.  
  4371.  
  4372.  
  4373.  
  4374.  
  4375.  
  4376.  
  4377.  
  4378.  
  4379.                                                                          61
  4380.  
  4381.  
  4382.  
  4383.  
  4384.  
  4385.  
  4386.  
  4387.  
  4388.  
  4389.  
  4390.  
  4391.  
  4392.           Copyright 1987, 1989 Cerebral Software
  4393.  
  4394.           GRADIANS
  4395.  
  4396.           Syntax    GRADIANS
  4397.  
  4398.           Purpose   Forces all  trigonometric functions  to evaluate  their
  4399.                     arguments in gradians.
  4400.  
  4401.           Note      By default, all trigonometric  functions evaluate their
  4402.                     arguments in  radians if  this command  or the  DEGREES
  4403.                     command is not used.
  4404.  
  4405.           Abbreviation   GRAD for GRADIANS
  4406.  
  4407.           Restrictions   Cannot be used in a procedure
  4408.  
  4409.           Example
  4410.  
  4411.           ~GRADIANS
  4412.  
  4413.  
  4414.  
  4415.  
  4416.  
  4417.  
  4418.  
  4419.  
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  
  4427.  
  4428.  
  4429.  
  4430.  
  4431.  
  4432.  
  4433.  
  4434.  
  4435.  
  4436.  
  4437.  
  4438.  
  4439.  
  4440.  
  4441.  
  4442.  
  4443.  
  4444.  
  4445.                                                                          62
  4446.  
  4447.  
  4448.  
  4449.  
  4450.  
  4451.  
  4452.  
  4453.  
  4454.  
  4455.  
  4456.  
  4457.  
  4458.           Copyright 1987, 1989 Cerebral Software
  4459.  
  4460.           HIGHBOUND
  4461.  
  4462.           Syntax    label := HIGHBOUND label
  4463.  
  4464.           Purpose   Isolates the upper bound of an  integral.  (See ISOLATE
  4465.                     INTEGRAL.)
  4466.  
  4467.           Abbreviation   HIGH 
  4468.  
  4469.           Example
  4470.  
  4471.           ~E : a + b*"integral"{a,b}f(x)d(x)
  4472.           ~F:=INTEGRAL E
  4473.           "integral"{a,b}f(x)d(x)
  4474.           ~G:=HIGHBOUND F
  4475.           G : b
  4476.  
  4477.           (Remember Ctrl k for "integral")
  4478.           (Remember Ctrl l is differential d)
  4479.           Example with Procedure
  4480.  
  4481.           PROCEDURE Example(LABEL L,M) ;
  4482.             LABEL T ;
  4483.             T:=INTEGRAL L ;
  4484.             M:=HIGHBOUND L ;
  4485.           EXIT
  4486.  
  4487.           ~LABEL F
  4488.           ~E : a + b*"integral"{a,b}f(x)d(x)
  4489.           E : a + b*"integral"{a,b}f(x)d(x)
  4490.           ~Example(E,F) ;
  4491.           ~LIST F
  4492.           F : b
  4493.  
  4494.  
  4495.  
  4496.  
  4497.  
  4498.  
  4499.  
  4500.  
  4501.  
  4502.  
  4503.  
  4504.  
  4505.  
  4506.  
  4507.  
  4508.  
  4509.  
  4510.  
  4511.                                                                          63
  4512.  
  4513.  
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.           Copyright 1987, 1989 Cerebral Software
  4525.  
  4526.           IMAGINARY
  4527.  
  4528.           Syntax    IMAGINARY {letter}
  4529.  
  4530.           Where     letter is a small letter.
  4531.  
  4532.           Purpose   To set the  imaginary unit.   If no  unit is  specified
  4533.                     then AMP will report the unit.  The default unit is "i"
  4534.  
  4535.           Restriction    Cannot be used in a procedure.
  4536.  
  4537.           Example
  4538.  
  4539.           ~IMAGINARY j
  4540.  
  4541.           Comment   The above command set the imaginary  unit to j which is
  4542.                     the accepted unit  by electrical  engineers.  Once  the
  4543.                     imaginary unit  is declared to  be other than  "i", the
  4544.                     user is free to use "i" as a variable or an index.
  4545.  
  4546.  
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  
  4552.  
  4553.  
  4554.  
  4555.  
  4556.  
  4557.  
  4558.  
  4559.  
  4560.  
  4561.  
  4562.  
  4563.  
  4564.  
  4565.  
  4566.  
  4567.  
  4568.  
  4569.  
  4570.  
  4571.  
  4572.  
  4573.  
  4574.  
  4575.  
  4576.  
  4577.                                                                          64
  4578.  
  4579.  
  4580.  
  4581.  
  4582.  
  4583.  
  4584.  
  4585.  
  4586.  
  4587.  
  4588.  
  4589.  
  4590.           Copyright 1987, 1989 Cerebral Software
  4591.  
  4592.           IN
  4593.  
  4594.           Syntax    IN label {ON iteration} statement_1
  4595.                  or IN label statement_2
  4596.  
  4597.           Where     statement_1 is :
  4598.                          COLLECT {STRICTLY} term
  4599.                          DISTRIBUTE {STRICTLY} term
  4600.                          EXPAND {STRICTLY} term
  4601.                          REPLACE {STRICTLY} term1 BY term2
  4602.  
  4603.                     statement_2 is :
  4604.                          ADD expression
  4605.                          DIVIDE expression
  4606.                          MULTIPLY expression
  4607.                          NEGATE expression
  4608.                          RAISE expression
  4609.  
  4610.           Purpose   Specifies an expression, equation, or relation.
  4611.  
  4612.           Example
  4613.  
  4614.           ~E1 : x
  4615.           E1 : x
  4616.           ~E2 : y
  4617.           E2 : y
  4618.           ~E3 : z
  4619.           E3 : z
  4620.           ~IN E1 REPLACE x BY 2*y + z
  4621.           ~E1 : 2*y + z
  4622.  
  4623.           Example with Procedure
  4624.  
  4625.           PROCEDURE Example(LABEL L;PARAMETER P) ;
  4626.             IN L COLLECT P ;
  4627.           EXIT
  4628.  
  4629.           ~LABEL E1
  4630.           ~E1 : a*x + a*y
  4631.           E1 : a*x + a*y
  4632.           ~Example(E1,a) 
  4633.           E2 : a*(x + y)
  4634.  
  4635.  
  4636.  
  4637.  
  4638.  
  4639.  
  4640.  
  4641.  
  4642.  
  4643.                                                                          65
  4644.  
  4645.  
  4646.  
  4647.  
  4648.  
  4649.  
  4650.  
  4651.  
  4652.  
  4653.  
  4654.  
  4655.  
  4656.           Copyright 1987, 1989 Cerebral Software
  4657.  
  4658.           INDEX
  4659.  
  4660.           Syntax    INDEX {letter}
  4661.  
  4662.           Where     letter is a..z
  4663.  
  4664.           Purpose   Used to declare indices.  If  letters is omitted then a
  4665.                     listing of indices is given.
  4666.  
  4667.           Restriction    Cannot be used in a procedure.
  4668.  
  4669.           Example
  4670.  
  4671.           ~INDEX k,l,m,n
  4672.           ~INDEX
  4673.           k      l       m      n
  4674.  
  4675.  
  4676.  
  4677.  
  4678.  
  4679.  
  4680.  
  4681.  
  4682.  
  4683.  
  4684.  
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  
  4691.  
  4692.  
  4693.  
  4694.  
  4695.  
  4696.  
  4697.  
  4698.  
  4699.  
  4700.  
  4701.  
  4702.  
  4703.  
  4704.  
  4705.  
  4706.  
  4707.  
  4708.  
  4709.                                                                          66
  4710.  
  4711.  
  4712.  
  4713.  
  4714.  
  4715.  
  4716.  
  4717.  
  4718.  
  4719.  
  4720.  
  4721.  
  4722.           Copyright 1987, 1989 Cerebral Software
  4723.  
  4724.           INTEGRAL ISOLATE
  4725.  
  4726.           Syntax    label := INTEGRAL{(occurence)} label
  4727.  
  4728.           Where     occurence  is  the term  number  in which  the integral
  4729.                     occurs.
  4730.  
  4731.           Purpose   Isolates  a  particular  integral   in  an  expression,
  4732.                     equation or relation.
  4733.  
  4734.           Example
  4735.  
  4736.           ~E1 : a*b*"integral" f(x) d(x) + "integral" g(x) d(x)
  4737.           E1 : a*b*"integral" f(x) d(x) + "integral" g(x) d(x)
  4738.           ~E2:=INTEGRAL E1
  4739.           E2 : "integral" f(x) d(x)
  4740.           ~E3:=INTEGRAL(2) E1
  4741.           E3 : "integral" g(x) d(x)
  4742.  
  4743.  
  4744.           (Remember Ctrl k from "integral")
  4745.           (Remember Ctrl l is differential d)
  4746.           Example with Procedure
  4747.  
  4748.           PROCEDURE Example(LABEL L, M) ;
  4749.             M:=INTEGRAL M ;
  4750.           EXIT
  4751.  
  4752.           ~E1 : a*b*"integral" f(x) d(x) + "integral" g(x) d(x)
  4753.           E1 : a*b*"integral" f(x) d(x) + "integral" g(x) d(x)
  4754.           ~Example(E1, E2)
  4755.           E2 : "integral" f(x) d(x)
  4756.  
  4757.  
  4758.           (Remember Ctrl k from "integral")
  4759.           (Remember Ctrl l is differential d)
  4760.  
  4761.  
  4762.  
  4763.  
  4764.  
  4765.  
  4766.  
  4767.  
  4768.  
  4769.  
  4770.  
  4771.  
  4772.  
  4773.  
  4774.  
  4775.                                                                          67
  4776.  
  4777.  
  4778.  
  4779.  
  4780.  
  4781.  
  4782.  
  4783.  
  4784.  
  4785.  
  4786.  
  4787.  
  4788.           Copyright 1987, 1989 Cerebral Software
  4789.  
  4790.           ITERATE
  4791.  
  4792.           Option 1  : Iteration declaration in interpreter mode.
  4793.  
  4794.           Syntax    ITERATE {letter FROM integer TO integer {STEP integer}}
  4795.  
  4796.           Where     letter    is "A".."Z" ; capital letters only.
  4797.                     integer   is an integer.
  4798.  
  4799.           Purpose   Define iteration  variables which are used  in multiple
  4800.                     assignments or to requests information about them.
  4801.  
  4802.           Example   ~ITERATE I FROM 1 TO 10
  4803.                     ~ITERATE J FROM 2 TO 10 STEP 2
  4804.                     ~ITERATE K FROM -1 TO -10 STEP -1
  4805.                     ~ITERATE
  4806.                     I FROM 1 TO 10
  4807.                     J FROM 2 TO 10 STEP 2
  4808.                     K FROM -1 TO -10 STEP -1
  4809.  
  4810.           Option 2 : Iteration declaration in program mode.
  4811.  
  4812.           Syntax    ITERATE letter FROM expr TO expr {STEP expr}
  4813.  
  4814.           Where     letter    is "A".."Z" ie capital letters only.
  4815.                     expr      is a simple expression  consisting of proced-
  4816.                               ure arguments of type INTEGER and integers.
  4817.  
  4818.           Purpose   Defines iterates which are used in multiple assignments
  4819.                     and which are local  to the procedure.  These  iterates
  4820.                     are in effect  only while  the procedure is  executing.
  4821.                     When  the  procedure  terminates   these  iterates  are
  4822.                     discarded.
  4823.  
  4824.           Example with Procedure
  4825.  
  4826.           PROCEDURE itertest(INTEGER N,M) ;
  4827.             ITERATE I FROM N TO M+1 ;
  4828.             ITERATE J FROM 2*N TO 3*M ;
  4829.           EXIT
  4830.  
  4831.  
  4832.  
  4833.  
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.                                                                          68
  4842.  
  4843.  
  4844.  
  4845.  
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854.           Copyright 1987, 1989 Cerebral Software
  4855.  
  4856.           LABEL
  4857.  
  4858.           Option 1 : Label declaration in Interpreter
  4859.  
  4860.           Syntax    LABEL {label ,label . . .}
  4861.  
  4862.           Where     label     is name{[int..int{,int..int}]}
  4863.                     name      is an alphanumeric string.
  4864.                     int       is an integer.
  4865.  
  4866.           Purpose   Used  to  declare labels  for  the database  or request
  4867.                     information about them.
  4868.  
  4869.           Example   ~LABEL A[1..3,1..3],B[1..3],E
  4870.                     ~LABEL
  4871.                     A[1..3,1..3]                B[1..3]
  4872.                     E
  4873.  
  4874.           Option 2 : Label declaration in compiler mode.
  4875.  
  4876.           Syntax    LABEL label {,label,. . .}
  4877.  
  4878.           Where     label     is name{[expr..expr {,expr..expr}3]}
  4879.                     name      is an alphanumeric string.
  4880.                     expr      is a simple expression consisting of integers
  4881.                               a procedure arguments of type INTEGER.
  4882.  
  4883.           Purpose   Used to declare labels which are local  to a procedure.
  4884.                     These labels are in effect only while the procedure  is
  4885.                     executing.  When the procedure terminates these  labels
  4886.                     are discarded.
  4887.  
  4888.           Example
  4889.  
  4890.           PROCEDURE Example(INTEGER N ; PARAMETER p) ;
  4891.             LABEL B[N-1..N+2] ;
  4892.             ITERATE I FROM N-1 TO  N+2 ;
  4893.             B[I] : 3*p ;
  4894.           EXIT
  4895.  
  4896.           ~Example(1,(x+y))
  4897.           B[0] : x + y
  4898.           B[1] : x + y
  4899.           B[2] : x + y
  4900.  
  4901.           Comment   The label B is local to  the PROCEDURE "Example" and is
  4902.                     discarded once the procedure execution is complete.
  4903.  
  4904.  
  4905.  
  4906.  
  4907.                                                                          69
  4908.  
  4909.  
  4910.  
  4911.  
  4912.  
  4913.  
  4914.  
  4915.  
  4916.  
  4917.  
  4918.  
  4919.  
  4920.           Copyright 1987, 1989 Cerebral Software
  4921.  
  4922.           LEFT
  4923.  
  4924.           Syntax    label 2 := LEFT label 1
  4925.  
  4926.           Purpose   Assigns the left expression of label 2 to label 1
  4927.  
  4928.           Example
  4929.  
  4930.           ~R1 : c < d < e
  4931.           R1 : c < d < e
  4932.           ~E1 := LEFT R1
  4933.           E1 : c
  4934.  
  4935.           Example with Procedure
  4936.  
  4937.           PROCEDURE Example(LABEL L1,L2) ;
  4938.             L2 := LEFT L1 ;
  4939.           EXIT
  4940.  
  4941.           ~R1 : c < d < e
  4942.           R1 : c < d < e
  4943.           ~LABEL E1
  4944.           ~Example(R1,E1)
  4945.           E1 : c
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.  
  4958.  
  4959.  
  4960.  
  4961.  
  4962.  
  4963.  
  4964.  
  4965.  
  4966.  
  4967.  
  4968.  
  4969.  
  4970.  
  4971.  
  4972.  
  4973.                                                                          70
  4974.  
  4975.  
  4976.  
  4977.  
  4978.  
  4979.  
  4980.  
  4981.  
  4982.  
  4983.  
  4984.  
  4985.  
  4986.           Copyright 1987, 1989 Cerebral Software
  4987.  
  4988.           LIST
  4989.  
  4990.           Syntax    LIST label  {TO filename}
  4991.  
  4992.           Where     label may be  a label with  or without the  subscripts.
  4993.                     If label  is a tensor  and the  subscripts are  omitted
  4994.                     then the whole tensor is listed.
  4995.            
  4996.                     filename is an alphanumeric string.   It may contain no
  4997.                     more than eight characters.
  4998.  
  4999.           Note      When data is listed to a file, the extension 'TXT'   is
  5000.                     appended to the filename.  The text listed to this file
  5001.                     is  suitable for importation  into many word processing
  5002.                     programs.
  5003.  
  5004.           Restrictions   May not be used in a procedure.
  5005.  
  5006.           Example
  5007.  
  5008.           ~LABEL A[1..3,1..3]
  5009.           ~LIST A TO TEXT
  5010.           ~LIST A
  5011.  
  5012.  
  5013.  
  5014.  
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020.  
  5021.  
  5022.  
  5023.  
  5024.  
  5025.  
  5026.  
  5027.  
  5028.  
  5029.  
  5030.  
  5031.  
  5032.  
  5033.  
  5034.  
  5035.  
  5036.  
  5037.  
  5038.  
  5039.                                                                          71
  5040.  
  5041.  
  5042.  
  5043.  
  5044.  
  5045.  
  5046.  
  5047.  
  5048.  
  5049.  
  5050.  
  5051.  
  5052.           Copyright 1987, 1989 Cerebral Software
  5053.  
  5054.           LOAD
  5055.  
  5056.           Syntax    LOAD filename
  5057.  
  5058.           Purpose   Loads   data that  was saved to  a file  using the SAVE
  5059.                     command.  LOAD also checks for conflicting labels.
  5060.  
  5061.           Abbreviation   LOAD
  5062.  
  5063.           Restriction    Cannot be used in a procedure.
  5064.  
  5065.           Example
  5066.  
  5067.           ~LOAD DATA
  5068.  
  5069.           Comment   "DATA"  is the name  of a file to  which data was saved
  5070.                     using the SAVE command.  
  5071.  
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.  
  5088.  
  5089.  
  5090.  
  5091.  
  5092.  
  5093.  
  5094.  
  5095.  
  5096.  
  5097.  
  5098.  
  5099.  
  5100.  
  5101.  
  5102.  
  5103.  
  5104.  
  5105.                                                                          72
  5106.  
  5107.  
  5108.  
  5109.  
  5110.  
  5111.  
  5112.  
  5113.  
  5114.  
  5115.  
  5116.  
  5117.  
  5118.           Copyright 1987, 1989 Cerebral Software
  5119.  
  5120.           LOWBOUND
  5121.  
  5122.           Syntax    label := LOWBOUND label
  5123.  
  5124.           Purpose   Isolates the lower bound of an  integral.  (See ISOLATE
  5125.                     INTEGRAL.)
  5126.  
  5127.           Abbreviation   LOW
  5128.  
  5129.           Example
  5130.  
  5131.           ~E : a + b*"integral"{a,b}f(x)d(x)
  5132.           ~F:=INTEGRAL E
  5133.           "integral"{a,b}f(x)d(x)
  5134.           ~G:=LOWBOUND F
  5135.           G : a
  5136.  
  5137.           (Remember Ctrl k from "integral")
  5138.           (Remember Ctrl l is differential d)
  5139.  
  5140.           Example with Procedure
  5141.  
  5142.           PROCEDURE Isolate(LABEL L,M) ;
  5143.             LABEL T ;
  5144.             T:=INTEGRAL L ;
  5145.             M:=LOWBOUND L ;
  5146.           EXIT
  5147.  
  5148.           ~LABEL F
  5149.           ~E : a + b*"integral"{a,b}f(x)d(x)
  5150.           E : a + b*"integral"{a,b}f(x)d(x)
  5151.           ~Isolate(E,F) ;
  5152.           ~LIST F
  5153.           F : a
  5154.  
  5155.  
  5156.  
  5157.  
  5158.  
  5159.  
  5160.  
  5161.  
  5162.  
  5163.  
  5164.  
  5165.  
  5166.  
  5167.  
  5168.  
  5169.  
  5170.  
  5171.                                                                          73
  5172.  
  5173.  
  5174.  
  5175.  
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.  
  5182.  
  5183.  
  5184.           Copyright 1987, 1989 Cerebral Software
  5185.  
  5186.           MULTIPLY
  5187.  
  5188.           Syntax    {IN label} {ON iteration} MULTIPLY expression
  5189.  
  5190.           Purpose   Multiplies expression, equation, or relation with label
  5191.                     by expression.  When this command is used  on relations
  5192.                     there is no checking for validity of operation.  
  5193.  
  5194.           Note      When this command is used  with relations, there are no
  5195.                     checks  for analytical  validity of  operations.   (See
  5196.                     Chapter VIII - Relation Arithmetic)
  5197.  
  5198.           Example
  5199.  
  5200.           ~R1 : 1/c < 1/c*x < c
  5201.           R1 : 1/c < 1/c*x < c
  5202.           IN R1 MULTIPLY c
  5203.           ~R1 : 1 < x < c^2
  5204.  
  5205.           Example with Procedure
  5206.  
  5207.           PROCEDURE Example(INTEGER N ; LABEL L ; PARAMETER P) ;
  5208.             ITERATE I FROM 1 TO N ;
  5209.             IN L[I] MULTIPLY P ;
  5210.           EXIT
  5211.  
  5212.           ~ITERATE I FROM 1 TO 3
  5213.           ~LABEL V[1..3]
  5214.           ~V[I] : I
  5215.           V[1] : 1
  5216.           V[2] : 2
  5217.           V[3] : 3
  5218.           ~Example(3,V,c)
  5219.           V[1] : c
  5220.           V[2] : 2*c
  5221.           V[3] : 3*c
  5222.  
  5223.  
  5224.  
  5225.  
  5226.  
  5227.  
  5228.  
  5229.  
  5230.  
  5231.  
  5232.  
  5233.  
  5234.  
  5235.  
  5236.  
  5237.                                                                          74
  5238.  
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.  
  5245.  
  5246.  
  5247.  
  5248.  
  5249.  
  5250.           Copyright 1987, 1989 Cerebral Software
  5251.  
  5252.           NEGATE
  5253.  
  5254.           Syntax    {IN label} NEGATE expression
  5255.  
  5256.           Purpose   Negates an expression  in a term while  maintaining the
  5257.                     same sign of the term.
  5258.  
  5259.           Example
  5260.  
  5261.           ~E1 : c*( - d - e)
  5262.           E1 : c*( - d - e)
  5263.           ~NEGATE - d - e
  5264.           E1 : - c*(d + e)
  5265.  
  5266.           Note      In the above example  c*( - d - e) has the same sign as
  5267.                     - c*(d + e).
  5268.  
  5269.           Example with Procedure
  5270.  
  5271.           PROCEDURE Example(LABEL L ; PARAMETER P) ;
  5272.             IN L NEGATE P ;
  5273.           EXIT
  5274.  
  5275.           ~E1 : c*( - d - e)
  5276.           E1 : c*( - d - e)
  5277.           ~Example(E1,( - d - e))
  5278.           E1 : - c*(d + e)
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.  
  5288.  
  5289.  
  5290.  
  5291.  
  5292.  
  5293.  
  5294.  
  5295.  
  5296.  
  5297.  
  5298.  
  5299.  
  5300.  
  5301.  
  5302.  
  5303.                                                                          75
  5304.  
  5305.  
  5306.  
  5307.  
  5308.  
  5309.  
  5310.  
  5311.  
  5312.  
  5313.  
  5314.  
  5315.  
  5316.           Copyright 1987, 1989 Cerebral Software
  5317.  
  5318.           NOTATION
  5319.  
  5320.           Syntax    Notation
  5321.  
  5322.           Purpose   Reports whether floating  point or scientific  notation
  5323.                     is currently being used.
  5324.  
  5325.           Abbreviation   NOTAT
  5326.  
  5327.           Restriction    May not be used in a procedure.
  5328.  
  5329.           Example
  5330.  
  5331.           ~NOTATION
  5332.           scientific
  5333.  
  5334.  
  5335.  
  5336.  
  5337.  
  5338.  
  5339.  
  5340.  
  5341.  
  5342.  
  5343.  
  5344.  
  5345.  
  5346.  
  5347.  
  5348.  
  5349.  
  5350.  
  5351.  
  5352.  
  5353.  
  5354.  
  5355.  
  5356.  
  5357.  
  5358.  
  5359.  
  5360.  
  5361.  
  5362.  
  5363.  
  5364.  
  5365.  
  5366.  
  5367.  
  5368.  
  5369.                                                                          76
  5370.  
  5371.  
  5372.  
  5373.  
  5374.  
  5375.  
  5376.  
  5377.  
  5378.  
  5379.  
  5380.  
  5381.  
  5382.           Copyright 1987, 1989 Cerebral Software
  5383.  
  5384.           ON
  5385.  
  5386.           Syntax    {IN iteration} ON iteration statement
  5387.  
  5388.           Where     statement is :
  5389.                          COLLECT {STRICTLY} term
  5390.                          DISTRIBUTE {STRICTLY} term
  5391.                          EXPAND {STRICTLY} term
  5392.                          REPLACE {STRICTLY} term1 BY term2
  5393.  
  5394.           Purpose   Specifies  an iteration  upon which to  repetitively do
  5395.                     statement.
  5396.  
  5397.           Example
  5398.  
  5399.           ~E1 : D[x](x^4) + D[x](x^3) + D[x](x^2) + D[x](x) 
  5400.           E1 : D[x](x^4) + D[x](x^3) + D[x](x^2) + D[x](x) 
  5401.           ~ITERATE I FROM 1 TO 4
  5402.           ~ON I REPLACE STRICTLY D[x](x^I) BY I*x^(I-1)
  5403.           E1 : 4*x^3 + 3*x^2 + 2*x + 1
  5404.  
  5405.           Note      The last two statements above  could be compared to the
  5406.                     following psuedocode :
  5407.  
  5408.                          FOR I := 1 TO 4
  5409.                            REPLACE D[x](x^I) BY I*x^(I-1)
  5410.                          NEXT I
  5411.  
  5412.           Example with procedure
  5413.  
  5414.           PROCEDURE Example(INTEGER N ; LABEL L ; PARAMETER P) ;
  5415.             ITERATE I FROM 1 TO N ;
  5416.             IN L REPLACE D[P](P^I) BY I*P^(I-1) ;
  5417.           EXIT
  5418.  
  5419.           ~E1 : D[x](x^4) + D[x](x^3) + D[x](x^2) + D[x](x) 
  5420.           E1 : D[x](x^4) + D[x](x^3) + D[x](x^2) + D[x](x) 
  5421.           ~Example(4,E1,x)
  5422.           E1 : 4*x^3 + 3*x^2 + 2*x + 1
  5423.  
  5424.  
  5425.  
  5426.  
  5427.  
  5428.  
  5429.  
  5430.  
  5431.  
  5432.  
  5433.  
  5434.  
  5435.                                                                          77
  5436.  
  5437.  
  5438.  
  5439.  
  5440.  
  5441.  
  5442.  
  5443.  
  5444.  
  5445.  
  5446.  
  5447.  
  5448.           Copyright 1987, 1989 Cerebral Software
  5449.  
  5450.           PRINT
  5451.  
  5452.           Syntax    PRINT label
  5453.  
  5454.           Purpose   Directs output to the line printer.
  5455.  
  5456.           Restriction    Cannot be used in a procedure.
  5457.  
  5458.           Example
  5459.  
  5460.           ~LABEL A[1..3,1..3]
  5461.           ~PRINT A
  5462.  
  5463.  
  5464.  
  5465.  
  5466.  
  5467.  
  5468.  
  5469.  
  5470.  
  5471.  
  5472.  
  5473.  
  5474.  
  5475.  
  5476.  
  5477.  
  5478.  
  5479.  
  5480.  
  5481.  
  5482.  
  5483.  
  5484.  
  5485.  
  5486.  
  5487.  
  5488.  
  5489.  
  5490.  
  5491.  
  5492.  
  5493.  
  5494.  
  5495.  
  5496.  
  5497.  
  5498.  
  5499.  
  5500.  
  5501.                                                                          78
  5502.  
  5503.  
  5504.  
  5505.  
  5506.  
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512.  
  5513.  
  5514.           Copyright 1987, 1989 Cerebral Software
  5515.  
  5516.           PROCEDURE
  5517.  
  5518.           Syntax    PROCEDURE
  5519.  
  5520.           Purpose   This  command  causes  AMP  to  display  all  procedure
  5521.                     headings.
  5522.  
  5523.           Abbreviation   PROC
  5524.  
  5525.           Restriction    Cannot be used in a procedure.
  5526.  
  5527.           Example
  5528.  
  5529.           ~PROCEDURE
  5530.  
  5531.  
  5532.  
  5533.  
  5534.  
  5535.  
  5536.  
  5537.  
  5538.  
  5539.  
  5540.  
  5541.  
  5542.  
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548.  
  5549.  
  5550.  
  5551.  
  5552.  
  5553.  
  5554.  
  5555.  
  5556.  
  5557.  
  5558.  
  5559.  
  5560.  
  5561.  
  5562.  
  5563.  
  5564.  
  5565.  
  5566.  
  5567.                                                                          79
  5568.  
  5569.  
  5570.  
  5571.  
  5572.  
  5573.  
  5574.  
  5575.  
  5576.  
  5577.  
  5578.  
  5579.  
  5580.           Copyright 1987, 1989 Cerebral Software
  5581.  
  5582.           PRODUCT
  5583.  
  5584.           Syntax    label := PRODUCT(iteration{,iteration,...}) expression
  5585.  
  5586.           Purpose   Computes the product over an iteration
  5587.  
  5588.           Example
  5589.  
  5590.           ~LABEL A[1..3,1..3],B[1..3,1..3],C[1..3,1..3]
  5591.           ~ITERATE I FROM 1 TO 3
  5592.           ~ITERATE J FROM 1 TO 3
  5593.           ~ITERATE K FROM 1 TO 3
  5594.           ~A[I,J] : s[I,J]
  5595.           A[1,1] : s[1,1]
  5596.           A[2,1] : s[2,1]
  5597.           A[3,1] : s[3,1]
  5598.           A[1,2] : s[1,2]
  5599.           A[2,2] : s[2,2]
  5600.           A[2,3] : s[2,3]
  5601.           A[3,1] : s[3,1]
  5602.           A[3,2] : s[3,2] 
  5603.           A[3,3] : s[3,3]
  5604.           ~B[I,J] : t[I,J]
  5605.           B[1,1] : t[1,1]
  5606.           B[2,1] : t[2,1]
  5607.           B[3,1] : t[3,1]
  5608.           B[1,2] : t[1,2]
  5609.           B[2,2] : t[2,2]
  5610.           B[3,2] : t[3,2]
  5611.           B[1,3] : t[1,3]
  5612.           B[2,3] : t[2,3]
  5613.           B[3,3] : t[3,3]
  5614.           ~C[I,J] := PRODUCT(K) A[I,K] + B[K,J]
  5615.           C[1,1] : (s[1,1] + t[1,1])*(s[1,2] + t[2,1])*(s[1,3] + t[3,1])
  5616.           C[2,1] : (s[2,1] + t[1,1])*(s[2,2] + t[2,1])*(s[2,3] + t[3,1])
  5617.           C[3,1] : (s[3,1] + t[1,1])*(s[3,2] + t[2,1])*(s[3,3] + t[3,1])
  5618.           C[1,2] : (s[1,1] + t[1,2])*(s[1,2] + t[2,2])*(s[1,3] + t[3,2])
  5619.           C[2,2] : (s[2,1] + t[1,2])*(s[2,2] + t[2,2])*(s[2,3] + t[3,2])
  5620.           C[3,2] : (s[3,1] + t[1,2])*(s[3,2] + t[2,2])*(s[3,3] + t[3,2])
  5621.           C[1,3] : (s[1,1] + t[1,3])*(s[1,2] + t[2,3])*(s[1,3] + t[3,3])
  5622.           C[2,3] : (s[2,1] + t[1,3])*(s[2,2] + t[2,3])*(s[2,3] + t[3,3])
  5623.           C[3,3] : (s[3,1] + t[1,3])*(s[3,2] + t[2,3])*(s[3,3] + t[3,3])
  5624.  
  5625.  
  5626.  
  5627.  
  5628.  
  5629.  
  5630.  
  5631.  
  5632.  
  5633.                                                                          80
  5634.  
  5635.  
  5636.  
  5637.  
  5638.  
  5639.  
  5640.  
  5641.  
  5642.  
  5643.  
  5644.  
  5645.  
  5646.           Copyright 1987, 1989 Cerebral Software
  5647.  
  5648.           Example with Procedure
  5649.  
  5650.           PROCEDURE Example(LABEL L1,L2,L3) ;
  5651.             ITERATE I FROM 1 TO 3 ;
  5652.             ITERATE J FROM 1 TO 3 ;
  5653.             ITERATE K FROM 1 TO 3 ;
  5654.             L3[I,J] := PRODUCT(K) L1[I,K] + L2[K,J] ;
  5655.           EXIT
  5656.  
  5657.           ~LABEL A[1..3,1..3],B[1..3,1..3],C[1..3,1..3]
  5658.           ~ITERATE I FROM 1 TO 3
  5659.           ~ITERATE J FROM 1 TO 3
  5660.           ~A[I,J] : s[I,J]
  5661.           A[1,1] : s[1,1]
  5662.           A[2,1] : s[2,1]
  5663.           A[3,1] : s[3,1]
  5664.           A[1,2] : s[1,2]
  5665.           A[2,2] : s[2,2]
  5666.           A[2,3] : s[2,3]
  5667.           A[3,1] : s[3,1]
  5668.           A[3,2] : s[3,2] 
  5669.           A[3,3] : s[3,3]
  5670.           ~B[I,J] : t[I,J]
  5671.           B[1,1] : t[1,1]
  5672.           B[2,1] : t[2,1]
  5673.           B[3,1] : t[3,1]
  5674.           B[1,2] : t[1,2]
  5675.           B[2,2] : t[2,2]
  5676.           B[3,2] : t[3,2]
  5677.           B[1,3] : t[1,3]
  5678.           B[2,3] : t[2,3]
  5679.           B[3,3] : t[3,3]
  5680.           ~Example(A,B,C)
  5681.           C[1,1] : (s[1,1] + t[1,1])*(s[1,2] + t[2,1])*(s[1,3] + t[3,1])
  5682.           C[2,1] : (s[2,1] + t[1,1])*(s[2,2] + t[2,1])*(s[2,3] + t[3,1])
  5683.           C[3,1] : (s[3,1] + t[1,1])*(s[3,2] + t[2,1])*(s[3,3] + t[3,1])
  5684.           C[1,2] : (s[1,1] + t[1,2])*(s[1,2] + t[2,2])*(s[1,3] + t[3,2])
  5685.           C[2,2] : (s[2,1] + t[1,2])*(s[2,2] + t[2,2])*(s[2,3] + t[3,2])
  5686.           C[3,2] : (s[3,1] + t[1,2])*(s[3,2] + t[2,2])*(s[3,3] + t[3,2])
  5687.           C[1,3] : (s[1,1] + t[1,3])*(s[1,2] + t[2,3])*(s[1,3] + t[3,3])
  5688.           C[2,3] : (s[2,1] + t[1,3])*(s[2,2] + t[2,3])*(s[2,3] + t[3,3])
  5689.           C[3,3] : (s[3,1] + t[1,3])*(s[3,2] + t[2,3])*(s[3,3] + t[3,3])
  5690.  
  5691.  
  5692.  
  5693.  
  5694.  
  5695.  
  5696.  
  5697.  
  5698.  
  5699.                                                                          81
  5700.  
  5701.  
  5702.  
  5703.  
  5704.  
  5705.  
  5706.  
  5707.  
  5708.  
  5709.  
  5710.  
  5711.  
  5712.           Copyright 1987, 1989 Cerebral Software
  5713.  
  5714.           QUOTIENT
  5715.  
  5716.           Syntax    label2 := QUOTIENT(divisor{,pivot}) label1
  5717.  
  5718.           Purpose   Returns the quotient  of divisor  divided into  label1.
  5719.                     label1 must be an expression.
  5720.  
  5721.           Comment   pivot specifies  the lead  factor in  divisor.  If  you
  5722.                     want to divide a + b + c into a^2*b + b*c + a, then 'a'
  5723.                     would automatically be the pivot term of  divisor.  'b'
  5724.                     as the pivot term will give a different result.
  5725.           Example
  5726.  
  5727.           ~E1 : c^3 - d^3
  5728.           E1 : c^3 - d^3
  5729.           ~E2:=QUOTIENT(c - d) E1
  5730.           E2 : c^2 + c*d + d^2
  5731.  
  5732.           Example with Procedure
  5733.  
  5734.           PROCEDURE Example(LABEL L1,L2 ; PARAMETER P) ;
  5735.             L2 := QUOTIENT(P) L1 ;
  5736.           EXIT
  5737.  
  5738.           ~E1 : c^3 - d^3
  5739.           E1 : c^3 - d^3
  5740.           ~LABEL E2
  5741.           ~Example(E1,E2,(c - d))
  5742.           E2 : c^2 + c*d + d^2
  5743.  
  5744.  
  5745.  
  5746.  
  5747.  
  5748.  
  5749.  
  5750.  
  5751.  
  5752.  
  5753.  
  5754.  
  5755.  
  5756.  
  5757.  
  5758.  
  5759.  
  5760.  
  5761.  
  5762.  
  5763.  
  5764.  
  5765.                                                                          82
  5766.  
  5767.  
  5768.  
  5769.  
  5770.  
  5771.  
  5772.  
  5773.  
  5774.  
  5775.  
  5776.  
  5777.  
  5778.           Copyright 1987, 1989 Cerebral Software
  5779.  
  5780.           RADIANS
  5781.  
  5782.           Syntax    RADIANS
  5783.  
  5784.           Purpose   Forces trigonometric function to  evaluate arguments in
  5785.                     radians 
  5786.  
  5787.           Abbreviation   RAD
  5788.  
  5789.           Restriction    Cannot be used in a procedure.
  5790.  
  5791.           Example
  5792.  
  5793.           ~RADIANS
  5794.  
  5795.  
  5796.  
  5797.  
  5798.  
  5799.  
  5800.  
  5801.  
  5802.  
  5803.  
  5804.  
  5805.  
  5806.  
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812.  
  5813.  
  5814.  
  5815.  
  5816.  
  5817.  
  5818.  
  5819.  
  5820.  
  5821.  
  5822.  
  5823.  
  5824.  
  5825.  
  5826.  
  5827.  
  5828.  
  5829.  
  5830.  
  5831.                                                                          83
  5832.  
  5833.  
  5834.  
  5835.  
  5836.  
  5837.  
  5838.  
  5839.  
  5840.  
  5841.  
  5842.  
  5843.  
  5844.           Copyright 1987, 1989 Cerebral Software
  5845.  
  5846.           RAISE
  5847.  
  5848.           Syntax    {IN label} {ON iteration} RAISE expression
  5849.  
  5850.           Purpose   Raises an expression,  equation, relation belonging  to
  5851.                     label to the power of expression.
  5852.  
  5853.           Note      When  this command is used  with relations, there is no
  5854.                     check for analytical  validity of the operation.   (See
  5855.                     Chapter VIII - Relation Arithmetic)
  5856.  
  5857.           Example
  5858.  
  5859.           ~R1 : c < x < d
  5860.           R1 : c < x < d
  5861.           ~IN R1 RAISE c
  5862.           R1 : c^c < x^c < d^c
  5863.  
  5864.           Example with Procedure
  5865.  
  5866.           PROCEDURE Example(INTEGER N ; LABEL L ; PARAMETER P) ;
  5867.             ITERATE I FROM 1 TO N ;
  5868.             IN L[I] RAISE P ;
  5869.           EXIT
  5870.  
  5871.           ~LABEL V[1..3]
  5872.           ~ITERATE I FROM 1 TO 3
  5873.           ~V[I] : u[I]
  5874.           V[1] : u[1]
  5875.           V[2] : u[2]
  5876.           V[3] : u[3]
  5877.           ~Example(3,V,c) 
  5878.           V[1] : u[1]^c
  5879.           V[2] : u[2]^c
  5880.           V[3] : u[3]^c
  5881.  
  5882.  
  5883.  
  5884.  
  5885.  
  5886.  
  5887.  
  5888.  
  5889.  
  5890.  
  5891.  
  5892.  
  5893.  
  5894.  
  5895.  
  5896.  
  5897.                                                                          84
  5898.  
  5899.  
  5900.  
  5901.  
  5902.  
  5903.  
  5904.  
  5905.  
  5906.  
  5907.  
  5908.  
  5909.  
  5910.           Copyright 1987, 1989 Cerebral Software
  5911.  
  5912.           REMAINDER
  5913.  
  5914.           Syntax    label2 := REMAINDER(divisor {,pivot}) label1
  5915.  
  5916.           Purpose   divisor is divided into label1.  label2 is the result.
  5917.  
  5918.           Example
  5919.  
  5920.           ~E1 : c^2 + c*d + d^2
  5921.           E1 : c^2 + c*d + d^2
  5922.           ~E2:=REMAINDER(c-d,-d) E1
  5923.           E2 : 3*c^2
  5924.  
  5925.           Example with Procedure
  5926.  
  5927.           PROCEDURE Example(LABEL L1, L2 ; PARAMETER P) ;
  5928.             L2:=REMAINDER(P) L1 ;
  5929.           EXIT
  5930.  
  5931.           ~E1 : c^2 + c*d + d^2
  5932.           E1 : c^2 + c*d + d^2
  5933.           ~LABEL E2
  5934.           ~Example(E1,E2,(c-d))
  5935.           E2 : 3*d^2
  5936.  
  5937.  
  5938.  
  5939.  
  5940.  
  5941.  
  5942.  
  5943.  
  5944.  
  5945.  
  5946.  
  5947.  
  5948.  
  5949.  
  5950.  
  5951.  
  5952.  
  5953.  
  5954.  
  5955.  
  5956.  
  5957.  
  5958.  
  5959.  
  5960.  
  5961.  
  5962.  
  5963.                                                                          85
  5964.  
  5965.  
  5966.  
  5967.  
  5968.  
  5969.  
  5970.  
  5971.  
  5972.  
  5973.  
  5974.  
  5975.  
  5976.           Copyright 1987, 1989 Cerebral Software
  5977.  
  5978.           REPLACE
  5979.  
  5980.           Syntax    {IN label} {ON iteration} REPLACE {STRICTLY} expression
  5981.                     1 BY expression 2
  5982.  
  5983.           Purpose   Replaces expression 1 by expression 2
  5984.  
  5985.           Example
  5986.  
  5987.           ~E1 : u[j]/v[j] + c/d
  5988.           E1 : u[j]/v[j] + c/d
  5989.           ~REPLACE u[j]/v[j] BY c/d
  5990.           E1 : 2*c/d
  5991.            
  5992.           Example with Procedure
  5993.  
  5994.           PROCEDURE Example(LABEL L ; PARAMETER P1,P2) ;
  5995.             IN L REPLACE P1 BY P2 ;
  5996.           EXIT
  5997.  
  5998.           ~E1 : u[j]/v[j] + c/d
  5999.           E1 : u[j]/v[j] + c/d
  6000.           ~Example(E1,(u[j]/v[j]),(c/d))
  6001.           E1 : 2*c/d
  6002.  
  6003.  
  6004.  
  6005.  
  6006.  
  6007.  
  6008.  
  6009.  
  6010.  
  6011.  
  6012.  
  6013.  
  6014.  
  6015.  
  6016.  
  6017.  
  6018.  
  6019.  
  6020.  
  6021.  
  6022.  
  6023.  
  6024.  
  6025.  
  6026.  
  6027.  
  6028.  
  6029.                                                                          86
  6030.  
  6031.  
  6032.  
  6033.  
  6034.  
  6035.  
  6036.  
  6037.  
  6038.  
  6039.  
  6040.  
  6041.  
  6042.           Copyright 1987, 1989 Cerebral Software
  6043.  
  6044.           RIGHT
  6045.  
  6046.           Syntax    label 2 := RIGHT label 1
  6047.  
  6048.           Purpose   The right expression of label 1 is assigned to label 2
  6049.  
  6050.           Example
  6051.  
  6052.           ~R1 : c < d < e
  6053.           R1 : c < d < e
  6054.           ~E1 := RIGHT R1
  6055.           E1 : e
  6056.  
  6057.           Example with Procedure
  6058.  
  6059.           PROCEDURE Example(LABEL L1,L2) ;
  6060.             L2 := RIGHT L1 ;
  6061.           EXIT
  6062.  
  6063.           ~R1 : c < d < e
  6064.           R1 : c < d < e
  6065.           ~LABEL E1 
  6066.           ~Example(R1,E1) 
  6067.           E1 : e
  6068.  
  6069.  
  6070.  
  6071.  
  6072.  
  6073.  
  6074.  
  6075.  
  6076.  
  6077.  
  6078.  
  6079.  
  6080.  
  6081.  
  6082.  
  6083.  
  6084.  
  6085.  
  6086.  
  6087.  
  6088.  
  6089.  
  6090.  
  6091.  
  6092.  
  6093.  
  6094.  
  6095.                                                                          87
  6096.  
  6097.  
  6098.  
  6099.  
  6100.  
  6101.  
  6102.  
  6103.  
  6104.  
  6105.  
  6106.  
  6107.  
  6108.           Copyright 1987, 1989 Cerebral Software
  6109.  
  6110.           SAVE
  6111.  
  6112.           Syntax    SAVE {ALL | label} TO filename
  6113.  
  6114.           Purpose   Saves data to filename
  6115.  
  6116.           Restrictions   May not be used in a procedure.
  6117.  
  6118.           Note      When data is  saved to filename the  extension 'DAT' is
  6119.                     appended to it.   The data may be later  recalled using
  6120.                     the command LOAD.
  6121.  
  6122.           Example
  6123.  
  6124.           ~LABEL A[1..3,1..3]
  6125.           ~SAVE A TO DATA
  6126.           ~SAVE ALL TO DATA
  6127.           ~ITERATE I FROM 1 TO 3
  6128.           ~ITERATE J FROM 1 TO 3
  6129.           ~SAVE A[I,J] TO PARTS
  6130.  
  6131.  
  6132.  
  6133.  
  6134.  
  6135.  
  6136.  
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142.  
  6143.  
  6144.  
  6145.  
  6146.  
  6147.  
  6148.  
  6149.  
  6150.  
  6151.  
  6152.  
  6153.  
  6154.  
  6155.  
  6156.  
  6157.  
  6158.  
  6159.  
  6160.  
  6161.                                                                          88
  6162.  
  6163.  
  6164.  
  6165.  
  6166.  
  6167.  
  6168.  
  6169.  
  6170.  
  6171.  
  6172.  
  6173.  
  6174.           Copyright 1987, 1989 Cerebral Software
  6175.  
  6176.           SCIENTIFIC
  6177.  
  6178.           Syntax    SCIENTIFIC n
  6179.  
  6180.           Purpose   Forces  AMP  to   display  all   numerical  output   in
  6181.                     scientific notation.  n is the number of  characters to
  6182.                     display after the decimal point.  n can be a maximum of
  6183.                     15.
  6184.  
  6185.           Abbreviation   SCIEN
  6186.  
  6187.           Example
  6188.  
  6189.           ~SCIENTIFIC 6
  6190.  
  6191.  
  6192.  
  6193.  
  6194.  
  6195.  
  6196.  
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202.  
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208.  
  6209.  
  6210.  
  6211.  
  6212.  
  6213.  
  6214.  
  6215.  
  6216.  
  6217.  
  6218.  
  6219.  
  6220.  
  6221.  
  6222.  
  6223.  
  6224.  
  6225.  
  6226.  
  6227.                                                                          89
  6228.  
  6229.  
  6230.  
  6231.  
  6232.  
  6233.  
  6234.  
  6235.  
  6236.  
  6237.  
  6238.  
  6239.  
  6240.           Copyright 1987, 1989 Cerebral Software
  6241.  
  6242.           SOUND
  6243.  
  6244.           Syntax    SOUND {ON|OFF}
  6245.  
  6246.           Purpose   Controls the sound.  When sound is on a beep is emitted
  6247.                     when AMP detects a syntax or runtime error.
  6248.  
  6249.           Restrictions   Not permitted in procedures.
  6250.  
  6251.  
  6252.           Example
  6253.  
  6254.           ~SOUND OFF
  6255.           ~SOUND
  6256.           OFF
  6257.  
  6258.  
  6259.  
  6260.  
  6261.  
  6262.  
  6263.  
  6264.  
  6265.  
  6266.  
  6267.  
  6268.  
  6269.  
  6270.  
  6271.  
  6272.  
  6273.  
  6274.  
  6275.  
  6276.  
  6277.  
  6278.  
  6279.  
  6280.  
  6281.  
  6282.  
  6283.  
  6284.  
  6285.  
  6286.  
  6287.  
  6288.  
  6289.  
  6290.  
  6291.  
  6292.  
  6293.                                                                          90
  6294.  
  6295.  
  6296.  
  6297.  
  6298.  
  6299.  
  6300.  
  6301.  
  6302.  
  6303.  
  6304.  
  6305.  
  6306.           Copyright 1987, 1989 Cerebral Software
  6307.  
  6308.           STANDARD
  6309.  
  6310.           Syntax    STANDARD
  6311.  
  6312.           Purpose   Causes AMP to display all standard functions.
  6313.  
  6314.           Example
  6315.  
  6316.           ~STANDARD
  6317.  
  6318.  
  6319.  
  6320.  
  6321.  
  6322.  
  6323.  
  6324.  
  6325.  
  6326.  
  6327.  
  6328.  
  6329.  
  6330.  
  6331.  
  6332.  
  6333.  
  6334.  
  6335.  
  6336.  
  6337.  
  6338.  
  6339.  
  6340.  
  6341.  
  6342.  
  6343.  
  6344.  
  6345.  
  6346.  
  6347.  
  6348.  
  6349.  
  6350.  
  6351.  
  6352.  
  6353.  
  6354.  
  6355.  
  6356.  
  6357.  
  6358.  
  6359.                                                                          91
  6360.  
  6361.  
  6362.  
  6363.  
  6364.  
  6365.  
  6366.  
  6367.  
  6368.  
  6369.  
  6370.  
  6371.  
  6372.           Copyright 1987, 1989 Cerebral Software
  6373.  
  6374.           SWITCH
  6375.  
  6376.           Syntax    SWITCH label 
  6377.  
  6378.           Purpose   Switches the left and right sides of an equation.
  6379.  
  6380.           Example
  6381.  
  6382.           ~Q1 : a = b
  6383.           Q1 : a = b
  6384.           ~SWITCH Q1
  6385.           Q1 : b = a
  6386.  
  6387.           Example with Procedure
  6388.  
  6389.           PROCEDURE Example(LABEL L) ;
  6390.             SWITCH L
  6391.           EXIT
  6392.  
  6393.           ~Q1 : a = b
  6394.           Q1 : a = b
  6395.           ~Example(Q1)
  6396.           Q1 : b = a
  6397.  
  6398.  
  6399.  
  6400.  
  6401.  
  6402.  
  6403.  
  6404.  
  6405.  
  6406.  
  6407.  
  6408.  
  6409.  
  6410.  
  6411.  
  6412.  
  6413.  
  6414.  
  6415.  
  6416.  
  6417.  
  6418.  
  6419.  
  6420.  
  6421.  
  6422.  
  6423.  
  6424.  
  6425.                                                                          92
  6426.  
  6427.  
  6428.  
  6429.  
  6430.  
  6431.  
  6432.  
  6433.  
  6434.  
  6435.  
  6436.  
  6437.  
  6438.           Copyright 1987, 1989 Cerebral Software
  6439.  
  6440.           SUBTRACT
  6441.  
  6442.           Syntax    {IN label} {ON iteration} SUBTRACT expression
  6443.  
  6444.           Purpose   Subtracts  expression  FROM  expression,  equation,  or
  6445.                     relation. 
  6446.  
  6447.           Example
  6448.  
  6449.           ~R1 : c <  c + x < d
  6450.           R1 : c <  c + x < d
  6451.           ~SUBTRACT c
  6452.           R1 : 0 < x < - c + d
  6453.  
  6454.           Example with Procedure
  6455.  
  6456.           PROCEDURE Example(INTEGER N ; LABEL L ; PARAMETER P) ;
  6457.             ITERATE I FROM 1 TO N ;
  6458.             IN L[I] SUBTRACT P ;
  6459.           EXIT
  6460.  
  6461.           ~ITERATE I FROM 1 TO 3
  6462.           ~LABEL V[1..3]
  6463.           ~V[I] : u[I] + c
  6464.           V[1] : u[1] + c
  6465.           V[2] : u[2] + c
  6466.           V[3] : u[3] + c
  6467.           ~Example(3,V,c)
  6468.           V[1] : u[1]
  6469.           V[2] : u[2]
  6470.           V[3] : u[3]
  6471.  
  6472.  
  6473.  
  6474.  
  6475.  
  6476.  
  6477.  
  6478.  
  6479.  
  6480.  
  6481.  
  6482.  
  6483.  
  6484.  
  6485.  
  6486.  
  6487.  
  6488.  
  6489.  
  6490.  
  6491.                                                                          93
  6492.  
  6493.  
  6494.  
  6495.  
  6496.  
  6497.  
  6498.  
  6499.  
  6500.  
  6501.  
  6502.  
  6503.  
  6504.           Copyright 1987, 1989 Cerebral Software
  6505.  
  6506.           SUM
  6507.  
  6508.           Syntax    label := SUM(iteration{,iteration}) expression
  6509.  
  6510.           Purpose   Sums expressions on iteration.  Command is primary used
  6511.                     for tensor manipulations e.g. matrix multiplication.
  6512.  
  6513.           Example
  6514.  
  6515.           ~LABEL A[1..3,1..3],B[1..3,1..3],C[1..3,1..3]
  6516.           ~ITERATE I FROM 1 TO 3
  6517.           ~ITERATE J FROM 1 TO 3
  6518.           ~ITERATE K FROM 1 TO 3
  6519.           ~A[I,J] : s[I,J]
  6520.           A[1,1] : s[1,1]
  6521.           A[2,1] : s[2,1]
  6522.           A[3,1] : s[3,1]
  6523.           A[1,2] : s[1,3]
  6524.           A[2,2] : s[2,3]
  6525.           A[3,3] : s[3,3]
  6526.           A[3,1] : s[3,1]
  6527.           A[3,2] : s[3,2] 
  6528.           A[3,3] : s[3,3]
  6529.           ~B[I,J] : t[I,J]
  6530.           B[1,1] : t[1,1]
  6531.           B[2,1] : t[2,1]
  6532.           B[3,1] : t[3,1]
  6533.           B[1,2] : t[1,2]
  6534.           B[2,2] : t[2,2]
  6535.           B[3,2] : t[3,2]
  6536.           B[1,3] : t[1,3]
  6537.           B[2,3] : t[2,3]
  6538.           B[3,3] : t[3,3]
  6539.           ~C[I,J] := SUM(K) A[I,K]*B[K,J]
  6540.           C[1,1] : s[1,1]*t[1,1] + s[1,2]*t[2,1] + s[1,3]*t[3,1]
  6541.           C[2,1] : s[2,1]*t[1,1] + s[2,2]*t[2,1] + s[2,3]*t[3,1]
  6542.           C[3,1] : s[3,1]*t[1,1] + s[3,2]*t[2,1] + s[3,3]*t[3,1]
  6543.           C[1,2] : s[1,1]*t[1,2] + s[1,2]*t[2,2] + s[1,3]*t[3,2]
  6544.           C[2,2] : s[2,1]*t[1,2] + s[2,2]*t[2,2] + s[2,3]*t[3,2]
  6545.           C[3,2] : s[3,1]*t[1,2] + s[3,2]*t[2,2] + s[3,3]*t[3,2]
  6546.           C[1,3] : s[1,1]*t[1,3] + s[1,2]*t[2,3] + s[1,3]*t[3,3]
  6547.           C[2,3] : s[2,1]*t[1,3] + s[2,2]*t[2,3] + s[2,3]*t[3,3]
  6548.           C[3,3] : s[3,1]*t[1,3] + s[3,2]*t[2,3] + s[3,3]*t[3,3]
  6549.  
  6550.           Comment   The  above example  demonstrates  how  go multiply  two
  6551.                     matices A, and B to give the resulting matrix, C.
  6552.  
  6553.  
  6554.  
  6555.  
  6556.  
  6557.                                                                          94
  6558.  
  6559.  
  6560.  
  6561.  
  6562.  
  6563.  
  6564.  
  6565.  
  6566.  
  6567.  
  6568.  
  6569.  
  6570.           Copyright 1987, 1989 Cerebral Software
  6571.  
  6572.           Example with Procedure
  6573.  
  6574.           PROCEDURE Example(INTEGER N ; LABEL L1, L2, L3) ;
  6575.             ITERATE I FROM 1 TO N ;
  6576.             ITERATE J FROM 1 TO N ;
  6577.             ITERATE K FROM 1 TO N ;
  6578.             L3[I,J]:=SUM(K) L1[I,K]*L2[K,J] ;
  6579.           EXIT
  6580.  
  6581.           ~LABEL A[1..3,1..3],B[1..3,1..3],C[1..3,1..3]
  6582.           ~ITERATE I FROM 1 TO 3
  6583.           ~ITERATE J FROM 1 TO 3
  6584.           ~A[I,J] : s[I,J]
  6585.           A[1,1] : s[1,1]
  6586.           A[2,1] : s[2,1]
  6587.           A[3,1] : s[3,1]
  6588.           A[1,2] : s[1,2]
  6589.           A[2,2] : s[2,2]
  6590.           A[2,3] : s[2,3]
  6591.           A[3,1] : s[3,1]
  6592.           A[3,2] : s[3,2] 
  6593.           A[3,3] : s[3,3]
  6594.           ~B[I,J] : t[I,J]
  6595.           B[1,1] : t[1,1]
  6596.           B[2,1] : t[2,1]
  6597.           B[3,1] : t[3,1]
  6598.           B[1,2] : t[1,2]
  6599.           B[2,2] : t[2,2]
  6600.           B[3,2] : t[3,2]
  6601.           B[1,3] : t[1,3]
  6602.           B[2,3] : t[2,3]
  6603.           ~Example(3,A,B,C)
  6604.           C[1,1] : s[1,1]*t[1,1] + s[1,2]*t[2,1] + s[1,3]*t[3,1]
  6605.           C[2,1] : s[2,1]*t[1,1] + s[2,2]*t[2,1] + s[2,3]*t[3,1]
  6606.           C[3,1] : s[3,1]*t[1,1] + s[3,2]*t[2,1] + s[3,3]*t[3,1]
  6607.           C[1,2] : s[1,1]*t[1,2] + s[1,2]*t[2,2] + s[1,3]*t[3,2]
  6608.           C[2,2] : s[2,1]*t[1,2] + s[2,2]*t[2,2] + s[2,3]*t[3,2]
  6609.           C[3,2] : s[3,1]*t[1,2] + s[3,2]*t[2,2] + s[3,3]*t[3,2]
  6610.           C[1,3] : s[1,1]*t[1,3] + s[1,2]*t[2,3] + s[1,3]*t[3,3]
  6611.           C[2,3] : s[2,1]*t[1,3] + s[2,2]*t[2,3] + s[2,3]*t[3,3]
  6612.           C[3,3] : s[3,1]*t[1,3] + s[3,2]*t[2,3] + s[3,3]*t[3,3]
  6613.  
  6614.  
  6615.  
  6616.  
  6617.  
  6618.  
  6619.  
  6620.  
  6621.  
  6622.  
  6623.                                                                          95
  6624.  
  6625.  
  6626.  
  6627.  
  6628.  
  6629.  
  6630.  
  6631.  
  6632.  
  6633.  
  6634.  
  6635.  
  6636.           Copyright 1987, 1989 Cerebral Software
  6637.  
  6638.           UNIT
  6639.  
  6640.           Syntax    UNIT {unit list}
  6641.  
  6642.           Purpose   Used to declare  units.  If  unit list is omitted  then
  6643.                     AMP  will  respond  with  the  units  which  have  been
  6644.                     declared.
  6645.  
  6646.           Restriction    Cannot be used in a procedure.
  6647.  
  6648.           Abbreviation   UNIT
  6649.  
  6650.           Example   ~UNIT m, dyne, cm, sec
  6651.                     ~UNIT
  6652.                     cm      dyne      m      sec
  6653.  
  6654.  
  6655.  
  6656.  
  6657.  
  6658.  
  6659.  
  6660.  
  6661.  
  6662.  
  6663.  
  6664.  
  6665.  
  6666.  
  6667.  
  6668.  
  6669.  
  6670.  
  6671.  
  6672.  
  6673.  
  6674.  
  6675.  
  6676.  
  6677.  
  6678.  
  6679.  
  6680.  
  6681.  
  6682.  
  6683.  
  6684.  
  6685.  
  6686.  
  6687.  
  6688.  
  6689.                                                                          96
  6690.  
  6691.  
  6692.  
  6693.  
  6694.  
  6695.  
  6696.  
  6697.  
  6698.  
  6699.  
  6700.  
  6701.  
  6702.           Copyright 1987, 1989 Cerebral Software
  6703.  
  6704.           VARIABLE
  6705.  
  6706.           Syntax    VARIABLE
  6707.  
  6708.           Purpose   Causes AMP to display variables which are in use
  6709.  
  6710.           Abbreviation   VAR for VARIABLE
  6711.  
  6712.           Restriction    Cannot be used in a procedure.
  6713.  
  6714.           Example   ~VARIABLE
  6715.  
  6716.  
  6717.  
  6718.  
  6719.  
  6720.  
  6721.  
  6722.  
  6723.  
  6724.  
  6725.  
  6726.  
  6727.  
  6728.  
  6729.  
  6730.  
  6731.  
  6732.  
  6733.  
  6734.  
  6735.  
  6736.  
  6737.  
  6738.  
  6739.  
  6740.  
  6741.  
  6742.  
  6743.  
  6744.  
  6745.  
  6746.  
  6747.  
  6748.  
  6749.  
  6750.  
  6751.  
  6752.  
  6753.  
  6754.  
  6755.                                                                          97
  6756.  
  6757.  
  6758.  
  6759.  
  6760.  
  6761.  
  6762.  
  6763.  
  6764.  
  6765.  
  6766.  
  6767.  
  6768.           Copyright 1987, 1989 Cerebral Software
  6769.  
  6770.           VII.Procedures  
  6771.  
  6772.           Procedure Heading
  6773.  
  6774.           Syntax    PROCEDURE name(type list {;type list}) ;
  6775.  
  6776.           Where     name is an alphanumeric string
  6777.  
  6778.                     type is   INTEGER     or
  6779.                               FUNCTION    or
  6780.                               LABEL       or
  6781.                               PARAMETER   or
  6782.                               INDEX       or
  6783.                               VARIABLE
  6784.  
  6785.                     list is  a list  of  alphanumeric strings  separated by
  6786.                          commas.
  6787.  
  6788.           Rule (1)  All alphanumeric strings are  limited to 16 characters.
  6789.                     Thus  name  and the  alphanumeric  strings in  list are
  6790.                     limited to 16 characters.
  6791.  
  6792.                (2)  None of the alphanumeric strings may be subscripted.
  6793.  
  6794.           Example   PROCEDURE cross(LABEL L) ;
  6795.  
  6796.                     PROCEDURE example(INTEGER N ; LABEL L ; PARAMETER p,q);
  6797.  
  6798.           Usage of various types
  6799.  
  6800.           INTEGER  parameters  are  used  to  declare variable  labels  and
  6801.           iterations.
  6802.  
  6803.           Example   PROCEDURE INTEX(INTEGER M,N ; LABEL L) ;
  6804.                       LABEL T[M..N] ;
  6805.                       ITERATE I FROM M TO N ;
  6806.                          .
  6807.                          .
  6808.                          .
  6809.                       EXIT
  6810.  
  6811.                     ~INTEX(3, 3 + 4, L) ;
  6812.  
  6813.  
  6814.  
  6815.  
  6816.  
  6817.  
  6818.  
  6819.  
  6820.  
  6821.                                                                          98
  6822.  
  6823.  
  6824.  
  6825.  
  6826.  
  6827.  
  6828.  
  6829.  
  6830.  
  6831.  
  6832.  
  6833.  
  6834.           Copyright 1987, 1989 Cerebral Software
  6835.  
  6836.           FUNCTION parameters are  used for establishing identities.   Note
  6837.           that standard function may not be used.
  6838.  
  6839.           Example   PROCEDURE FUNCEX(FUNCTION f; PARAMETER p,q; LABEL L );
  6840.                       IN L REPLACE f(p*q) BY f(p)*f(q) ;
  6841.                     EXIT 
  6842.  
  6843.                     ~E : g(x*y)
  6844.                     ~FUNCEX(g,x,y,R)
  6845.                     E : g(x)*g(y)
  6846.  
  6847.           LABEL parameters must be contained in all procedures.
  6848.  
  6849.           PARAMETER  parameters   may  be   indices,  numbers,   variables,
  6850.           functions,  summations,  products,  derivatives,   integrals,  or
  6851.           labels provided that the labels have only expressions assigned to
  6852.           them.   Parameters may also  be complex expressions surrounded by
  6853.           parentheses.
  6854.  
  6855.           Example   PROCEDURE PAREX(PARAMETER a,b,c,d,e ; LABEL L) ;
  6856.                          .
  6857.                          .
  6858.                          .
  6859.                     EXIT
  6860.  
  6861.                     ~PAREX(j,SIGMA{j=1,3}(x[j]),D[x](f(x[j])),(j + x[j]),L)
  6862.  
  6863.  
  6864.           INDEX parameters are used to manipulate summations or products.
  6865.  
  6866.           Example   PROCEDURE EXIND(INDEX j ; LABEL L) ;
  6867.                       IN L EXPAND SIGMA ON j ;
  6868.                     EXIT 
  6869.  
  6870.                     ~E : SIGMA{j=1,4}(x[j])
  6871.                     ~EXIND(j,E)
  6872.  
  6873.           VARIABLE parameters are used to manipulate variables.
  6874.  
  6875.           Example   PROCEDURE VAREX(VARIABLE v ; LABEL L) ;
  6876.                       IN L DISTRIBUTE D ON v ;
  6877.                     EXIT
  6878.  
  6879.                     ~E : D[x](f(x) + g(x))
  6880.                     ~VAREX(x,E)
  6881.                     E : D[x](f(x)) + D[x](g(x))
  6882.  
  6883.  
  6884.  
  6885.  
  6886.  
  6887.                                                                          99
  6888.  
  6889.  
  6890.  
  6891.  
  6892.  
  6893.  
  6894.  
  6895.  
  6896.  
  6897.  
  6898.  
  6899.  
  6900.           Copyright 1987, 1989 Cerebral Software
  6901.  
  6902.           Combinations of indexes, functions and variables may be used.
  6903.  
  6904.           Example   PROCEDURE  COMEX(INDEX  j  ; FUNCTION  f  ;  VARIABLE v
  6905.           ;         LABEL L) ;
  6906.                       IN L REPLACE f[j](v[j]) BY v[j] ;
  6907.                     EXIT 
  6908.  
  6909.                     ~E : g[k](x[k])
  6910.                     ~COMEX(k,g,x,E) 
  6911.                     E : x[k]
  6912.  
  6913.  
  6914.  
  6915.  
  6916.  
  6917.  
  6918.  
  6919.  
  6920.  
  6921.  
  6922.  
  6923.  
  6924.  
  6925.  
  6926.  
  6927.  
  6928.  
  6929.  
  6930.  
  6931.  
  6932.  
  6933.  
  6934.  
  6935.  
  6936.  
  6937.  
  6938.  
  6939.  
  6940.  
  6941.  
  6942.  
  6943.  
  6944.  
  6945.  
  6946.  
  6947.  
  6948.  
  6949.  
  6950.  
  6951.  
  6952.  
  6953.                                                                         100
  6954.  
  6955.  
  6956.  
  6957.  
  6958.  
  6959.  
  6960.  
  6961.  
  6962.  
  6963.  
  6964.  
  6965.  
  6966.           Copyright 1987, 1989 Cerebral Software
  6967.  
  6968.           VIII.Relation Arithmetic
  6969.  
  6970.                When  computations   are  performed  using   the  assignment
  6971.           operator   ":="  on  combinations  of  relations,  equations  and
  6972.           expressions, the ordering of  expressions in the relation  may be
  6973.           rearranged to make certain the operations are analytically valid.
  6974.           The following rules describe valid  operations on combinations of
  6975.           relations, equations,  and expressions  and how  these operations
  6976.           are performed.
  6977.  
  6978.  
  6979.           Let D[j] : dl[j] < dc[j] < dr[j]
  6980.               S[j] : sl[j] < sr[j]
  6981.                   Q : ql = qr
  6982.                   E : e
  6983.  
  6984.           d_[j] can represent dl[j], dc[j], dr[j].
  6985.           s_[j] can represent sl[j], sr[j].
  6986.  
  6987.           In the above  relations and the  following discussion, <= may  be
  6988.           substituted.
  6989.  
  6990.           d_[j], s_[j] may not contain any complex expressions unless those
  6991.           expressions are contained in magnitudes. 
  6992.  
  6993.           d_[j], s_[j] >=  0 if d_[j], s_[j]  is a magnitude or  a positive
  6994.           number.
  6995.  
  6996.           d_[j], s_[j] <= 0 if d_[j], s_[j] is a negative number.
  6997.  
  6998.           D[j] + D[k]    is always valid.
  6999.  
  7000.                ~R:=D[j] + D[k]
  7001.                R : dl[j] + dl[k] < dc[j] + dc[k] < dr[j] + dr[k]
  7002.  
  7003.           D[j] - D[k]    is always valid.
  7004.  
  7005.                ~R:=D[j] - D[k]
  7006.                R : dl[j] - dr[k] < dc[j] - dc[k] < -dl[k] + dr[j]
  7007.  
  7008.           D[j]*D[k]      is valid when  1)   dl[j] >= 0 and dl[k] >= 0 or
  7009.                                         2)   dr[j] <= 0 and dr[k] <= 0
  7010.  
  7011.                ~R := D[j]*D[k]
  7012.  
  7013.                When condition 1) is true.
  7014.                R : dl[j]*dl[k] < dc[j]*dc[k] < dr[j]*dr[k]
  7015.  
  7016.                When condition 2) is true.
  7017.                R : dr[j]*dr[k] < dc[j]*dc[k] < dl[j]*dl[k]
  7018.  
  7019.                                                                         101
  7020.  
  7021.  
  7022.  
  7023.  
  7024.  
  7025.  
  7026.  
  7027.  
  7028.  
  7029.  
  7030.  
  7031.  
  7032.           Copyright 1987, 1989 Cerebral Software
  7033.  
  7034.  
  7035.           D[j]/D[k] is never valid.
  7036.  
  7037.           D[j]^D[k] is valid when  dl[j] >= 0
  7038.  
  7039.                ~R := D[j]^D[k]
  7040.                R : dl[j]^dl[k] < dc[j]^dc[k] < dr[j]^dr[k]
  7041.  
  7042.           Operations involving D[_] and S[_] are never valid.
  7043.  
  7044.           D[j] + E  is always valid.
  7045.  
  7046.                ~R := D[j] + E
  7047.                R : dl[j] + e < dc[j] + e < dr[j] + e
  7048.  
  7049.           D[j] - E  is always valid.
  7050.  
  7051.                ~R := D[j] - E
  7052.                R : dl[j] - e < dc[j] - e < dr[j] - e
  7053.  
  7054.           D[j]*E         is valid when  1) dl[j] >= 0 and e >= 0 or
  7055.                                         2) dl[j] >= 0 and e <= 0 or
  7056.                                         3) dr[j] <= 0 and e >= 0 or
  7057.                                         4) dr[j] <= 0 and e <= 0
  7058.  
  7059.                ~R := D[j]*E
  7060.  
  7061.                When conditions 1) and 3) is true :
  7062.                R : dl[j]*e < dc[j]*e < dr[j]*e
  7063.  
  7064.                When conditions 2) and 4) is true :
  7065.                R : dr[j]*e < dc[j]*e < dl[j]*e
  7066.  
  7067.           D[j]/E         is valid when  1) dl[j] >= 0 and e >= 0 or
  7068.                                         2) dl[j] >= 0 and e <= 0 or
  7069.                                         3) dr[j] <= 0 and e >= 0 or
  7070.                                         4) dr[j] <= 0 and e <= 0
  7071.  
  7072.                ~R := D[j]*E
  7073.  
  7074.                When conditions 1) and 3) are true :
  7075.                R : dl[j]*e < dc[j]*e < dr[j]*e
  7076.  
  7077.                When conditions 2) and 4) are true :
  7078.                R : dr[j]*e < dc[j]*e < dl[j]*e
  7079.  
  7080.           D[j]^E         is valid when  dl[j] >= 0
  7081.  
  7082.                ~R := D[j]^E
  7083.                R : dl[j]^e < dc[j]^e < dr[j]^e
  7084.  
  7085.                                                                         102
  7086.  
  7087.  
  7088.  
  7089.  
  7090.  
  7091.  
  7092.  
  7093.  
  7094.  
  7095.  
  7096.  
  7097.  
  7098.           Copyright 1987, 1989 Cerebral Software
  7099.  
  7100.  
  7101.           S[j] + D[k]    is never valid.
  7102.  
  7103.           S[j] - D[k]    is never valid.
  7104.  
  7105.           S[j] * D[k]    is never valid.
  7106.  
  7107.           S[j] / D[k]    is never valid.
  7108.  
  7109.           S[j] ^ D[k]    is never valid.
  7110.  
  7111.           S[j] + Q       is always valid.
  7112.  
  7113.                ~R := S[j] +   Q
  7114.                R : sl[j] + ql < sr[j] + qr
  7115.  
  7116.           S[j] - Q       is always valid.
  7117.  
  7118.                ~R := S[j] - Q
  7119.                R : sl[j] - ql < sr - qr
  7120.  
  7121.           S[j]*Q    is valid when
  7122.                     1) sl[j] >= 0 and (qr >= 0 or ql >= 0) 
  7123.                                    2) sr[j] <= 0 and (qr >= 0 or ql >= 0)
  7124.                                    3) sl[j] >= 0 and (qr <= 0 or ql <= 0)
  7125.                                    4) sr[j] <= 0 and (qr <= 0 or ql <= 0)
  7126.                ~R := S[j]*Q
  7127.  
  7128.                When conditions 1) and 2) are true
  7129.                R : sl[j]*ql < sr[j]*qr
  7130.  
  7131.                When conditions 3) and 4) are true
  7132.                R : sr[j]*ql < sl[j]*qr
  7133.  
  7134.           S[j]/Q    is valid when  1) sl[j] >= 0 and (qr >= 0 or ql >= 0) 
  7135.                                    2) sr[j] <= 0 and (qr >= 0 or ql >= 0)
  7136.                                    3) sl[j] >= 0 and (qr <= 0 or ql <= 0)
  7137.                                    4) sr[j] <= 0 and (qr <= 0 or ql <= 0)
  7138.                ~R := S[j]/Q
  7139.  
  7140.                When conditions 1) and 2) are true
  7141.                R : sl[j]*ql < sr[j]*qr
  7142.  
  7143.                When conditions 3) and 4) are true
  7144.                R : sr[j]*ql < sl[j]*qr
  7145.  
  7146.           S[j]^Q    is valid when  sl[j] >= 0
  7147.  
  7148.                ~R := S[j]^Q
  7149.                R : sl[j]^ql < sr[j]^qr
  7150.  
  7151.                                                                         103
  7152.  
  7153.  
  7154.  
  7155.  
  7156.  
  7157.  
  7158.  
  7159.  
  7160.  
  7161.  
  7162.  
  7163.  
  7164.           Copyright 1987, 1989 Cerebral Software
  7165.  
  7166.  
  7167.           Q + D[k]  is never valid.
  7168.  
  7169.           Q - D[k]  is never valid.
  7170.  
  7171.           Q / D[k]  is never valid.
  7172.  
  7173.           Q ^ D[k] is never valid.
  7174.  
  7175.           Q + S[k] is always valid.
  7176.  
  7177.                ~R := Q + S[K]
  7178.                R : ql + sl[k] < qr + sr[k]
  7179.  
  7180.           Q - S[k] is always valid.
  7181.  
  7182.                ~R := Q - S[k]
  7183.                R : ql - sr[k] < qr - sl[k]
  7184.  
  7185.           Q * S[k] is valid when   1) (ql <= 0 or qr <= 0) and sr[k] <= 0
  7186.                                    2) (ql <= 0 or qr <= 0) and sl[k] >= 0
  7187.                                    3) (ql >= 0 or qr >= 0) and sr[k] <= 0
  7188.                                    4) (ql >= 0 or qr >= 0) and sl[k] >= 0
  7189.  
  7190.                ~R := Q + S[k]
  7191.  
  7192.                When conditions 1) and 2) are true :
  7193.                R : ql*sr[k] < qr*sl[k]
  7194.  
  7195.                When conditions 3) and 4) are true :
  7196.                R : ql*sl[k] < qr*sr[k]
  7197.  
  7198.           Q / S[k] is valid when   1) (ql <= 0 or qr <= 0) and sr[k] <= 0
  7199.                                    2) (ql <= 0 or qr <= 0) and sl[k] >= 0
  7200.                                    3) (ql >= 0 or qr >= 0) and sr[k] <= 0
  7201.                                    4) (ql >= 0 or qr >= 0) and sl[k] >= 0
  7202.  
  7203.                ~R := Q/S[k]
  7204.  
  7205.                When conditions 1) and 4) are true:
  7206.                R : ql*sl[k] < ql*sr[k]
  7207.  
  7208.                When conditions 2) and 3) are true:
  7209.                R : ql*sr[k] < qr*sl[k]
  7210.  
  7211.           Q ^ S[k] is valid when   ql >= 0 or qr >= 0
  7212.  
  7213.                ~R := Q^S[k]
  7214.                R : ql^sl[k] < qr^sr[k]
  7215.  
  7216.  
  7217.                                                                         104
  7218.  
  7219.  
  7220.  
  7221.  
  7222.  
  7223.  
  7224.  
  7225.  
  7226.  
  7227.  
  7228.  
  7229.  
  7230.           Copyright 1987, 1989 Cerebral Software
  7231.  
  7232.           E + D[k] is valid
  7233.  
  7234.                ~R : E + D[k]
  7235.                R : e + dl[k] < e + dc[k] < e + dr[k]
  7236.  
  7237.           E - D[k] is valid
  7238.  
  7239.                ~R : E - D[k]
  7240.                R : e - dr[k] < e - dc[k] < e - dl[k]
  7241.  
  7242.           E * D[k] is valid when   1) e <= 0
  7243.                                    2) e >= 0
  7244.  
  7245.                ~R : E * D[k]
  7246.  
  7247.                When condition 1) is true
  7248.                R : e*dr[k] < e*dc[k] < e*dl[k]
  7249.  
  7250.                When condition 2) is true
  7251.                R : e*dl[k] < e*dc[k] < e*dr[k]
  7252.  
  7253.           E / D[k] is valid when 1) e <= 0 and (dl[k], dc[k], dr[k] not 0)
  7254.                                  2) e >= 0 and (dl[k], dc[k], dr[k] not 0)
  7255.  
  7256.                ~R := E/D[k]
  7257.  
  7258.                When condition 1) is true
  7259.                R : e/dl[k] < e/dc[k] <  e/dr[k]
  7260.  
  7261.                When conditino 2) is true
  7262.                R : e/dr[k] < e/dc[k] < e/dl[k]
  7263.  
  7264.           E ^ D[k] is valid when e >= 0
  7265.  
  7266.                ~R := E^D[k]
  7267.                R : e^dl[k] < e^dc[k] < e^dr[k]
  7268.  
  7269.           A potential invalid operation is flagged by the program.
  7270.  
  7271.  
  7272.  
  7273.  
  7274.  
  7275.  
  7276.  
  7277.  
  7278.  
  7279.  
  7280.  
  7281.  
  7282.  
  7283.                                                                         105
  7284.  
  7285.  
  7286.  
  7287.  
  7288.  
  7289.  
  7290.  
  7291.  
  7292.  
  7293.  
  7294.  
  7295.  
  7296.           Copyright 1987, 1989 Cerebral Software
  7297.  
  7298.           INDEX
  7299.            Last  (6)
  7300.           ":" (34)
  7301.           ":=" (37)
  7302.           -> (5), (8)
  7303.           <- (5), (8)
  7304.           ADD (39)
  7305.           ArcCos (14)
  7306.           ArcHypCos (13)
  7307.           ArcHypSin (13)
  7308.           ArcHypTan (13)
  7309.           ArcSin (14)
  7310.           ArcTan (14)
  7311.           ASSIGN (34)
  7312.           Assignment (17)
  7313.           Back Space (5), (8)
  7314.           CENTER (41)
  7315.           CLEAR (42)
  7316.           COEFFICIENT (43)
  7317.           COLLECT (23), (44)
  7318.           Common logorithm (14)
  7319.           Compile (10)
  7320.           Complex (12)
  7321.           CONSTANT (46)
  7322.           Constants (18)
  7323.           COPY (6)
  7324.           Cos (14), (30)
  7325.           Cosine (14)
  7326.           Cr (5)
  7327.           Ctrl -> (5), (8)
  7328.           Ctrl <- (5), (8)
  7329.           Ctrl A (7)
  7330.           Ctrl cr (5)
  7331.           Ctrl D (7)
  7332.           Ctrl End (5), (8)
  7333.           Ctrl Home (5)
  7334.           Ctrl K (7)
  7335.           Ctrl L (7)
  7336.           Ctrl PgDn (5), (8)
  7337.           DECIMAL (47)
  7338.           Definition (17)
  7339.           DEGREES (48)
  7340.           Del (5), (8)
  7341.           Derivative (7), (49)
  7342.           Derivatives (11)
  7343.           Differential (7), (30), (50)
  7344.           DIR (6)
  7345.           DISPLAY (54)
  7346.           DISTRIBUTE (51), (52)
  7347.           DIVIDE (21), (53)
  7348.  
  7349.                                                                         106
  7350.  
  7351.  
  7352.  
  7353.  
  7354.  
  7355.  
  7356.  
  7357.  
  7358.  
  7359.  
  7360.  
  7361.  
  7362.           Copyright 1987, 1989 Cerebral Software
  7363.  
  7364.           Dos (6)
  7365.           ECHO (55)
  7366.           Edit Keys (5)
  7367.           Eigenvectors (25)
  7368.           End (5), (8)
  7369.           Equation (16)
  7370.           Esc (5)
  7371.           EXIT (56)
  7372.           Exp (14)
  7373.           EXPAND (22), (57), (58)
  7374.           Exponential function (14)
  7375.           Expressions (16)
  7376.           FACTOR (59)
  7377.           FLOATING (60)
  7378.           Floating point (12)
  7379.           FUNCTION (61), (98)
  7380.           Function Keys (6)
  7381.           Functions (11), (13)
  7382.           GRADIANS (62)
  7383.           Greek (6), (10)
  7384.           Help (6)
  7385.           HIGHBOUND (30), (63)
  7386.           Home (6), (8)
  7387.           HypCos (14)
  7388.           Hyperbolic cosine (14)
  7389.           Hyperbolic sine (14)
  7390.           Hyperbolic tangent (14)
  7391.           HypSin (14)
  7392.           HypTan (14)
  7393.           IMAGINARY (64)
  7394.           Imaginary Unit (11)
  7395.           IN (65)
  7396.           Index (12), (66), (98)
  7397.           Ins (5), (8)
  7398.           INTEGER (98)
  7399.           Integers (12)
  7400.           Integral (7), (30), (67)
  7401.           Integrals (11), (15)
  7402.           Inverse cosine (14)
  7403.           Inverse hyperbolic cosine. (13)
  7404.           Inverse hyperbolic sine (13)
  7405.           Inverse hyperbolic tangent (13)
  7406.           Inverse sine (14)
  7407.           Inverse tangent (14)
  7408.           ITERATE (68)
  7409.           Key Board (5)
  7410.           LABEL (11), (69), (98)
  7411.           Labels (11)
  7412.           LEFT (70)
  7413.           LIST (71)
  7414.  
  7415.                                                                         107
  7416.  
  7417.  
  7418.  
  7419.  
  7420.  
  7421.  
  7422.  
  7423.  
  7424.  
  7425.  
  7426.  
  7427.  
  7428.           Copyright 1987, 1989 Cerebral Software
  7429.  
  7430.           Ln (14)
  7431.           Load (10), (72)
  7432.           Log (14)
  7433.           LOWBOUND (30), (73)
  7434.           Magnitude (7)
  7435.           Magnitudes (16)
  7436.           Matrix (1)
  7437.           MULTIPLY (74)
  7438.           Natural logorithm (14)
  7439.           NEAT (21)
  7440.           NEGATE (75)
  7441.           Normal display (21)
  7442.           NOTATION (76)
  7443.           Numbers (11)
  7444.           ON (77)
  7445.           Overview (3)
  7446.           PARAMETER (98)
  7447.           PgDn (6), (8)
  7448.           PgUp (6), (8)
  7449.           PRINT (78)
  7450.           PROCEDURE (79), (98)
  7451.                Heading (98)
  7452.           Procedures (17)
  7453.           PRODUCT (80)
  7454.           Products (11), (15)
  7455.           Program (6)
  7456.           Quit (10)
  7457.           QUOTIENT (82)
  7458.           RADIANS (83)
  7459.           Rationals (12)
  7460.           Real (12)
  7461.           Recall (6)
  7462.           Relations (1)
  7463.           REMAINDER (85)
  7464.           REPLACE (30), (86)
  7465.           RIGHT (87)
  7466.           Rvs Tab (6)
  7467.           Save (6), (10), (88)
  7468.           SCIENTIFIC (89)
  7469.           SELECT (87)
  7470.           Sin (14), (30)
  7471.           Sine (13), (14)
  7472.           SOUND (90)
  7473.           Special Character Keys (7)
  7474.           STANDARD (91)
  7475.           STRICTLY (32)
  7476.           SUBTRACT (21), (93)
  7477.           SUM (94)
  7478.           Summations (11), (14)
  7479.           SWITCH (92)
  7480.  
  7481.                                                                         108
  7482.  
  7483.  
  7484.  
  7485.  
  7486.  
  7487.  
  7488.  
  7489.  
  7490.  
  7491.  
  7492.  
  7493.  
  7494.           Copyright 1987, 1989 Cerebral Software
  7495.  
  7496.           Tab (6)
  7497.           Tan (14)
  7498.           Tangent (13), (14)
  7499.           Tensor (1)
  7500.           UNIT (96)
  7501.           Units (12)
  7502.           VARIABLE (97), (98)
  7503.           Variables (11), (13)
  7504.  
  7505.  
  7506.  
  7507.  
  7508.  
  7509.  
  7510.  
  7511.  
  7512.  
  7513.  
  7514.  
  7515.  
  7516.  
  7517.  
  7518.  
  7519.  
  7520.  
  7521.  
  7522.  
  7523.  
  7524.  
  7525.  
  7526.  
  7527.  
  7528.  
  7529.  
  7530.  
  7531.  
  7532.  
  7533.  
  7534.  
  7535.  
  7536.  
  7537.  
  7538.  
  7539.  
  7540.  
  7541.  
  7542.  
  7543.  
  7544.  
  7545.  
  7546.  
  7547.                                                                         109
  7548.  
  7549.  
  7550.  
  7551.  
  7552.  
  7553.  
  7554.  
  7555.  
  7556.  
  7557.  
  7558.  
  7559.  
  7560.           Copyright 1987, 1989 Cerebral Software
  7561.  
  7562.  
  7563.                                       Order Form
  7564.  
  7565.  
  7566.           Please send 1 copy of AMP to :
  7567.  
  7568.           Name_____________________________________________________________
  7569.  
  7570.           Address__________________________________________________________
  7571.  
  7572.           City__________________________     State___________________
  7573.  
  7574.                                              Zip_____________________
  7575.  
  7576.           Phone (  )__________________
  7577.                 
  7578.                 (  )__________________
  7579.  
  7580.  
  7581.           Price    $ ______    (Orders placed before July 1 '89
  7582.                                 get introductory price of $47.  
  7583.                                 After July 1 '89 the price
  7584.                                 is $90)
  7585.           Shipping    3.00
  7586.           Tax                  (Ga. residents only 3%)
  7587.           ------------------
  7588.           Total
  7589.  
  7590.           Send order form to :
  7591.  
  7592.           Cerebral Software
  7593.           P.O. Box 80332
  7594.           Chamblee, GA 30366
  7595.  
  7596.           Ph (404)-452-1129
  7597.  
  7598.           (Call for wholesale or site pricing)
  7599.  
  7600.  
  7601.  
  7602.  
  7603.  
  7604.  
  7605.  
  7606.  
  7607.  
  7608.  
  7609.  
  7610.  
  7611.  
  7612.  
  7613.                                                                         110
  7614.  
  7615.  
  7616.  
  7617.  
  7618.  
  7619.