1919function prepare_hessian (f:: F , backend:: AutoSparse , x) where {F}
2020 initial_sparsity = hessian_sparsity (f, x, sparsity_detector (backend))
2121 sparsity = col_major (initial_sparsity)
22- colors = column_coloring (sparsity, coloring_algorithm (backend)) # no star coloring
22+ colors = symmetric_coloring (sparsity, coloring_algorithm (backend))
2323 groups = color_groups (colors)
2424 seeds = map (groups) do group
2525 seed = zero (x)
@@ -41,7 +41,7 @@ function hessian!(f::F, hess, backend::AutoSparse, x, extras::SparseHessianExtra
4141 hvp! (f, products[k], backend, x, seeds[k], hvp_extras_same)
4242 copyto! (view (compressed, :, k), vec (products[k]))
4343 end
44- decompress_columns ! (hess, sparsity, compressed, colors)
44+ decompress_symmetric ! (hess, sparsity, compressed, colors)
4545 return hess
4646end
4747
@@ -51,5 +51,5 @@ function hessian(f::F, backend::AutoSparse, x, extras::SparseHessianExtras) wher
5151 compressed = stack (eachindex (seeds, products); dims= 2 ) do k
5252 vec (hvp (f, backend, x, seeds[k], hvp_extras_same))
5353 end
54- return decompress_columns (sparsity, compressed, colors)
54+ return decompress_symmetric (sparsity, compressed, colors)
5555end
0 commit comments