Category : Miscellaneous Language Source Code
Archive   : LIBRY51.ZIP
Filename : LIBRY4A.DOC

 
Output of file : LIBRY4A.DOC contained in archive : LIBRY51.ZIP
.pa
QUICK LIST OF MATHEMATICAL FUNCTIONS

AERF..... arc-error function
APOLY.... area of a polygon
BETA..... complete beta function
BETAR.... incomplete beta function
BINML.... binomial coefficient
BINMLD... double precision form of BINML
CHEBY.... Chebyshev polynomial of N-th degree
DERF..... double precision error function
DERFC.... double precision complementary error function
DEXPI.... double precision exponential integral
DWSN..... Dawson's integral
ERF...... error function
ERFC..... complementary error function
EXPI..... exponential integral
FACT..... factorial
FGQ0I.... numerical integration from zero to infinity
FGQ0ID... double precision form of FGI0I
FGQ1..... numerical integration over definite interval
FGQ1D.... double precision form of FGQ1
FGQ2..... numerical integration over definite interval in 2 dimensions
FGQ2D.... double precision form of FGQ2
FGQ3..... numerical integration over definite interval in 3 dimensions
FGQ3D.... double precision form of FGQ3
FPG...... normal probability distribution in percent
FRF...... cubic error function
FTC95.... Student's T-distribution for 95% confidence
GAMAL.... natural log of the Gamma function for large values
GAMMA.... Gamma function
GXNYM.... numerical integration of X**N*Y**M*dXdY over polygonal region
IRAND.... random number generator (integer)
PLG0..... Legendre polynomial of N-th degree
PLG1..... Legendre polynomial of N-th degree (first derivative)
PLG2..... Legendre polynomial of N-th degree (second derivative)
PLG3..... Legendre polynomial of N-th degree (third derivative)
PPLG0.... Legendre polynomial of N-th degree in 2 dimensions
RPQ...... rational polynomial evaluation
RPQD..... double precision form of RPQ
SEVAL.... cubic spline evaluation
XRAND.... random number generator (real, normally distributed)
.pa
MATHEMATICAL FUNCTIONS


NAME: AERF
PURPOSE: arc-error function
TYPE: REAL*4 function (far external)
SYNTAX: X=AERF(E)
INPUT: E (REAL*4) the erf of something
OUTPUT: X (REAL*4) the arc-erf


NAME: APOLY
PURPOSE: area of a polygon
TYPE: REAL*4 function (far external)
SYNTAX: A=APOLY(X,Y,N)
INPUT: X,Y (REAL*4) an array of points (X,Y)
OUTPUT: A (REAL*4) the area enclosed
NOTE: points must be in the order you draw a "connect-the-dots"
picture, the connection between the last point and the first
point is assumed (e.g. for a triangular region N=3)


NAME: BETA
PURPOSE: complete beta function
TYPE: REAL*4 function (far external)
SYNTAX: B=BETA(X,Y)
INPUT: X,Y (REAL*4)
OUTPUT: B (REAL*4)


NAME: BETAR
PURPOSE: incomplete beta function
TYPE: REAL*4 function (far external)
SYNTAX: B=BETAR(X,Y,R)
INPUT: X,Y,R (REAL*4)
OUTPUT: B (REAL*4)


NAME: BINML
PURPOSE: binomial coefficient
TYPE: REAL*4 function (far external)
SYNTAX: B=BINML(N,I)
INPUT: N,I (INTEGER*2)
OUTPUT: B (REAL*4)


NAME: CHEBY
PURPOSE: Chebyshev polynomial of N-th degree
TYPE: REAL*4 function (far external)
SYNTAX: C=CHEBY(N,X)
INPUT: X (REAL*4), N (INTEGER*2)
OUTPUT: C (REAL*4)


NAME: DWSN
PURPOSE: Dawson's integral
TYPE: REAL*4 function (far external)
SYNTAX: D=DWSN(X)
INPUT: X (REAL*4)
OUTPUT: D (REAL*4)


NAME: ERF
PURPOSE: error function
TYPE: REAL*4 function (far external)
SYNTAX: E=ERF(X)
INPUT: X (REAL*4)
OUTPUT: E (REAL*4)
NOTE: for double precision use DERF


NAME: ERFC
PURPOSE: complementary error function
TYPE: REAL*4 function (far external)
SYNTAX: E=ERFC(X)
INPUT: X (REAL*4)
OUTPUT: E (REAL*4)
NOTE: for double precision use DERFC


NAME: EXPI
PURPOSE: exponential integral (Abramowitz & Stegun use the notation E1(X) in
their NBS publication "Handbook of Mathematical Functions"; it is
also called the "Theis Well Function" by groundwater folks; it is
the integral from X to infinity of EXP(-X)/X dX.)
TYPE: REAL*4 function (far external)
SYNTAX: E=EXPI(X)
INPUT: X (REAL*4)
OUTPUT: E (REAL*4)
NOTE: for double precision use DEXPI


NAME: FACT
PURPOSE: factorial
TYPE: REAL*4 function (far external)
SYNTAX: F=FACT(N)
INPUT: N (INTEGER*2)
OUTPUT: F (REAL*4)


NAME: FGQ0I (note the "0" (zero))
PURPOSE: numerical integration from zero to infinity
TYPE: REAL*4 function (far external)
SYNTAX: FI=FGQ0I(F)
INPUT: F (REAL*4 function) that YOU MUST SUPPLY and must be
called by the sequence FX=F(X)
OUTPUT: the integral
NOTE: for double precision use FGQ0ID
20-point Gauss quadrature is used (96-point for double
precision)


NAME: FGQ1
PURPOSE: numerical integration over definite interval
TYPE: REAL*4 function (far external)
SYNTAX: FI=FGQ1(F,A,B)
INPUT: A,B (REAL*4) interval over which to integrate
F (REAL*4 function) that YOU MUST SUPPLY and must be
called by the sequence FX=F(X)
OUTPUT: the integral
NOTE: your function will be integrated from A to B
for double precision use FGQ1D
20-point Gauss quadrature is used (96-point for double
precision)


NAME: FGQ2
PURPOSE: numerical integration over definite interval in 2-D
TYPE: REAL*4 function (far external)
SYNTAX: FI=FGQ2(F,FY1,FY2,A,B)
INPUT: A,B (REAL*4) interval over which to integrate F
F (REAL*4 function) that YOU MUST SUPPLY and must be
called by the sequence FXY=F(X,Y)
FY1 (REAL*4 function) that YOU MUST SUPPLY and must be
called by the sequence Y1=FY1(X)
FY2 (REAL*4 function) that YOU MUST SUPPLY and must be
called by the sequence Y2=FY2(X)
OUTPUT: the integral
NOTE: your function will be integrated in X from A to B and Y
from FY1(X) to FY2(X), 20*20=400 point Gauss quadrature
is used (96*96=9216 points for double precision)
for double precision use FGQ2D


NAME: FGQ3
PURPOSE: numerical integration over definite interval in 3-D
TYPE: REAL*4 function (far external)
SYNTAX: FI=FGQ3(F,FZ1,FZ2,FY1,FY2,A,B)
INPUT: A,B (REAL*4) interval over which to integrate F
F (REAL*4 function) that YOU MUST SUPPLY and must be
called by the sequence FXYZ=F(X,Y,Z)
FY1 (REAL*4 function) that YOU MUST SUPPLY and must be
called by the sequence Y1=FY1(X)
FY2 (REAL*4 function) that YOU MUST SUPPLY and must be
called by the sequence Y2=FY2(X)
FZ1 (REAL*4 function) that YOU MUST SUPPLY and must be
called by the sequence Z1=FZ1(X,Y)
FZ2 (REAL*4 function) that YOU MUST SUPPLY and must be
called by the sequence Z2=FZ2(X,Y)
OUTPUT: the integral
NOTE: your function will be integrated in X from A to B and Y
from FY1(X) to FY2(X) and Z from FZ1(X,Y) to FZ2(X,Y)
20*20*20=8000 point Gauss quadrature is used (96*96*96=884736
for double precision)
for double precision use FGQ3D


NAME: FPG
PURPOSE: normal probability distribution in percent
TYPE: REAL*4 function (far external)
SYNTAX: F=FPG(XBAR,SIGMA,X,DX)
INPUT: XBAR (REAL*4) mean
SIGMA (REAL*4) standard deviation
X (REAL*4) independent variable
DX (REAL*4) increment in X (if you want to know the
probability of 0,5,10,15,20,25,...,95,100%, then X=0,5,10,...
and DX=5)
OUTPUT: F (REAL*4) probability in %


NAME: FRF
PURPOSE: cubic error function
TYPE: REAL*4 function (far external)
SYNTAX: F=FRF(X)
INPUT: X (REAL*4)
OUTPUT: F (REAL*4)
NOTE: FRF is similar to ERF and also varies from -1 to 1 as X varies
from -infinity to +infinity, it pops up in some problems like
the error function (e.g. statistical thermodynamics)


NAME: FTC95
PURPOSE: Student's T-distribution for 95% confidence
TYPE: REAL*4 function (far external)
SYNTAX: F=FTC95(N)
INPUT: N (INTEGER*2) number of degrees of freedom
OUTPUT: F (REAL*4)
NOTE: "Student" is just the guy's hokey pseudonym - it doesn't mean
anything


NAME: GAMAL
PURPOSE: natural log of the Gamma function for large values
TYPE: REAL*4 function (far external)
SYNTAX: G=GAMAL(X)
INPUT: X (REAL*4)
OUTPUT: G (REAL*4)


NAME: GAMMA
PURPOSE: Gamma function
TYPE: REAL*4 function (far external)
SYNTAX: G=GAMMA(X)
INPUT: X (REAL*4)
OUTPUT: G (REAL*4)


NAME: GXNYM
PURPOSE: numerical integration of X**N*Y**M*dXdY over polygonal region
TYPE: REAL*4 function (far external)
SYNTAX: G=GXNYM(X,Y,N,M,L)
INPUT: X,Y (REAL*4) the points defining the boundary of a polygon
N (INTEGER*2) the exponent on X (may be -+0)
M (INTEGER*2) the exponent on Y (may be -+0)
L (INTEGER*2) the number of points
OUTPUT: G (REAL*4)
NOTE: 8-point Gauss quadrature and Green's Lemma are used,
integration will be exact (machine precision) for N+M<16.
If N=M=0 then you get the area and you should use APOLY.
To get the location of the centroid and the moment of inertia
use the following

XC=GXNYM(X,Y,1,0,L)/GXNYM(X,Y,0,0,L)
YC=GXNYM(X,Y,0,1,L)/GXNYM(X,Y,0,0,L)
AI=GXNYM(X,Y,1,1,L)

You can get radii of gyration and other useful things like FEM
coefficients from GXNYM.


NAME: IRAND
PURPOSE: bounded random integer
TYPE: INTEGER*2 function (far external)
SYNTAX: I=IRAND(MIN,MAX)
INPUT: MIN (INTEGER*2) lower limit on I
MAX (INTEGER*2) upper limit on I


NAME: PLG0
PURPOSE: Legendre polynomial of N-th degree
TYPE: REAL*4 function (far external)
SYNTAX: P=PLG0(N,X)
INPUT: N (INTEGER*2) degree
X (REAL*4)
OUTPUT: P (REAL*4)


NAME: PLG1
PURPOSE: Legendre polynomial of N-th degree (first derivative)
TYPE: REAL*4 function (far external)
SYNTAX: P=PLG1(N,X)
INPUT: N (INTEGER*2) degree
X (REAL*4)
OUTPUT: P (REAL*4)


NAME: PLG2
PURPOSE: Legendre polynomial of N-th degree (second derivative)
TYPE: REAL*4 function (far external)
SYNTAX: P=PLG2(N,X)
INPUT: N (INTEGER*2) degree
X (REAL*4)
OUTPUT: P (REAL*4)


NAME: PLG3
PURPOSE: Legendre polynomial of N-th degree (third derivative)
TYPE: REAL*4 function (far external)
SYNTAX: P=PLG3(N,X)
INPUT: N (INTEGER*2) degree
X (REAL*4)
OUTPUT: P (REAL*4)


NAME: PPLG0
PURPOSE: Legendre polynomial of N-th degree (2 dimensions)
TYPE: REAL*4 function (far external)
SYNTAX: P=PPLG0(N,X,Y)
INPUT: N (INTEGER*2) degree
X,Y (REAL*4)
OUTPUT: P (REAL*4)


NAME: RPQ
PURPOSE: rational polynomial evaluation
TYPE: REAL*4 function (far external)
SYNTAX: R=RPQ(P,N,Q,M,X)
INPUT: P (REAL*4) coefficients in numerator polynomial
N (INTEGER*2) number of terms in P
Q (REAL*4) coefficients in denominator polynomial
M (INTEGER*2) number of terms in Q
X (REAL*4)
OUTPUT: R (REAL*4)
NOTE: RPQ evaluates a rational polynomial as shown below using
Horner's method

R=(P1+P2*X+P3*X**2+P4*X**3+...)/(Q1+Q2*X+Q3*X**2+Q4*X**3...)

for double precision use RPQD and make sure that you declare
R,P,Q,RPQD all to be REAL*8


NAME: SEVAL
PURPOSE: cubic spline evaluation
TYPE: REAL*4 function (far external)
SYNTAX: Y=SEVAL(XI,YI,N,C,X)
INPUT: XI,YI (REAL*4) specified points
N (INTEGER*2) number of points
C (REAL*4) coefficients determined by first calling SPLNE
X (REAL*4) point where you want to interpolate
OUTPUT: Y (REAL*4) interpolated value
NOTE: you need to first call SPLNE, you only need to do this once


NAME: XRAND
PURPOSE: normally distributed random number
TYPE: REAL*4 function (far external)
SYNTAX: X=XRAND(STD,BAR)
INPUT: STD (REAL*4) standard deviation of X
BAR (REAL*4) average X
X (REAL*4)


  3 Responses to “Category : Miscellaneous Language Source Code
Archive   : LIBRY51.ZIP
Filename : LIBRY4A.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/