6#ifndef TSV_META_CROSS_H
7#define TSV_META_CROSS_H
23template<
class T1,
class T2,
unsigned D>
29 ERRORMSG(
"Cross-product *only* implemented for 3D; you're trying to"
30 <<
" do it for " << D <<
"D." <<
endl);
37template<
class T1,
class T2>
44 cross[0] =
a[1]*b[2] -
a[2]*b[1];
45 cross[1] =
a[2]*b[0] -
a[0]*b[2];
46 cross[2] =
a[0]*b[1] -
a[1]*b[0];
Vector3D cross(const Vector3D &lhs, const Vector3D &rhs)
Vector cross product.
Inform & endl(Inform &inf)
static Vektor< T0, D > apply(const Vektor< T1, D > &, const Vektor< T2, D > &)
PETEBinaryReturn< T1, T2, OpMultipply >::type T0
static Vektor< T0, 3 > apply(const Vektor< T1, 3 > &a, const Vektor< T2, 3 > &b)
PETEBinaryReturn< T1, T2, OpMultipply >::type T0
PETE_ComputeBinaryType< T1, T2, Op, Op::tag >::type type
static void abortAllNodes(const char *=0)