Add experimental rice
							parent
							
								
									68c9b22cef
								
							
						
					
					
						commit
						37047a3b8e
					
				| 
						 | 
				
			
			@ -64,6 +64,7 @@ M: float-array pprint-delims drop \ F{ \ } ;
 | 
			
		|||
M: float-array >pprint-sequence ;
 | 
			
		||||
M: float-array pprint* pprint-object ;
 | 
			
		||||
 | 
			
		||||
! Rice
 | 
			
		||||
USING: hints math.vectors arrays ;
 | 
			
		||||
 | 
			
		||||
HINTS: vneg { float-array } { array } ;
 | 
			
		||||
| 
						 | 
				
			
			@ -81,3 +82,42 @@ HINTS: v. { float-array float-array } { array array } ;
 | 
			
		|||
HINTS: norm-sq { float-array } { array } ;
 | 
			
		||||
HINTS: norm { float-array } { array } ;
 | 
			
		||||
HINTS: normalize { float-array } { array } ;
 | 
			
		||||
 | 
			
		||||
! More rice. Experimental, currently causes a slowdown in raytracer
 | 
			
		||||
! for some odd reason.
 | 
			
		||||
 | 
			
		||||
! USING: words classes.algebra compiler.tree.propagation.info ;
 | 
			
		||||
! 
 | 
			
		||||
! { v+ v- v* v/ vmax vmin } [
 | 
			
		||||
!     [
 | 
			
		||||
!         [ class>> float-array class<= ] both?
 | 
			
		||||
!         float-array object ? <class-info>
 | 
			
		||||
!     ] "outputs" set-word-prop
 | 
			
		||||
! ] each
 | 
			
		||||
! 
 | 
			
		||||
! { n*v n/v } [
 | 
			
		||||
!     [
 | 
			
		||||
!         nip class>> float-array class<= float-array object ? <class-info>
 | 
			
		||||
!     ] "outputs" set-word-prop
 | 
			
		||||
! ] each
 | 
			
		||||
! 
 | 
			
		||||
! { v*n v/n } [
 | 
			
		||||
!     [
 | 
			
		||||
!         drop class>> float-array class<= float-array object ? <class-info>
 | 
			
		||||
!     ] "outputs" set-word-prop
 | 
			
		||||
! ] each
 | 
			
		||||
! 
 | 
			
		||||
! { vneg normalize } [
 | 
			
		||||
!     [
 | 
			
		||||
!         class>> float-array class<= float-array object ? <class-info>
 | 
			
		||||
!     ] "outputs" set-word-prop
 | 
			
		||||
! ] each
 | 
			
		||||
! 
 | 
			
		||||
! \ norm-sq [
 | 
			
		||||
!     class>> float-array class<= float object ? <class-info>
 | 
			
		||||
! ] "outputs" set-word-prop
 | 
			
		||||
! 
 | 
			
		||||
! \ v. [
 | 
			
		||||
!     [ class>> float-array class<= ] both?
 | 
			
		||||
!     float object ? <class-info>
 | 
			
		||||
! ] "outputs" set-word-prop
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue