Re: Generating Two Unit Orthogonal Vectors to a 3D Vector
- To: mathgroup at smc.vnet.net
- Subject: [mg36410] Re: Generating Two Unit Orthogonal Vectors to a 3D Vector
- From: Selwyn Hollis <slhollis at earthlink.net>
- Date: Wed, 4 Sep 2002 21:22:30 -0400 (EDT)
- References: <al1i1d$kra$1@smc.vnet.net> <al4bfv$rht$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Here's an interesting side note. It seems that Cross is horribly slow.
For instance:
In: vecs = Table[Random[], {10000}, {2}, {3}];
Timing[Cross[Sequence@@ #]& /@ vecs;]
Out: {3.14 Second, Null}
A homemade substitute,
cross = Compile[{{a, _Real, 1}, {b, _Real, 1}},
{a[[2]]b[[3]] - a[[3]]b[[2]],
a[[3]]b[[1]] - a[[1]]b[[3]],
a[[1]]b[[2]] - a[[2]]b[[1]]} ]
is ten times as fast:
In: Timing[cross[Sequence@@ #]& /@ vecs;]
Out: {0.3 Second, Null}
---
Selwyn Hollis