You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tensor Newton subproblem solve (with regularization)
Part 1 of 2 Nan's under valid options in recursive call (regularization)
In the recursive call (model=4) the starting point is either x=d(:)=0 or x=d(:)=1.0e-12, in the zero case, we have that update_regularized_gradient(g,x,normx,options) will have normx=0 and
...
Case (2)
g = g - options%regularization_term*(normx**(options% &
regularization_power-2.0_wp))*x
will produce NaN when 0^0 is encountered (which is a default valid option combination...)
Fix (pushed to box-logic)
Select Case (options%regularization)
Case (1)
g = g - options%regularization_term*x
Case (2)
If (normx==0.0_wp) Then
! Avoid undefined behaviour (Knuth 1992, 0^0 := 1)
g = g - options%regularization_term*x
Else
g = g - options%regularization_term*(normx**(options% &
regularization_power-2.0_wp))*x
End If
End Select
This is pushed to box-logic.
Part 2 of 2 Subsolvers fail under default starting point
Further to this problem, d(:)=0.0seems not to be a valid starting point for the sub-solvers
0 4.9210E+01 4.43299E+01 4.46844E+00 1.00E+02 -1.00E+00 --I-
*** Solving the regularized subproblem using Galahad DRQS ***
*** Subproblem solution not found. Trying next method ***
*** Solving the regularized subproblem using RALFit Solver ***
*** Error or Subproblem solution NOT found ***
-------------------------------------------------------------------------------
Status: aborted, no progress
yet forcing x=d(:) = 1e-12 won't make the subsolvers fail but it neither provides any progress in the solve (need to look into)
Potentially, this can be tackled by using a favourable starting point for the recursive solve e.g. x=d(:)=sqrt(norm(w%g))??? (probably not, need to think about it)
For now the solve just fails with no progress.
Options used:
! Set options
Call e04zmf(handle,'BXNL Use Second Derivatives = Yes',ifail)
Call e04zmf(handle,'BXNL Model = Tensor-Newton',ifail)
Call e04zmf(handle,'BXNL NLLS Method = AINT',ifail)
Call e04zmf(handle,'BXNL Glob Method = REG',ifail)
Call e04zmf(handle,'Bxnl Basereg Type= EXPAND-1-DOF',ifail)
Call e04zmf(handle,'Bxnl TN METHOD= Implicit',ifail)
The text was updated successfully, but these errors were encountered:
Tensor Newton subproblem solve (with regularization)
Part 1 of 2 Nan's under valid options in recursive call (regularization)
In the recursive call (model=4) the starting point is either
x=d(:)=0
orx=d(:)=1.0e-12
, in the zero case, we have thatupdate_regularized_gradient(g,x,normx,options)
will havenormx=0
andwill produce
NaN
when 0^0 is encountered (which is a default valid option combination...)Fix (pushed to
box-logic
)This is pushed to
box-logic
.Part 2 of 2 Subsolvers fail under default starting point
Further to this problem,
d(:)=0.0
seems not to be a valid starting point for the sub-solversyet forcing
x=d(:) = 1e-12
won't make the subsolvers fail but it neither provides any progress in the solve (need to look into)Potentially, this can be tackled by using a favourable starting point for the recursive solve e.g.
x=d(:)=sqrt(norm(w%g))
??? (probably not, need to think about it)For now the solve just fails with no progress.
Options used:
The text was updated successfully, but these errors were encountered: