Compilation error fixes - In C you're not allowed to define variables in the middle of the block. This was violated in curve_fitting.c by calling ceres_init() in the beginning of main() and declaring variables later. - Also ifdef-ed suitesparse stuff in covariance estimation module. This solves compilation error when you don't have suitesparse compiled/installed. Change-Id: I22b543c09ea01f55e127079daade99a0b781f789
diff --git a/examples/curve_fitting.c b/examples/curve_fitting.c index a2fb5b9..5e3cd16 100644 --- a/examples/curve_fitting.c +++ b/examples/curve_fitting.c
@@ -144,18 +144,21 @@ } int main(int argc, char** argv) { - ceres_init(argc, argv); - /* Note: Typically it is better to compact m and c into one block, * but in this case use separate blocks to illustrate the use of * multiple parameter blocks. */ double m = 0.0; double c = 0.0; + double *parameter_pointers[] = { &m, &c }; int parameter_sizes[] = { 1, 1 }; - ceres_problem_t* problem = ceres_create_problem(); + ceres_problem_t* problem; int i; + + ceres_init(argc, argv); + + problem = ceres_create_problem(); for (i = 0; i < num_observations; ++i) { ceres_problem_add_residual_block( problem,
diff --git a/internal/ceres/covariance_impl.h b/internal/ceres/covariance_impl.h index 42b262e..0be53e7 100644 --- a/internal/ceres/covariance_impl.h +++ b/internal/ceres/covariance_impl.h
@@ -80,7 +80,9 @@ map<const double*, int> parameter_block_to_row_index_; set<const double*> constant_parameter_blocks_; scoped_ptr<CompressedRowSparseMatrix> covariance_matrix_; +#ifndef CERES_NO_SUITESPARSE SuiteSparse ss_; +#endif }; } // namespace internal