Thu Sep 13 10:40:12 2018 MONOMIAL_TEST Python version: 3.6.5 Test the MONOMIAL library. I4_CHOOSE_TEST Python version: 3.6.5 I4_CHOOSE evaluates C(N,K). N K CNK 0 0 1 1 0 1 1 1 1 2 0 1 2 1 2 2 2 1 3 0 1 3 1 3 3 2 3 3 3 1 4 0 1 4 1 4 4 2 6 4 3 4 4 4 1 I4_CHOOSE_TEST: Normal end of execution. I4_UNIFORM_AB_TEST Python version: 3.6.5 I4_UNIFORM_AB computes pseudorandom values in an interval [A,B]. The lower endpoint A = -100 The upper endpoint B = 200 The initial seed is 123456789 1 -35 2 187 3 149 4 69 5 25 6 -81 7 -23 8 -67 9 -87 10 90 11 -82 12 35 13 20 14 127 15 139 16 -100 17 170 18 5 19 -72 20 -96 I4_UNIFORM_AB_TEST: Normal end of execution. I4VEC_SUM_TEST Python version: 3.6.5 I4VEC_SUM sums the entries of an I4VEC. The vector: 0 2 1 10 2 9 3 6 4 4 The vector entries sum to 31 I4VEC_SUM_TEST: Normal end of execution. I4VEC_UNIFORM_AB_TEST Python version: 3.6.5 I4VEC_UNIFORM_AB computes pseudorandom values in an interval [A,B]. The lower endpoint A = -100 The upper endpoint B = 200 The initial seed is 123456789 The random vector: 0 -35 1 187 2 149 3 69 4 25 5 -81 6 -23 7 -67 8 -87 9 90 10 -82 11 35 12 20 13 127 14 139 15 -100 16 170 17 5 18 -72 19 -96 I4VEC_UNIFORM_AB_TEST: Normal end of execution. MONO_BETWEEN_ENUM_TEST Python version: 3.6.5 MONO_BETWEEN_ENUM can enumerate the number of monomials in M variables, of total degree between N1 and N2. Using spatial dimension M = 3 N2: 0 1 2 3 4 5 6 7 8 N1 +--------------------------------------------------------------- 0 | 1 4 10 20 35 56 84 120 165 1 | 0 3 9 19 34 55 83 119 164 2 | 0 0 6 16 31 52 80 116 161 3 | 0 0 0 10 25 46 74 110 155 4 | 0 0 0 0 15 36 64 100 145 5 | 0 0 0 0 0 21 49 85 130 6 | 0 0 0 0 0 0 28 64 109 7 | 0 0 0 0 0 0 0 36 81 8 | 0 0 0 0 0 0 0 0 45 MONO_BETWEEN_ENUM_TEST: Normal end of execution. MONO_TOTAL_ENUM_TEST Python version: 3.6.5 MONO_TOTAL_ENUM can enumerate the number of monomials in M variables, of total degree N. N: 0 1 2 3 4 5 6 7 8 M +--------------------------------------------------------------- 1 | 1 1 1 1 1 1 1 1 1 2 | 1 2 3 4 5 6 7 8 9 3 | 1 3 6 10 15 21 28 36 45 4 | 1 4 10 20 35 56 84 120 165 5 | 1 5 15 35 70 126 210 330 495 6 | 1 6 21 56 126 252 462 792 1287 7 | 1 7 28 84 210 462 924 1716 3003 8 | 1 8 36 120 330 792 1716 3432 6435 MONO_TOTAL_ENUM_TEST Normal end of execution. MONO_UPTO_ENUM_TEST Python version: 3.6.5 MONO_UPTO_ENUM can enumerate the number of monomials in M variables, of total degree between 0 and N. N: 0 1 2 3 4 5 6 7 8 M +--------------------------------------------------------------- 1 | 1 2 3 4 5 6 7 8 9 2 | 1 3 6 10 15 21 28 36 45 3 | 1 4 10 20 35 56 84 120 165 4 | 1 5 15 35 70 126 210 330 495 5 | 1 6 21 56 126 252 462 792 1287 6 | 1 7 28 84 210 462 924 1716 3003 7 | 1 8 36 120 330 792 1716 3432 6435 8 | 1 9 45 165 495 1287 3003 6435 12870 MONO_UPTO_ENUM_TEST Normal end of execution. MONO_NEXT_GREVLEX_TEST Python version: 3.6.5 MONO_NEXT_GREVLEX computes the next monomial in M variables in grevlex order. Let M = 4 0 0 | 0 0 0 0 1 1 | 0 0 0 1 2 1 | 0 0 1 0 3 1 | 0 1 0 0 4 1 | 1 0 0 0 5 2 | 0 0 0 2 6 2 | 0 0 1 1 7 2 | 0 1 0 1 8 2 | 1 0 0 1 9 2 | 0 0 2 0 10 2 | 0 1 1 0 11 2 | 1 0 1 0 12 2 | 0 2 0 0 13 2 | 1 1 0 0 14 2 | 2 0 0 0 15 3 | 0 0 0 3 16 3 | 0 0 1 2 17 3 | 0 1 0 2 18 3 | 1 0 0 2 19 3 | 0 0 2 1 20 3 | 0 1 1 1 21 3 | 1 0 1 1 22 3 | 0 2 0 1 23 3 | 1 1 0 1 24 3 | 2 0 0 1 25 3 | 0 0 3 0 26 3 | 0 1 2 0 27 3 | 1 0 2 0 28 3 | 0 2 1 0 29 3 | 1 1 1 0 30 3 | 2 0 1 0 31 3 | 0 3 0 0 32 3 | 1 2 0 0 33 3 | 2 1 0 0 34 3 | 3 0 0 0 MONO_NEXT_GREVLEX_TEST Normal end of execution. MONO_NEXT_GRLEX_TEST Python version: 3.6.5 MONO_NEXT_GRLEX computes the next monomial in M variables in grlex order. Let M = 4 0 3 3 2 0 3 4 1 0 3 5 0 0 4 0 4 0 4 1 3 0 4 2 2 1 0 1 0 1 1 0 0 2 0 0 0 0 0 0 3 0 0 1 2 0 0 2 1 0 2 0 1 0 2 1 0 0 3 0 0 1 0 0 2 1 0 1 1 1 0 2 0 1 3 3 0 1 4 0 2 1 4 1 1 1 4 2 0 1 5 0 1 1 5 1 0 3 1 0 0 4 0 0 0 0 0 0 5 0 0 1 4 0 0 2 3 0 0 3 2 3 3 0 0 4 0 0 2 4 0 1 1 4 0 2 0 4 1 0 1 4 1 1 0 1 3 0 1 1 3 1 0 1 4 0 0 2 0 0 3 2 0 1 2 2 0 2 1 3 1 2 2 3 1 3 1 3 1 4 0 3 2 0 3 3 2 1 2 3 2 2 1 3 1 3 2 3 1 4 1 3 1 5 0 3 2 0 4 3 2 1 3 3 2 2 2 0 3 1 0 0 4 0 0 1 0 0 3 1 0 1 2 1 0 2 1 1 0 3 0 MONO_NEXT_GRLEX_TEST Normal end of execution. MONO_BETWEEN_NEXT_GREVLEX_TEST Python version: 3.6.5 MONO_BETWEEN_NEXT_GREVLEX can list the monomials in M variables, of total degree N between N1 and N2, in grevlex order, one at a time. We start the process with (0,0,...,0,N1). The process ends with (N2,0,...,0,0) Let M = 3 N1 = 2 N2 = 3 1 0 0 2 2 0 1 1 3 1 0 1 4 0 2 0 5 1 1 0 6 2 0 0 7 0 0 3 8 0 1 2 9 1 0 2 10 0 2 1 11 1 1 1 12 2 0 1 13 0 3 0 14 1 2 0 15 2 1 0 16 3 0 0 MONO_BETWEEN_NEXT_GREVLEX_TEST Normal end of execution. MONO_BETWEEN_NEXT_GRLEX_TEST Python version: 3.6.5 MONO_BETWEEN_NEXT_GRLEX can list the monomials in M variables, of total degree N between N1 and N2, in grlex order, one at a time. We start the process with (0,0,...,0,N1). The process ends with (N2,0,...,0,0) Let M = 3 N1 = 2 N2 = 3 1 0 0 2 2 0 1 1 3 0 2 0 4 1 0 1 5 1 1 0 6 2 0 0 7 0 0 3 8 0 1 2 9 0 2 1 10 0 3 0 11 1 0 2 12 1 1 1 13 1 2 0 14 2 0 1 15 2 1 0 16 3 0 0 MONO_BETWEEN_NEXT_GRLEX_TEST Normal end of execution. MONO_TOTAL_NEXT_GREVLEX_TEST Python version: 3.6.5 MONO_TOTAL_NEXT_GREVLEX can list the monomials in M variables, of total degree N, in grevlex order, one at a time. We start the process with (0,0,...,0,N). The process ends with (N,0,...,0,0) Let M = 3 N = 3 1 0 0 3 2 0 1 2 3 1 0 2 4 0 2 1 5 1 1 1 6 2 0 1 7 0 3 0 8 1 2 0 9 2 1 0 10 3 0 0 MONO_TOTAL_NEXT_GREVLEX_TEST Normal end of execution. MONO_TOTAL_NEXT_GRLEX_TEST Python version: 3.6.5 MONO_TOTAL_NEXT_GRLEX can list the monomials in M variables, of total degree N, in grlex order, one at a time. We start the process with (0,0,...,0,N). The process ends with (N,0,...,0,0) Let M = 3 N = 3 1 0 0 3 2 0 1 2 3 0 2 1 4 0 3 0 5 1 0 2 6 1 1 1 7 1 2 0 8 2 0 1 9 2 1 0 10 3 0 0 MONO_TOTAL_NEXT_GRLEX_TEST Normal end of execution. MONO_UPTO_NEXT_GREVLEX_TEST Python version: 3.6.5 MONO_UPTO_NEXT_GREVLEX can list the monomials in M variables, of total degree up to N, in grevlex order, one at a time. We start the process with (0,0,...,0,0). The process ends with (N,0,...,0,0) Let M = 3 N = 4 1 0 0 0 2 0 0 1 3 0 1 0 4 1 0 0 5 0 0 2 6 0 1 1 7 1 0 1 8 0 2 0 9 1 1 0 10 2 0 0 11 0 0 3 12 0 1 2 13 1 0 2 14 0 2 1 15 1 1 1 16 2 0 1 17 0 3 0 18 1 2 0 19 2 1 0 20 3 0 0 21 0 0 4 22 0 1 3 23 1 0 3 24 0 2 2 25 1 1 2 26 2 0 2 27 0 3 1 28 1 2 1 29 2 1 1 30 3 0 1 31 0 4 0 32 1 3 0 33 2 2 0 34 3 1 0 35 4 0 0 MONO_UPTO_NEXT_GREVLEX_TEST Normal end of execution. MONO_UPTO_NEXT_GRLEX_TEST Python version: 3.6.5 MONO_UPTO_NEXT_GRLEX can list the monomials in M variables, of total degree up to N, in grlex order, one at a time. We start the process with (0,0,...,0,0). The process ends with (N,0,...,0,0) Let M = 3 N = 4 1 0 0 0 2 0 0 1 3 0 1 0 4 1 0 0 5 0 0 2 6 0 1 1 7 0 2 0 8 1 0 1 9 1 1 0 10 2 0 0 11 0 0 3 12 0 1 2 13 0 2 1 14 0 3 0 15 1 0 2 16 1 1 1 17 1 2 0 18 2 0 1 19 2 1 0 20 3 0 0 21 0 0 4 22 0 1 3 23 0 2 2 24 0 3 1 25 0 4 0 26 1 0 3 27 1 1 2 28 1 2 1 29 1 3 0 30 2 0 2 31 2 1 1 32 2 2 0 33 3 0 1 34 3 1 0 35 4 0 0 MONO_UPTO_NEXT_GRLEX_TEST Normal end of execution. MONO_RANK_GRLEX_TEST Python version: 3.6.5 MONO_RANK_GRLEX returns the rank of a monomial in the sequence of all monomials in M dimensions, in grlex order. Print a monomial sequence with ranks assigned. Let M = 3 N = 4 1 0 0 0 2 0 0 1 3 0 1 0 4 1 0 0 5 0 0 2 6 0 1 1 7 0 2 0 8 1 0 1 9 1 1 0 10 2 0 0 11 0 0 3 12 0 1 2 13 0 2 1 14 0 3 0 15 1 0 2 16 1 1 1 17 1 2 0 18 2 0 1 19 2 1 0 20 3 0 0 21 0 0 4 22 0 1 3 23 0 2 2 24 0 3 1 25 0 4 0 26 1 0 3 27 1 1 2 28 1 2 1 29 1 3 0 30 2 0 2 31 2 1 1 32 2 2 0 33 3 0 1 34 3 1 0 35 4 0 0 Now, given a monomial, retrieve its rank in the sequence: 1 0 0 0 4 1 0 0 2 0 0 1 7 0 2 0 15 1 0 2 24 0 3 1 77 3 2 1 158 5 2 1 MONO_RANK_GRLEX_TEST Normal end of execution. MONO_UNRANK_GRLEX Python version: 3.6.5 MONO_UNRANK_GRLEX is given a rank, and returns the corresponding monomial in the sequence of all monomials in M dimensions in grlex order. For reference, print a monomial sequence with ranks. Let M = 3 N = 4 1 0 0 0 2 0 0 1 3 0 1 0 4 1 0 0 5 0 0 2 6 0 1 1 7 0 2 0 8 1 0 1 9 1 1 0 10 2 0 0 11 0 0 3 12 0 1 2 13 0 2 1 14 0 3 0 15 1 0 2 16 1 1 1 17 1 2 0 18 2 0 1 19 2 1 0 20 3 0 0 21 0 0 4 22 0 1 3 23 0 2 2 24 0 3 1 25 0 4 0 26 1 0 3 27 1 1 2 28 1 2 1 29 1 3 0 30 2 0 2 31 2 1 1 32 2 2 0 33 3 0 1 34 3 1 0 35 4 0 0 Now choose random ranks between 1 and 35 8 1 0 1 34 3 1 0 30 2 0 2 20 3 0 0 15 1 0 2 MONO_UNRANK_GRLEX_TEST Normal end of execution. MONO_BETWEEN_RANDOM_TEST Python version: 3.6.5 MONO_BETWEEN_RANDOM selects at random a monomial in M dimensions of total degree between N1 and N2. Let M = 3 N1 = 2 N2 = 3 8 1 0 1 20 3 0 0 18 2 0 1 13 0 2 1 11 0 0 3 MONO_BETWEEN_RANDOM_TEST: Normal end of execution. MONO_TOTAL_RANDOM_TEST Python version: 3.6.5 MONO_TOTAL_RANDOM selects at random a monomial in M dimensions of total degree N. Let M = 3 N = 4 24 0 3 1 35 4 0 0 33 3 0 1 29 1 3 0 27 1 1 2 MONO_TOTAL_RANDOM_TEST: Normal end of execution. MONO_UPTO_RANDOM_TEST Python version: 3.6.5 MONO_UPTO_RANDOM selects at random a monomial in M dimensions of total degree no greater than N. Let M = 3 N = 4 8 1 0 1 34 3 1 0 30 2 0 2 20 3 0 0 15 1 0 2 MONO_UPTO_RANDOM_TEST: Normal end of execution. MONO_VALUE_TEST Python version: 3.6.5 MONO_VALUE evaluates a monomial. Let M = 3 N = 6 M(X) = x^(2,1,0) M(1,2,3) = 2 M(-2,4,1) = 16 M(X) = x^(4,2,0) M(1,2,3) = 4 M(-2,4,1) = 256 M(X) = x^(2,0,4) M(1,2,3) = 81 M(-2,4,1) = 4 M(X) = x^(2,1,2) M(1,2,3) = 18 M(-2,4,1) = 16 M(X) = x^(4,0,0) M(1,2,3) = 1 M(-2,4,1) = 16 MONO_VALUE_TEST: Normal end of execution. MONO_PRINT_TEST Python version: 3.6.5 MONO_PRINT can print out a monomial. Monomial [5]: x^5 Monomial [-5]: x^(-5) Monomial [2,1,0,3]: x^(2,1,0,3) Monomial [17,-3,199]: x^(17,-3,199) MONO_PRINT_TEST Normal end of execution. MONOMIAL_TEST: Normal end of execution. Thu Sep 13 10:40:13 2018