matthias muntwiler bbd16d0f94 add files for public distribution
based on internal repository 0a462b6 2017-11-22 14:41:39 +0100
2017-11-22 14:55:20 +01:00

169 lines
5.6 KiB
Plaintext

CHANGES PLANNED SOMEDAY
1) more vertices in k-d tree for dimension > 2, to get continuity.
2) triangulation based method.
----------------------
19 Nov 1987 workspace not big enough for degree=2
22 Jan 1988 switched from depth first to breadth first tree build
14 Mar 1988 lostt.3 extra space needed if (method mod 1000 = 0),
not the documented (method/1000=0)
28 Apr 1988 l2tr.g vval2 needed to be initialized to 0
galaxy smooth needs double precision on vax
26 May 1988 bbox.g add 10% margin to allow limited extrapolation
6 June 1988 loess/lostt.f trL wasn't set if method/1000==0
10 June 1988 losave, loread
v(RCOND) 1 / max condition number
12 June 1988 lofort
21 June 1988 additional workspace for explicit L
27 June 1988 workspace checking in lowesf was slightly pessimistic
30 June 1988 Changed default fdiam to 0.
Added warning messages for memory limits and pseudoinverse.
4 Aug 1988 bbox.g changed margin from 10% to 0.5%.
24 Aug 1988 loser documentation should have specified workspace
of size ...+m*n, not ...+m**2.
Sep 1988
loess-based approximations of delta1,2.
pseudo-values, so statistics are available with robustness iterations.
reorganize error messages to better fit into S.
sample driver program.
somewhat shorter code generated by ehg170.
20 Dec 1988
workspace in loser
27 Jan 1989
workspace checking in lostt was a bit pessimistic.
3 Feb 1989
l2fit, l2tr: error message should contain sqrt(rho)
18 Dec 1989
ehg141, ehg179-ehg181: new delta approximations
24 Jan 1990
master copy moved from Sun3/180 to SGI 4D/240S
(no intentional changes)
25 Jan 1990
(many routines touched; ehg127 added) cleaned up computational
kernel, added provision for only first dd<=d variables to enter
the distance calculation ("conditionally parametric variables"),
added independent bounds on total and componentwise degree for
local polynomial model, made extrapolation warning message print
a bit more detail.
14 Mar 1990
added setLf argument to lowesd; added lowesr, lowesl for resmoothing.
-------------------------------------------------------
Converting to the new version of loess
5 April 1990
Over the past few months, a number of changes have been made to the
loess package, to provide more control over the local model, to allow
conditionally parametric variables, and to return exact statistical
quantities for the blending method. Unlike earlier internal
algorithmic improvements, this round of changes added some extra
arguments in the Fortran calling sequences. The purpose of this note
is to assist in converting programs that called the old version.
An explicit argument setLf has been added to lowesd(), since it affects
the partitioning of the workspace. To help protect against inadvertent
version mismatches, the version number that lowesd() checks has also
been changed. The componentwise degree and the specification of
conditionally nonparametric variables can be changed from the default
by modifying iv(CDEG) and iv(NDIST).
The influence matrix L for blending is now explicitly available by
calling a new subroutine lowesl(), but this loses the speed
advantage of blending. A faster, sometimes equivalent method is
to use the influence matrix that carries data values to coefficients
at the vertices of the k-d tree. This information is saved in iv(iv(Lq))
and v(iv(Lf)), for the afficionado.
The new subroutine lowesr() takes advantage of Lq and Lf to allow rapid
resmoothing for applications when only y, not x, is subject to change.
-------------------------------------------------------
7 May 1990
new delta approximations.
added prior weights to input format for sample driver.
29 May 1990
loess,lostt,loser,pseudo moved from Fortran to S.
11 Jul 1990
column equilibration, so pseudoinverse is needed less often.
27 May 1991
lowesd version 105; increased nvmax,ncmax to max(200,n).
l2fit added ihat=1 (diagL only).
ehg133,lowese removed unused arguments dist,eta.
ehg190,ehg141 changed name to lowesa, slight change to calling sequence.
ehg144 changed name to lowesc
m9rwt changed name to lowesw
pseudo changed name to lowesp
22 Jul 1991 IMPORTANT BUG FIX!
ehg131 vval2 should be dimensioned 0:d, not 0:8
26 Jul 1991
lowesd change calling sequence to provide tighter memory allocation
diff old/man/internal new/man/internal
< lowesd(105,iv,liv,lv,v,d,n,f,tdeg,setLf) setup workspace
> lowesd(106,iv,liv,lv,v,d,n,f,tdeg,nvmax,setLf) setup workspace
< liv 50+(2^d+6)*max(200,n)
< if setLf, add nf*max(200,n)
< lv 50+(3*d+4)*max(200,n)+(tau+2)*nf
< if setLf, add (d+1)*nf*max(200,n)
> liv 50+(2^d+6)*nvmax
> if setLf, add nf*nvmax
> lv 50+(3*d+4)*nvmax+(tau+2)*nf
> if setLf, add (d+1)*nf*nvmax
> nvmax limit on number of vertices for kd-tree; e.g. max(200,n)
20 Sep 1991
sample.f brought in sync with recent loess changes.
24 Dec 1991
l2fit.f fixed comment in single precision version
10 Jan 1992
ehg197.f new formula for approximating trL, valid for small f
15 May 1992
netlib/a/dloess now includes C drivers (written by Ming-Jen Shyu,
adapted from code used inside the S system)
22 Jun 1992
ehg191.f Loop 11 ran too far, picking up one more value than necessary.
The value was not used, so the loess computation itself is unaffected,
but on some systems the old code could conceivably cause a reference
to an invalid memory address and abort with a segmentation fault
message.
23 Jun 1992
S.h #include <math.h>, since loessc.c calls floor() and pow().
18 Aug 1992
netlib/a/dloess A new release with bug fixes in all the C drivers, new
example codes, and detail documentations.
25 Mar 1996
predict.c fix enormous memory leak. update email address