Beispiel #1
0
def _projective_general_unitary_order(n, field):
    q = field.order
    return (Integer({field.char: field.pow * (n * (n - 1) / 2)}) *
            prod((Integer(q ** i - 1) *
                  Integer(q ** i + 1) for i in xrange(1, n // 2 + 1))) *
            prod((Integer(q ** (2 * i + 1) + 1)) for i in xrange(1,
                (n + 1) // 2)))
Beispiel #2
0
def _projective_general_unitary_order(n, field):
    q = field.order
    return (Integer({field.char: field.pow * (n * (n - 1) // 2)}) *
            prod((Integer(q ** i - 1) *
                  Integer(q ** i + 1) for i in range(1, n // 2 + 1))) *
            prod((Integer(q ** (2 * i + 1) + 1)) for i in range(1,
                (n + 1) // 2)))
Beispiel #3
0
def _projective_special_unitary_order(n, field):
    q = field.order
    return (Integer({field.char: field.pow * (n * (n - 1) / 2)}) * prod(
        (Integer(q**i - 1) * Integer(q**i + 1)
         for i in xrange(2, n // 2 + 1))) * prod(
             (Integer(q**(2 * i + 1) + 1))
             for i in xrange(1, (n + 1) // 2)) * Integer(q - 1) * Integer(
                 (q + 1) // gcd(n, q + 1)))
Beispiel #4
0
 def order(n, field):
     q = field.order
     n //= 2
     o = (Integer({field.char: field.pow * n * (n - 1)}) *
          Integer(q**n - e) * prod((Integer(q**i - 1) * Integer(q**i + 1)
                                    for i in xrange(1, n))))
     if field.char != 2:
         o.div_by_prime(2)
     return o
Beispiel #5
0
 def order(n, field):
     q = field.order
     n //= 2
     o = (Integer({field.char: field.pow * n * (n - 1)}) *
          Integer(q ** n - e) *
          prod((Integer(q ** i - 1) *
                Integer(q ** i + 1) for i in xrange(1, n))))
     if field.char != 2:
         o.div_by_prime(2)
     return o
Beispiel #6
0
 def order(n, field):
     q = field.order
     n //= 2
     part = prod(
         (Integer(q**k - 1) * Integer(q**k + 1) for k in xrange(1, n)))
     if not e:
         return (part * Integer({field.char: field.pow * n * n}) *
                 Integer(q**n - 1) * Integer(q**n + 1))
     if field.char == 2:
         part *= 2
     return (part * Integer({field.char: field.pow * n * (n - 1)}) *
             Integer(q**n - e))
Beispiel #7
0
 def order(n, field):
     q = field.order
     n //= 2
     part = prod((Integer(q ** k - 1) *
                  Integer(q ** k + 1) for k in xrange(1, n)))
     if not e:
         return (part * Integer({field.char: field.pow * n * n}) *
                 Integer(q ** n - 1) * Integer(q ** n + 1))
     if field.char == 2:
         part *= 2
     return (part * Integer({field.char: field.pow * n * (n - 1)}) *
             Integer(q ** n - e))
Beispiel #8
0
 def order(self):
     if self._order is None:
         # n!/2
         self._order = numeric.prod(xrange(3, self._degree + 1))
     return self._order
Beispiel #9
0
def _symplectic_order(n, field):
    n //= 2
    q = field.order
    return (Integer({field.char: field.pow * n * n}) * prod(
        (Integer(q**i - 1) * Integer(q**i + 1) for i in xrange(1, n + 1))))
Beispiel #10
0
def _order_product(field, pow, pluses, minuses):
    q = field.order
    return (Integer({field.char: field.pow * pow}) * prod(
        (Integer(q**i + 1) for i in pluses)) * prod(
            (Integer(q**i - 1) for i in minuses)))
Beispiel #11
0
def _projective_general_linear_order(n, field):
    q = field.order
    return (Integer({field.char: field.pow * (n * (n - 1) / 2)}) *
            prod((Integer(q ** i - 1) for i in xrange(2, n + 1))))
Beispiel #12
0
def _projective_special_linear_order(n, field):
    q = field.order
    return (Integer({field.char: field.pow * (n * (n - 1) / 2)}) * prod(
        (Integer(q**i - 1)
         for i in xrange(3, n + 1))) * Integer(q + 1) * Integer(
             (q - 1) // gcd(n, q - 1)))
Beispiel #13
0
def _projective_general_linear_order(n, field):
    q = field.order
    return (Integer({field.char: field.pow * (n * (n - 1) / 2)}) * prod(
        (Integer(q**i - 1) for i in xrange(2, n + 1))))
Beispiel #14
0
 def order(self):
     if self._order is None:
         # n!/2
         self._order = numeric.prod(xrange(3, self._degree + 1))
     return self._order
Beispiel #15
0
def _symplectic_order(n, field):
    n //= 2
    q = field.order
    return (Integer({field.char: field.pow * n * n}) *
            prod((Integer(q ** i - 1) *
                  Integer(q ** i + 1) for i in xrange(1, n + 1))))
Beispiel #16
0
def _order_product(field, pow, pluses, minuses):
    q = field.order
    return (Integer({field.char: field.pow * pow}) *
            prod((Integer(q ** i + 1) for i in pluses)) *
            prod((Integer(q ** i - 1) for i in minuses)))
Beispiel #17
0
def _projective_special_linear_order(n, field):
    q = field.order
    return (Integer({field.char: field.pow * (n * (n - 1) / 2)}) *
            prod((Integer(q ** i - 1) for i in xrange(3, n + 1))) *
            Integer(q + 1) * Integer((q - 1) // gcd(n, q - 1)))