To test independence of incoming column.
Test the column IC to determine if it is linearly independent
of the columns already in the basis. In the initial tri. step,
we usually want the heavy weight ALAMDA to be included in the
test for independence. In this case, the value of FACTOR
will
have been set to 1.0 before this procedure is invoked.
In the potentially rank deficient problem, the value of FACTOR
will have been set to ALSQ=ALAMDA**2
to remove the effect of the
heavy weight from the test for independence.
Write new column as partitioned vector
(A1)
number of components in solution so far = NIV
(A2)
M-NIV
componentsAnd compute
SN
= inverse weighted length of A1
RN
= inverse weighted length of A2
Call the column independent when RN > TAU*SN
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | me | ||||
integer | :: | mend | ||||
integer | :: | ir | ||||
real(kind=wp) | :: | factor | ||||
real(kind=wp) | :: | tau | ||||
real(kind=wp) | :: | scale(*) | ||||
real(kind=wp) | :: | wic(*) |
logical function dwnlt2 (me, mend, ir, factor, tau, scale, wic) real(wp) :: factor, scale(*), tau, wic(*) integer :: ir, me, mend real(wp) :: rn, sn, t integer :: j sn = 0.0_wp rn = 0.0_wp do j=1,mend t = scale(j) if (j<=me) t = t/factor t = t*wic(j)**2 if (j<ir) then sn = sn + t else rn = rn + t endif end do dwnlt2 = rn > sn*tau**2 end function dwnlt2