Skip to content

Assert the outcome in the BigFloat initial convergence test - #1301

Merged
pkofod merged 1 commit into
masterfrom
pkm/bigfloat-initial-convergence
Oct 23, 2026
Merged

pkofod merged 1 commit into
masterfrom
pkm/bigfloat-initial-convergence

Conversation

@pkofod

@pkofod pkofod commented Oct 23, 2026

Copy link
Copy Markdown
Member

The test for #720 ran each method from the optimum with BigFloat input and asserted nothing, so it caught only a thrown error. For the gradient methods, this PR asserts three things: they stop at iteration 0, they report convergence, and they return a BigFloat minimizer. SimulatedAnnealing has no initial convergence check, so it gets only the element type check. The PR also drops an unused OnceDifferentiable object copied from the issue's reproducer.

This changes tests only.

🤖 Generated with Claude Code

The test for #720 ran each method from the optimum with BigFloat input
and asserted nothing, so it caught only a thrown error. For the gradient
methods, assert that they stop at iteration 0, report convergence and
return a BigFloat minimizer. SimulatedAnnealing has no initial
convergence check, so it gets the element type check alone. Drop the
unused OnceDifferentiable object copied from the issue's reproducer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results (Julia v1)

Time benchmarks
master 5d57325... master / 5d57325...
multivariate/problems/rosenbrock/100/KrylovTrustRegion 0.169 ± 0.0068 ms 0.167 ± 0.0088 ms 1.01 ± 0.068
multivariate/problems/rosenbrock/100/Newton 1.26 ± 0.018 ms 1.26 ± 0.02 ms 1 ± 0.022
multivariate/problems/rosenbrock/100/NewtonTrustRegion 6.03 ± 2 ms 5.9 ± 0.48 ms 1.02 ± 0.34
multivariate/problems/rosenbrock/2/KrylovTrustRegion 21.6 ± 4.3 μs 21.7 ± 5.4 μs 0.994 ± 0.32
multivariate/problems/rosenbrock/2/Newton 26.7 ± 5.4 μs 26.7 ± 5.6 μs 0.999 ± 0.29
multivariate/problems/rosenbrock/2/NewtonTrustRegion 0.0355 ± 0.0085 ms 0.0353 ± 0.0089 ms 1.01 ± 0.35
multivariate/problems/rosenbrock/20/KrylovTrustRegion 0.0391 ± 0.0018 ms 0.039 ± 0.002 ms 1 ± 0.069
multivariate/problems/rosenbrock/20/Newton 0.0731 ± 0.0012 ms 0.073 ± 0.0011 ms 1 ± 0.022
multivariate/problems/rosenbrock/20/NewtonTrustRegion 0.317 ± 0.013 ms 0.319 ± 0.013 ms 0.995 ± 0.057
multivariate/problems/saddle/100/KrylovTrustRegion 0.0596 ± 0.0041 ms 0.0587 ± 0.0054 ms 1.02 ± 0.12
multivariate/problems/saddle/100/Newton 0.237 ± 0.012 ms 0.242 ± 0.012 ms 0.98 ± 0.071
multivariate/problems/saddle/100/NewtonTrustRegion 3.16 ± 0.076 ms 3.12 ± 0.06 ms 1.01 ± 0.031
multivariate/problems/saddle/2/KrylovTrustRegion 8.42 ± 0.27 μs 8.51 ± 0.3 μs 0.989 ± 0.047
multivariate/problems/saddle/2/Newton 5.78 ± 0.3 μs 5.68 ± 0.31 μs 1.02 ± 0.077
multivariate/problems/saddle/2/NewtonTrustRegion 12.5 ± 1.2 μs 12.4 ± 1.2 μs 1.01 ± 0.14
multivariate/problems/saddle/20/KrylovTrustRegion 12.6 ± 5.2 μs 12.7 ± 5.1 μs 0.989 ± 0.57
multivariate/problems/saddle/20/Newton 15.6 ± 0.48 μs 15.6 ± 0.5 μs 1 ± 0.045
multivariate/problems/saddle/20/NewtonTrustRegion 0.11 ± 0.0042 ms 0.111 ± 0.0031 ms 0.988 ± 0.047
multivariate/solvers/first_order/AdaMax 0.641 ± 0.0088 ms 0.639 ± 0.0096 ms 1 ± 0.02
multivariate/solvers/first_order/Adam 0.639 ± 0.013 ms 0.638 ± 0.0096 ms 1 ± 0.025
multivariate/solvers/first_order/BFGS 0.132 ± 0.0022 ms 0.132 ± 0.0022 ms 1 ± 0.024
multivariate/solvers/first_order/ConjugateGradient 0.22 ± 0.0066 ms 0.22 ± 0.0074 ms 0.998 ± 0.045
multivariate/solvers/first_order/GradientDescent 0.948 ± 0.0078 ms 0.954 ± 0.0067 ms 0.994 ± 0.011
multivariate/solvers/first_order/LBFGS 0.149 ± 0.0025 ms 0.149 ± 0.0027 ms 1 ± 0.025
multivariate/solvers/first_order/MomentumGradientDescent 1.92 ± 0.013 ms 1.93 ± 0.016 ms 0.999 ± 0.011
multivariate/solvers/first_order/NGMRES 0.947 ± 0.0081 ms 0.946 ± 0.0071 ms 1 ± 0.011
multivariate/solvers/second_order/KrylovTrustRegion 0.331 ± 0.01 ms 0.331 ± 0.0099 ms 0.999 ± 0.043
multivariate/solvers/second_order/Newton 0.221 ± 0.0073 ms 0.222 ± 0.0062 ms 0.997 ± 0.043
multivariate/solvers/second_order/NewtonTrustRegion 0.241 ± 0.01 ms 0.241 ± 0.01 ms 1 ± 0.059
time_to_load 0.362 ± 0.0017 s 0.363 ± 0.00081 s 0.998 ± 0.0052
Memory benchmarks
master 5d57325... master / 5d57325...
multivariate/problems/rosenbrock/100/KrylovTrustRegion 0.561 k allocs: 0.36 MB 0.561 k allocs: 0.36 MB 1
multivariate/problems/rosenbrock/100/Newton 0.496 k allocs: 0.34 MB 0.496 k allocs: 0.34 MB 1
multivariate/problems/rosenbrock/100/NewtonTrustRegion 0.554 k allocs: 4.65 MB 0.554 k allocs: 4.65 MB 1
multivariate/problems/rosenbrock/2/KrylovTrustRegion 0.574 k allocs: 21.3 kB 0.574 k allocs: 21.3 kB 1
multivariate/problems/rosenbrock/2/Newton 0.492 k allocs: 18.4 kB 0.492 k allocs: 18.4 kB 1
multivariate/problems/rosenbrock/2/NewtonTrustRegion 0.458 k allocs: 0.0326 MB 0.458 k allocs: 0.0326 MB 1
multivariate/problems/rosenbrock/20/KrylovTrustRegion 0.595 k allocs: 0.0616 MB 0.595 k allocs: 0.0616 MB 1
multivariate/problems/rosenbrock/20/Newton 0.496 k allocs: 0.033 MB 0.496 k allocs: 0.033 MB 1
multivariate/problems/rosenbrock/20/NewtonTrustRegion 0.511 k allocs: 0.319 MB 0.511 k allocs: 0.319 MB 1
multivariate/problems/saddle/100/KrylovTrustRegion 0.173 k allocs: 0.211 MB 0.173 k allocs: 0.211 MB 1
multivariate/problems/saddle/100/Newton 0.141 k allocs: 0.352 MB 0.141 k allocs: 0.352 MB 1
multivariate/problems/saddle/100/NewtonTrustRegion 0.338 k allocs: 2.58 MB 0.338 k allocs: 2.58 MB 1
multivariate/problems/saddle/2/KrylovTrustRegion 0.183 k allocs: 7.09 kB 0.183 k allocs: 7.09 kB 1
multivariate/problems/saddle/2/Newton 0.129 k allocs: 5.75 kB 0.129 k allocs: 5.75 kB 1
multivariate/problems/saddle/2/NewtonTrustRegion 0.18 k allocs: 12.3 kB 0.18 k allocs: 12.3 kB 1
multivariate/problems/saddle/20/KrylovTrustRegion 0.17 k allocs: 21.9 kB 0.17 k allocs: 21.9 kB 1
multivariate/problems/saddle/20/Newton 0.133 k allocs: 20.8 kB 0.133 k allocs: 20.8 kB 1
multivariate/problems/saddle/20/NewtonTrustRegion 0.222 k allocs: 0.127 MB 0.222 k allocs: 0.127 MB 1
multivariate/solvers/first_order/AdaMax 0.356 k allocs: 7.27 kB 0.356 k allocs: 7.27 kB 1
multivariate/solvers/first_order/Adam 0.356 k allocs: 7.27 kB 0.356 k allocs: 7.27 kB 1
multivariate/solvers/first_order/BFGS 0.23 k allocs: 8.8 kB 0.23 k allocs: 8.8 kB 1
multivariate/solvers/first_order/ConjugateGradient 0.392 k allocs: 16 kB 0.392 k allocs: 16 kB 1
multivariate/solvers/first_order/GradientDescent 1.52 k allocs: 0.0611 MB 1.52 k allocs: 0.0611 MB 1
multivariate/solvers/first_order/LBFGS 0.325 k allocs: 14 kB 0.325 k allocs: 14 kB 1
multivariate/solvers/first_order/MomentumGradientDescent 1.91 k allocs: 0.0666 MB 1.91 k allocs: 0.0666 MB 1
multivariate/solvers/first_order/NGMRES 3.14 k allocs: 0.156 MB 3.14 k allocs: 0.156 MB 1
multivariate/solvers/second_order/KrylovTrustRegion 0.284 k allocs: 11.3 kB 0.284 k allocs: 11.3 kB 1
multivariate/solvers/second_order/Newton 0.251 k allocs: 10.2 kB 0.251 k allocs: 10.2 kB 1
multivariate/solvers/second_order/NewtonTrustRegion 0.302 k allocs: 19.1 kB 0.302 k allocs: 19.1 kB 1
time_to_load 0.2 k allocs: 11.7 kB 0.2 k allocs: 11.7 kB 1

A plot of the benchmark results has been uploaded as an artifact at .

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results (Julia vlts)

Time benchmarks
master 5d57325... master / 5d57325...
multivariate/problems/rosenbrock/100/KrylovTrustRegion 0.187 ± 0.008 ms 0.189 ± 0.013 ms 0.989 ± 0.078
multivariate/problems/rosenbrock/100/Newton 1.31 ± 0.021 ms 1.32 ± 0.017 ms 0.996 ± 0.021
multivariate/problems/rosenbrock/100/NewtonTrustRegion 6.49 ± 0.14 ms 6.43 ± 0.12 ms 1.01 ± 0.029
multivariate/problems/rosenbrock/2/KrylovTrustRegion 26 ± 0.5 μs 25.9 ± 0.37 μs 1 ± 0.024
multivariate/problems/rosenbrock/2/Newton 0.0325 ± 0.00047 ms 0.0335 ± 0.00049 ms 0.97 ± 0.02
multivariate/problems/rosenbrock/2/NewtonTrustRegion 0.0391 ± 0.00087 ms 0.0388 ± 0.00094 ms 1.01 ± 0.033
multivariate/problems/rosenbrock/20/KrylovTrustRegion 0.0463 ± 0.001 ms 0.0471 ± 0.001 ms 0.985 ± 0.031
multivariate/problems/rosenbrock/20/Newton 0.0848 ± 0.0013 ms 0.0855 ± 0.0011 ms 0.991 ± 0.02
multivariate/problems/rosenbrock/20/NewtonTrustRegion 0.357 ± 0.013 ms 0.355 ± 0.013 ms 1.01 ± 0.051
multivariate/problems/saddle/100/KrylovTrustRegion 0.0667 ± 0.0017 ms 0.0679 ± 0.0017 ms 0.981 ± 0.036
multivariate/problems/saddle/100/Newton 0.25 ± 0.012 ms 0.251 ± 0.013 ms 0.994 ± 0.071
multivariate/problems/saddle/100/NewtonTrustRegion 3.41 ± 0.037 ms 3.38 ± 0.05 ms 1.01 ± 0.018
multivariate/problems/saddle/2/KrylovTrustRegion 9.68 ± 0.27 μs 9.61 ± 0.32 μs 1.01 ± 0.044
multivariate/problems/saddle/2/Newton 6.99 ± 0.24 μs 7.16 ± 0.28 μs 0.976 ± 0.051
multivariate/problems/saddle/2/NewtonTrustRegion 13.9 ± 0.46 μs 14.2 ± 0.61 μs 0.98 ± 0.053
multivariate/problems/saddle/20/KrylovTrustRegion 14.6 ± 0.66 μs 14.8 ± 0.64 μs 0.988 ± 0.062
multivariate/problems/saddle/20/Newton 17.7 ± 0.58 μs 17.7 ± 0.69 μs 0.995 ± 0.051
multivariate/problems/saddle/20/NewtonTrustRegion 0.126 ± 0.0032 ms 0.126 ± 0.0039 ms 0.997 ± 0.04
multivariate/solvers/first_order/AdaMax 0.547 ± 0.011 ms 0.546 ± 0.011 ms 1 ± 0.028
multivariate/solvers/first_order/Adam 0.546 ± 0.011 ms 0.546 ± 0.011 ms 1 ± 0.027
multivariate/solvers/first_order/BFGS 0.0949 ± 0.0014 ms 0.0946 ± 0.0014 ms 1 ± 0.021
multivariate/solvers/first_order/ConjugateGradient 0.3 ± 0.01 ms 0.299 ± 0.01 ms 1 ± 0.049
multivariate/solvers/first_order/GradientDescent 0.787 ± 0.0058 ms 0.786 ± 0.0068 ms 1 ± 0.011
multivariate/solvers/first_order/LBFGS 0.111 ± 0.0018 ms 0.111 ± 0.002 ms 1.01 ± 0.025
multivariate/solvers/first_order/MomentumGradientDescent 1.55 ± 0.013 ms 1.52 ± 0.014 ms 1.02 ± 0.012
multivariate/solvers/first_order/NGMRES 0.448 ± 0.013 ms 0.447 ± 0.013 ms 1 ± 0.042
multivariate/solvers/second_order/KrylovTrustRegion 0.471 ± 0.011 ms 0.471 ± 0.011 ms 1 ± 0.032
multivariate/solvers/second_order/Newton 0.16 ± 0.0032 ms 0.161 ± 0.0027 ms 0.998 ± 0.026
multivariate/solvers/second_order/NewtonTrustRegion 0.232 ± 0.01 ms 0.232 ± 0.01 ms 0.997 ± 0.061
time_to_load 0.327 ± 0.0013 s 0.326 ± 0.00082 s 1 ± 0.0047
Memory benchmarks
master 5d57325... master / 5d57325...
multivariate/problems/rosenbrock/100/KrylovTrustRegion 0.328 k allocs: 0.352 MB 0.328 k allocs: 0.352 MB 1
multivariate/problems/rosenbrock/100/Newton 0.369 k allocs: 0.339 MB 0.369 k allocs: 0.339 MB 1
multivariate/problems/rosenbrock/100/NewtonTrustRegion 0.416 k allocs: 6.43 MB 0.416 k allocs: 6.43 MB 1
multivariate/problems/rosenbrock/2/KrylovTrustRegion 0.332 k allocs: 21.4 kB 0.332 k allocs: 21.4 kB 1
multivariate/problems/rosenbrock/2/Newton 0.365 k allocs: 18.7 kB 0.365 k allocs: 18.7 kB 1
multivariate/problems/rosenbrock/2/NewtonTrustRegion 0.343 k allocs: 0.0348 MB 0.343 k allocs: 0.0348 MB 1
multivariate/problems/rosenbrock/20/KrylovTrustRegion 0.343 k allocs: 0.0618 MB 0.343 k allocs: 0.0618 MB 1
multivariate/problems/rosenbrock/20/Newton 0.365 k allocs: 0.0334 MB 0.365 k allocs: 0.0334 MB 1
multivariate/problems/rosenbrock/20/NewtonTrustRegion 0.33 k allocs: 0.396 MB 0.33 k allocs: 0.396 MB 1
multivariate/problems/saddle/100/KrylovTrustRegion 0.107 k allocs: 0.209 MB 0.107 k allocs: 0.209 MB 1
multivariate/problems/saddle/100/Newton 0.096 k allocs: 0.351 MB 0.096 k allocs: 0.351 MB 1
multivariate/problems/saddle/100/NewtonTrustRegion 0.255 k allocs: 3.51 MB 0.255 k allocs: 3.51 MB 1
multivariate/problems/saddle/2/KrylovTrustRegion 0.114 k allocs: 7.16 kB 0.114 k allocs: 7.16 kB 1
multivariate/problems/saddle/2/Newton 0.088 k allocs: 5.52 kB 0.088 k allocs: 5.52 kB 1
multivariate/problems/saddle/2/NewtonTrustRegion 0.129 k allocs: 13 kB 0.129 k allocs: 13 kB 1
multivariate/problems/saddle/20/KrylovTrustRegion 0.102 k allocs: 22.1 kB 0.102 k allocs: 22.1 kB 1
multivariate/problems/saddle/20/Newton 0.088 k allocs: 20.7 kB 0.088 k allocs: 20.7 kB 1
multivariate/problems/saddle/20/NewtonTrustRegion 0.139 k allocs: 0.155 MB 0.139 k allocs: 0.155 MB 1
multivariate/solvers/first_order/AdaMax 0.341 k allocs: 7.36 kB 0.341 k allocs: 7.36 kB 1
multivariate/solvers/first_order/Adam 0.341 k allocs: 7.36 kB 0.341 k allocs: 7.36 kB 1
multivariate/solvers/first_order/BFGS 0.157 k allocs: 8.67 kB 0.157 k allocs: 8.67 kB 1
multivariate/solvers/first_order/ConjugateGradient 0.471 k allocs: 24.4 kB 0.471 k allocs: 24.4 kB 1
multivariate/solvers/first_order/GradientDescent 1.22 k allocs: 0.065 MB 1.22 k allocs: 0.065 MB 1
multivariate/solvers/first_order/LBFGS 0.226 k allocs: 14 kB 0.226 k allocs: 14 kB 1
multivariate/solvers/first_order/MomentumGradientDescent 1.62 k allocs: 0.0713 MB 1.62 k allocs: 0.0713 MB 1
multivariate/solvers/first_order/NGMRES 1.68 k allocs: 0.142 MB 1.68 k allocs: 0.142 MB 1
multivariate/solvers/second_order/KrylovTrustRegion 0.229 k allocs: 13.5 kB 0.229 k allocs: 13.5 kB 1
multivariate/solvers/second_order/Newton 0.174 k allocs: 10.3 kB 0.174 k allocs: 10.3 kB 1
multivariate/solvers/second_order/NewtonTrustRegion 0.253 k allocs: 23 kB 0.253 k allocs: 23 kB 1
time_to_load 0.153 k allocs: 14.5 kB 0.153 k allocs: 14.5 kB 1

A plot of the benchmark results has been uploaded as an artifact at .

@codecov

codecov Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.57%. Comparing base (e80ddb3) to head (5d57325).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1301      +/-   ##
==========================================
+ Coverage   87.55%   87.57%   +0.01%     
==========================================
  Files          52       52              
  Lines        5032     5032              
==========================================
+ Hits         4406     4407       +1     
+ Misses        626      625       -1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@pkofod
pkofod merged commit ac1a61f into master Oct 23, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant