mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-29 08:34:37 +08:00
Add support for up to 10 parameters in Problem
Following the last commit, which extends the number of parameters blocks autodiff can accept, the interface of Problem::AddResidualBlock is extended to accept up to 10 parameter blocks. Change-Id: I162c3d1b1868fdda32c1522d57e9a211a9c02f90
This commit is contained in:
@@ -208,6 +208,27 @@ class Problem {
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2,
|
||||
double* x3, double* x4, double* x5);
|
||||
ResidualBlockId AddResidualBlock(CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2,
|
||||
double* x3, double* x4, double* x5,
|
||||
double* x6);
|
||||
ResidualBlockId AddResidualBlock(CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2,
|
||||
double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7);
|
||||
ResidualBlockId AddResidualBlock(CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2,
|
||||
double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7, double* x8);
|
||||
ResidualBlockId AddResidualBlock(CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2,
|
||||
double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7, double* x8,
|
||||
double* x9);
|
||||
|
||||
// Add a parameter block with appropriate size to the problem.
|
||||
// Repeated calls with the same arguments are ignored. Repeated
|
||||
|
||||
@@ -106,6 +106,46 @@ ResidualBlockId Problem::AddResidualBlock(
|
||||
x0, x1, x2, x3, x4, x5);
|
||||
}
|
||||
|
||||
ResidualBlockId Problem::AddResidualBlock(
|
||||
CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2, double* x3, double* x4, double* x5,
|
||||
double* x6) {
|
||||
return problem_impl_->AddResidualBlock(cost_function,
|
||||
loss_function,
|
||||
x0, x1, x2, x3, x4, x5, x6);
|
||||
}
|
||||
|
||||
ResidualBlockId Problem::AddResidualBlock(
|
||||
CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2, double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7) {
|
||||
return problem_impl_->AddResidualBlock(cost_function,
|
||||
loss_function,
|
||||
x0, x1, x2, x3, x4, x5, x6, x7);
|
||||
}
|
||||
|
||||
ResidualBlockId Problem::AddResidualBlock(
|
||||
CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2, double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7, double* x8) {
|
||||
return problem_impl_->AddResidualBlock(cost_function,
|
||||
loss_function,
|
||||
x0, x1, x2, x3, x4, x5, x6, x7, x8);
|
||||
}
|
||||
|
||||
ResidualBlockId Problem::AddResidualBlock(
|
||||
CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2, double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7, double* x8, double* x9) {
|
||||
return problem_impl_->AddResidualBlock(cost_function,
|
||||
loss_function,
|
||||
x0, x1, x2, x3, x4, x5, x6, x7, x8, x9);
|
||||
}
|
||||
|
||||
void Problem::AddParameterBlock(double* values, int size) {
|
||||
problem_impl_->AddParameterBlock(values, size);
|
||||
}
|
||||
|
||||
@@ -301,6 +301,75 @@ const ResidualBlock* ProblemImpl::AddResidualBlock(
|
||||
return AddResidualBlock(cost_function, loss_function, residual_parameters);
|
||||
}
|
||||
|
||||
const ResidualBlock* ProblemImpl::AddResidualBlock(
|
||||
CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2, double* x3, double* x4, double* x5,
|
||||
double* x6) {
|
||||
vector<double*> residual_parameters;
|
||||
residual_parameters.push_back(x0);
|
||||
residual_parameters.push_back(x1);
|
||||
residual_parameters.push_back(x2);
|
||||
residual_parameters.push_back(x3);
|
||||
residual_parameters.push_back(x4);
|
||||
residual_parameters.push_back(x5);
|
||||
residual_parameters.push_back(x6);
|
||||
return AddResidualBlock(cost_function, loss_function, residual_parameters);
|
||||
}
|
||||
|
||||
const ResidualBlock* ProblemImpl::AddResidualBlock(
|
||||
CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2, double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7) {
|
||||
vector<double*> residual_parameters;
|
||||
residual_parameters.push_back(x0);
|
||||
residual_parameters.push_back(x1);
|
||||
residual_parameters.push_back(x2);
|
||||
residual_parameters.push_back(x3);
|
||||
residual_parameters.push_back(x4);
|
||||
residual_parameters.push_back(x5);
|
||||
residual_parameters.push_back(x6);
|
||||
residual_parameters.push_back(x7);
|
||||
return AddResidualBlock(cost_function, loss_function, residual_parameters);
|
||||
}
|
||||
|
||||
const ResidualBlock* ProblemImpl::AddResidualBlock(
|
||||
CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2, double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7, double* x8) {
|
||||
vector<double*> residual_parameters;
|
||||
residual_parameters.push_back(x0);
|
||||
residual_parameters.push_back(x1);
|
||||
residual_parameters.push_back(x2);
|
||||
residual_parameters.push_back(x3);
|
||||
residual_parameters.push_back(x4);
|
||||
residual_parameters.push_back(x5);
|
||||
residual_parameters.push_back(x6);
|
||||
residual_parameters.push_back(x7);
|
||||
residual_parameters.push_back(x8);
|
||||
return AddResidualBlock(cost_function, loss_function, residual_parameters);
|
||||
}
|
||||
|
||||
const ResidualBlock* ProblemImpl::AddResidualBlock(
|
||||
CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2, double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7, double* x8, double* x9) {
|
||||
vector<double*> residual_parameters;
|
||||
residual_parameters.push_back(x0);
|
||||
residual_parameters.push_back(x1);
|
||||
residual_parameters.push_back(x2);
|
||||
residual_parameters.push_back(x3);
|
||||
residual_parameters.push_back(x4);
|
||||
residual_parameters.push_back(x5);
|
||||
residual_parameters.push_back(x6);
|
||||
residual_parameters.push_back(x7);
|
||||
residual_parameters.push_back(x8);
|
||||
residual_parameters.push_back(x9);
|
||||
return AddResidualBlock(cost_function, loss_function, residual_parameters);
|
||||
}
|
||||
|
||||
void ProblemImpl::AddParameterBlock(double* values, int size) {
|
||||
InternalAddParameterBlock(values,
|
||||
|
||||
@@ -93,6 +93,27 @@ class ProblemImpl {
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2,
|
||||
double* x3, double* x4, double* x5);
|
||||
ResidualBlockId AddResidualBlock(CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2,
|
||||
double* x3, double* x4, double* x5,
|
||||
double* x6);
|
||||
ResidualBlockId AddResidualBlock(CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2,
|
||||
double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7);
|
||||
ResidualBlockId AddResidualBlock(CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2,
|
||||
double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7, double* x8);
|
||||
ResidualBlockId AddResidualBlock(CostFunction* cost_function,
|
||||
LossFunction* loss_function,
|
||||
double* x0, double* x1, double* x2,
|
||||
double* x3, double* x4, double* x5,
|
||||
double* x6, double* x7, double* x8,
|
||||
double* x9);
|
||||
void AddParameterBlock(double* values, int size);
|
||||
void AddParameterBlock(double* values,
|
||||
int size,
|
||||
|
||||
Reference in New Issue
Block a user