@@ -83,6 +83,21 @@ function preprocess(stp::NLPStopping, PData::TPData, workspace::TRARCWorkspace,
83
83
return PData
84
84
end
85
85
86
+ function preprocess (
87
+ stp:: NLPStopping ,
88
+ PData:: PDataIterLS ,
89
+ workspace:: TRARCWorkspace{T,S,Hess} ,
90
+ ∇f,
91
+ norm_∇f,
92
+ α,
93
+ ) where {T,S,Hess<: HessGaussNewtonOp }
94
+ max_hprod = stp. meta. max_cntrs[:neval_jprod_residual ]
95
+ Fx = workspace. Fx
96
+ Jx = jac_op_residual! (stp. pb, workspace. xt, workspace. Hstruct. Jv, workspace. Hstruct. Jtv)
97
+ PData = ARCTR. preprocess (PData, Jx, Fx, norm_∇f, neval_jprod_residual (stp. pb), max_hprod, α)
98
+ return PData
99
+ end
100
+
86
101
function compute_direction (
87
102
stp:: NLPStopping ,
88
103
PData:: TPData ,
@@ -132,21 +147,21 @@ function hessian!(workspace::TRARCWorkspace, nlp, x)
132
147
end
133
148
134
149
function TRARC (
135
- nlp_stop:: NLPStopping{Pb, M, SRC, NLPAtX{Score, T, S}, MStp, LoS} ;
136
- TR:: TrustRegion = TrustRegion (T (10.0 )),
137
- hess_type:: Type{Hess} = HessOp,
138
- pdata_type:: Type{ParamData} = PDataKARC,
139
- kwargs... ,
140
- ) where {Pb, M, SRC, MStp, LoS, Score, S, T, Hess, ParamData}
141
- nlp = nlp_stop. pb
142
-
143
- if ParamData == PDataNLSST
144
- PData = PDataNLSST (S, T, nlp. meta. nvar, nlp. nls_meta. nequ; kwargs... )
145
- else
146
- PData = ParamData (S, T, nlp. meta. nvar; kwargs... )
147
- end
148
- workspace = TRARCWorkspace (nlp, Hess)
149
- return TRARC (nlp_stop, PData, workspace, TR; kwargs... )
150
+ nlp_stop:: NLPStopping{Pb,M, SRC,NLPAtX{Score,T, S},MStp,LoS} ;
151
+ TR:: TrustRegion = TrustRegion (T (10.0 )),
152
+ hess_type:: Type{Hess} = HessOp,
153
+ pdata_type:: Type{ParamData} = PDataKARC,
154
+ kwargs... ,
155
+ ) where {Pb,M, SRC,MStp,LoS,Score,S,T, Hess,ParamData}
156
+ nlp = nlp_stop. pb
157
+
158
+ if ParamData in ( PDataNLSST, PDataLSKARC)
159
+ PData = ParamData (S, T, nlp. meta. nvar, nlp. nls_meta. nequ; kwargs... )
160
+ else
161
+ PData = ParamData (S, T, nlp. meta. nvar; kwargs... )
162
+ end
163
+ workspace = TRARCWorkspace (nlp, Hess)
164
+ return TRARC (nlp_stop, PData, workspace, TR; kwargs... )
150
165
end
151
166
152
167
"""
0 commit comments