12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #include "ceres/trust_region_strategy.h"
- #include <memory>
- #include "ceres/dogleg_strategy.h"
- #include "ceres/levenberg_marquardt_strategy.h"
- namespace ceres::internal {
- TrustRegionStrategy::~TrustRegionStrategy() = default;
- std::unique_ptr<TrustRegionStrategy> TrustRegionStrategy::Create(
- const Options& options) {
- switch (options.trust_region_strategy_type) {
- case LEVENBERG_MARQUARDT:
- return std::make_unique<LevenbergMarquardtStrategy>(options);
- case DOGLEG:
- return std::make_unique<DoglegStrategy>(options);
- default:
- LOG(FATAL) << "Unknown trust region strategy: "
- << options.trust_region_strategy_type;
- }
- LOG(FATAL) << "Unknown trust region strategy: "
- << options.trust_region_strategy_type;
- return nullptr;
- }
- }
|