### # # # # # ### # # # # # # ## # # # # # # # # # # # # ####### # # # # # # # ### # # # # # # # # ##### # # # # # # # # # # # # # # # ## # # # ### AN ALGEBRAIC OBJECT VISUALIZATION LIBRARY FOR THE HP48 for S/SX/G/GX Version 0.1 (c) 1994 by Claude-Nicolas Fiechter 1. OVERVIEW =========== AVW48 provides three commands to convert algebraic objects (symbolic expressions, symbolic matrices and symbolic vectors) into graphic objects and to display them in a "pretty" way, similar to that of the calculator's EquationWriter. Advantages of AVW48 over the HP48's EquationWriter include: * Displays symbolic matrices and symbolic vectors (represented by lists of symbolics) in a nice, easily readable form; * Can display algebraic objects in three different sizes (using small, medium or large base characters); * Approximately 10 times faster than EquationWriter; * Does not introduce superfluous parentheses in displayed expressions; * The conversion to GROB does not affect the display (so it can be used in a user program without altering the current display). 2. INSTALLATION =============== AVW48 takes approximately 2.5Kb of memory and should work in any port of a HP48G(X) or SX. However it was developed and tested only on a HP48GX version P, so be careful if you use it with an earlier version of the GX or with a SX, and let me know if it works properly. AVW48 is a regular auto-attaching library (library number 910). To install it on your HP48 download the file "avw48v01.lib" onto your calculator (in BINARY mode), put the content of the created variable on the stack, store it the port of your choice (e.g., 'AVW48V01.LIB' RCL 0 STO) and power-cycle the calculator. The AVIEW command defined in AVW48 (see Section 3) is intended to be assigned to the VIEW key of the calculator. To do this you can type AVIEW 35.2 ASN Thereafter, whenever the calculator is in user mode, pressing [Left-Shift Down-Arrow] will display the algebraic object on top of the stack using AVIEW instead of the EquationWriter. 3. USE ====== AVW48 provides the following three commands: * AGROB ( alg-obj n -> grob ) Converts an algebraic object into a graphic object using the character size specified by the real value on top of the stack (see below). * ADISP ( alg-obj n -> ) Displays an algebraic object in graphic form using the character size specified by the real value on top of the stack. * AVIEW ( alg-obj -> alg-obj ) Displays an algebraic object in graphic form using small character size for symbolic vectors and matrices and medium character size for other objects. Leaves the algebraic object on the stack unmodified. Values for the character size are: 1 - small character size (3x7 variable-width font) 2 - medium character size (5x7 fixed-width font) 3 - large character size (5x9 fixed-width font) Other values produce a "Bad Argument Value" error. AVW48 accepts the following object types as algebraic - symbolic expressions and equations - symbolic matrices and vectors - real and complex numbers - unit objects A (n x m) symbolic matrix is represented by a list of the form {{A11 .. A1m}{A21 .. A2m} .. {An1 .. Anm}} where each element Aij is of one of the algebraic types accepted by AVW48 (including symbolic matrices or vectors). Similarly, a symbolic vector [(n x 1) matrices] is represented by a list of the form {A1 .. An}. Lists arguments that are not valid symbolic matrices or vectors produce a "Bad Argument Type" error. In AVIEW and ADISP, if the picture is bigger than the display, the arrow keys scroll the display and the right-shift arrow keys move the window to the corresponding boundary of the picture. The [Cancel/On] key terminates the application and returns to the standard display. 4. LIMITATIONS ============== * The following functions - integral - summation - derivative - xroot - | (where) function are not displayed in a "pretty" way by AVW48. Instead they are displayed as any other function with several arguments. For instance the expression 'XROOT(Y,2*X/3)' is displayed as 2 X XROOT(Y,---) (with larger parentheses and a dot between 2 and X) 3 and not as ___ Y |2 X |--- \| 3 as the EquationWriter would. Note, however, that the regular square root is displayed nicely by AVW48. * Unit objects are not displayed in a "pretty" way by AVW48. Instead they are displayed as strings between parentheses. For instance the expression '(2_m/s)*X' is displayed as (2_m/s) X (with a dot between the right parenthesis and X) and not as m ( 2_- ) X s as the EquationWriter would. The special treatment of the unit objects and of some of the functions above might be added in later version of AVW48. However, I didn't consider them a priority since I never use them in symbolic matrices, which was the main motivation for developing AVW48. 5. COPYRIGHT & DISCLAIMER OF WARRANTY ===================================== The AVW48 software is copyrighted (c) by Claude-Nicolas Fiechter, 1994. AVW48 is distributed in the hope that it will be useful, but the COPYRIGHT HOLDER PROVIDES THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM. This version of AVW48 is a GiftWare release. You may use it as long as you like, but only for non-commercial purposes and only as a private person. Permission to copy the whole, unmodified, AVW48 library is granted provided that the copies are not made or distributed for resale (excepting nominal copying fees) and provided that you conspicuously and appropriately include on each copy this copyright notice and disclaimer of warranty. 6. CONTACT ========== Gifts :), bug reports, and constructive comments and suggestions can be addressed to Claude-Nicolas Fiechter Department of Computer Science University of Pittsburgh Pittsburgh, PA 15260, U.S.A. e-mail: fiechter@cs.pitt.edu