### # # # # # ###
# # # # # # ## # #
# # # # # # # # # #
####### # # # # # # # ###
# # # # # # # # ##### # #
# # # # # # # # # # #
# # ## # # # ###
AN ALGEBRAIC OBJECT VISUALIZATION LIBRARY FOR THE HP48
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