diff options
Diffstat (limited to 'include/ceres/c_api.h')
-rw-r--r-- | include/ceres/c_api.h | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/include/ceres/c_api.h b/include/ceres/c_api.h index add68de..71f41fd 100644 --- a/include/ceres/c_api.h +++ b/include/ceres/c_api.h @@ -38,12 +38,15 @@ #ifndef CERES_PUBLIC_C_API_H_ #define CERES_PUBLIC_C_API_H_ +#include "ceres/internal/port.h" +#include "ceres/internal/disable_warnings.h" + #ifdef __cplusplus extern "C" { #endif /* Init the Ceres private data. Must be called before anything else. */ -void ceres_init(); +CERES_EXPORT void ceres_init(); /* Equivalent to CostFunction::Evaluate() in the C++ API. * @@ -88,23 +91,23 @@ typedef void (*ceres_loss_function_t)(void* user_data, * * See loss_function.h for the details of each loss function. */ -void* ceres_create_huber_loss_function_data(double a); -void* ceres_create_softl1_loss_function_data(double a); -void* ceres_create_cauchy_loss_function_data(double a); -void* ceres_create_arctan_loss_function_data(double a); -void* ceres_create_tolerant_loss_function_data(double a, double b); +CERES_EXPORT void* ceres_create_huber_loss_function_data(double a); +CERES_EXPORT void* ceres_create_softl1_loss_function_data(double a); +CERES_EXPORT void* ceres_create_cauchy_loss_function_data(double a); +CERES_EXPORT void* ceres_create_arctan_loss_function_data(double a); +CERES_EXPORT void* ceres_create_tolerant_loss_function_data(double a, double b); /* Free the given stock loss function data. */ -void ceres_free_stock_loss_function_data(void* loss_function_data); +CERES_EXPORT void ceres_free_stock_loss_function_data(void* loss_function_data); /* This is an implementation of ceres_loss_function_t contained within Ceres * itself, intended as a way to access the various stock Ceres loss functions * from the C API. This should be passed to ceres_add_residual() below, in * combination with a user_data pointer generated by * ceres_create_stock_loss_function() above. */ -void ceres_stock_loss_function(void* user_data, - double squared_norm, - double out[3]); +CERES_EXPORT void ceres_stock_loss_function(void* user_data, + double squared_norm, + double out[3]); /* Equivalent to Problem from the C++ API. */ struct ceres_problem_s; @@ -115,11 +118,11 @@ typedef struct ceres_residual_block_id_s ceres_residual_block_id_t; /* Create and destroy a problem */ /* TODO(keir): Add options for the problem. */ -ceres_problem_t* ceres_create_problem(); -void ceres_free_problem(ceres_problem_t* problem); +CERES_EXPORT ceres_problem_t* ceres_create_problem(); +CERES_EXPORT void ceres_free_problem(ceres_problem_t* problem); /* Add a residual block. */ -ceres_residual_block_id_t* ceres_problem_add_residual_block( +CERES_EXPORT ceres_residual_block_id_t* ceres_problem_add_residual_block( ceres_problem_t* problem, ceres_cost_function_t cost_function, void* cost_function_data, @@ -130,7 +133,7 @@ ceres_residual_block_id_t* ceres_problem_add_residual_block( int* parameter_block_sizes, double** parameters); -void ceres_solve(ceres_problem_t* problem); +CERES_EXPORT void ceres_solve(ceres_problem_t* problem); /* TODO(keir): Figure out a way to pass a config in. */ @@ -138,4 +141,6 @@ void ceres_solve(ceres_problem_t* problem); } #endif +#include "ceres/internal/reenable_warnings.h" + #endif /* CERES_PUBLIC_C_API_H_ */ |