// output of ./demo/mod/modarithtables-demo.cc: // Description: //% Addition-, multiplication- and power tables with modular arithmetic. arg 1: 13 == m [Modulus] default=13 arg 2: 0 == wh [Which table: 1=add 2=sub 3=mul 4=pow 0=all] default=0 arg 3: 0 == gq [Whether to show noninvertible elements with mul/pow tables] default=0 -------- start MOD_INIT(): m=13 -------- modulus= 13 == 0xd modulus is cyclic modulus is prime bits(modulus)= 3.7004397 == 4 - 0.29956028 euler_phi(modulus)= 12 == 0xc == 2^2 * 3 maxorder= 12 == 0xc maxordelem= 2 == 0x2 order(2)= 12 == 2^2 * 3 order(2^3)=2^2 max2pow= 2 (max FFT length = 2**2 == 4) root2pow(max2pow)=8 root2pow(-max2pow)=5 sqrt(-1) =: i = 8 -------- end MOD_INIT(). -------- Addition: 1 2 3 4 5 6 7 8 9 10 11 12 ---------------------------------------- 1 2 3 4 5 6 7 8 9 10 11 12 0 2 3 4 5 6 7 8 9 10 11 12 0 1 3 4 5 6 7 8 9 10 11 12 0 1 2 4 5 6 7 8 9 10 11 12 0 1 2 3 5 6 7 8 9 10 11 12 0 1 2 3 4 6 7 8 9 10 11 12 0 1 2 3 4 5 7 8 9 10 11 12 0 1 2 3 4 5 6 8 9 10 11 12 0 1 2 3 4 5 6 7 9 10 11 12 0 1 2 3 4 5 6 7 8 10 11 12 0 1 2 3 4 5 6 7 8 9 11 12 0 1 2 3 4 5 6 7 8 9 10 12 0 1 2 3 4 5 6 7 8 9 10 11 Subtraction: 1 2 3 4 5 6 7 8 9 10 11 12 ---------------------------------------- 1 0 12 11 10 9 8 7 6 5 4 3 2 2 1 0 12 11 10 9 8 7 6 5 4 3 3 2 1 0 12 11 10 9 8 7 6 5 4 4 3 2 1 0 12 11 10 9 8 7 6 5 5 4 3 2 1 0 12 11 10 9 8 7 6 6 5 4 3 2 1 0 12 11 10 9 8 7 7 6 5 4 3 2 1 0 12 11 10 9 8 8 7 6 5 4 3 2 1 0 12 11 10 9 9 8 7 6 5 4 3 2 1 0 12 11 10 10 9 8 7 6 5 4 3 2 1 0 12 11 11 10 9 8 7 6 5 4 3 2 1 0 12 12 11 10 9 8 7 6 5 4 3 2 1 0 Multiplication: 1 2 3 4 5 6 7 8 9 10 11 12 ---------------------------------------- 1 1 2 3 4 5 6 7 8 9 10 11 12 2 2 4 6 8 10 12 1 3 5 7 9 11 3 3 6 9 12 2 5 8 11 1 4 7 10 4 4 8 12 3 7 11 2 6 10 1 5 9 5 5 10 2 7 12 4 9 1 6 11 3 8 6 6 12 5 11 4 10 3 9 2 8 1 7 7 7 1 8 2 9 3 10 4 11 5 12 6 8 8 3 11 6 1 9 4 12 7 2 10 5 9 9 5 1 10 6 2 11 7 3 12 8 4 10 10 7 4 1 11 8 5 2 12 9 6 3 11 11 9 7 5 3 1 12 10 8 6 4 2 12 12 11 10 9 8 7 6 5 4 3 2 1 Powers and order: 1 2 3 4 5 6 7 8 9 10 11 12 ---------------------------------------- 1 1 1 1 1 1 1 1 1 1 1 1 1 [ 1] 2 2 4 8 3 6 12 11 9 5 10 7 1 [ 12] 3 3 9 1 3 9 1 3 9 1 3 9 1 [ 3] 4 4 3 12 9 10 1 4 3 12 9 10 1 [ 6] 5 5 12 8 1 5 12 8 1 5 12 8 1 [ 4] 6 6 10 8 9 2 12 7 3 5 4 11 1 [ 12] 7 7 10 5 9 11 12 6 3 8 4 2 1 [ 12] 8 8 12 5 1 8 12 5 1 8 12 5 1 [ 4] 9 9 3 1 9 3 1 9 3 1 9 3 1 [ 3] 10 10 9 12 3 4 1 10 9 12 3 4 1 [ 6] 11 11 4 5 3 7 12 2 9 8 10 6 1 [ 12] 12 12 1 12 1 12 1 12 1 12 1 12 1 [ 2]