namespace Flyshot.Native.Planning;
///
/// 描述 Rust ICSP 规划器使用的收敛和最终约束选项。
///
/// 收敛指标 sum(abs(scale - 1)) 的停止阈值。
/// 最大迭代索引;执行范围包含该索引对应轮次。
/// 是否拒绝历史最优结果中仍然超限的段。
/// 最终段缩放因子相对 1.0 的非负容差。
public sealed record NativeIcspPlannerOptions(
double Threshold,
int MaxIterations,
bool EnforceFinalScale,
double FinalScaleTolerance)
{
///
/// 获取与现有托管 ICspPlanner 一致的默认选项。
///
public static NativeIcspPlannerOptions Default { get; } = new(
Threshold: 1e-3,
MaxIterations: 1000,
EnforceFinalScale: true,
FinalScaleTolerance: 1e-2);
}