[−][src]Function pbrt::quadratic
pub fn quadratic(a: Float, b: Float, c: Float) -> Option<(Float, Float)>
Find roots of quadratic equation, if they exist.
Examples
From https://www.cliffsnotes.com/study-guides/algebra/algebra-i/quadratic-equations/solving-quadratic-equations
use pbrt::Float; use pbrt::quadratic; use pbrt::assert_almost_equal_options; assert_eq!(quadratic(1., 1., 1.), None); assert_eq!(quadratic(1., -6., -16.), Some((-2., 8.))); assert_eq!(quadratic(1., 6., 5.), Some((-5., -1.))); assert_eq!(quadratic(1., 0., -16.), Some((-4. ,4.))); assert_eq!(quadratic(1., 6., 0.), Some((-6. ,0.))); // This quadratic returns irrational numbers, so some care is taken to ensure the equality // tests work out. let three: Float = 3.; assert_almost_equal_options(quadratic(1., 2., -2.), Some(((-1.-three.sqrt()), (-1.+three.sqrt()))));