RFC 525
MIT-MATHLAB meets UCSB-OLS -an example of resource sharing
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:
- Symbolic integration and differentiation of certain functions.
- Solutions to equations and systems of equations.
- Laplace and inverse-Laplace transforms of certain functions.
- Certain series expansions.
- 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
- ietf: rfc525 1973-06
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms