
                       GRAPHICS PACKAGES FOR REDUCE

There is a lot of interest in the availability of graphics packages for
use in REDUCE.  In addition to the code in the network library, John
Fitch at the University of Bath is making available directly code that he
and Arthur Norman developed.  A copy of his message to the REDUCE forum
regarding this is appended below.  Other groups are also developing such
packages, and details of these will be included in this document as soon
as they become available.

---------------------------------------------------------------------------

To: reduce-forum@rand.org
Subject: Graph Plotting in REDUCE
Date: Thu, 30 Mar 89 11:34:32 BST
From: jpff%maths.bath.ac.uk@NSS.Cs.Ucl.AC.UK

Friends,

  Arthur Norman and I have put together a 2- and 3-D graph drawing
package for REDUCE.  It attempts to separate a screen independent part
from a machine dependent bit.  So far we have run it on an Acorn
Archimedes, an HLH Starpoint screen, and a simple teletype.  We have
reached the stage where the code would benefit from testing elsewhere,
and even the provision of new screen drivers.

I am not certain that the code is yet sufficiently robust for
inclusion in the net library, so if anyone is willing to take the code
and try it, and report problems and improvements, and wishes, could
they please send me a message.  The files are not too large: graph.red
is 28018 bytes and dumb.red is 3614 bytes.  If anyone wants the
Archimedes version it will take me a little longer to package it.

This is not the answer to everyones prayers!  For example I attach
some output to show the state.

==John
JANET: jpff@uk.ac.bath.maths
ARPA:  jpff%maths.bath.ac.uk@nss.ucl.cs.uk
   or  ffitch@rand.org
UUCP:  ...!mcvax!ukc!uk.ac.bath.maths!jpff

------------------------------------------------------------------------
4: graph(sin x);        %% Simple use

                                                                       
                                                                       
                                   |                                   
                 ****            1.00  ****                  ****      
                                   |                                   
                *    *             |  *    *                *    *     
*              *      *            | *      *              *           
                                 0.500                            *    
                                   |                                   
 *            *        *           |*        *            *        *   
                                   |                                   
--*---8.00---*------4.00*---------0.0---------*4.00------*---8.00---*- 
                                   |                                   
   *        *            *        *|           *        *            * 
                                   |                                   
    *                     *        |                   *               
           *                    -0.500          *                      
     *    *                *    *  |             *    *                
                                   |                                   
      ****                  ****   |              ****                 
                                 -1.00                                 
                                   |                                   

0

5: graph(sin x,{-4,4}); %% Limit Range for x

                                                                       
                                                                       
                                   |                                   
                                 1.00        ********                  
                                   |       **        **                
**                                 |      *            **              
  *                                |    **               *             
   *                             0.500 *                  *            
    *                              |  *                    *           
     *                             | *                      *          
      *                            |*                        *         
-----3.20-----------1.60----------0.0----------1.60----------3.20----- 
         *                        *|                            *      
          *                      * |                             *     
           *                    *  |                              *    
            *                  *   |                               *   
             *               ** -0.500                              *  
              **            *      |                                 * 
                **        **       |                                   
                  ********         |                                   
                                 -1.00                                 
                                   |                                   

0

6: graph(sin x,{-0.1,1.6},{-0.5,1});    %% Limit both x and y ranges

*** 1.0e-1 represented by 1/10

*** 1.6 represented by 8/5

*** 5.0e-1 represented by 1/2

                                                                       
                                                                       
    |                                             ********             
  0.900                                     ******                     
    |                                  *****                           
    |                             *****                                
    |                         ****                                     
  0.600                    ***                                         
    |                  ****                                            
    |               ***                                                
    |            ***                                                   
  0.300      ****                                                      
    |     ***                                                          
    |  ***                                                             
    ***                                                                
-***|-0.100-------0.400------------0.800-------1.10--------1.40------- 
*-0.100                                                                
    |                                                                  
    |                                                                  
 -0.300                                                                
    |                                                                  
    |                                                                  

0

7: 

