factor/extra/math/quadratic/quadratic.factor

21 lines
555 B
Factor
Raw Normal View History

2007-09-20 18:09:08 -04:00
! Copyright (C) 2007 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: kernel math math.functions ;
2007-11-04 22:51:34 -05:00
IN: math.quadratic
2007-09-20 18:09:08 -04:00
2008-06-14 05:01:07 -04:00
: monic ( c b a -- c' b' ) tuck [ / ] 2bi@ ;
2007-09-20 18:09:08 -04:00
: discriminant ( c b -- b d ) tuck sq 4 / swap - sqrt ;
2008-06-14 05:01:07 -04:00
: critical ( b d -- -b/2 d ) [ -2 / ] dip ;
2007-09-20 18:09:08 -04:00
2008-06-14 05:01:07 -04:00
: +- ( x y -- x+y x-y ) [ + ] [ - ] 2bi ;
2007-09-20 18:09:08 -04:00
: quadratic ( c b a -- alpha beta )
#! Solve a quadratic equation ax^2 + bx + c = 0
monic discriminant critical +- ;
: qeval ( x c b a -- y )
#! Evaluate ax^2 + bx + c
2008-06-14 05:01:07 -04:00
[ pick * ] dip roll sq * + + ;