| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | ! Copyright (C) 2007 Slava Pestov. | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							| 
									
										
										
										
											2009-10-30 15:14:24 -04:00
										 |  |  | USING: kernel locals math math.functions ;
 | 
					
						
							| 
									
										
										
										
											2007-11-04 22:51:34 -05:00
										 |  |  | IN: math.quadratic | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-05 23:22:21 -05:00
										 |  |  | : monic ( c b a -- c' b' ) [ / ] curry bi@ ;
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-05 23:22:21 -05:00
										 |  |  | : discriminant ( c b -- b d ) [ nip ] [ sq 4 / swap - sqrt ] 2bi ;
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											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 )
 | 
					
						
							|  |  |  |     monic discriminant critical +- ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-30 15:14:24 -04:00
										 |  |  | :: qeval ( x c b a -- y )
 | 
					
						
							|  |  |  |     c b x * + a x sq * + ;
 |