Package gov.nih.mipav.model.algorithms
Class CeresSolver
java.lang.Object
gov.nih.mipav.model.algorithms.CeresSolver
- Direct Known Subclasses:
CeresSolver2,CeresSolverNISTTest,CeresSolverTest,DSC_MRI_toolbox,WeibullDistribution
This is a port of the C++ files in ceres-solver-1.14.0 under the BSD license:
Ceres Solver - A fast non-linear least squares minimizer Copyright 2015
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.
Ceres Solver is an open source C++ library for modeling and solving large,
complicated optimization problems. It is a feature rich, mature and
performant library which has been used in production at Google since 2010.
Ceres Solver can solve two kinds of problems.
1. Non-linear Least Squares problems with bounds constraints. 2. General
unconstrained optimization problems.
Please see [ceres-solver.org](http://ceres-solver.org/) for more information.
- Author:
- aailb
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) class(package private) classclass(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) classclass(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) class(package private) class(package private) class(package private) class(package private) static enum(package private) static enum(package private) class(package private) class(package private) class(package private) classclass(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) classHelper cost function that multiplies the parameters by the given jacobians and adds a constant offset.(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) static enum(package private) static enum(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) static enum(package private) class(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) class(package private) static enum(package private) class(package private) class(package private) class(package private) class(package private) class(package private) static enumclassclass(package private) class(package private) static enum(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) class(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) class(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) class(package private) class(package private) class(package private) class(package private) static enum(package private) class(package private) class -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final intprivate booleanprivate booleanprivate booleanprotected final intprotected final intprotected double[]protected final int(package private) doubleprotected intprotected final intprotected final int(package private) doubleintprotected final intprotected final intintprivate GeneralizedEigenvalueprivate GeneralizedEigenvalue2private GeneralizedInverse2protected final intintprivate final doubleprivate final doubleprivate LinearEquationsprivate LinearEquations2protected final intprotected intinteger scalar containing the number of data points.intprotected final intprotected final intprotected intvariables integer scalar containing the number of unknowns.private intprotected final intprotected booleanprotected final intprotected final intprivate CeresSolver.LinearSolverTypeprotected final intprivate intprotected final intintbooleanprotected final intprotected final intint -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAppendArrayToString(int size, double[] x, String[] result) booleanApplyOrdering(HashMap<double[], CeresSolver.ParameterBlock> parameter_map, CeresSolver.OrderedGroups<double[]> ordering, CeresSolver.Program program, String[] error) voidBuildResidualLayout(CeresSolver.Program program, Vector<Integer> residual_layout) voidComputeHouseholderVector(double[] x, double[] v, double[] beta) voidComputeRecursiveIndependentSetOrdering(CeresSolver.Program program, CeresSolver.OrderedGroups<double[]> ordering) intComputeSchurOrdering(CeresSolver.Program program, Vector<CeresSolver.ParameterBlock> ordering) intComputeStableSchurOrdering(CeresSolver.Program program, Vector<CeresSolver.ParameterBlock> ordering) voidCreate(CeresSolver.EvaluatorOptions options, CeresSolver.Program program, String[] error) Create(CeresSolver.LinearSolverOptions options) Create(CeresSolver.LineSearchType line_search_type, CeresSolver.LineSearchOptions options, String[] error) Create(CeresSolver.MinimizerType minimizer_type) Create(CeresSolver.Program program, int num_threads) CreateDiagonalMatrix(double[] diagonal, Vector<CeresSolver.Block> column_blocks) CreateEvaluatorScratch(CeresSolver.Program program, int num_threads) CreateGradientCheckingCostFunction(CeresSolver.CostFunction cost_function, Vector<CeresSolver.LocalParameterization> local_parameterizations, double relative_step_size, double relative_precision, String extra_info, CeresSolver.GradientCheckingIterationCallback callback) CreateGradientCheckingProblemImpl(CeresSolver.ProblemImpl problem_impl, double relative_step_size, double relative_precision, CeresSolver.GradientCheckingIterationCallback callback) CreateHessianGraph(CeresSolver.Program program) CeresSolver.OrderedGroups<double[]> CreateOrdering(CeresSolver.Program program) createPartitionedMatrixView(CeresSolver.LinearSolverOptions options, CeresSolver.BlockSparseMatrix matrix) (package private) CeresSolver.PreprocessorCreatePreprocessor(CeresSolver.MinimizerType minimizer_type) CreateSparseDiagonalMatrix(double[] values, int num_rows) voidDetectStructure(CeresSolver.CompressedRowBlockStructure bs, int num_eliminate_blocks, int[] row_block_size, int[] e_block_size, int[] f_block_size) DifferentiatePolynomial(Vector<Double> polynomial) booleanDumpLinearLeastSquaresProblem(String filename_base, CeresSolver.DumpFormatType dump_format_type, CeresSolver.SparseMatrix A, double[] D, double[] b, double[] x, int num_eliminate_blocks) booleanDumpLinearLeastSquaresProblemToConsole(CeresSolver.SparseMatrix A, double[] D, double[] b, double[] x, int num_eliminate_blocks) booleanDumpLinearLeastSquaresProblemToTextFile(String filename_base, CeresSolver.SparseMatrix A, double[] D, double[] b, double[] x, int num_eliminate_blocks) voidEigenQuaternionProduct(double[] a, double[] b, double[] ab) Constructs and initializes the quaternion \f$ w+xi+yj+zk \f$ from its four coefficients \a w, \a x, \a y and \a z.private intEstimateWorkSizeForQR(int num_rows, int num_cols) booleanEvaluateCostFunction(CeresSolver.CostFunction function, Vector<double[]> parameters, Vector<CeresSolver.LocalParameterization> local_parameterizations, Vector<Double> residuals, Vector<Jama.Matrix> jacobians, Vector<Jama.Matrix> local_jacobians) <CostFunctor>
booleanEvaluateJacobianColumn(CeresSolver.NumericDiffMethodType kMethod, int kNumResiduals, int kParameterBlockSize, CostFunctor functor, int parameter_index, double delta, int num_residuals, int parameter_block_index, int parameter_block_size, double[] x_ptr, double[] residuals_at_eval_point, double[][] parameters, double[] x_plus_delta_ptr, double[] temp_residuals_ptr, double[] residuals_ptr) <CostFunctor>
booleanEvaluateJacobianForParameterBlock(CeresSolver.NumericDiffMethodType kMethod, int kNumResiduals, int N0, int N1, int N2, int N3, int N4, int N5, int N6, int N7, int N8, int N9, int kParameterBlock, int kParameterBlockSize, CostFunctor functor, double[] residuals_at_eval_point, CeresSolver.NumericDiffOptions options, int num_residuals, int parameter_block_index, int parameter_block_size, double[][] parameters, double[] jacobian) <CostFunctor>
booleanEvaluateJacobianForParameterBlock(CeresSolver.NumericDiffMethodType kMethod, int kNumResiduals, int N0, int N1, int N2, int N3, int N4, int N5, int N6, int N7, int N8, int N9, int kParameterBlock, int kParameterBlockSize, CostFunctor functor, double[] residuals_at_eval_point, CeresSolver.NumericDiffOptions options, int num_residuals, int parameter_block_index, int parameter_block_size, double[][] parameters, double[] jacobian, int jacobian_offset) (package private) doubleEvaluatePolynomial(Vector<Double> polynomial, double x) <CostFunctor>
booleanEvaluateRiddersJacobianColumn(CeresSolver.NumericDiffMethodType kMethod, int kNumResiduals, int kParameterBlockSize, CostFunctor functor, int parameter_index, double delta, CeresSolver.NumericDiffOptions options, int num_residuals, int parameter_block_index, int parameter_block_size, double[] x_ptr, double[] residuals_at_eval_point, double[][] parameters, double[] x_plus_delta_ptr, double[] temp_residuals_ptr, double[] residuals_ptr) booleanExpectClose(double x, double y, double max_abs_relative_difference) (package private) intFindInvalidValue(int size, double[] x) voidbooleanFindPolynomialRoots(Vector<Double> polynomial, Vector<Double> roots_real, Vector<Double> roots_imag) voidFindQuadraticPolynomialRoots(Vector<Double> polynomial, Vector<Double> real, Vector<Double> imaginary) (package private) CeresSolver.ParameterBlockFindWithDefault(HashMap<double[], CeresSolver.ParameterBlock> collection, double[] key, CeresSolver.ParameterBlock value) (package private) CeresSolver.CallStatisticsFindWithDefault(HashMap<String, CeresSolver.CallStatistics> collection, String key, CeresSolver.CallStatistics value) abstract booleanfitToExternalFunction(double[] a, double[] residuals, double[][] jacobian) voidGetBestSchurTemplateSpecialization(int[] row_block_size, int[] e_block_size, int[] f_block_size) <Vertex> intIndependentSetOrdering(CeresSolver.Graph<Vertex> graph, Vector<Vertex> ordering) voidInvalidateArray(int size, double[] x) voidInvalidateArray(int size, double[] x, int x_offset) voidInvalidateArray(int row, int col, double[][] x) voidInvalidateArray(int size, Vector<Double> x) double[][]InvertPSDMatrix(boolean assume_full_rank, double[][] arr) booleanIsArrayValid(int size, double[] x) booleanIsArrayValid(int size, double[] x, int x_offset) booleanIsArrayValid(int row, int col, double[][] x) booleanIsArrayValid(int size, Vector<Double> x) booleanIsClose(double x, double y, double relative_precision, double[] relative_error, double[] absolute_error) booleanIsOrderingValid(CeresSolver.Program program, CeresSolver.OrderedGroups<double[]> ordering, String[] message) booleanbooleanbooleanbooleanLexicographicallyOrderResidualBlocks(int size_of_first_elimination_group, CeresSolver.Program program, String[] error) LinearSolverForZeroEBlocks(CeresSolver.LinearSolverType linear_solver_type) (package private) String(package private) StringvoidMatrixMatrixMultiply(int kOperation, double[] A, int NUM_ROW_A, int NUM_COL_A, double[][] B, int NUM_ROW_B, int NUM_COL_B, double[] C, int start_row_c, int start_col_c, int row_stride_c, int col_stride_c) voidMatrixMatrixMultiply(int kOperation, double[] A, int NUM_ROW_A, int NUM_COL_A, double[] B, int NUM_ROW_B, int NUM_COL_B, double[] C, int start_row_c, int start_col_c, int row_stride_c, int col_stride_c) voidMatrixMatrixMultiply(int kOperation, double[] A, int A_start, int NUM_ROW_A, int NUM_COL_A, double[][] B, int NUM_ROW_B, int NUM_COL_B, double[] C, int C_start, int start_row_c, int start_col_c, int row_stride_c, int col_stride_c) voidMatrixMatrixMultiply(int kRowA, int kColA, int kRowB, int kColB, int kOperation, double[] A, int A_start, int num_row_a, int num_col_a, double[] B, int B_start, int num_row_b, int num_col_b, double[] C, int C_start, int start_row_c, int start_col_c, int row_stride_c, int col_stride_c) voidMatrixTransposeMatrixMultiply(int kRowA, int kColA, int kRowB, int kColB, int kOperation, double[] A, int A_start, int num_row_a, int num_col_a, double[] B, int B_start, int num_row_b, int num_col_b, double[] C, int C_start, int start_row_c, int start_col_c, int row_stride_c, int col_stride_c) voidMatrixTransposeVectorMultiply(int kRowA, int kColA, int kOperation, double[] A, int Astart, int num_row_a, int num_col_a, double[] b, int bstart, double[] c, int cstart) voidMatrixVectorMultiply(int kRowA, int kColA, int kOperation, double[] A, int Astart, int num_row_a, int num_col_a, double[] b, int bstart, double[] c, int cstart) voidMaybeReorderSchurComplementColumnsUsingEigen(int size_of_first_elimination_group, HashMap<double[], CeresSolver.ParameterBlock> parameter_map, CeresSolver.Program program) voidMaybeReorderSchurComplementColumnsUsingSuiteSparse(CeresSolver.OrderedGroups<double[]> parameter_block_ordering, CeresSolver.Program program) voidvoidMinimizeInterpolatingPolynomial(Vector<CeresSolver.FunctionSample> samples, double x_min, double x_max, double[] optimal_x, double[] optimal_value) voidMinimizePolynomial(Vector<Double> polynomial, double x_min, double x_max, double[] optimal_x, double[] optimal_value) intMinParameterBlock(CeresSolver.ResidualBlock residual_block, int size_of_first_elimination_group) private voidOrderingToGroupSizes(CeresSolver.OrderedGroups<double[]> ordering, Vector<Integer> group_sizes) voidPreconditionerForZeroEBlocks(CeresSolver.PreconditionerType preconditioner_type) private voidPreSolveSummarize(CeresSolver.SolverOptions options, CeresSolver.ProblemImpl problem, CeresSolver.SolverSummary summary) voidQuaternionProduct(double[] z, double[] w, double[] zw) doubledoubleRandDouble(long longSeed) doubleRemoveLeadingZeros(Vector<Double> polynomial_in) booleanReorderProgramForSchurTypeLinearSolver(CeresSolver.LinearSolverType linear_solver_type, CeresSolver.SparseLinearAlgebraLibraryType sparse_linear_algebra_library_type, HashMap<double[], CeresSolver.ParameterBlock> parameter_map, CeresSolver.OrderedGroups<double[]> parameter_block_ordering, CeresSolver.Program program, String[] error) booleanRunCallbacks(CeresSolver.MinimizerOptions options, CeresSolver.IterationSummary iteration_summary, CeresSolver.SolverSummary summary) SchurStructureToString(int row_block_size, int e_block_size, int f_block_size) voidvoidvoidvoidSolve(CeresSolver.GradientProblemSolverOptions options, CeresSolver.GradientProblem problem, double[] parameters_ptr, CeresSolver.GradientProblemSolverSummary summary) voidSolve(CeresSolver.SolverOptions options, CeresSolver.ProblemImpl problem, CeresSolver.SolverSummary summary) SolveInPlaceUsingCholesky(int num_rows, double[][] in_lhs, double[] rhs_and_solution, String[] message) SolveInPlaceUsingQR(int num_rows, int num_cols, double[][] in_lhs, int work_size, double[] work, double[] rhs_and_solution, String[] message) <Vertex> intStableIndependentSetOrdering(CeresSolver.Graph<Vertex> graph, Vector<Vertex> ordering) private voidSummarizeGivenProgram(CeresSolver.Program program, CeresSolver.SolverSummary summary) voidSummarizeReducedProgram(CeresSolver.Program program, CeresSolver.SolverSummary summary) <T> voidswap(T el1, T el2) private voidSymmetricRankUpdate(int num_rows, int num_cols, double[] a, boolean transpose, double alpha, double beta, double[][] c) voidTransposeForCompressedRowSparseStructure(int num_rows, int num_cols, int num_nonzeros, int[] rows, int[] cols, double[] values, int[] transpose_rows, int[] transpose_cols, double[] transpose_values) intUniform(int n) (package private) voidWriteArrayToFileOrDie(String filename, double[] x, int size) voidWriteStringToFileOrDie(String data, String filename)
-
Field Details
-
ge
-
ge2
-
gi2
-
le
-
le2
-
svd
-
requestedLinearSolverType
-
MAX_LOG_LEVEL
public int MAX_LOG_LEVEL -
FATAL
public int FATAL -
ERROR
public int ERROR -
WARNING
public int WARNING -
INFO
public int INFO -
CERES_NO_SUITESPARSE
private boolean CERES_NO_SUITESPARSE -
CERES_NO_CXSPARSE
private boolean CERES_NO_CXSPARSE -
SUITESPARSE_VERSION
private int SUITESPARSE_VERSION -
CERES_USE_EIGEN_SPARSE
private boolean CERES_USE_EIGEN_SPARSE -
kImpossibleValue
private final double kImpossibleValue- See Also:
-
testMode
public boolean testMode -
epsilon
double epsilon -
default_relstep
double default_relstep -
m
protected int minteger scalar containing the number of data points. -
num_residuals_
private int num_residuals_ -
N0
protected int N0variables integer scalar containing the number of unknowns. -
DYNAMIC
protected int DYNAMIC -
kLBFGSSecantConditionHessianUpdateTolerance
private final double kLBFGSSecantConditionHessianUpdateTolerance- See Also:
-
testCase
public int testCase -
COST_FUNCTOR_EXAMPLE
protected final int COST_FUNCTOR_EXAMPLE- See Also:
-
CURVE_FITTING_EXAMPLE
protected final int CURVE_FITTING_EXAMPLE- See Also:
-
TEST_TERM_EXAMPLE
protected final int TEST_TERM_EXAMPLE- See Also:
-
GOOD_TEST_TERM_EXAMPLE
protected final int GOOD_TEST_TERM_EXAMPLE- See Also:
-
BAD_TEST_TERM_EXAMPLE
protected final int BAD_TEST_TERM_EXAMPLE- See Also:
-
LINEAR_COST_FUNCTION_EXAMPLE
protected final int LINEAR_COST_FUNCTION_EXAMPLE- See Also:
-
EASY_FUNCTOR_EXAMPLE
protected final int EASY_FUNCTOR_EXAMPLE- See Also:
-
EASY_COST_FUNCTION
protected final int EASY_COST_FUNCTION- See Also:
-
TRANSCENDENTAL_FUNCTOR
protected final int TRANSCENDENTAL_FUNCTOR- See Also:
-
TRANSCENDENTAL_COST_FUNCTION
protected final int TRANSCENDENTAL_COST_FUNCTION- See Also:
-
SIZE_TESTING_COST_FUNCTION
protected final int SIZE_TESTING_COST_FUNCTION- See Also:
-
EXPONENTIAL_FUNCTOR
protected final int EXPONENTIAL_FUNCTOR- See Also:
-
EXPONENTIAL_COST_FUNCTION
protected final int EXPONENTIAL_COST_FUNCTION- See Also:
-
RANDOMIZED_FUNCTOR
protected final int RANDOMIZED_FUNCTOR- See Also:
-
RANDOMIZED_COST_FUNCTION
protected final int RANDOMIZED_COST_FUNCTION- See Also:
-
ONLY_FILLS_ONE_OUTPUT_FUNCTOR
protected final int ONLY_FILLS_ONE_OUTPUT_FUNCTOR- See Also:
-
MY_COST_FUNCTOR
protected final int MY_COST_FUNCTOR- See Also:
-
MY_THREE_PARAMETER_COST_FUNCTOR
protected final int MY_THREE_PARAMETER_COST_FUNCTOR- See Also:
-
optionsValid
protected boolean optionsValid -
curveFittingObservations
protected final int curveFittingObservations- See Also:
-
curveFittingData
protected double[] curveFittingData
-
-
Constructor Details
-
CeresSolver
public CeresSolver()
-
-
Method Details
-
ExpectClose
public boolean ExpectClose(double x, double y, double max_abs_relative_difference) -
Solve
public void Solve(CeresSolver.SolverOptions options, CeresSolver.ProblemImpl problem, CeresSolver.SolverSummary summary) -
GetBestSchurTemplateSpecialization
public void GetBestSchurTemplateSpecialization(int[] row_block_size, int[] e_block_size, int[] f_block_size) -
SchurStructureToString
-
DetectStructure
public void DetectStructure(CeresSolver.CompressedRowBlockStructure bs, int num_eliminate_blocks, int[] row_block_size, int[] e_block_size, int[] f_block_size) -
PostSolveSummarize
public void PostSolveSummarize(CeresSolver.PreprocessedProblem pp, CeresSolver.SolverSummary summary) -
SummarizeReducedProgram
-
SetSummaryFinalCost
-
SetSummaryFinalCost
-
Minimize
-
IsSchurType
-
CreatePreprocessor
-
swap
public <T> void swap(T el1, T el2) -
ReorderProgramForSchurTypeLinearSolver
public boolean ReorderProgramForSchurTypeLinearSolver(CeresSolver.LinearSolverType linear_solver_type, CeresSolver.SparseLinearAlgebraLibraryType sparse_linear_algebra_library_type, HashMap<double[], CeresSolver.ParameterBlock> parameter_map, CeresSolver.OrderedGroups<double[]> parameter_block_ordering, CeresSolver.Program program, String[] error) -
MinParameterBlock
public int MinParameterBlock(CeresSolver.ResidualBlock residual_block, int size_of_first_elimination_group) -
LexicographicallyOrderResidualBlocks
public boolean LexicographicallyOrderResidualBlocks(int size_of_first_elimination_group, CeresSolver.Program program, String[] error) -
MaybeReorderSchurComplementColumnsUsingSuiteSparse
public void MaybeReorderSchurComplementColumnsUsingSuiteSparse(CeresSolver.OrderedGroups<double[]> parameter_block_ordering, CeresSolver.Program program) -
MaybeReorderSchurComplementColumnsUsingEigen
public void MaybeReorderSchurComplementColumnsUsingEigen(int size_of_first_elimination_group, HashMap<double[], CeresSolver.ParameterBlock> parameter_map, CeresSolver.Program program) -
ApplyOrdering
public boolean ApplyOrdering(HashMap<double[], CeresSolver.ParameterBlock> parameter_map, CeresSolver.OrderedGroups<double[]> ordering, CeresSolver.Program program, String[] error) -
CreateHessianGraph
public CeresSolver.Graph<CeresSolver.ParameterBlock> CreateHessianGraph(CeresSolver.Program program) -
ComputeSchurOrdering
public int ComputeSchurOrdering(CeresSolver.Program program, Vector<CeresSolver.ParameterBlock> ordering) -
ComputeStableSchurOrdering
public int ComputeStableSchurOrdering(CeresSolver.Program program, Vector<CeresSolver.ParameterBlock> ordering) -
IndependentSetOrdering
public <Vertex> int IndependentSetOrdering(CeresSolver.Graph<Vertex> graph, Vector<Vertex> ordering) -
StableIndependentSetOrdering
public <Vertex> int StableIndependentSetOrdering(CeresSolver.Graph<Vertex> graph, Vector<Vertex> ordering) -
LinearSolverTypeToString
-
PreconditionerTypeToString
-
PreconditionerForZeroEBlocks
public CeresSolver.PreconditionerType PreconditionerForZeroEBlocks(CeresSolver.PreconditionerType preconditioner_type) -
SetupCommonMinimizerOptions
-
CreateDiagonalMatrix
public CeresSolver.BlockSparseMatrix CreateDiagonalMatrix(double[] diagonal, Vector<CeresSolver.Block> column_blocks) -
CreateRandomMatrix
public CeresSolver.BlockSparseMatrix CreateRandomMatrix(CeresSolver.BlockSparseMatrixRandomMatrixOptions options) -
operator
public CeresSolver.TripletSparseMatrix operator(CeresSolver.TripletSparseMatrix lhs, CeresSolver.TripletSparseMatrix rhs) -
CreateSparseDiagonalMatrix
-
CreateRandomMatrix
public CeresSolver.TripletSparseMatrix CreateRandomMatrix(CeresSolver.TripletSparseMatrixRandomMatrixOptions options) -
Uniform
public int Uniform(int n) -
RandDouble
public double RandDouble() -
RandDouble
public double RandDouble(long longSeed) -
RandNormal
public double RandNormal() -
TransposeForCompressedRowSparseStructure
public void TransposeForCompressedRowSparseStructure(int num_rows, int num_cols, int num_nonzeros, int[] rows, int[] cols, double[] values, int[] transpose_rows, int[] transpose_cols, double[] transpose_values) -
Create
-
EstimateWorkSizeForQR
private int EstimateWorkSizeForQR(int num_rows, int num_cols) -
SymmetricRankUpdate
private void SymmetricRankUpdate(int num_rows, int num_cols, double[] a, boolean transpose, double alpha, double beta, double[][] c) -
SolveInPlaceUsingQR
private CeresSolver.LinearSolverTerminationType SolveInPlaceUsingQR(int num_rows, int num_cols, double[][] in_lhs, int work_size, double[] work, double[] rhs_and_solution, String[] message) -
SolveInPlaceUsingCholesky
private CeresSolver.LinearSolverTerminationType SolveInPlaceUsingCholesky(int num_rows, double[][] in_lhs, double[] rhs_and_solution, String[] message) -
InvertPSDMatrix
public double[][] InvertPSDMatrix(boolean assume_full_rank, double[][] arr) -
createSchurEliminatorBase
public CeresSolver.SchurEliminatorBase createSchurEliminatorBase(CeresSolver.LinearSolverOptions options) -
createPartitionedMatrixView
public CeresSolver.PartitionedMatrixView createPartitionedMatrixView(CeresSolver.LinearSolverOptions options, CeresSolver.BlockSparseMatrix matrix) -
LinearSolverForZeroEBlocks
public CeresSolver.LinearSolverType LinearSolverForZeroEBlocks(CeresSolver.LinearSolverType linear_solver_type) -
Create
public CeresSolver.Evaluator Create(CeresSolver.EvaluatorOptions options, CeresSolver.Program program, String[] error) -
Create
-
CreateEvaluatorScratch
public CeresSolver.EvaluateScratch[] CreateEvaluatorScratch(CeresSolver.Program program, int num_threads) -
BuildResidualLayout
-
IsOrderingValid
public boolean IsOrderingValid(CeresSolver.Program program, CeresSolver.OrderedGroups<double[]> ordering, String[] message) -
CreateOrdering
-
ComputeRecursiveIndependentSetOrdering
public void ComputeRecursiveIndependentSetOrdering(CeresSolver.Program program, CeresSolver.OrderedGroups<double[]> ordering) -
Create
public CeresSolver.LineSearch Create(CeresSolver.LineSearchType line_search_type, CeresSolver.LineSearchOptions options, String[] error) -
copyFunctionSample
-
Create
-
RemoveLeadingZeros
-
FindLinearPolynomialRoots
-
FindQuadraticPolynomialRoots
-
CreateLinearLeastSquaresProblemFromId
-
LinearLeastSquaresProblem0
-
LinearLeastSquaresProblem1
-
LinearLeastSquaresProblem2
-
LinearLeastSquaresProblem3
-
LinearLeastSquaresProblem4
-
DumpLinearLeastSquaresProblem
public boolean DumpLinearLeastSquaresProblem(String filename_base, CeresSolver.DumpFormatType dump_format_type, CeresSolver.SparseMatrix A, double[] D, double[] b, double[] x, int num_eliminate_blocks) -
DumpLinearLeastSquaresProblemToConsole
public boolean DumpLinearLeastSquaresProblemToConsole(CeresSolver.SparseMatrix A, double[] D, double[] b, double[] x, int num_eliminate_blocks) -
WriteArrayToFileOrDie
-
WriteStringToFileOrDie
-
DumpLinearLeastSquaresProblemToTextFile
public boolean DumpLinearLeastSquaresProblemToTextFile(String filename_base, CeresSolver.SparseMatrix A, double[] D, double[] b, double[] x, int num_eliminate_blocks) -
Create
-
NonlinearConjugateGradientTypeToString
public String NonlinearConjugateGradientTypeToString(CeresSolver.NonlinearConjugateGradientType type) -
Create
-
LineSearchDirectionTypeToString
-
RunCallbacks
public boolean RunCallbacks(CeresSolver.MinimizerOptions options, CeresSolver.IterationSummary iteration_summary, CeresSolver.SolverSummary summary) -
CreateGradientCheckingProblemImpl
public CeresSolver.ProblemImpl CreateGradientCheckingProblemImpl(CeresSolver.ProblemImpl problem_impl, double relative_step_size, double relative_precision, CeresSolver.GradientCheckingIterationCallback callback) -
PreSolveSummarize
private void PreSolveSummarize(CeresSolver.SolverOptions options, CeresSolver.ProblemImpl problem, CeresSolver.SolverSummary summary) -
OrderingToGroupSizes
private void OrderingToGroupSizes(CeresSolver.OrderedGroups<double[]> ordering, Vector<Integer> group_sizes) -
SummarizeGivenProgram
-
EvaluateJacobianForParameterBlock
public <CostFunctor> boolean EvaluateJacobianForParameterBlock(CeresSolver.NumericDiffMethodType kMethod, int kNumResiduals, int N0, int N1, int N2, int N3, int N4, int N5, int N6, int N7, int N8, int N9, int kParameterBlock, int kParameterBlockSize, CostFunctor functor, double[] residuals_at_eval_point, CeresSolver.NumericDiffOptions options, int num_residuals, int parameter_block_index, int parameter_block_size, double[][] parameters, double[] jacobian) -
EvaluateJacobianForParameterBlock
public <CostFunctor> boolean EvaluateJacobianForParameterBlock(CeresSolver.NumericDiffMethodType kMethod, int kNumResiduals, int N0, int N1, int N2, int N3, int N4, int N5, int N6, int N7, int N8, int N9, int kParameterBlock, int kParameterBlockSize, CostFunctor functor, double[] residuals_at_eval_point, CeresSolver.NumericDiffOptions options, int num_residuals, int parameter_block_index, int parameter_block_size, double[][] parameters, double[] jacobian, int jacobian_offset) -
EvaluateJacobianColumn
public <CostFunctor> boolean EvaluateJacobianColumn(CeresSolver.NumericDiffMethodType kMethod, int kNumResiduals, int kParameterBlockSize, CostFunctor functor, int parameter_index, double delta, int num_residuals, int parameter_block_index, int parameter_block_size, double[] x_ptr, double[] residuals_at_eval_point, double[][] parameters, double[] x_plus_delta_ptr, double[] temp_residuals_ptr, double[] residuals_ptr) -
EvaluateRiddersJacobianColumn
public <CostFunctor> boolean EvaluateRiddersJacobianColumn(CeresSolver.NumericDiffMethodType kMethod, int kNumResiduals, int kParameterBlockSize, CostFunctor functor, int parameter_index, double delta, CeresSolver.NumericDiffOptions options, int num_residuals, int parameter_block_index, int parameter_block_size, double[] x_ptr, double[] residuals_at_eval_point, double[][] parameters, double[] x_plus_delta_ptr, double[] temp_residuals_ptr, double[] residuals_ptr) -
QuaternionProduct
public void QuaternionProduct(double[] z, double[] w, double[] zw) -
EigenQuaternionProduct
public void EigenQuaternionProduct(double[] a, double[] b, double[] ab) Constructs and initializes the quaternion \f$ w+xi+yj+zk \f$ from its four coefficients \a w, \a x, \a y and \a z. \warning Note the order of the arguments: the real \a w coefficient first, while internally the coefficients are stored in the following order: [\c x, \c y, \c z, \c w] -
ComputeHouseholderVector
public void ComputeHouseholderVector(double[] x, double[] v, double[] beta) -
IsSolutionUsable
-
TerminationTypeToString
-
CreateGradientCheckingCostFunction
public CeresSolver.CostFunction CreateGradientCheckingCostFunction(CeresSolver.CostFunction cost_function, Vector<CeresSolver.LocalParameterization> local_parameterizations, double relative_step_size, double relative_precision, String extra_info, CeresSolver.GradientCheckingIterationCallback callback) -
EvaluateCostFunction
public boolean EvaluateCostFunction(CeresSolver.CostFunction function, Vector<double[]> parameters, Vector<CeresSolver.LocalParameterization> local_parameterizations, Vector<Double> residuals, Vector<Jama.Matrix> jacobians, Vector<Jama.Matrix> local_jacobians) -
IsClose
public boolean IsClose(double x, double y, double relative_precision, double[] relative_error, double[] absolute_error) -
InvalidateArray
public void InvalidateArray(int size, double[] x) -
InvalidateArray
public void InvalidateArray(int size, double[] x, int x_offset) -
InvalidateArray
public void InvalidateArray(int row, int col, double[][] x) -
InvalidateArray
-
IsArrayValid
public boolean IsArrayValid(int size, double[] x) -
IsArrayValid
public boolean IsArrayValid(int size, double[] x, int x_offset) -
IsArrayValid
public boolean IsArrayValid(int row, int col, double[][] x) -
IsArrayValid
-
FindInvalidValue
int FindInvalidValue(int size, double[] x) -
AppendArrayToString
-
MatrixTransposeVectorMultiply
public void MatrixTransposeVectorMultiply(int kRowA, int kColA, int kOperation, double[] A, int Astart, int num_row_a, int num_col_a, double[] b, int bstart, double[] c, int cstart) -
MatrixVectorMultiply
public void MatrixVectorMultiply(int kRowA, int kColA, int kOperation, double[] A, int Astart, int num_row_a, int num_col_a, double[] b, int bstart, double[] c, int cstart) -
MatrixTransposeMatrixMultiply
public void MatrixTransposeMatrixMultiply(int kRowA, int kColA, int kRowB, int kColB, int kOperation, double[] A, int A_start, int num_row_a, int num_col_a, double[] B, int B_start, int num_row_b, int num_col_b, double[] C, int C_start, int start_row_c, int start_col_c, int row_stride_c, int col_stride_c) -
MatrixMatrixMultiply
public void MatrixMatrixMultiply(int kRowA, int kColA, int kRowB, int kColB, int kOperation, double[] A, int A_start, int num_row_a, int num_col_a, double[] B, int B_start, int num_row_b, int num_col_b, double[] C, int C_start, int start_row_c, int start_col_c, int row_stride_c, int col_stride_c) -
MatrixMatrixMultiply
public void MatrixMatrixMultiply(int kOperation, double[] A, int NUM_ROW_A, int NUM_COL_A, double[] B, int NUM_ROW_B, int NUM_COL_B, double[] C, int start_row_c, int start_col_c, int row_stride_c, int col_stride_c) -
MatrixMatrixMultiply
public void MatrixMatrixMultiply(int kOperation, double[] A, int NUM_ROW_A, int NUM_COL_A, double[][] B, int NUM_ROW_B, int NUM_COL_B, double[] C, int start_row_c, int start_col_c, int row_stride_c, int col_stride_c) -
MatrixMatrixMultiply
public void MatrixMatrixMultiply(int kOperation, double[] A, int A_start, int NUM_ROW_A, int NUM_COL_A, double[][] B, int NUM_ROW_B, int NUM_COL_B, double[] C, int C_start, int start_row_c, int start_col_c, int row_stride_c, int col_stride_c) -
LineSearchTypeToString
-
LineSearchInterpolationTypeToString
-
FindWithDefault
CeresSolver.ParameterBlock FindWithDefault(HashMap<double[], CeresSolver.ParameterBlock> collection, double[] key, CeresSolver.ParameterBlock value) -
FindWithDefault
CeresSolver.CallStatistics FindWithDefault(HashMap<String, CeresSolver.CallStatistics> collection, String key, CeresSolver.CallStatistics value) -
MinimizeInterpolatingPolynomial
public void MinimizeInterpolatingPolynomial(Vector<CeresSolver.FunctionSample> samples, double x_min, double x_max, double[] optimal_x, double[] optimal_value) -
MinimizePolynomial
-
DifferentiatePolynomial
-
EvaluatePolynomial
-
FindInterpolatingPolynomial
-
FindPolynomialRoots
-
GradientProblemSolverOptionsToSolverOptions
public CeresSolver.SolverOptions GradientProblemSolverOptionsToSolverOptions(CeresSolver.GradientProblemSolverOptions options) -
IsSolutionUsable
-
Solve
public void Solve(CeresSolver.GradientProblemSolverOptions options, CeresSolver.GradientProblem problem, double[] parameters_ptr, CeresSolver.GradientProblemSolverSummary summary) -
fitToExternalFunction
public abstract boolean fitToExternalFunction(double[] a, double[] residuals, double[][] jacobian)
-