math.matrices: vectorizable definition of cross
							parent
							
								
									e4f108714a
								
							
						
					
					
						commit
						84f203afcc
					
				| 
						 | 
				
			
			@ -122,7 +122,9 @@ IN: math.matrices
 | 
			
		|||
 | 
			
		||||
PRIVATE>
 | 
			
		||||
 | 
			
		||||
: cross ( vec1 vec2 -- vec3 ) [ [ i ] [ j ] [ k ] 2tri ] keep 3sequence ;
 | 
			
		||||
: cross ( vec1 vec2 -- vec3 )
 | 
			
		||||
    [ [ { 1 2 1 } vshuffle ] [ { 2 0 0 } vshuffle ] bi* v* ]
 | 
			
		||||
    [ [ { 2 0 0 } vshuffle ] [ { 1 2 1 } vshuffle ] bi* v* ] 2bi v- ; inline
 | 
			
		||||
 | 
			
		||||
: proj ( v u -- w )
 | 
			
		||||
    [ [ v. ] [ norm-sq ] bi / ] keep n*v ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,6 +96,7 @@ PRIVATE>
 | 
			
		|||
:: vbroadcast ( u n -- v ) u length n u nth <repetition> u like ;
 | 
			
		||||
 | 
			
		||||
: vshuffle-elements ( u perm -- v )
 | 
			
		||||
    over length 0 pad-tail
 | 
			
		||||
    swap [ '[ _ nth ] ] keep map-as ;
 | 
			
		||||
 | 
			
		||||
: vshuffle-bytes ( u perm -- v )
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue