[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference rusure::math

Title:Mathematics at DEC
Moderator:RUSURE::EDP
Created:Mon Feb 03 1986
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:2083
Total number of notes:14613

26.0. "Brent Multiprecision Package" by HARE::STAN () Thu Feb 02 1984 16:10

If anyone is interested, we have a copy of the Brent Multiprecision
Floating point package, MP.  It is written in fortran and is
algorithm 524 in the collected algorithms of the ACM.  If you want
a copy, contact Jeff Wiener (HARE::WIENER).

			Reference

R.P.Brent, "Algorithm 524. MP, A Fotran multiple-precision arithmetic
	package", ACM Trans. Math. Softw. 4(1978)71-81.
T.RTitleUserPersonal
Name
DateLines
26.1HARE::STANMon Feb 06 1984 12:39256
Here is a summary of the entry points in the MP package.
An asterisk denotes routines that are most useful to the caller.

 *  EXAMPLE   A SMALL MAIN PROGRAM GIVING AN EXAMPLE OF THE USE OF MP.
 *  MPABS     COMPUTES ABSOLUTE VALUE OF AN MP NUMBER
              CALL MPABS (X, Y) MEANS Y = ABS(X)
 *  MPADD     ADDS TWO MP NUMBERS
              CALL MPADD (X, Y, Z) MEANS Z = X + Y
 *  MPADDI    ADDS AN MP NUMBER TO AN INTEGER,
              GIVING A MULTIPLE-PRECISION RESULT, SPACE = 2T+6
              CALL MPADDI (X, IY, Z) MEANS Z = X + IY
 *  MPADDQ    ADDS A RATIONAL NUMBER TO AN MP NUMBER,
              SPACE = 2T+6
              CALL MPADDQ (X, I, J, Y) MEANS Y = X + I/J
    MPADD2    ROUTINE CALLED BY MPADD AND MPSUB
    MPADD3    ROUTINE CALLED BY MPADD2
    MPART1    COMPUTES ARCTAN(1/N) FOR N .GT. 1 (CALLED BY MPPI)
              SPACE = 2T+6
 *  MPASIN    COMPUTES ARCSIN OF AN MP NUMBER,
              USING AN O(M(T)T) METHOD, SPACE = 5T+12
              CALL MPASIN (X, Y) MEANS Y = ARCSIN(X)
 *  MPATAN    COMPUTES ARCTAN OF AN MP NUMBER
              USING AN O(T.M(T)) ALGORITHM, SPACE = 5T+12
              CALL MPATAN (X, Y) MEANS Y = ARCTAN(X)
 *  MPBERN    COMPUTES BERNOULLI NUMBERS B2, B4, B6, ...
              SPACE = 8T+18
 *  MPBESJ    COMPUTES BESSEL FUNCTION J(NU,X) FOR MP X
              AND SMALL INTEGER NU, SPACE = 14T+156
              CALL MPBESJ (X, NU, Y) MEANS Y = J(NU,X)
    MPBES2    ROUTINE CALLED BY MPBESJ (USES BACKWARD RECURRENCE
              TO EVALUATE J(NU,X)), SPACE = 8T+18
    MPCDM     CONVERTS DOUBLE-PRECISION TO MULTIPLE-PRECISION
    MPCHK     PRINTS ERROR MESSAGE ON UNIT LUN IF B, T, M OR MXR
              IS ILLEGAL, OR ON UNIT 6 IF LUN IS ILLEGAL
              (LUN SHOULD BE IN RANGE 1 TO 99)
 *  MPCIM     CONVERTS INTEGER TO MULTIPLE-PRECISION
              CALL MPCIM (IX, Z) MEANS Z = IX
    MPCLR     SETS SOME DIGITS OF AN MP NUMBER TO ZERO
    MPCMD     CONVERTS AN MP NUMBER TO DOUBLE-PRECISION REAL
    MPCMDE    CONVERTS AN MP NUMBER TO (DOUBLE-PRECISION)
              FRACTION AND (DECIMAL) EXPONENT,
              SPACE = 6T+14
    MPCMEF    CONVERTS MP NUMBER TO FRACTION AND (DECIMAL)
              EXPONENT, SPACE = 5T+12
 *  MPCMF     FINDS FRACTIONAL PART OF AN MP NUMBER
    MPCMI     CONVERTS AN MP NUMBER TO AN INTEGER
 *  MPCMIM    CONVERTS AN MP NUMBER TO A MULTIPLE-PRECISION INTEGER
 *  MPCMPA    COMPARES ABSOLUTE VALUES OF TWO MP NUMBERS
              MPCMPA (X, Y) RETURNS SIGN(ABS(X)-ABS(Y))
 *  MPCMPI    COMPARES AN MP NUMBER WITH AN INTEGER, SPACE = 2T+6
              MPCMPI (X, I) RETURNS SIGN(X-I)
 *  MPCMPR    COMPARES AN MP NUMBER WITH A REAL, SPACE = 2T+6
              MPCMPR (X, RI) RETURNS SIGN(X-RI)
 *  MPCMR     CONVERTS AN MP NUMBER TO (SINGLE-PRECISION) REAL
              CALL MPCMR (X, RZ) MEANS RZ = SNGL(X)
 *  MPCMRE    CONVERTS AN MP NUMBER TO EXPONENT AND
              (SINGLE-PRECISION) FRACTION, I.E. F*10**I
              SPACE = 6T+14
 *  MPCOMP    COMPARES TWO MP NUMBERS
              MPCOMP (X, Y) RETURNS SIGN(X-Y)
 *  MPCOS     COMPUTES COSINE OF AN MP NUMBER, USING AN
              O(M(T)T/LOG(T)) METHOD, SPACE = 5T+12
              CALL MPCOS (X, Y) MEANS Y = COS(X)
 *  MPCOSH    COMPUTES HYPERBOLIC COSINE OF AN MP NUMBER
              USING MPEXP, SPACE = 5T+12
              CALL MPCOSH (X, Y) MEANS Y = COSH(X)
 *  MPCQM     CONVERTS A RATIONAL NUMBER TO MULTIPLE-PRECISION
              CALL MPCQM (I, J, Q) MEANS Q = I/J
    MPCRM     CONVERTS REAL TO MULTIPLE-PRECISION
              CALL MPCRM (RX, Z) MEANS Z = RX
 *  MPDAW     COMPUTES DAWSONS INTEGRAL, DAW(X) = EXP(-X**2)*(INTEGRAL
              FROM 0 TO X OF EXP(U**2) DU),  SPACE = 5T+17
              CALL MPDAW (X, Y) MEANS Y = DAW(X)
 *  MPDIV     DIVIDES TWO MP NUMBERS, SPACE = 4T+10
              CALL MPDIV (X, Y, Z) MEANS Z = X/Y
 *  MPDIVI    DIVIDES AN MP NUMBER BY AN INTEGER
              USING AN O(T) METHOD (MUCH FASTER THAN MPDIV)
              CALL MPDIVI (X, IY, Z) MEANS Z = X/IY
    MPDUMP    DUMPS AN MP NUMBER (USEFUL FOR DEBUGGING)
              CALL MPDUMP (X) DUMPS THE MP NUMBER X ON UNIT LUN
 *  MPEI      EVALUATES EXPONENTIAL INTEGRAL OF AN MP NUMBER,
              SPACE = 19T+31
              CALL MPEI (X, Y) MEANS Y = EI(X)
 *  MPEPS     COMPUTES THE (MULTIPLE-PRECISION) MACHINE PRECISION
              CALL MPEPS (X) MEANS X = 0.5*B**(1-T) IF B EVEN
 *  MPERF     COMPUTES ERROR FUNCTION OF AN MP NUMBER,
              SPACE = 5T+12
              CALL MPERF (X, Y) MEANS Y = ERF(X)
 *  MPERFC    COMPUTES COMPLEMENTARY ERROR FUNCTION OF AN MP NUMBER,
              SPACE = 12T+26
              CALL MPERFC (X, Y)  MEANS Y = ERFC(X)
    MPERF2    COMPUTES EXP(X*X)*(INTEGRAL FROM 0 TO X OF
              EXP(-U*U) DU), CALLED BY MPERF, SPACE = 5T+12
    MPERF3    ROUTINE CALLED BY MPERF, MPDAW AND MPERFC,
              SPACE = 4T+10
    MPERR     ERROR HANDLING ROUTINE (TERMINATES EXECUTION AT
              PRESENT BUT MAY EASILY BE MODIFIED).
 *  MPEUL     RETURNS EULERS CONSTANT (GAMMA = 0.57721566...) TO
              MULTIPLE-PRECISION ACCURACY, SPACE = 5T+14
              CALL MPEUL (G) MEANS G = 0.57721566...
 *  MPEXP     COMPUTES EXPONENTIAL OF A MULTIPLE-PRECISION
              NUMBER, USING AN O(SQRT(T)M(T)) METHOD, SPACE = 4T+10
              CALL MPEXP (X, Y) MEANS Y = EXP(X)
    MPEXP1    COMPUTES EXP(X)-1 FOR ABS(X) .LT. 1  (CALLED BY
              MPEXP, MPSINH AND MPTANH),  SPACE = 3T+8
    MPEXT     A ROUNDING ROUTINE CALLED BY MPDIV AND MPSQRT
 *  MPGAM     COMPUTES GAMMA FUNCTION OF AN MP ARGUMENT,
              SPACE SAME AS FOR MPLNGM (IN WORST CASE)
              CALL MPGAM (X, Y) MEANS Y = GAMMA(X)
    MPGAMQ    COMPUTES GAMMA FUNCTION OF A RATIONAL ARGUMENT,
              USING AN O(T**2) METHOD, SPACE = 6T+12
              CALL MPGAMQ (I, J, X) MEANS X = GAMMA(I/J)
    MPGCD     DIVIDES TWO INTEGERS BY THEIR GREATEST COMMON DIVISOR
              (CALLED BY MPMULQ, MPGAMQ, ETC)
    MPHANK    ROUTINE CALLED BY MPBESJ (EVALUATES HANKELS ASYMPTOTIC
              SERIES FOR BESSEL FUNCTIONS), SPACE = 11T+24
 *  MPIN      CONVERTS FIXED-POINT NUMBER READ UNDER A1 FORMAT
              TO MULTIPLE-PRECISION, SPACE = 3T+11
 *  MPINE     SAME AS MPIN BUT RESULT IS MULTIPLIED BY A POWER OF
              TEN (USEFUL FOR READING IN FLOATING-POINT NUMBERS),
              SPACE = 5T+12
 *  MPLI      EVALUATES LOGARITHMIC INTEGRAL LI(X), SPACE = 19T+31
              CALL MPLI (X, Y) MEANS Y = LI(X)
 *  MPLN      COMPUTES NATURAL LOG OF AN MP NUMBER,
              USING AN O(SQRT(T).M(T)) METHOD, SPACE = 6T+14
              CALL MPLN (X, Y) MEANS Y = LN(X)
    MPLNGM    COMPUTES LN(GAMMA(X)) FOR POSITIVE MP X,
              USING STIRLINGS APPROXIMATION,
              SPACE = 11T+24+NL*((T+3)/2), WHERE NL IS THE NUMBER
              OF TERMS USED IN THE ASYMPTOTIC EXPANSION,
              NL .LE. (2 + T*LN(B)/8)
              CALL MPLNGM (X, Y) MEANS Y = LN(GAMMA(X))
    MPLNGS    COMPUTES NATURAL LOG OF AN MP NUMBER, USING
              THE GAUSS-SALAMIN ALGORITHM.   RECOMMENDED FOR
              TESTING MPLN AND MPLNI ONLY (UNLESS T LARGE).
              SPACE = 6T+26
 *  MPLNI     COMPUTES NATURAL LOG OF AN INTEGER, USING AN
              O(T**2) METHOD (FASTER THAN MPLN), SPACE = 3T+8
              CALL MPLNI (N, X) MEANS X = LN(N)
    MPLNS     COMPUTES LN(1+X) FOR SMALL MP X, SPACE = 5T+12
    MPL235    COMPUTES NATURAL LOG OF AN INTEGER WHOSE PRIME
              FACTORS ARE 2, 3 AND/OR 5 (CALLED BY MPLNI),
              SPACE = 3T+8
 *  MPMAX     COMPUTES THE MAXIMUM OF TWO MP NUMBERS
              CALL MPMAX (X, Y, Z) MEANS Z = MAX(X,Y)
 *  MPMAXR    COMPUTES THE LARGEST POSITIVE MP NUMBER
              CALL MPMAXR (X) MEANS X = MP NUMBER WITH EXPONENT M
              AND ALL DIGITS B-1
 *  MPMIN     COMPUTES THE MINIMUM OF TWO MP NUMBERS
              CALL MPMIN (X, Y, Z) MEANS Z = MIN(X,Y)
 *  MPMINR    RETURNS THE SMALLEST NORMALIZED POSITIVE MP NUMBER
              CALL MPMINR (X) MEANS X = B**(-M-1)
    MPMLP     INNER LOOP ROUTINE CALLED BY MPMUL
 *  MPMUL     MULTIPLIES TWO MP NUMBERS
              USING AN M(T) = O(T**2) ALGORITHM
              CALL MPMUL (X, Y, Z) MEANS Z = X*Y
 *  MPMULI    MULTIPLIES AN MP NUMBER BY AN
              INTEGER USING AN O(T) METHOD (FASTER THAN MPMUL)
              CALL MPMULI (X, IY, Z) MEANS Z = X*IY
 *  MPMULQ    MULTIPLIES MP NUMBER BY A RATIONAL NUMBER
              CALL MPMULQ (X, I, J, Y) MEANS Y = X*I/J
    MPMUL2    ROUTINE CALLED BY MPMULI
 *  MPNEG     REVERSES SIGN OF AN MP NUMBER
              CALL MPNEG (X, Y) MEANS Y = -X
    MPNZR     NORMALIZES AND ROUNDS OR TRUNCATES (CALLED BY
              MPADD2, MPDIVI, MPMUL AND MPMUL2)
 *  MPOUT     CONVERTS MULTIPLE-PRECISION TO A FORM SUITABLE FOR
              PRINTING UNDER A1 FORMAT (CORRESPONDS TO F OR I
              FORMATS), SPACE = 3T+11
 *  MPOUTE    SIMILAR TO MPOUT BUT GIVES (DECIMAL) EXPONENT AND
              FRACTION (CORRESPONDS TO E FORMAT), SPACE = 6T+14
    MPOUT2    SAME AS MPOUT BUT ANY BASE FROM 2 TO 16 MAY BE
              USED FOR OUTPUT REPRESENTATION, SPACE = 3T+11
    MPOVFL    ROUTINE CALLED ON MULTIPLE-PRECISION OVERFLOW
              (CALLS MPERR AT PRESENT BUT EASILY MODIFIED)
 *  MPPACK    PACKS MP NUMBERS INTO ARRAYS OF DIMENSION
              (T+3)/2  (USEFUL TO SAVE SPACE),
              UNPACKING MAY BE PERFORMED WITH MPUNPK
 *  MPPI      RETURNS PI TO MULTIPLE-PRECISION ACCURACY,
              USING AN O(T**2) METHOD, SPACE = 3T+8
              CALL MPPI (X) MEANS X = 3.14159265...
    MPPIGL    RETURNS PI TO MULTIPLE-PRECISION ACCURACY,
              USING GAUSS-LEGENDRE O(LOG(T)M(T)) METHOD,
              RECOMMENDED FOR TESTING MPPI ONLY, SPACE = 6T+14
 *  MPPOLY    EVALUATES A POLYNOMIAL WITH INTEGER COEFFICIENTS,
              SPACE = 3T+8
 *  MPPWR     RAISES MP NUMBER TO INTEGER POWER,
              SPACE = 4T+10
              CALL MPPWR (X, N, Y) MEANS Y = X**N
 *  MPPWR2    RAISES NONNEGATIVE MP NUMBER TO MP POWER,
              SPACE = 7T+16
              CALL MPPWR2 (X, Y, Z) MEANS Z = X**Y
 *  MPQPWR    RAISES RATIONAL NUMBER TO RATIONAL POWER,
              SPACE = 4T+10
              CALL MPQPWR (I, J, K, L, X) MEANS X = (I/J)**(K/L)
 *  MPREC     FORMS RECIPROCAL OF MP NUMBER,
              USING NEWTONS METHOD, SPACE = 4T+10
              CALL MPREC (X, Y) MEANS Y = 1/X
 *  MPROOT    COMPUTES THE N-TH ROOT OF AN MP NUMBER
              USING NEWTONS METHOD, SPACE = 4T+10
              CALL MPROOT (X, N, Y) MEANS Y = X**(1/N)
 *  MPSET     SETS THE BASE B AND DIGITS T ETC GIVEN THE
              EQUIVALENT NUMBER OF DECIMAL PLACES REQUIRED
              WARNING - MAY CAUSE AN INTEGER OVERFLOW,
              *******   FOR DETAILS SEE COMMENTS IN MPSET
 *  MPSIN     COMPUTES SINE OF AN MP NUMBER,
              USING AN O(M(T)T/LOG(T)) METHOD, SPACE = 5T+12
              CALL MPSIN (X, Y) MEANS Y = SIN(X)
 *  MPSINH    COMPUTES HYPERBOLIC SINE OF AN MP NUMBER,
              USING MPEXP, SPACE = 5T+12
              CALL MPSINH (X, Y) MEANS Y = SINH(X)
    MPSIN1    COMPUTES SIN(X) OR COS(X) FOR ABS(X) .LE. 1, CALLED
              BY MPSIN, MPCOS AND MPTAN, SPACE = 3T+8
 *  MPSQRT    COMPUTES SQUARE ROOT OF A NONNEGATIVE MP NUMBER,
              USING NEWTONS METHOD, SPACE = 4T+10
              CALL MPSQRT (X, Y) MEANS Y = SQRT(X)
 *  MPSTR     STORES ONE MP NUMBER IN ANOTHER
              CALL MPSTR (X, Y) MEANS Y = X
 *  MPSUB     SUBTRACTS ONE MP NUMBER FROM ANOTHER
              CALL MPSUB (X, Y, Z) MEANS Z = X - Y
 *  MPTAN     COMPUTES TAN OF AN MP NUMBER,
              USING MPSIN1, SPACE = 6T+20
              CALL MPTAN (X, Y) MEANS Y = TAN(X)
 *  MPTANH    COMPUTES HYPERBOLIC TAN OF AN MP NUMBER,
              USING MPEXP, SPACE = 5T+12
              CALL MPTANH (X, Y) MEANS Y = TANH(X)
    MPUNFL    ROUTINE CALLED ON MULTIPLE-PRECISION UNDERFLOW
              (SETS RESULT TO ZERO AT PRESENT BUT EASILY MODIFIED)
 *  MPUNPK    UNPACKS AN ARRAY FORMED BY MPPACK TO GIVE AN MP
              NUMBER IN STANDARD FORMAT
 *  MPZETA    COMPUTES RIEMANN ZETA FUNCTION FOR POSITIVE
              INTEGER ARGUMENTS
              SPACE = 8T+18+NL*((T+3)/2), WHERE NL IS THE
              NUMBER OF TERMS USED IN THE ASYMPTOTIC
              EXPANSION, NL .LE. (1 + 0.1*T*LN(B))
              CALL MPZETA (N, X) MEANS X = ZETA(N)
 *  MP40D     OUTPUT ROUTINE CALLED BY TEST PROGRAM,
              USEFUL FOR EASY FIXED-POINT OUTPUT,
              SPACE = 3T+N+14 FOR N DECIMAL PLACE OUTPUT
              CALL MP40D (N, X) WRITES X TO N DECIMAL PLACES ON UNIT
              LUN, ASSUMING ABS(X) .LT. 10
    MP40E     OUTPUT ROUTINE CALLED BY MP40D
 *  MP40F     OUTPUT ROUTINE CALLED BY TEST2 PROGRAM,
              USEFUL FOR EASY FLOATING-POINT OUTPUT,
              SPACE = 6T+N+17 FOR N SIGNIFICANT FIGURE OUTPUT
              CALL MP40F (N, X) WRITES X TO N SIGNIFICANT FIGURES
              (IN DECIMAL EXPONENT AND FRACTION FORM) ON UNIT LUN
    MP40G     OUTPUT ROUTINE CALLED BY MP40F
 *  TEST      A MAIN PROGRAM WHICH TESTS SOME OF THE ROUTINES IN MP
              WHILE COMPUTING VARIOUS CONSTANTS TO 40 DECIMAL PLACES
    TESTV     A VERSION OF TEST WITH VARIABLE-PRECISION COMPUTATION
              AND OUTPUT
 *  TEST2     ANOTHER TEST PROGRAM WHICH TESTS ROUTINES
              NOT CALLED BY TEST OR TESTV
    TIMEMP    A MACHINE-DEPENDENT FUNCTION CALLED BY TESTV, SHOULD
              BE MODIFIED BY THE USER BEFORE TESTV IS RUN.
26.2HARE::STANWed Jul 11 1984 17:4213
Note: There is a problem using the MPSET function of the Brent
Multiprecision Package under VMS, because this function purposely
causes an integer overflow to occur (in order to determine the
wordsize of the machine it is running on).  This fails because
under VMS, an integer overflow exception is signalled.

You can avoid this problem by disabling integer overflow detection in
that routine by inserting the following line before the statement with
sequence number MP048460 in subroutine MPSET:

	CALL LIB$INT_OVER(0)

This occurs just before a DO 30 I=1,47 statement.
26.3JRDV04::YOSHIOKANo More ReengineeringTue Jun 16 1992 04:2712
>If anyone is interested, we have a copy of the Brent Multiprecision
>Floating point package, MP.  It is written in fortran and is
>algorithm 524 in the collected algorithms of the ACM.  If you want
>a copy, contact Jeff Wiener (HARE::WIENER).

I'd like to have the MP and sent mail to Stan and Jeff (as above address).
However, it seems to me that they can't be touched. (left Digital?)

Could somebody give me pointer?

Thanks in advance,
  Hiro
26.4BEING::EDPAlways mount a scratch monkey.Tue Jun 16 1992 17:138
    Re .3:
    
    Stan left Digital years ago.  You can still reach Jeff Wiener at
    CLT::WIENER, but I wouldn't hold out a lot of hope (maybe some) for
    this package still being around after eight years.
    
    
    				-- edp
26.5ZFC::deramoDan D'EramoTue Jun 16 1992 17:246
It is still available over the internet; I just sent out a request
for a "help" message.  There are a number of other "bignum" packages
available as well.  My list is from Apr '91 but I think an updated
list gets posted to sci.math periodically.

Dan
26.6GUESS::DERAMODan D'Eramo, zfc::deramoTue Jun 16 1992 17:57217
        This is taken from the list of large integer arithmetic
        packages which I mentioned in the previous reply:
        
>bmp  (Brent's Multiple Precision?)
>    R. P. Brent
> 
>    1981 vintage FORTRAN code to do extended precision floating &
>    fixed point arithmetic.  Includes most of the mathematical
>    functions you'd find in a FORTRAN run-time library.
>    This code is an ACM algorithm, number 524.
>    To obtain, send a mail message to  [email protected]
>    containing the line "send mp.f from bmp" or better yet, perhaps
>    just start with "help".
>[...]
>Mark Riordan   [email protected]
>Michigan State University   19 April 1991
        
        Everything after my "signature" is from the help message
        from [email protected].  You may wish to start by sending
        the one line message
        
send index from bmp
        
        to decwrl::"[email protected]" to see what is there.
        
        Dan

Return-Path: [email protected]
Received: by zfc.lmo.dec.com (5.57/fma-100391);
	id AA23351; Tue, 16 Jun 92 16:34:16 -0400
Received: by inet-gw-1.pa.dec.com; id AA29643; Tue, 16 Jun 92 13:33:21 -0700
Received: by surfer.EPM.ORNL.GOV (5.61/1.34)id AA25427; Tue, 16 Jun 92 16:23:36 -0400
Date: Tue, 16 Jun 92 16:23:36 -0400
From: [email protected] (Netlib)
Message-Id: <[email protected]>
To: deramo
Subject: Re: Subject: help


 ===== How to use netlib =====

 This file is the reply you'll get to:
 	mail [email protected]
 	send index
 Here are examples of the various kinds of requests.
 *  get the full index for a library
 	send index from eispack
 *  get a particular routine and all it depends on
 	send dgeco from linpack
 *  get just the one routine, not subsidiaries
 	send only dgeco from linpack
 *  get dependency tree, but excluding a subtree
 	send dgeco but not dgefa from linpack
 *  just tell how large a reply would be, don't actually send the file
 	send list of dgeco from linpack
 *  get a list of sizes and times of all files in a library
 	send directory for benchmark
 *  search for somebody in the SIAM membership list:
 	who is gene golub
 *  keyword search for netlib software
 	find cubic spline
 *  bibliographic search
 	find schumaker from approximation
 	find aasen from linalg
 *  set the chunk size used for reply
 	mailsize 100k
 *  (optional) end of request
 	quit

 The Internet address "[email protected]" refers to a gateway
 machine, at Oak Ridge National Laboratory in Oak Ridge, Tennessee.
 This address should be understood on all the major networks.  

 For access from Europe, try the duplicate collection in Oslo:
 	Internet:       [email protected]
 	EARN/BITNET:    netlib%[email protected]
 	X.400:          s=netlib; o=nac; c=no;
 	EUNET/uucp:     nac!netlib
 For the Pacific, try    [email protected]
 located at the University of Wollongong, NSW, Australia.
 A similar collection of statistical software is available from
	  [email protected].
 The TeX User Group distributes TeX-related software from
	  [email protected].
 The symbolic algebra system REDUCE is supported by
	  [email protected].

 An excellent guide to the mysteries of networks and address syntax is:
 Donnalyn Frey and Rick Adams (1989) "!%@:: A Directory of Electronic
 Mail Addressing and Networks", O'Reilly & Associates, Inc, 632 Petaluma
 Ave, Sebastopol CA 95472.  Background about netlib is in Jack J.
 Dongarra and Eric Grosse, Distribution of Mathematical Software Via
 Electronic Mail, Comm. ACM (1987) 30,403-407 and in a quarterly column
 published in the SIAM News and SIGNUM Newsletter.

 Bugs reports, comments, and annual lists of recipients will be
 forwarded to the code authors when possible.  Many of these codes are
 designed for use by professional numerical analysts who are capable of
 checking for themselves whether an algorithm is suitable for their
 needs.  One routine can be superb and the next awful.  So be careful!

 An inventory list is given below and in the indices for the individual
 libraries.  If you know exactly what you're looking for, these guides
 may be enough.  An interactive system called "walk" provides a more
 systematic list (not limited to netlib) but at present covers only
 approximation.  Volunteers from other fields are needed.  The reference
 is Eric Grosse, "A Catalog ...", in Algorithms for Approximation",
 Mason and Cox (eds.), Chapman and Hall, 1989.  Dialup (at 1200bps)
 908-582-1238  or telnet to research.att.com and login as walk; no
 password is required.

 -------quick summary of contents---------
 a - approximation algorithms
 alliant - set of programs collected from Alliant users
 amos - special functions by D. Amos.  = toms/644
 apollo - set of programs collected from Apollo users
 benchmark - various benchmark programs and a summary of timings
 bib - bibliographies
 bihar - Bjorstad's biharmonic solver
 bmp - Brent's multiple precision package
 c - another "misc" library, for software written in C
 cheney-kincaid - programs from the 1985 text
 conformal - conformal mapping
 contin - continuation, limit points
 core - machine constants, vector and matrix * vector BLAS
 c++ - code in the C++ language
 dierckx - Spline fitting on various geometries.
 domino - communication and scheduling of multiple tasks; Univ. Maryland
 eispack - matrix eigenvalues and vectors
 elefunt - Cody and Waite's tests for elementary functions
 errata - corrections to numerical books
 f2c - Fortran to C converter
 fishpack - separable elliptic PDEs; Swarztrauber and Sweet
 fitpack - Cline's splines under tension
 fftpack - Swarztrauber's Fourier transforms
 fmm - software from the book by Forsythe, Malcolm, and Moler
 fn - Fullerton's special functions
 fortran - single-double precision converter, static debugger
 fp - floating point arithmetic
 gcv - Generalized Cross Validation
 gmat - multi-processing Time Line and State Graph tools, Mark Seager
 go - "golden oldies"  gaussq, zeroin, lowess, ...
 graphics - auto color, ray-tracing benchmark
 harwell - MA28 sparse linear system
 hence - Heterogeneous Network Computing Environment
 hompack - nonlinear equations by homotopy method
 ieeecss - IEEE / Control Systems Society
 itpack - iterative linear system solution by Young and Kincaid
 jakef - automatic differentiation of Fortran subroutines
 kincaid-cheney - programs from the 1990 text
 lapack - solving the most common problems in numerical linear algebra
 lanczos - Cullum and Willoughby's Lanczos programs
 lanz - Large Sparse Symmetric Generalized Eigenproblem, Jones and Patrick
 laso - Scott's Lanczos program for eigenvalues of sparse matrices
 linpack - gaussian elimination, QR, SVD  by Dongarra, Bunch, Moler, Stewart
 lp - linear programming
 machines - short descriptions of various computers
 matlab - software from the MATLAB user's group
 microscope - Alfeld and Harris' system for discontinuity checking
 minpack - nonlinear equations and least squares by More, Garbow, Hillstrom
 misc - everything else
 ml - Standard ML of New Jersey (programming language compiler)
 na-digest - archive of mailings to NA distribution list
 napack - numerical algebra programs
 news - Grosse's Netlib News column for na-net, SIAM News, SIGNUM Newsletter
 numeralgo - algorithms from the new journal "Numerical Algorithms"
 ode - ordinary differential equations
 odepack - ordinary differential equations from Hindmarsh
 odrpack - orthogonal distance regression, Boggs Byrd Donaldson Schnabel
 opt - optimization
 paragraph - display of algorithms on message-passing multiprocessor
 paranoia - Kahan's floating point test
 parmacs	-  parallel programmming macros
 pascal - another "misc" library, for software written in Pascal
 pchip - hermite cubics  Fritsch+Carlson
 pdes/madpack - a multigrid package, by Craig Douglas
 picl - portable instrumented communication library for multiprocessors
 pltmg - Bank's multigrid code;  too large for ordinary mail
 polyhedra - Hume's database of geometric solids
 popi - Digital Darkroom image manipulation software (Holzmann)
 port - the public subset of PORT library
 posix - draft standards
 pppack - subroutines from de Boor's Practical Guide to Splines
 pvm - parallel virtual machine
 quadpack - univariate quadrature by Piessens, de Donker, Kahaner
 research - miscellanea from AT&T Bell Labs, Computing Science Research Center
 sched - environment for portable parallel algorithms in a Fortran setting.
 sciport - portable version of Cray SCILIB, by McBride and Lamson
 sequent - software from the Sequent Users Group
 slap - Seager + Greenbaum, iterative methods for symmetric and unsymmetric
 slatec - error handling package from the Slatec library
 sparse - Kundert + Sangiovanni-Vincentelli, C sparse linear algebra
 sparse-blas - BLAS by indirection
 sparspak - George + Liu, sparse linear algebra core
 specfun - transportable special functions
 spin - simulation and validation of communication protocols, G. Holzmann
 stringsearch - string matching
 toeplitz - linear systems in Toeplitz or circulant form by Garbow
 toms - Collected Algorithms of the ACM
 typesetting - typesetting macros and preprocessors
 uncon/data - optimization test problems
 vanhuffel - total least squares, partial SVD  by Van Hufell
 vfftpk - vectorized FFT; variant of fftpack
 voronoi - Voronoi diagrams and Delaunay triangulations
 y12m - sparse linear system  (Aarhus)

 --------a bit more detail--------

 The first few libraries here are widely regarded as being of high quality.
 The likelihood of your encountering a bug is relatively small; if you do,
 we certainly want to hear about it!   mail [email protected]

[I deleted the stuff after this point, except for the "bmp" item.--Dan]
        
lib	bmp
for	Brent's multiple precision package
master	research.att.com
26.73D::ROTHGeometry is the real life!Wed Jun 17 1992 13:097
   I sent him a copy, though it's possible to get from NETLIB as well
   in case I can't keep it online...

   I also understand that the GNU folks are developing (or have already)
   a C or C++ version of MP.

   - Jim