RFC 525

MIT-MATHLAB meets UCSB-OLS -an example of resource sharing

πŸ“… published June 1973, from ietf

MIT-MATHLAB MEETS UCSB-OLS: An Example of Resource Sharing πŸ¦‹

okay so this is RFC 525 πŸŽ€, from the Network Working Group, dated 1 June 1973. It was written by W. Parrish and J. Pickens from the Computer Systems Laboratory at UCSB, and it's filed under NIC 17161. The title block doesn't list a category or status, and it doesn't say that this RFC obsoletes or updates anything. 🌸


I. Introduction ✨

A. Resource Sharing, A Comment πŸ’–

ngl, resource sharing between totally different systems is a concept everyone talks about, but it's only had a handful of real-life applications so far. [See NIC 13538, "1972 Summary of Research Activities (UTAH) for description of Tony Hearn's TENEX-CCN Programming Link.] The first attempts used the easiest communication paths already around, which were TELNET and RJS, plus the most universal way of writing numbers, which is byte-oriented numeric characters in scientific notation. 🧚 Future schemes will probably be more efficient once there are standardized data and control protocols, but even with what we have now, users are getting experience with combinations of resources that weren't possible before. It's giving progress πŸ”₯

B. The MATHLAB/UCSB-OLS Experiment πŸ“

Okay, so MATHLAB [1] and OLS are both super powerful mathematics systems, but they cover basically zero overlapping territory. MATHLAB (also called MACSYMA) has a high-powered symbolic manipulation system. OLS is a highly interactive numeric and graphics system that lets you quickly set up and evaluate problem solutions through user programs. πŸ’… Before this experiment, people had to do their problems symbolically on MATHLAB or numerically and graphically on OLS. There was no data path connecting them, so users were stuck doing pencil-and-paper translation between the two. Iykyk, and it was painful 😭

The whole goal of the MATHLAB-OLS experiment is to build an automated path that turns expressions at MATHLAB into User Programs at UCSB. That way you can play around freely with the numeric, graphic, and symbolic sides of math problems all at once. main character energy πŸ‘‘βœ¨


II. THE RESOURCES 🌈

To really get this particular case of resource sharing, you first need some understanding of the resources being shared. This paper doesn't try to cover everything available at both sites (UCSB and MIT). It only briefly discusses the shared resources that actually apply. Section V covers some unshared resources that are available and what they could be shared for. The current implementation is limited to evaluating real functions. Here's the rundown on what each site can do. πŸ¦‹

A. Graphical and Numeric Computation Capabilities at UCSB πŸ“ˆ

Getting a graph of a function on the OLS is lowkey easy, since all you do is specify the function with a series of button-pushes. For example, to plot sin(x), you use this "program":

II REAL SIN x DISPLAY RETURN

That will display a plot of sin(x) versus X, as long as X has already been defined as a vector holding values over the range you want to plot. For a more complete description of OLS, see NIC 5748, "The OLS User's Manual". πŸ“š OLS programs, or sequences of button-pushes, can be stored under USER level keys. So the program above could be defined as USER LI (+) [2], and then you can display, modify, and look at different values of the SIN function over different ranges just by setting up the vector X you want and then typing USER LI (+). The number of elements in that vector is variable, up to a max of 873 (the default is 51). The result vector can be stored under a letter key, like Y, and you can look at it by typing DISPLAY Y. πŸ’–

Scaling on the OLS is automatic for best fit, but you can control it yourself too. On default, though, you'll often want to look at several functions on a common scale, and you can do that here. The graphs will get overlaid. πŸŽ€ OLS graphics are available to users at UCSB on the Culler-Fried terminals, and to Network users through a special graphics socket at UCSB. See NIC 15747, RFC 503 "Socket Number List". If you're a Network user without a Culler-Fried keyboard, see NIC 7546, RFC 216 "TELNET Access to UCSB's On-Line System". 🫢

B. Symbolic Manipulations Available at MATHLAB 🧠

MATHLAB'S MACSYMA can do lots of symbolic manipulations in a really straightforward, easy-to-learn way. Those manipulations include:

  1. Symbolic integration and differentiation of certain functions.
  2. Solutions to equations and systems of equations.
  3. Laplace and inverse-Laplace transforms of certain functions.
  4. Certain series expansions.
  5. Rational simplification of rational functions.

For a more complete description, see "The MACSYMA User's Manual" by the MATHLAB Group at Project MAC-MIT. πŸ“

EXAMPLE πŸŽ€

Okay bestie, so there's a UCSB user who does a whole MATHLAB session πŸ’– Here's what they get up to:

  • A. Logs into MATHLAB,
  • B. Initializes the "SAVE" function,
  • C. Generates a polynomial function and its derivative and integral,
  • D. Logs out of MATHLAB,
  • E. Creates the retrieval job,
  • F. Waits and then displays the resultant user programs,
  • G. and, finally, creates the X variable and plots the functions.

The OLS manipulations here are super simple, but ngl they're still iconic πŸ’… You could compare the retrieved functions with numerical models, or even use them as subroutines in higher level algorithms. What you do with this combined numeric-symbolic system is literally limited only by your imagination βœ¨πŸ¦‹

Here's the full transcript, so you can see every single keystroke:

USER TELNET                    Connection to MATHLAB from UCSB
LOGIN TO MIT-ML                     "II LOG MIT-ML RETURN"

MIT MATHLAB PDP-10

ML ITS.796. DDT.514.
9. USERS

:LOGIN WMP                              Login to MIT-MATHLAB.


:MACSYMA                                Call up MACSYMA

THIS IS MACSYMA 212

USE " INSTEAD OF ?
SEE UPDATE > MACSYM;

FIX 212 DSK MACSYM BEING LOADED
LOADING DONE

(C1) BATCH(BATCH,UTILS);                Load BATCH UTILS file.

(UREAD BATCH UTILS DSK WMP) FILE NOT FOUND

(C2) BATCH(BATCH,UTILS,DSK,UCSB);

(C2) LISTX:();
(D2)                                    ()

(C3) ADDLIST(X):=LISTX:CONS(X,LISTX);
(D3)                   ADDLIST(X) := (LISTX : CONS(X, LISTX))
(C4) SAVE(FILENAME):=APPLY(STRINGOUT,APPEND(
           CONS((FILENAME,BATCH,DSK,UCSB),REVERSE(LISTX)),("?")));
(D4) SAVE(FILENAME) :=
     APPLY(STRINGOUT,APPEND(CONS((FILENAME, BATCH, DSK, UCSB),
     REVERSE(LISTX)),(?)))

(D5)                                          BATCH DONE

(C6) (X**2+3)/(X+1);
                                             2
                                            X  + 3
(D6)                                        -------
                                             X + 1
(C7) INTEGRATE(%,X);

SIN FASL DSK MACSYM BEING LOADED
LOADING DONE                                2
                                           X  - 2 X
(D7)                                      ----------  + 4 LOG(X + 1)
                                             2
(C8) ADDLIST('D6);
(D8)                                       (D6)

(C9) ADDLIST('D7);
(D9)                               (D7, D6)   Use ADDLIST function
                                     to save line numbers D6 and D7.

(C10) DIFF(D6,X);
                                           2
                                  2 X     X  + 3
(D10)                            ----  -  ------
                                  X+1          2
                                          (X+1)

(C11) ADDLIST('D10);
(D11)                      (D10, D7, D6)   Use ADDLIST function to
                                           save line number D10.

(C12) SAVE(MYFILE);
(D12)                     (D6, D7, D10, ?)  Write list of lines out
                                               to a disk file using
(C13) *********Z     Leave MACSYMA                   SAVE function.
25156)    .IOT 1,1

:LISTF UCSB


DSK UCSB
FREE BLCCKS UO #1 241 U1 #3 345 U2 #5 379

3    ATTN     BATCH  1  5/23/73  13:53:11
1    BATCH    UTILS  1  5/23/73  13:11:43
3    DEMO     WMP    1  5/26/73  15:29:26
5    DEMO1    BATCH  1  4/29/73  22:41:17
1    DEMO99   BATCH  1  5/25/73  00:07:15
5    MYFILE   BATCH  1  5/31/73  12:41:50 <-- file is in directory
1    _MSGS_   UCSB   0  5/26/73  21:13:53     at MATHLAB

:LOGOUT
                                            Logout and disconnect.
-------------------------------------------------------------------
ML ITS 796 CONSOLE 24 FREE. 12:42:35

DISCONNECTION COMPLETE
WORK AREAS UPDATED                         Load Retrieval program
LOAD MATHLAB                             "SYST LOAD MATHLAB RETURN"
FILE LOADED

                                       "USER LO (+)"
RETRIEVE EXPRESSIONS
--------------------

MATHLAB FILE? (EXP)
-->MYFILE-->MYFILE.                    "MYFILE ENTER"
OLS FILE?  (MYFILE)
-->demo11-->demo11                     "demo11 ENTER"
OLS FILE
PROTECT CODE?  ()                      "demo11 ENTER"
-->DEMO-->demo11
BATCH JOBNAME? (MYFILE)                "PARSET ENTER"
-->PARSET-->PARSET.

PRESS ENTER TO SUBMIT JOB              "ENTER"

VOLUME NEEDED=
JOB SUBMITTED

JOB TO RETRIEVE MATHLAB
EXPRESSIONS IS NOW IN
UCSB-MOD75 BATCH QUEUE.    Some time elapses and batch job is run.
                           Load the retrieved program.
WORK AREAS UPDATED         "SYST LOAD demo11 RETURN"
LOAD demo11
FILE LOADED

                       Display the returned expressions.

(USER LI (+))                    "USER I DISPLAY (+)"
------------------------------------------------------------------
LII REAL LOAD ((X**2 (+)  3)/(X (+) 1)):

(USER LI (-))                    "USER I DISPLAY (-)"
LII REAL LOAD ((X**2 (-) 2*X)/2 + 4* LOG (X (+) 1)):
------------------------------------------------------------------

(USER L1 (*))                      "USER I DISPLAY (*)"
LII REAL LOAD (2*X/(X (+) 1) <> (X**2 (+) 3)/(X (+) 1)**2):

USER LI SQ UNDEFINED             "USER DISPLAY SQ"

Cute little note: the figure below is only in the .ps and .pdf version of this document, so it's not shown here 🧚

[The following figure is available in the .ps and .pdf version of this document:]

Sample OLS Curves Generated for -.5 < x < 4.5
                                    -   -

Endnotes πŸ“š

  • [1] Supported on a PDP-10 System at MIT and available for the use at UCSB by the way of APRA Network.
  • [2] [In this memo, the notation (+), (-), and (*) has been substituted for a circle enclosing a +, -, and * symbol, respectively.]

[This RFC was put into machine readable form for entry] [into the online RFC archives by Helene Morin, Via Genie 12/1999] 🌸

πŸ“¦ where this page comes from