starpac
starpac,
a Fortran90 code which
performs statistical data analysis. It includes functions for nonlinear
least squares regression, time series analysis in both time and
frequency domains), line printer graphics, basic statistical analysis,
and linear least squares regression, by Janet Donaldson.
starpac() uses a COMMON block and EQUIVALENCE statements
in order to make workspace storage available to its routines.
This scheme assumes that an integer is stored in one word.
When compiling this program with the gnu g95() compiler, it may be
necessary to include the -i4 switch, to guarantee that integers
are stored in 4 bytes = one word. Otherwise, routines that
rely on the workspace storage system will fail.
Some updates to the original Fortran77 code include:
Basic conversion to Fortran90 format, although many archaic
structures remain, include common blocks and equivalence statements.
Source code for erf(), erfc() and gamma() removed;
intrinsic functions are called instead.
The subroutine stat() was renamed stat_external() to avoid
conflict with an intrinsic stat() function. Various
calls and declarations had to be correspondingly updated.
The dstak() array was uniformly redimensioned to size 3000;
Previously, it was generally dimensioned as size 12, but
some functions expected it to have signficantly more storage.
Several obsolete arithmetic goto statements were replaced
by corresponding if/elseif/else statements.
Numerous statements were corrected, in which an array argument,
say "xmiss", was supposed to be followed by a scalar value.
Instead, these statements had the form ",xmiss,xmiss,". Presumably,
the second value was actually not used, and so the value "xmiss"
was repeated as a filler. However, the receiving subroutine
expected a scalar value for that argument, and this triggered an
error. Most of these errors were suppressed simply by replacing
",xmiss,xmiss," by ",xmiss,xmiss(1),", turning the second argument
into a scalar, and relying on the likelihood that the subroutine
actually had no need for this information anyway. Before this
change, the gfortran compiler would allow the original statements
as long as it was invoked with the flag "-fallow-argument-mismatch".
This problem and the gfortran workaround were reported by Vivek
Rao.
Licensing:
The information on this web page is distributed under the MIT license.
Languages:
starpac is available in
a Fortran90 version.
Related Data and Programs:
starpac_test
blas1,
a Fortran90 code which
implements the
Basic Linear Algebra Subprograms, Level 1, and which are
called by starpac().
machine,
a Fortran90 code which
tabulates the values
of certain machine-specific arithmetic quantities, and which are
called by starpac().
nl2sol,
a Fortran90 code which
minimizes the
sum of squares of a set of nonlinear functions, and which is
called by starpac().
prob,
a Fortran90 code which
computes the PDF, CDF, inverse CDF, and sampling various statistical
distributions.
xerror,
a Fortran90 code which
carries out error handling.
Author:
Original Fortran77 version by Janet Donaldson.
This version by John Burkardt.
Reference:
-
Milton Abramowitz, Irene Stegun,
Handbook of Mathematical Functions,
National Bureau of Standards, 1964,
LC: QA47.A34,
ISBN: 0-486-61272-4.
-
Peter Bloomfield,
Fourier Analysis of Time Series - An Introduction,
Wiley, 2000,
ISBN: 0471889482,
LC: QA280.B59.
-
Nancy Bosten, Thomas Aird,
Remark on Algorithm 179,
Communications of the ACM,
Volume 17, page 153, 1974.
-
George Box, Gwilym Jenkins,
Time Series Analysis: Forecasting and Control,
Prentice Hall, 1991,
ISBN: 0139051007,
LC: QA280.B67.
-
Kenneth Brown,
A Quadratically Convergent Newton-like Method Based upon
Gaussian Elimination,
SIAM Journal on Numerical Analysis,
Volume 6, pages 560-569, 1969.
-
Peter Businger, Gene Golub,
Linear Least Squares Solutions by Householder Transformations,
Numerische Mathematik,
Volume 7, pages 269-276, 1965.
-
Alan Cline, Cleve Moler, Pete Stewart, James Wilkinson,
An Estimate of the Condition Number of a Matrix,
Technical Report TM-310,
Applied Math Division,
Argonne National Laboratory, 1977.
-
John Dennis, David Gay, Roy Welsch,
Algorithm 573:
An Adaptive Nonlinear Least-Squares Algorithm,
ACM Transactions on Mathematical Software,
Volume 7, Number 3, 1981, pages 367-383.
-
Janet Donaldson, Peter Tryon,
User's Guide to STARPAC,
The Standards Time Series and Regression Package,
NIST, Boulder, Colorado, 1987.
-
Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
LINPACK User's Guide,
SIAM, 1979,
ISBN13: 978-0-898711-72-1,
LC: QA214.L56.
-
Norman Draper, Harry Smith,
Applied Regression Analysis,
Wiley, 1998,
ISBN: 978-0471170822,
LC: QA278.2.D7.
-
Merran Evans, Nicholas Hastings, Brian Peacock,
Statistical Distributions,
Wiley, 2000,
ISBN: 0471371246,
LC: QA273.6E92.
-
Enrico Federghi,
Extended Tables of the Percentage Points of Student's
T-Distribution,
Journal of the American Statistical Association,
Volume 54, Number 287, 1959, pages 683-688.
-
Phyllis Fox, Andrew Hall, Norman Schryer,
Algorithm 528,
A Framework for a Portable code,
ACM Transactions on Mathematical Software,
Volume 4, Number 2, June 1978, pages 177-188.
-
Walter Gautschi,
Algorithm 542:
Incomplete Gamma Functions,
ACM Transactions on Mathematical Software,
Volume 5, Number 4, December 1979, pages 382-489.
-
David Gay,
Computing Optimal Locally Constrained Steps,
SIAM Journal on Scientific and Statistical Computing,
Volume 2, Number 2, pages 186-197, 1981.
-
Philip Gill, Walter Murray,
Algorithms for the Solution of the
Non-linear Least-squares Problem,
SIAM Journal on Numerical Analysis,
Volume 15, Number 5, pages 977-991, 1978.
-
Steven Goldfeld, Richard Quandt, Hale Trotter,
Maximization by Quadratic Hill-climbing,
Econometrica,
Volume 34, pages 541-551, 1966.
-
MD Hebden,
An Algorithm for Minimization using Exact Second Derivatives,
Report TP515,
Theoretical Physics Division,
AERE, Harwell, Oxon., England, 1973.
-
DC Hoaglin,
Theoretical Properties of Congruential Random-Number Generators,
An Empirical View,
Memorandum NS-340,
Department of Statistics,
Harvard University, 1976.
-
Gwilym Jenkins, Donald Watts,
Spectral Analysis and its Applications,
Holden-Day, 1968,
ISBN: 1892803038,
LC: QA280.J45.
-
Norman Johnson, Samuel Kotz, Narayanaswamy Balakrishnan,
Continuous Univariate Distributions,
Second edition,
Wiley, 1994,
ISBN: 0471584940,
LC: QA273.6.J6
-
Donald Knuth,
The Art of Computer Programming,
Volume 2, Seminumerical Algorithms,
Third Edition,
Addison Wesley, 1997,
ISBN: 0201896842,
LC: QA76.6.K64.
-
Charles Lawson, Richard Hanson,
Solving Least Squares Problems,
SIAM, 1995,
ISBN: 0898713560,
LC: QA275.L38.
-
Charles Lawson, Richard Hanson, David Kincaid, Fred Krogh,
Algorithm 539:
Basic Linear Algebra Subprograms for Fortran Usage,
ACM Transactions on Mathematical Software,
Volume 5, Number 3, September 1979, pages 308-323.
-
George Marsaglia, Wai Wan Tsang,
A fast, easily implemented method for sampling from decreasing or
symmetric unimodal density functions,
SIAM Journal of Scientific and Statistical Computing,
Volume 5, 1983, pages 349-359.
-
Jorge More,
The Levenberg-Marquardt Algorithm, Implementation and Theory,
in Springer Lecture Notes in Mathematics, Number 630,
edited by G A Watson,
Springer, 1978.
-
Donald Owen,
Handbook of Statistical Tables,
Addison-Wesley, 1962.
-
Egon Pearson, Herman Hartley,
Biometrika Tables for Statisticians,
Cambridge, 1970,
ISBN: 978-0852647004.
-
Michael Powell,
A Fortran Subroutine for Solving Systems of Nonlinear
Algebraic Equations,
in Numerical Methods for Nonlinear Algebraic Equations,
edited by Philip Rabinowitz,
Gordon and Breach, 1970,
ISBN13: 978-0677142302,
LC: QA218.N85.
-
CS Smith,
Multiplicative Pseudo-Random Number Generators with Prime Modulus,
Journal of the Association for Computing Machinery,
Volume 19, pages 586-593, 1971.
-
Richard Varga,
Minimal Gerschgorin Sets,
Pacific Journal of Mathematics,
Volume 15, pages 719-729, 1965.
-
Max Waldmeier,
The Sunspot-Activity in the Years 1610-1960,
Shulthess, 1961,
LC: QB525.W34.
-
Martin Wilk, Ram Gnanadesikan, Marilyn Huyett,
Probability Plots for the Gamma Distribution,
Technometrics,
Volume 4, Number 1, 1962, pages 1-15,
Source Code:
Last revised on 22 October 2024.