Date: 01/13/2016 File: reflection.gp This is a little code which permits the computation of the spinor norm of an orthogonal map. This is needed for our paper Weyl groups of ... with A. Feingold. The functions included in the file reflection.gp are: base_standard pairing projection orthogonal_basis orthogonal_basis1 apply_aut reflection composition product_of_reflection spinor_norm In gp, one can type "?name_of_function" in order to get a short description of what the function does. Below, one finds an example of the calculation of the spinor norm of the unique non-trivial outer automorphism for A_{3}^{++}. EXAMPLE: daniel@bigbang:~/Desktop/paper_update/computation$ gp Reading GPRC: /Users/daniel/.gprc ...Done. GP/PARI CALCULATOR Version 2.7.1 (released) i386 running darwin (x86-64/GMP-6.0.0 kernel) 64-bit version compiled: Jul 14 2014, Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) threading engine: single (readline v6.3 enabled, extended help enabled) Copyright (C) 2000-2014 The PARI Group PARI/GP is free software, covered by the GNU General Public License, and comes WITHOUT ANY WARRANTY WHATSOEVER. Type ? for help, \q to quit. Type ?12 for how to get moral (and possibly technical) support. parisize = 8000000, primelimit = 500000 ? ? ? A = matrix(5,5) %1 = [0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0] ? for(i=1,5,A[i,i] = 2) ? A %3 = [2 0 0 0 0] [0 2 0 0 0] [0 0 2 0 0] [0 0 0 2 0] [0 0 0 0 2] ? for(i=1,4,A[i,i+1] = -1) ? A %5 = [2 -1 0 0 0] [0 2 -1 0 0] [0 0 2 -1 0] [0 0 0 2 -1] [0 0 0 0 2] ? for(i=2,5,A[i,i-1] = -1) ? A %7 = [ 2 -1 0 0 0] [-1 2 -1 0 0] [ 0 -1 2 -1 0] [ 0 0 -1 2 -1] [ 0 0 0 -1 2] ? A[2,5] = A[5,2] = -1 %8 = -1 ? ? ? A %9 = [ 2 -1 0 0 0] [-1 2 -1 0 -1] [ 0 -1 2 -1 0] [ 0 0 -1 2 -1] [ 0 -1 0 -1 2] ? A = A*(1/2); ? A %11 = [ 1 -1/2 0 0 0] [-1/2 1 -1/2 0 -1/2] [ 0 -1/2 1 -1/2 0] [ 0 0 -1/2 1 -1/2] [ 0 -1/2 0 -1/2 1] ? ? ? read("reflection.gp") time = 1 ms. ? base_standard(5) %13 = [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]] ? ? automo = %13; ? ? ? automo[3] = %13[5]; ? automo[5] = %13[3]; ? automo %17 = [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 0, 1, 0], [0, 0, 1, 0, 0]] ? ? ? product_of_reflection(A,automo) time = 2 ms. %18 = [[1, 0, 0, 0, 0], [2, 0, 0, 0, 0], [1/2, 1, 0, 0, 0], [1, 2, 0, 0, 0], [0, 0, -1, 0, 1], [1/4, 1/2, 3/4, 1, 0], [1/2, 1, 3/2, 2, 0], [4/5, 8/5, 7/5, 6/5, 1], [8/5, 16/5, 14/5, 12/5, 2]] ? spinor_norm(A,%18) %19 = 18 ? factor(%) %20 = [2 1] [3 2]