// Copyright (C) 2026 Kiyotsugu Arai // SPDX-License-Identifier: LGPL-3.0-or-later // optimization_1d.hpp #ifndef SANGI_OPTIMIZATION_1D_HPP #define SANGI_OPTIMIZATION_1D_HPP #include "optimization_base.hpp" namespace sangi { /** * @brief 黄金分割法による一次元最小化 * @tparam T 順序構造を持つ体型(実数など) * @param f 最小化する関数 * @param a 区間の下限 * @param b 区間の上限 * @param options 最適化オプション * @return 最小値を与える点と最小値、最適化状態のタプル */ template OptimizationResult1D golden_section_search( const std::function& f, T a, T b, const OptimizationOptions& options = OptimizationOptions()); /** * @brief ブレント法による一次元最小化 * @tparam T 順序構造を持つ体型(実数など) * @param f 最小化する関数 * @param a 区間の下限 * @param b 区間の上限 * @param options 最適化オプション * @return 最小値を与える点と最小値、最適化状態のタプル */ template OptimizationResult1D brent_minimize( const std::function& f, T a, T b, const OptimizationOptions& options = OptimizationOptions()); // ここに他の一次元最適化アルゴリズムを追加 // 実装は optimization_1d_impl.hpp に分離。 } // namespace sangi #endif // SANGI_OPTIMIZATION_1D_HPP