| 
									
										
										
										
											2008-01-05 17:27:15 -05:00
										 |  |  | ! Copyright (C) 2007, 2008 Slava Pestov. | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							| 
									
										
										
										
											2008-01-31 21:11:46 -05:00
										 |  |  | USING: kernel kernel.private alien.accessors sequences | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | sequences.private math math.private ;
 | 
					
						
							| 
									
										
										
										
											2008-01-05 17:27:15 -05:00
										 |  |  | IN: float-arrays | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | <PRIVATE
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : float-array@ swap >fixnum 8 fixnum*fast ; inline
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PRIVATE>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | M: float-array clone (clone) ;
 | 
					
						
							|  |  |  | M: float-array length array-capacity ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | M: float-array nth-unsafe | 
					
						
							|  |  |  |     float-array@ alien-double ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | M: float-array set-nth-unsafe | 
					
						
							|  |  |  |     >r >r >float r> r> float-array@ set-alien-double ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : >float-array ( seq -- float-array ) F{ } clone-like ; inline
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | M: float-array like | 
					
						
							|  |  |  |     drop dup float-array? [ >float-array ] unless ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-04-13 13:54:58 -04:00
										 |  |  | M: float-array new-sequence drop 0.0 <float-array> ;
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | M: float-array equal? | 
					
						
							|  |  |  |     over float-array? [ sequence= ] [ 2drop f ] if ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-01-28 19:15:21 -05:00
										 |  |  | M: float-array resize | 
					
						
							|  |  |  |     resize-float-array ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | INSTANCE: float-array sequence | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : 1float-array ( x -- array ) 1 swap <float-array> ; flushable
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : 2float-array ( x y -- array ) F{ } 2sequence ; flushable
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : 3float-array ( x y z -- array ) F{ } 3sequence ; flushable
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : 4float-array ( w x y z -- array ) F{ } 4sequence ; flushable
 |