Files
ParkingRobot/ClumsyPilot/ParkrobTrajplanner/EMPlanner/Optimization/QpSolverSettings.cs
T

49 lines
1.5 KiB
C#

using System;
using MultiWheelC.TrajectoryPlanning.Utils;
namespace MultiWheelC.TrajectoryPlanning.EMPlanner;
public sealed class QpSolverSettings
{
public QpSolverSettings(
int maximumIterations,
double absoluteTolerance,
double relativeTolerance,
TimeSpan timeLimit,
bool enableWarmStart,
bool enablePolishing,
bool enableNativeVerboseOutput)
{
if (maximumIterations <= 0)
throw new ArgumentOutOfRangeException(nameof(maximumIterations));
if (!NumericGuard.IsPositiveFinite(absoluteTolerance))
throw new ArgumentOutOfRangeException(nameof(absoluteTolerance));
if (!NumericGuard.IsPositiveFinite(relativeTolerance))
throw new ArgumentOutOfRangeException(nameof(relativeTolerance));
if (timeLimit <= TimeSpan.Zero)
throw new ArgumentOutOfRangeException(nameof(timeLimit));
MaximumIterations = maximumIterations;
AbsoluteTolerance = absoluteTolerance;
RelativeTolerance = relativeTolerance;
TimeLimit = timeLimit;
EnableWarmStart = enableWarmStart;
EnablePolishing = enablePolishing;
EnableNativeVerboseOutput = enableNativeVerboseOutput;
}
public int MaximumIterations { get; }
public double AbsoluteTolerance { get; }
public double RelativeTolerance { get; }
public TimeSpan TimeLimit { get; }
public bool EnableWarmStart { get; }
public bool EnablePolishing { get; }
public bool EnableNativeVerboseOutput { get; }
}