LIBRARY OF THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAICN 510.84 ho. £|-8>0 *3 CO Digitized by the Internet Archive in 2013 http://archive.org/details/briefdescription63greg UNIVERSITY OF ILLINOIS GRADUATE COLLEGE DIGITAL COMPUTER LABORATORY INTERNAL REPORT NO. 63 A BRIEF DESCRIPTION OF THE ROUTINES IN THE ILLIAC ACTIVE PROGRAM LIBRARY Robert T. Gregory March 16, 1955 PART I This work has been supported in part by the Office of Naval Research under Contract NR Okk 001 A BRIEF DESCRIPTION OF THE ROUTINES IN THE ILLIAC ACTIVE PROGRAM LIBRARY A 1 - 63 Floating Decimal Arithmetic Routine ThiF is an interpretive routine which manipulates numbers in the form A x 10 x ', where l/lO < |a| < 1 and -6k < p < 6k. It is especially effective for problems with scaling difficulties. In effect, it converts the Illiac into a medium-speed floating decimal computer. A 3 - 12 5 Convert _a Number from Floating Decimal Representation to Normal Machine Form This routine converts numbers of the form A x lCr (see A l) into standard Illiac form. It is used with the floating decimal auxiliaries (see A 6) in general. A k - 87 1.7 Precision Floating Binary Arithmetic with Floating Decimal Conversion This interpretive routine manipulates numbers in the form B x 2 where -512 < q < 512 and |B| < 1. However numbers are input and output in the form A x Kr where -1 < A < 1 and |p| : 153 • The modulus of B has 68 binary digits instead of the usual 39 digits. A h is slower than A 1. A 5 - 138 Complex Number Arithmetic This interpretive routine manipulates complex numbers in floating decimal form, i.e., numbers in the form (A + iB) x 10 (see A 1 above ) . A 6 - 15^ Floating Decimal Routine and Auxiliaries This makes available on a single tape the following routines: A 1, A 3, RA 1, SA 2, SA 3, TA 1, and TA 2. Thus one can find the square root, exponential, logarithm, sine, and arctangent of an argument using floating decimal. -1- C 1 -48 Post Mortem Version of the Decimal Order Input When code-checking a new routine one usually finds that the routine "dies" due to some coding error. One can perform a post mortem on such a routine by reading it into the memory again using C 1 as the input routine instead of the Decimal Order Input. Whenever a discrepancy is found there is printed a line of information giving the address of the discrepancy, word on tape, word in memory. It then corrects the content of the memory to agree with the tape and continues to read the problem into the memory so it can be started again. C 3 - 9^ Post Mortem for Fractions and their Locations This routine will go to ten specified consecutive memory locations and print the content (except when zero) of each as a signed 12-place decimal fraction preceded by its decimal location in the memory. As many groups of ten locations can be examined as desired. C h - 97 Post Mortem for Integers and their Locations Same as C 3 except that the content of each location is printed as a signed 12-place decimal integer. C 5 - 103 Post Mortem for Sets of Order Pairs and their Locations Same as C 3 and C h except that the content of each location is printed as a pair of orders (a zero left shift order is not printed) . C6 - lk-6 Address Search Routine If a coding error is such that an incorrect address is written in an order (e.g., a control transfer) the order containing that address can be located with this routine. C 6 locates and prints all words which have a given address (other than zero) in either address portion of the word. -2- D 1 - 95 Check Point Routine This routine is possibly the most useful aid in the library for one interested in code-checking a new routine. It enables the pro- grammer to specify certain check points in his routine at which the ordinary operation of the routine is interrupted long enough to print out information desired for checking on the proper operation of the routine. There is a variety of types of information which can be called for at each check point. D k - 70 Control Transfe r Check Routine This routine is another aid in finding errors in a program. It tabulates the last p control transfers obeyed by the program. Thus it can be used to trace the last actions of a program leading to a hang-up on a zero left shift. E 2 - I58 Integration by Simpson's Rule Given "a set of n values of a function f , tabulated at equal intervals," this routine computes the approximation r 1 1 JL f(x)dx = -=i ( f_ + kf. + 2f + ...+ 2f _ + kf . + f ) -A) 3n 1 2 n-2 n-1 n where n is even. A simple transformation permits one to use a different range of integration. F 1 - 11^ Solution of a System of Ordinary Differential Equations This subroutine will integrate a set of n simultaneous first order ordinary differential equations in which each derivative is expressed explicitly in terms of the dependent variables. An n order ordinary differential equation can be solved by expressing it as n first order equations. The Runge-Kutta method, as modified by Gill, is used. F 2 - 115 Solution of a System of Differential Equations by Milne's Iterative Method Same as F 1 except Milne's method is used. -3- F 3 - 129 Integration of n Simultaneous Second Order Differential Equations with Initial Conditions Specified This routine will integrate n second order differential equations of the type : y± = f i^0' ' • • y n-l> y 6> • • ' ' y n-l } I - 0, . . . , n - 1, where initial values of y. are specified. FA 1 - 122 Second Order Linear Differential Equation with Two Point Boundary Conditions This routine gives the solution to the differential equation A(x)y" + B(x)y' + C(x)y = D(x), subject to the boundary conditions E(x)y* + F(x)y = G(x Q ) H(x)y' + K(x)y = M(x n ) , where x = x_ + nh and h = x. , -x. i = 0, . . » n - 1 = The calculations n l+l i ' ' are performed in floating point arithmetic. G 1 - 78 Laplace ' s Equation - Liebmann Method This routine gives the solution V(x,y), corresponding to a given set of boundary values, to the difference equation V_ + V = which approximates Laplace's equation *J + *i = 0. > 2 -> 2 ox dj The solution is found for all interior grid points of an arbitrary closed region with a square mesh. G 2 - 98 Poisson's Equation - Liebmann-Frankel Method This routine gives the solution V(x,y), corresponding to given boundary values of V and given interior values of p, of the difference 2 equation V + V_ = oh which approximates Poisson's equation b*+i? = e (x ' y) - The solution is found for all interior grid points of an arbitrary closed region with a square mesh of side h. -k- H 1 - 71 Inverse Interpolation . A Real Root of f(x) = Given two values of the argument, x and x p , this routine will determine whether there is an odd number or an even number of real roots of f(x) = between x and x . If the number is even (e.g. zero) it places -1 in the accumulator. If the number is odd (e.g. one) it places an approximation to one of the roots in the accumulator. Multiple roots are treated as single roots. H 2 - 72 A Search for the Real Roots of f(x) = This routine examines the interval x n < x < x„ + nh, in n steps of length h, for real roots of f(x) = using subroutine H 1. The programmer must have sufficient information about f(x) to choose x n , n, and h compatible with both economy of time and the finding of all the roots . H 3 - 80 Minimization of a Function of Two Variables This routine will find an approximation to the values of x, and x_ for which f (x. ,x p ) has a relative minimum. H h - 84 Minimization of a Function of Four Variables Same as H 3 except f = f(x , x , x , x. ) H 5 - 85 Minimization of a Function of n Variables Same as H 3 except f = f(x , x , . . . , x ) H 6 - 86 Minimization of a Function of n Variables Treating One Variable at a Time A function poorly conditioned in having a very small gradient with respect to some argument can deceive routines H 3, H ^, and H 5 in that this coordinate of the minimum will be very poorly found. H 6 is a "brute force' 1 approach to the minimum by varying one argument at a time. This routine essentially is designed for finishing the job begun by one of the routines mentioned above. -5- HF 1 - 111 Zero of a Solution to a Differential Equation This routine is used with F 1 to find a value of x for which y. (x) = where y! = f.(y , y , . . . , y ) is the system of differential equations under consideration. I 1 - 67 Interpolation Using Neville's method of successive linear interpolations this routine interpolates in one or more tables stored in the machine. It is assumed that functional values f(x.) are stored for the constant 1' interval x. , - x. = h where i = 0, 1, . . . , n-1. i+1 1 > f j J 1 - 159 Roots of a Polynomial This complete program calculates the roots of a polynomial whose coefficients have been punched on tape in floating decimal form. An n degree polynomial with complex coefficients may be punched and n complex roots obtained. Real numbers are treated as complex numbers whose imaginary parts are zero. K 2 - 135 Product Moment Correlations , Means , Standard Deviations , Variances and Covariances The product moment correlation coefficient is a measure of the degree of relation of two variables . It may be shown to range between +1 and -1. This program computes the matrix of product moment correlations between each pair of a set of variables. K 3 - 137 Least Squares Polynomial This routine finds the best polynomial of the form n-1 F(x) = is§o a s xS to fit a set of N weighted experimental points f (x. ), i = 0, . . . , N-1. The criterion of excellence for the polynomial is that the sum of squares of the deviations N-1 p M =.Z [ F(x.) - f(x.)r w(x.) shall be a minimum with respect to arbitrary variations of the coefficients a . The resulting polynomial is called the "least squares polynomial." -6- LI- 112 Solution of a Set of Simultaneous Linear Algebraic Equations This routine solves a set of n simultaneous linear algebraic equations when provided with the augmented matrix of coefficients and constants associated with the system. The method used is to reduce the augmented matrix to triangular form and then use backward substitution to obtain the solution. The number of equations n should not exceed 39 • L 2 - 113 Automatic Linear Equation Solver This routine is a complete program which combines L 1 with the subroutines it needs to solve a system of linear equations and punch out the solution. L 3 - 100 Complete Linear Equation Solver This routine solves the system described in L 1 by an iterative process rather than by a direct process. The number of equations n should not exceed 37* RTGregory/hc -7-