1
C @(#)tdregr.for 19.1 (ES0-DMD) 02/25/03 14:11:19
2
C===========================================================================
3
C Copyright (C) 1995 European Southern Observatory (ESO)
5
C This program is free software; you can redistribute it and/or
6
C modify it under the terms of the GNU General Public License as
7
C published by the Free Software Foundation; either version 2 of
8
C the License, or (at your option) any later version.
10
C This program is distributed in the hope that it will be useful,
11
C but WITHOUT ANY WARRANTY; without even the implied warranty of
12
C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
C GNU General Public License for more details.
15
C You should have received a copy of the GNU General Public
16
C License along with this program; if not, write to the Free
17
C Software Foundation, Inc., 675 Massachusetss Ave, Cambridge,
20
C Corresponding concerning ESO-MIDAS should be addressed as follows:
21
C Internet e-mail: midas@eso.org
22
C Postal address: European Southern Observatory
23
C Data Management Division
24
C Karl-Schwarzschild-Strasse 2
25
C D 85748 Garching bei Muenchen
27
C===========================================================================
29
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
30
C.COPYRIGHT: Copyright (c) 1987 European Southern Observatory,
33
C.VERSION: 1.0 ESO-FORTRAN Conversion, AA 18:24 - 11 DEC 1987
35
C.LANGUAGE: F77+ESOext
39
C.IDENTIFICATION TDREGR.FOR
40
C.KEYWORDS TABLE, APPLICATIONS
46
C HOUSEHOLDER TRANSFORMATION
47
C REF.: CH.L.LAWSON AND R.J.HANSON
48
C SOLVING LEAST SQUARES PROBLEMS
49
C PRENTICE HALL INC. 1974
52
C------------------------------------------------------------------
54
SUBROUTINE TDSET1(LL,X1,Y,NIND,G,X,N,M)
55
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
59
C PREPARE DATA IN WORK SPACE FOR MULTIPLE LINEAL REGRESSION
61
C------------------------------------------------------------------
65
DOUBLE PRECISION X1(NIND)
69
DOUBLE PRECISION G(M,M)
78
G(LL,IP) = G(LL,IP-1)*X1(L1)
85
SUBROUTINE TDSET2(LL,X1,X2,Y,K,L,G,X,N,M)
86
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
90
C PREPARE DATA IN WORK SPACE FOR 1 OR 2D POLYNOMIAL
92
C------------------------------------------------------------------
102
DOUBLE PRECISION G(M,M)
103
DOUBLE PRECISION X(M)
115
G(LL,IP) = G(LL,IP-1)*X1
124
SUBROUTINE TDHHTR(K,L1,G,X,N,M)
125
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
129
C Apply a Householder transformation to the two rows K and L1 of G.
131
C------------------------------------------------------------------
134
INTEGER L1 ! IN : RANK OF THE MATRIX
137
DOUBLE PRECISION G(M,M)
138
DOUBLE PRECISION X(M)
141
DOUBLE PRECISION S,H,B
143
C ... CONSTRUCT THE TRANSFORMATION
145
S = DSQRT(G(K,K)**2+G(L1,K)**2)
146
IF (G(K,K).GE.0.D0) S = -S
151
C ... APPLY THE TRANSFORMATION TO THE ROWS K AND L1 OF G.
154
IF ((KH.NE.0) .AND. (B.NE.0.D0)) THEN
156
S = (G(K,K+J)*H+G(L1,K+J)*G(L1,K))/B
157
G(K,K+J) = G(K,K+J) + S*H
158
G(L1,K+J) = G(L1,K+J) + S*G(L1,K)
166
SUBROUTINE TDSOLV(G,X,N,M)
167
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
172
C Solve the set of linear equations which are
173
C represented by the upper triangular part
174
C of the matrix G(1:n,1:n+1).
176
C------------------------------------------------------------------
180
DOUBLE PRECISION G(M,M)
181
DOUBLE PRECISION X(M)
193
DO 20 J = 2,N + 1 - I
194
S = S + G(I,I+J-1)*X(I+J-1)
198
X(I) = (X(I)-S)/G(I,I)