44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
| ! Copyright (C) 2007, 2008 Slava Pestov.
 | |
| ! See http://factorcode.org/license.txt for BSD license.
 | |
| USING: kernel kernel.private alien.accessors sequences
 | |
| sequences.private math math.private ;
 | |
| IN: float-arrays
 | |
| 
 | |
| <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 ;
 | |
| 
 | |
| M: float-array new-sequence drop 0.0 <float-array> ;
 | |
| 
 | |
| M: float-array equal?
 | |
|     over float-array? [ sequence= ] [ 2drop f ] if ;
 | |
| 
 | |
| M: float-array resize
 | |
|     resize-float-array ;
 | |
| 
 | |
| 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
 |