Add end-to-end BA tests for SCHUR_POWER_SERIES_EXPANSION
Also tighten the value of eta to make the iterative schur
solvers work better. This is the default value used in
bundle_adjuster.cc
Fixes https://github.com/ceres-solver/ceres-solver/issues/864
Change-Id: I48258fbbe256d6e932aaea0078b566fcd63de2fb
Change-Id: Ia5ad252cae31f415a47495fb8769421ade355bc9
diff --git a/internal/ceres/generate_bundle_adjustment_tests.py b/internal/ceres/generate_bundle_adjustment_tests.py
index bed96d1..0da8853 100644
--- a/internal/ceres/generate_bundle_adjustment_tests.py
+++ b/internal/ceres/generate_bundle_adjustment_tests.py
@@ -62,6 +62,7 @@
# Linear solver Sparse backend Preconditioner
('ITERATIVE_SCHUR', 'NO_SPARSE', 'JACOBI'),
('ITERATIVE_SCHUR', 'NO_SPARSE', 'SCHUR_JACOBI'),
+ ('ITERATIVE_SCHUR', 'NO_SPARSE', 'SCHUR_POWER_SERIES_EXPANSION'),
('ITERATIVE_SCHUR', 'SUITE_SPARSE', 'CLUSTER_JACOBI'),
('ITERATIVE_SCHUR', 'EIGEN_SPARSE', 'CLUSTER_JACOBI'),
('ITERATIVE_SCHUR', 'ACCELERATE_SPARSE','CLUSTER_JACOBI'),
@@ -87,6 +88,7 @@
SCHUR_JACOBI='schurjacobi',
CLUSTER_JACOBI='clustjacobi',
CLUSTER_TRIDIAGONAL='clusttri',
+ SCHUR_POWER_SERIES_EXPANSION='spse',
kAutomaticOrdering='auto',
kUserOrdering='user',
)
@@ -140,6 +142,7 @@
%(test_class_name)s) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = %(num_threads)s;
options->linear_solver_type = %(linear_solver)s;
options->dense_linear_algebra_library_type = %(dense_backend)s;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/CMakeLists.txt b/internal/ceres/generated_bundle_adjustment_tests/CMakeLists.txt
index 73fe3f5..5f4f65e 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/CMakeLists.txt
+++ b/internal/ceres/generated_bundle_adjustment_tests/CMakeLists.txt
@@ -1,5 +1,5 @@
# Ceres Solver - A fast non-linear least squares minimizer
-# Copyright 2022 Google Inc. All rights reserved.
+# Copyright 2023 Google Inc. All rights reserved.
# http://ceres-solver.org/
#
# Redistribution and use in source and binary forms, with or without
@@ -46,6 +46,7 @@
ceres_test(ba_sparseschur_acceleratesparse_auto)
ceres_test(ba_iterschur_jacobi_auto)
ceres_test(ba_iterschur_schurjacobi_auto)
+ceres_test(ba_iterschur_spse_auto)
ceres_test(ba_iterschur_suitesparse_clustjacobi_auto)
ceres_test(ba_iterschur_eigensparse_clustjacobi_auto)
ceres_test(ba_iterschur_acceleratesparse_clustjacobi_auto)
@@ -63,6 +64,7 @@
ceres_test(ba_sparseschur_acceleratesparse_auto_threads)
ceres_test(ba_iterschur_jacobi_auto_threads)
ceres_test(ba_iterschur_schurjacobi_auto_threads)
+ceres_test(ba_iterschur_spse_auto_threads)
ceres_test(ba_iterschur_suitesparse_clustjacobi_auto_threads)
ceres_test(ba_iterschur_eigensparse_clustjacobi_auto_threads)
ceres_test(ba_iterschur_acceleratesparse_clustjacobi_auto_threads)
@@ -80,6 +82,7 @@
ceres_test(ba_sparseschur_acceleratesparse_user)
ceres_test(ba_iterschur_jacobi_user)
ceres_test(ba_iterschur_schurjacobi_user)
+ceres_test(ba_iterschur_spse_user)
ceres_test(ba_iterschur_suitesparse_clustjacobi_user)
ceres_test(ba_iterschur_eigensparse_clustjacobi_user)
ceres_test(ba_iterschur_acceleratesparse_clustjacobi_user)
@@ -97,6 +100,7 @@
ceres_test(ba_sparseschur_acceleratesparse_user_threads)
ceres_test(ba_iterschur_jacobi_user_threads)
ceres_test(ba_iterschur_schurjacobi_user_threads)
+ceres_test(ba_iterschur_spse_user_threads)
ceres_test(ba_iterschur_suitesparse_clustjacobi_user_threads)
ceres_test(ba_iterschur_eigensparse_clustjacobi_user_threads)
ceres_test(ba_iterschur_acceleratesparse_clustjacobi_user_threads)
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_test.cc
index beaa350..1c9124d 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_test.cc
@@ -46,6 +46,7 @@
DenseSchur_Cuda_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = CUDA;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_threads_test.cc
index 091a37a..3a53394 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_threads_test.cc
@@ -46,6 +46,7 @@
DenseSchur_Cuda_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = CUDA;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_test.cc
index 67d0725..5887fe7 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_test.cc
@@ -46,6 +46,7 @@
DenseSchur_Cuda_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = CUDA;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_threads_test.cc
index e0975db..d264f7f 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_threads_test.cc
@@ -46,6 +46,7 @@
DenseSchur_Cuda_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = CUDA;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_test.cc
index dd7d96c..18d08ec 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_test.cc
@@ -44,6 +44,7 @@
DenseSchur_Eigen_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_threads_test.cc
index 3fd89ef..7fcd8c4 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_threads_test.cc
@@ -44,6 +44,7 @@
DenseSchur_Eigen_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_test.cc
index bd7122f..55626a3 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_test.cc
@@ -44,6 +44,7 @@
DenseSchur_Eigen_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_threads_test.cc
index aa43e30..7028f1c 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_threads_test.cc
@@ -44,6 +44,7 @@
DenseSchur_Eigen_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_test.cc
index 444d15a..e8d6d20 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_test.cc
@@ -46,6 +46,7 @@
DenseSchur_Lapack_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = LAPACK;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_threads_test.cc
index c095d0d..e5eecfd 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_threads_test.cc
@@ -46,6 +46,7 @@
DenseSchur_Lapack_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = LAPACK;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_test.cc
index f9e4fae..9b7d190 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_test.cc
@@ -46,6 +46,7 @@
DenseSchur_Lapack_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = LAPACK;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_threads_test.cc
index 3448ec7..ce95521 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_threads_test.cc
@@ -46,6 +46,7 @@
DenseSchur_Lapack_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = DENSE_SCHUR;
options->dense_linear_algebra_library_type = LAPACK;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_test.cc
index 3346841..bfb8e62 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_AccelerateSparse_ClusterJacobi_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_threads_test.cc
index e132e0a..0faafab 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_AccelerateSparse_ClusterJacobi_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_test.cc
index 60d6e4b..1280be8 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_AccelerateSparse_ClusterJacobi_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_threads_test.cc
index 3897463..da574cc 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_AccelerateSparse_ClusterJacobi_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_test.cc
index e852024..22518c8 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_AccelerateSparse_ClusterTridiagonal_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_threads_test.cc
index 02fc693..28d656a 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_AccelerateSparse_ClusterTridiagonal_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_test.cc
index e47fa10..29bfab1 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_AccelerateSparse_ClusterTridiagonal_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_threads_test.cc
index 433339d..dd90748 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_AccelerateSparse_ClusterTridiagonal_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_test.cc
index dc700b3..e1e36e7 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_EigenSparse_ClusterJacobi_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_threads_test.cc
index 496cabe..418ff67 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_EigenSparse_ClusterJacobi_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_test.cc
index 11a8fbb..d98eaff 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_EigenSparse_ClusterJacobi_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_threads_test.cc
index 5646f4b..27b2860 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_EigenSparse_ClusterJacobi_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_test.cc
index 3fd7230..cbed4d8 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_EigenSparse_ClusterTridiagonal_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_threads_test.cc
index e86d109..25ec9c0 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_EigenSparse_ClusterTridiagonal_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_test.cc
index b378ec4..d0eb07b 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_EigenSparse_ClusterTridiagonal_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_threads_test.cc
index 9d5933e..eac83d8 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_EigenSparse_ClusterTridiagonal_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_test.cc
index 34b8fb1..c160240 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_test.cc
@@ -44,6 +44,7 @@
IterativeSchur_Jacobi_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_threads_test.cc
index 37c252f..59f0552 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_threads_test.cc
@@ -44,6 +44,7 @@
IterativeSchur_Jacobi_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_test.cc
index de185a4..b3c278c 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_test.cc
@@ -44,6 +44,7 @@
IterativeSchur_Jacobi_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_threads_test.cc
index df38fa6..5b70d79 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_threads_test.cc
@@ -44,6 +44,7 @@
IterativeSchur_Jacobi_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_test.cc
index ddaf1e8..df4e4d3 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_test.cc
@@ -44,6 +44,7 @@
IterativeSchur_SchurJacobi_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_threads_test.cc
index 6484626..6bd503e 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_threads_test.cc
@@ -44,6 +44,7 @@
IterativeSchur_SchurJacobi_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_test.cc
index e196b5e..9a8d60e 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_test.cc
@@ -44,6 +44,7 @@
IterativeSchur_SchurJacobi_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_threads_test.cc
index 5a078c1..0766815 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_threads_test.cc
@@ -44,6 +44,7 @@
IterativeSchur_SchurJacobi_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_auto_test.cc
new file mode 100644
index 0000000..90975fd
--- /dev/null
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_auto_test.cc
@@ -0,0 +1,60 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2023 Google Inc. All rights reserved.
+// http://ceres-solver.org/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// ========================================
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// ========================================
+//
+// This file is generated using generate_bundle_adjustment_tests.py.
+
+#include "ceres/internal/config.h"
+#include "bundle_adjustment_test_util.h"
+
+namespace ceres::internal {
+
+TEST_F(BundleAdjustmentTest,
+ IterativeSchur_SchurPowerSeriesExpansion_AutomaticOrdering) { // NOLINT
+ BundleAdjustmentProblem bundle_adjustment_problem;
+ Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
+ options->num_threads = 1;
+ options->linear_solver_type = ITERATIVE_SCHUR;
+ options->dense_linear_algebra_library_type = EIGEN;
+ options->sparse_linear_algebra_library_type = NO_SPARSE;
+ options->preconditioner_type = SCHUR_POWER_SERIES_EXPANSION;
+ if (kAutomaticOrdering) {
+ options->linear_solver_ordering = nullptr;
+ }
+ Problem* problem = bundle_adjustment_problem.mutable_problem();
+ RunSolverForConfigAndExpectResidualsMatch(*options, problem);
+}
+
+} // namespace ceres::internal
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_auto_threads_test.cc
new file mode 100644
index 0000000..bfa3419
--- /dev/null
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_auto_threads_test.cc
@@ -0,0 +1,60 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2023 Google Inc. All rights reserved.
+// http://ceres-solver.org/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// ========================================
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// ========================================
+//
+// This file is generated using generate_bundle_adjustment_tests.py.
+
+#include "ceres/internal/config.h"
+#include "bundle_adjustment_test_util.h"
+
+namespace ceres::internal {
+
+TEST_F(BundleAdjustmentTest,
+ IterativeSchur_SchurPowerSeriesExpansion_AutomaticOrdering_Threads) { // NOLINT
+ BundleAdjustmentProblem bundle_adjustment_problem;
+ Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
+ options->num_threads = 4;
+ options->linear_solver_type = ITERATIVE_SCHUR;
+ options->dense_linear_algebra_library_type = EIGEN;
+ options->sparse_linear_algebra_library_type = NO_SPARSE;
+ options->preconditioner_type = SCHUR_POWER_SERIES_EXPANSION;
+ if (kAutomaticOrdering) {
+ options->linear_solver_ordering = nullptr;
+ }
+ Problem* problem = bundle_adjustment_problem.mutable_problem();
+ RunSolverForConfigAndExpectResidualsMatch(*options, problem);
+}
+
+} // namespace ceres::internal
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_user_test.cc
new file mode 100644
index 0000000..d39890e
--- /dev/null
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_user_test.cc
@@ -0,0 +1,60 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2023 Google Inc. All rights reserved.
+// http://ceres-solver.org/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// ========================================
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// ========================================
+//
+// This file is generated using generate_bundle_adjustment_tests.py.
+
+#include "ceres/internal/config.h"
+#include "bundle_adjustment_test_util.h"
+
+namespace ceres::internal {
+
+TEST_F(BundleAdjustmentTest,
+ IterativeSchur_SchurPowerSeriesExpansion_UserOrdering) { // NOLINT
+ BundleAdjustmentProblem bundle_adjustment_problem;
+ Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
+ options->num_threads = 1;
+ options->linear_solver_type = ITERATIVE_SCHUR;
+ options->dense_linear_algebra_library_type = EIGEN;
+ options->sparse_linear_algebra_library_type = NO_SPARSE;
+ options->preconditioner_type = SCHUR_POWER_SERIES_EXPANSION;
+ if (kUserOrdering) {
+ options->linear_solver_ordering = nullptr;
+ }
+ Problem* problem = bundle_adjustment_problem.mutable_problem();
+ RunSolverForConfigAndExpectResidualsMatch(*options, problem);
+}
+
+} // namespace ceres::internal
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_user_threads_test.cc
new file mode 100644
index 0000000..ab24bbc
--- /dev/null
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_spse_user_threads_test.cc
@@ -0,0 +1,60 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2023 Google Inc. All rights reserved.
+// http://ceres-solver.org/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// ========================================
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// ========================================
+//
+// This file is generated using generate_bundle_adjustment_tests.py.
+
+#include "ceres/internal/config.h"
+#include "bundle_adjustment_test_util.h"
+
+namespace ceres::internal {
+
+TEST_F(BundleAdjustmentTest,
+ IterativeSchur_SchurPowerSeriesExpansion_UserOrdering_Threads) { // NOLINT
+ BundleAdjustmentProblem bundle_adjustment_problem;
+ Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
+ options->num_threads = 4;
+ options->linear_solver_type = ITERATIVE_SCHUR;
+ options->dense_linear_algebra_library_type = EIGEN;
+ options->sparse_linear_algebra_library_type = NO_SPARSE;
+ options->preconditioner_type = SCHUR_POWER_SERIES_EXPANSION;
+ if (kUserOrdering) {
+ options->linear_solver_ordering = nullptr;
+ }
+ Problem* problem = bundle_adjustment_problem.mutable_problem();
+ RunSolverForConfigAndExpectResidualsMatch(*options, problem);
+}
+
+} // namespace ceres::internal
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_test.cc
index 3b39c1e..7f31d7a 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_SuiteSparse_ClusterJacobi_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_threads_test.cc
index 6bb9fe5..1041c65 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_SuiteSparse_ClusterJacobi_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_test.cc
index 9590671..0b2ad8b 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_SuiteSparse_ClusterJacobi_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_threads_test.cc
index 4b23d54..aa0a5cc 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_SuiteSparse_ClusterJacobi_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_test.cc
index 78faa74..e66d3c0 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_SuiteSparse_ClusterTridiagonal_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_threads_test.cc
index e9b1035..a5a96ae 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_SuiteSparse_ClusterTridiagonal_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_test.cc
index ee65f55..a0ff62b 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_SuiteSparse_ClusterTridiagonal_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_threads_test.cc
index 3c19079..d4bbb98 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_threads_test.cc
@@ -46,6 +46,7 @@
IterativeSchur_SuiteSparse_ClusterTridiagonal_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = ITERATIVE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_test.cc
index 793c971..aedd971 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_AccelerateSparse_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_threads_test.cc
index 37318b7..7acfb10 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_threads_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_AccelerateSparse_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_test.cc
index b7710de..ef85783 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_AccelerateSparse_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_threads_test.cc
index db62ddd..ed3a9a1 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_threads_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_AccelerateSparse_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_test.cc
index 05d2777..7177c51 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_EigenSparse_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_threads_test.cc
index 9a0b32f..575ebef 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_threads_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_EigenSparse_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_test.cc
index 9d59ee3..f53a72b 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_EigenSparse_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_threads_test.cc
index 143d6f4..59f033c 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_threads_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_EigenSparse_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_test.cc
index 1a139b9..aa4f28c 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_SuiteSparse_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_threads_test.cc
index 6ea258d..3f0c2a9 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_threads_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_SuiteSparse_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_test.cc
index 105d7ca..f30254a 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_SuiteSparse_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_threads_test.cc
index 505ab32..f29add5 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_threads_test.cc
@@ -46,6 +46,7 @@
SparseNormalCholesky_SuiteSparse_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_NORMAL_CHOLESKY;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_test.cc
index 29b0c72..ba139e1 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_test.cc
@@ -46,6 +46,7 @@
SparseSchur_AccelerateSparse_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_threads_test.cc
index fc0c80c..1161cb3 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_threads_test.cc
@@ -46,6 +46,7 @@
SparseSchur_AccelerateSparse_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_test.cc
index af56d20..934bad2 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_test.cc
@@ -46,6 +46,7 @@
SparseSchur_AccelerateSparse_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_threads_test.cc
index 67c56da..4606e75 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_threads_test.cc
@@ -46,6 +46,7 @@
SparseSchur_AccelerateSparse_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_test.cc
index 36ea666..758dddb 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_test.cc
@@ -46,6 +46,7 @@
SparseSchur_EigenSparse_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_threads_test.cc
index 9a64d4d..28dcc88 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_threads_test.cc
@@ -46,6 +46,7 @@
SparseSchur_EigenSparse_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_test.cc
index 6add938..3c66c03 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_test.cc
@@ -46,6 +46,7 @@
SparseSchur_EigenSparse_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_threads_test.cc
index 04cc627..f7d8081 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_threads_test.cc
@@ -46,6 +46,7 @@
SparseSchur_EigenSparse_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_test.cc
index 3857d2d..22b588a 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_test.cc
@@ -46,6 +46,7 @@
SparseSchur_SuiteSparse_AutomaticOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_threads_test.cc
index f58dbd7..5a6995b 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_threads_test.cc
@@ -46,6 +46,7 @@
SparseSchur_SuiteSparse_AutomaticOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_test.cc
index 00ce8fb..18c6310 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_test.cc
@@ -46,6 +46,7 @@
SparseSchur_SuiteSparse_UserOrdering) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 1;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;
diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_threads_test.cc
index 532d0a4..5cff07d 100644
--- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_threads_test.cc
+++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_threads_test.cc
@@ -46,6 +46,7 @@
SparseSchur_SuiteSparse_UserOrdering_Threads) { // NOLINT
BundleAdjustmentProblem bundle_adjustment_problem;
Solver::Options* options = bundle_adjustment_problem.mutable_solver_options();
+ options->eta = 0.01;
options->num_threads = 4;
options->linear_solver_type = SPARSE_SCHUR;
options->dense_linear_algebra_library_type = EIGEN;