public static bool IsReachable(double initialVelocity, double targetVelocity, double distanceAvailable, MotionParameter motionParameter)
 => Calculate(initialVelocity, targetVelocity, motionParameter).IsReachable(distanceAvailable);
 public static double CalculateTimeNeeded(double aFrom, double vFrom, double vTo, MotionParameter motionParameter)
 => Calculate(aFrom, vFrom, vTo, motionParameter).TotalDuration;
 public static double CalculateDistanceNeeded(double aFrom, double vFrom, double vTo, MotionParameter motionParameter)
 => Calculate(aFrom, vFrom, vTo, motionParameter).Length;
 public static ExtendedP2PCalculatorResult Calculate(double initialVelocity, double targetVelocity, MotionParameter motionParameter)
 => Calculate(0, initialVelocity, targetVelocity, motionParameter);
 public static ExtendedP2PCalculatorResult Calculate(double initialAcceleration, double initialVelocity, double targetVelocity, MotionParameter motionParameter)
 => new ExtendedP2PCalculator(initialAcceleration, initialVelocity, motionParameter).Calculate(targetVelocity);
 private ExtendedP2PCalculator(double initialAcceleration, double initialVelocity, MotionParameter motionParameter)
 {
     InitialAcceleration = initialAcceleration;
     InitialVelocity     = initialVelocity;
     MotionParameter     = motionParameter;
 }