Closed talassio closed 3 years ago
@tyronerees is already updating this
nlls_iterate
* OBVIOUS
mult weight
see #39 nlls_iterate
* OBVIOUS
mult weight
see #39 get_hi
has an automatic array, EI
* OBVIOUS
see top comment in #76aint_tr
* OBVIOUS b=-v
aint_tr
* OBVIOUS b=-v
aint_tr
* OBVIOUS a=a+lam*w%b, b=-v
aint_tr
* OBVIOUS a=a+lam*w%b, b=-v
aint_tr
* OBVIOUS b=-v
aint_tr
* OBVIOUS b=-v
more_sorensen_noew
* OBVIOUS b=-v
more_sorensen_noew
* OBVIOUS matmul(w%aplussigma,d)
more_sorensen_noew
* OBVIOUS b=-v
matrix_norm
* OBVIOUS matmul(a,x)
get_hi
* OBVIOUS weights(1:m)*ei
apply_second_order_info
* OBVIOUS weights(1:m)*w%f
evaluate_model
* OBVIOUS x=f(1:m)+w%jd(1:m) NEXT one to FIX (easy)
regularization_solver
* OBVIOUS b=-v
linpack_method
* OBVIOUS dot_product(u,matmul(h,u))
check_shift_and_solve
* OBVIOUS Call solve_spd_nocopy (a=w%aplussigma,b=-v
dogleg
* OBVIOUS
two_norm(x=alpha*w%d_sd)
dogleg
* OBVIOUS w%d_sd = alpha*w%d_sd (trivial, replace by loop)
more_sorensen_ew
* OBVIOUS Call
solve_spd_nocopy(a=w%aplussigma,b=-v,
more_sorensen_ew
* OBVIOUS Call
solve_spd_nocopy(a=w%aplussigma,b=-v
evaltensor_j
# NOT OBVIOUS j((jj-1)*m+1:(jj-1)*m+params%m) = params%j((jj-1)*params%m+1:jj* replace by loop (stride=1)
evaltensor_f
# NOT OBVIOUS f(1:params%m) = params%f(1:params%m) + params%tenj%js(1:params%m) replace by loop (stride=1)
evaltensor_f
# NOT OBVIOUS f(params%m+1:params%m+n) = replace by loop (stride=1)
drqs_solve_main
* OBVIOUS maxval(abs(... fixable using a for loop
dtrs_solve_main
* OBVIOUS maxval(abs(h(:n))) fixable using a for loop
dtrs_solve
* OBVIOUS scale_h = maxval(abs(h)) replace by loop
dtrs_solve
* OBVIOUS scale_c = maxval(abs(c)) replace by loop
drqs_solve
* OBVIOUS scale_h = maxval(abs(h)) replace by loop
drqs_solve
* OBVIOUS scale_c = maxval(abs(c)) replace by loop
dtrs_solve_main
# NOT OBVIOUS maxloc?
drqs_solve_main
# NOT OBVIOUS maxloc?
solve_newton_tensor
(allocation: assumed-shape to assumed-size conversion)solve_newton_tensor
(allocation: assumed-shape to assumed-size conversion)aint_tr
(allocation: assumed-shape to assumed-size conversion)aint_tr
(allocation: assumed-shape to assumed-size conversion)calculate_step
(allocation: assumed-shape to assumed-size conversion)calculate_step
(allocation: assumed-shape to assumed-size conversion)calculate_step
(allocation: assumed-shape to assumed-size conversion)two_norm
(allocation: assumed-shape to assumed-size conversion)more_sorensen_noew
(allocation: assumed-shape to assumed-size conversion)more_sorensen_noew
(allocation: assumed-shape to assumed-size conversion)more_sorensen_noew
(allocation: assumed-shape to assumed-size conversion)outer_product
(allocation: assumed-shape to assumed-size conversion)solve_general
(allocation: assumed-shape to assumed-size conversion)rank_one_update
(allocation: assumed-shape to assumed-size conversion)rank_one_update
(allocation: assumed-shape to assumed-size conversion)rank_one_update
(allocation: assumed-shape to assumed-size conversion)rank_one_update
(allocation: assumed-shape to assumed-size conversion)all_eig_symm
(allocation: assumed-shape to assumed-size conversion)apply_second_order_info
(allocation: assumed-shape to assumed-size conversion)get_hi
(allocation: assumed-shape to assumed-size conversion)reset_gradients
(allocation: assumed-shape to assumed-size conversion)reset_gradients
(allocation: assumed-shape to assumed-size conversion)reset_gradients
(allocation: assumed-shape to assumed-size conversion)evaluate_model
(allocation: assumed-shape to assumed-size conversion)evaluate_model
(allocation: assumed-shape to assumed-size conversion)linpack_method
(allocation: assumed-shape to assumed-size conversion)solve_galahad
(allocation: assumed-shape to assumed-size conversion)solve_galahad
(allocation: assumed-shape to assumed-size conversion)solve_spd_nocopy
(allocation: assumed-shape to assumed-size conversion)solve_spd
(allocation: assumed-shape to assumed-size conversion)max_eig
(allocation: assumed-shape to assumed-size conversion)min_eig_symm
(allocation: assumed-shape to assumed-size conversion)dogleg
(allocation: assumed-shape to assumed-size conversion)This will be closed by the box_logic
pull request.
Remove automatic arrays from source
Code has TWO type of triggers for mallocs:
Type one
Calls of the form
Trigger
malloc
s and should be removed. A fix could be to propagate workspaces...Outstanding RALFit
malloc
s areDRQS_SOLVE
automatic array,C_SCALE
[checkCoding-E-48]DRQS_SOLVE
automatic array,H_SCALE
[checkCoding-E-48]DTRS_SOLVE
automatic array,C_SCALE
[checkCoding-E-48]DTRS_SOLVE
automatic array,H_SCALE
[checkCoding-E-48]Other
malloc
s are related to calling routines with expresion of the form-vector(1:n)
malloc
s for the result of-1.0_wp * vector(1:n)
.Type two
Dummy arguments assumed shape/size translation
j(*)
is addressed as a contiguous block of memory.j(:)
is a structure which varies by compilerThe
j(:)
memory metadata has to be traversed and flattened to contiguity before passing toj(*)
, which is why the temp is created.Giving
j(:)
theContiguous
attribute should help, that would require it to always be passed 'sensible' Allocatable stuff without strides, and not Pointers.Proposal for
get_Hi
Issue partially fixed by #78, still need to address automatic array
ei(m)