private static function validate($a, $b, $p, $tol)
{
Validation::tolerance($tol);
Validation::interval($a, $b);
if ($a > $b) {
list($a, $b) = [$b, $a];
}
if ($p < $a || $p > $b) {
throw new Exception\OutOfBoundsException("Initial guess {$p} must be in [{$a}, {$b}].");
}
}