Something I've used on big arrays is this:
cross=: ((1: |.[)*(_1: |. ]))-((_1: |.[)*(1:|.]))

E.g.
   v=. 2 1 7
   u=. _3 4 _1
   u cross v
29 19 _11

   rand=: ?@# 0:
   u=. 1e6 3$rand 3e6
   v=. 1e6 3$rand 3e6
   ts'z=. u cross v'    NB. time & space
0.054138 1.00665e8

   $z
1000000 3

Give it a try :-)
Patrick

On Sat, 8 Feb 2020, [email protected] wrote:

Dear list,


is there a concise way to calculate a cross product of 2 vectors
(in 3D, of course).


Thanks
Ruda
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to