comp.lang.ada
 help / color / mirror / Atom feed
From: brbarkstrom@gmail.com
Subject: Re: New IEEE Language Popularity Ratings
Date: Sat, 6 Aug 2016 13:59:00 -0700 (PDT)
Date: 2016-08-06T13:59:00-07:00	[thread overview]
Message-ID: <cfac2d95-1457-4e53-925d-cde618bf73d1@googlegroups.com> (raw)
In-Reply-To: <cbb2040f-664b-4323-87bc-d0002cf7f28d@googlegroups.com>

LUP decomposition is part of the tools involved in SVD.  You should consult 
either Numerical Recipes for Scientists and Engineers, or, better, 

Lawson, C. L. and Hanson, R. J., 1974: Solving Least Squares Problems, 
Prentice-Hall, Englewood Cliffs, NJ

They use Householder reductions, not just simple LUP decomposition.
They demonstrate that this approach preserves accuracy and does well with
phenomena such as truncation error.

The problems arise when the singular values get small.  The matrix inversion
takes the inverse of the singular values as part of its calculations.  This
introduces wild oscillations in the solutions. if the matrix is ill-conditioned.
Lawson and Hanson's algorithms were used in the Linpack and Lapack libraries.
The algorithms include pivoting to sort the singular values and reduce loss
of significant digits.  While the code was originally written for machines such
as the 60-bit CDC machines as well as other architectures, they work fine on Windows 32 and 64-bit machines.  You might look up the code, which is available
in FORTRAN - and try some of the examples of nearly singular matrices to see
how your LUP inversions hold up.

On RNG, the Park-Miller algorithm is written for at least 64-bit calculations.
The critical issue in this is the length of the cycles, not just the hardware.
I expect that the RNG algorithms have improved, although I haven't actively
checked their current state.  There's a lot of mathematical sophistication
involved in generating a reliable generator.  Again, Knuth should be the start
of the discussion.  His third edition of The Art of Computer Programming,
Volume 2, has about 50 pages devoted to statistical tests of random number
generators.  They include empirical tests, theoretical tests, and spectral
tests.  Knuth also describes how to do multi-byte numerical calculations
with a sound mathematical basis.

Along this line, is there documentation of which random number tests GNAT
used for its generator?

Bruce B.


  reply	other threads:[~2016-08-06 20:59 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-28 14:58 New IEEE Language Popularity Ratings brbarkstrom
2016-07-28 15:05 ` Alejandro R. Mosteo
2016-07-28 20:19   ` brbarkstrom
2016-07-28 20:47     ` G.B.
2016-08-09 19:58   ` Norman Worth
2016-08-09 20:29     ` Jeffrey R. Carter
2016-08-09 21:18       ` Maciej Sobczak
2016-08-09 22:26         ` Jeffrey R. Carter
2016-08-09 23:18           ` Anh Vo
2016-08-10  6:08     ` Stu Hollander
2016-08-10  7:13       ` Paul Rubin
2016-08-10  8:57         ` G.B.
2016-08-10 15:50           ` Paul Rubin
2016-08-10 16:32             ` Dmitry A. Kazakov
2016-08-10 18:43               ` Paul Rubin
2016-08-10 19:10                 ` Dmitry A. Kazakov
2016-08-10 22:55                   ` Paul Rubin
2016-08-10 23:14                     ` G.B.
2016-08-11  0:53                       ` Paul Rubin
2016-08-11 21:34                         ` G.B.
2016-08-10 23:06             ` G.B.
2016-08-11  0:04               ` Paul Rubin
2016-08-11  6:55                 ` rrr.eee.27
2016-08-11  6:56                   ` Paul Rubin
2016-08-10  7:23       ` gautier_niouzes
2016-08-10  9:07       ` G.B.
2016-08-10  9:12       ` G.B.
2016-08-10 14:41       ` Maciej Sobczak
2016-07-29  6:41 ` Jerry
2016-07-29 12:37   ` brbarkstrom
2016-08-03 15:24     ` Serge Robyns
2016-08-06 15:53       ` brbarkstrom
2016-08-06 20:10         ` rieachus
2016-08-06 20:59           ` brbarkstrom [this message]
2016-08-06 23:32             ` G.B.
2016-08-06 20:20         ` rieachus
2016-08-06 21:38         ` Jeffrey R. Carter
2016-08-07  1:19           ` brbarkstrom
2016-08-07  6:21             ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox