/* metrics.mac * version 0.02 * (C) Kenrou Adachi, 2004/06/25 */ load(eigen)$ geom(a, b, G) := block([ta], ta : conjugate(transpose(a)), ratsimp(ta . G . b) )$ absolute(a, G) := ratsimp(sqrt(geom(a, a, G)))$ anglcos(a, b, G) := block([denom], denom : absolute(a, G) * absolute(b, G), ratsimp(geom(a, b, G) / denom) )$ MinkMatrix : ematrix(4, 4, 2, 1, 1) - ident(4)$ mink(a, b) := geom(a, b, MinkMatrix)$ tminknorm(a) := sqrt(mink(a,a))$ sminknorm(a) := sqrt(-mink(a,a))$ minknorm(a) := block( if mink(a, a) < 0 then sqrt(-mink(a, a)) else sqrt(mink(a, a)) )$ hypangcos(a, b) := ratsimp(mink(a, b) / (tminknorm(a) * tminknorm(b)))$