本文整理汇总了Python中sage.rings.all.is_FiniteField函数的典型用法代码示例。如果您正苦于以下问题:Python is_FiniteField函数的具体用法?Python is_FiniteField怎么用?Python is_FiniteField使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了is_FiniteField函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: rational_points
def rational_points(self, F=None):
"""
Return the list of `F`-rational points on the affine space self,
where `F` is a given finite field, or the base ring of self.
EXAMPLES::
sage: A = AffineSpace(1, GF(3))
sage: A.rational_points()
[(0), (1), (2)]
sage: A.rational_points(GF(3^2, 'b'))
[(0), (2*b), (b + 1), (b + 2), (2), (b), (2*b + 2), (2*b + 1), (1)]
sage: AffineSpace(2, ZZ).rational_points(GF(2))
[(0, 0), (1, 0), (0, 1), (1, 1)]
TESTS::
sage: AffineSpace(2, QQ).rational_points()
Traceback (most recent call last):
...
TypeError: Base ring (= Rational Field) must be a finite field.
sage: AffineSpace(1, GF(3)).rational_points(ZZ)
Traceback (most recent call last):
...
TypeError: Second argument (= Integer Ring) must be a finite field.
"""
if F == None:
if not is_FiniteField(self.base_ring()):
raise TypeError, "Base ring (= %s) must be a finite field."%self.base_ring()
return [ P for P in self ]
elif not is_FiniteField(F):
raise TypeError, "Second argument (= %s) must be a finite field."%F
return [ P for P in self.base_extend(F) ]
示例2: SU
def SU(n, R, var='a'):
"""
The special unitary group `SU( d, R )` consists of all `d \times d`
matrices that preserve a nondegenerate sequilinear form over the
ring `R` and have determinant one.
.. note::
For a finite field the matrices that preserve a sesquilinear
form over `F_q` live over `F_{q^2}`. So ``SU(n,q)`` for
integer ``q`` constructs the matrix group over the base ring
``GF(q^2)``.
.. note::
This group is also available via ``groups.matrix.SU()``.
INPUT:
- ``n`` -- a positive integer.
- ``R`` -- ring or an integer. If an integer is specified, the
corresponding finite field is used.
- ``var`` -- variable used to represent generator of the finite
field, if needed.
OUTPUT:
Return the special unitary group.
EXAMPLES::
sage: SU(3,5)
Special Unitary Group of degree 3 over Finite Field in a of size 5^2
sage: SU(3, GF(5))
Special Unitary Group of degree 3 over Finite Field in a of size 5^2
sage: SU(3,QQ)
Special Unitary Group of degree 3 over Rational Field
TESTS::
sage: groups.matrix.SU(2, 3)
Special Unitary Group of degree 2 over Finite Field in a of size 3^2
"""
degree, ring = normalize_args_vectorspace(n, R, var=var)
if is_FiniteField(ring):
q = ring.cardinality()
ring = GF(q ** 2, name=var)
name = 'Special Unitary Group of degree {0} over {1}'.format(degree, ring)
ltx = r'\text{{SU}}_{{{0}}}({1})'.format(degree, latex(ring))
if is_FiniteField(ring):
cmd = 'SU({0}, {1})'.format(degree, q)
return UnitaryMatrixGroup_gap(degree, ring, True, name, ltx, cmd)
else:
return UnitaryMatrixGroup_generic(degree, ring, True, name, ltx)
示例3: Sp
def Sp(n, R, var='a'):
"""
Return the symplectic group of degree n over R.
.. note::
This group is also available via ``groups.matrix.Sp()``.
EXAMPLES::
sage: Sp(4,5)
Symplectic Group of rank 2 over Finite Field of size 5
sage: Sp(3,GF(7))
Traceback (most recent call last):
...
ValueError: the degree n (=3) must be even
TESTS::
sage: groups.matrix.Sp(2, 3)
Symplectic Group of rank 1 over Finite Field of size 3
"""
if n%2!=0:
raise ValueError, "the degree n (=%s) must be even"%n
if isinstance(R, (int, long, Integer)):
R = FiniteField(R, var)
if is_FiniteField(R):
return SymplecticGroup_finite_field(n, R)
else:
return SymplecticGroup_generic(n, R)
示例4: SU
def SU(n, F, var='a'):
"""
Return the special unitary group of degree `n` over
`F`.
.. note::
This group is also available via ``groups.matrix.SU()``.
EXAMPLES::
sage: SU(3,5)
Special Unitary Group of degree 3 over Finite Field of size 5
sage: SU(3,QQ)
Traceback (most recent call last):
...
NotImplementedError: special unitary group only implemented over finite fields
TESTS::
sage: groups.matrix.SU(2, 3)
Special Unitary Group of degree 2 over Finite Field of size 3
"""
if isinstance(F, (int, long, Integer)):
F = GF(F,var)
if is_FiniteField(F):
return SpecialUnitaryGroup_finite_field(n, F, var=var)
else:
raise NotImplementedError, "special unitary group only implemented over finite fields"
示例5: points
def points(self, B=0):
"""
Return some or all rational points of a projective scheme.
INPUT:
- `B` -- integer (optional, default=0). The bound for the
coordinates.
OUTPUT:
A list of points. Over a finite field, all points are
returned. Over an infinite field, all points satisfying the
bound are returned.
EXAMPLES::
sage: P1 = ProjectiveSpace(GF(2),1)
sage: F.<a> = GF(4,'a')
sage: P1(F).points()
[(0 : 1), (1 : 0), (1 : 1), (a : 1), (a + 1 : 1)]
"""
from sage.schemes.generic.rational_point import enum_projective_rational_field
from sage.schemes.generic.rational_point import enum_projective_finite_field
R = self.value_ring()
if is_RationalField(R):
if not B > 0:
raise TypeError, "A positive bound B (= %s) must be specified."%B
return enum_projective_rational_field(self,B)
elif is_FiniteField(R):
return enum_projective_finite_field(self.extended_codomain())
else:
raise TypeError, "Unable to enumerate points over %s."%R
示例6: GU
def GU(n, F, var='a'):
"""
Return the general unitary group of degree n over the finite field
F.
INPUT:
- ``n`` - a positive integer
- ``F`` - finite field
- ``var`` - variable used to represent generator of
quadratic extension of F, if needed.
.. note::
This group is also available via ``groups.matrix.GU()``.
EXAMPLES::
sage: G = GU(3,GF(7)); G
General Unitary Group of degree 3 over Finite Field of size 7
sage: G.gens()
[
[ a 0 0]
[ 0 1 0]
[ 0 0 5*a],
[6*a 6 1]
[ 6 6 0]
[ 1 0 0]
]
sage: G = GU(2,QQ)
Traceback (most recent call last):
...
NotImplementedError: general unitary group only implemented over finite fields
::
sage: G = GU(3,GF(5), var='beta')
sage: G.gens()
[
[ beta 0 0]
[ 0 1 0]
[ 0 0 3*beta],
[4*beta 4 1]
[ 4 4 0]
[ 1 0 0]
]
TESTS::
sage: groups.matrix.GU(2, 3)
General Unitary Group of degree 2 over Finite Field of size 3
"""
if isinstance(F, (int, long, Integer)):
F = GF(F,var)
if is_FiniteField(F):
return GeneralUnitaryGroup_finite_field(n, F, var)
else:
raise NotImplementedError, "general unitary group only implemented over finite fields"
示例7: GL
def GL(n, R, var='a'):
"""
Return the general linear group of degree `n` over the ring
`R`.
EXAMPLES::
sage: G = GL(6,GF(5))
sage: G.order()
11064475422000000000000000
sage: G.base_ring()
Finite Field of size 5
sage: G.category()
Category of finite groups
sage: TestSuite(G).run()
sage: G = GL(6, QQ)
sage: G.category()
Category of groups
sage: TestSuite(G).run()
Here is the Cayley graph of (relatively small) finite General Linear Group::
sage: g = GL(2,3)
sage: d = g.cayley_graph(); d
Digraph on 48 vertices
sage: d.show(color_by_label=True, vertex_size=0.03, vertex_labels=False)
sage: d.show3d(color_by_label=True)
::
sage: F = GF(3); MS = MatrixSpace(F,2,2)
sage: gens = [MS([[0,1],[1,0]]),MS([[1,1],[0,1]])]
sage: G = MatrixGroup(gens)
sage: G.order()
48
sage: G.cardinality()
48
sage: H = GL(2,F)
sage: H.order()
48
sage: H == G # Do we really want this equality?
False
sage: H.as_matrix_group() == G
True
sage: H.gens()
[
[2 0]
[0 1],
[2 1]
[2 0]
]
"""
if isinstance(R, (int, long, Integer)):
R = FiniteField(R, var)
if is_FiniteField(R):
return GeneralLinearGroup_finite_field(n, R)
return GeneralLinearGroup_generic(n, R)
示例8: AffineSpace
def AffineSpace(n, R=None, names='x'):
r"""
Return affine space of dimension `n` over the ring `R`.
EXAMPLES:
The dimension and ring can be given in either order::
sage: AffineSpace(3, QQ, 'x')
Affine Space of dimension 3 over Rational Field
sage: AffineSpace(5, QQ, 'x')
Affine Space of dimension 5 over Rational Field
sage: A = AffineSpace(2, QQ, names='XY'); A
Affine Space of dimension 2 over Rational Field
sage: A.coordinate_ring()
Multivariate Polynomial Ring in X, Y over Rational Field
Use the divide operator for base extension::
sage: AffineSpace(5, names='x')/GF(17)
Affine Space of dimension 5 over Finite Field of size 17
The default base ring is `\ZZ`::
sage: AffineSpace(5, names='x')
Affine Space of dimension 5 over Integer Ring
There is also an affine space associated to each polynomial ring::
sage: R = GF(7)['x,y,z']
sage: A = AffineSpace(R); A
Affine Space of dimension 3 over Finite Field of size 7
sage: A.coordinate_ring() is R
True
"""
if is_MPolynomialRing(n) and R is None:
R = n
A = AffineSpace(R.ngens(), R.base_ring(), R.variable_names())
A._coordinate_ring = R
return A
if isinstance(R, (int, long, Integer)):
n, R = R, n
if R is None:
R = ZZ # default is the integers
if names is None:
if n == 0:
names = ''
else:
raise TypeError("You must specify the variables names of the coordinate ring.")
if R in _Fields:
if is_FiniteField(R):
return AffineSpace_finite_field(n, R, names)
else:
return AffineSpace_field(n, R, names)
return AffineSpace_generic(n, R, names)
示例9: SO
def SO(n, R, e=0, var="a"):
"""
Return the special orthogonal group of degree `n` over the
ring `R`.
INPUT:
- ``n`` - the degree
- ``R`` - ring
- ``e`` - a parameter for orthogonal groups only
depending on the invariant form
.. note::
This group is also available via ``groups.matrix.SO()``.
EXAMPLES::
sage: G = SO(3,GF(5))
sage: G.gens()
[
[2 0 0]
[0 3 0]
[0 0 1],
[3 2 3]
[0 2 0]
[0 3 1],
[1 4 4]
[4 0 0]
[2 0 4]
]
sage: G = SO(3,GF(5))
sage: G.as_matrix_group()
Matrix group over Finite Field of size 5 with 3 generators:
[[[2, 0, 0], [0, 3, 0], [0, 0, 1]], [[3, 2, 3], [0, 2, 0], [0, 3, 1]], [[1, 4, 4], [4, 0, 0], [2, 0, 4]]]
TESTS::
sage: groups.matrix.SO(2, 3, e=1)
Special Orthogonal Group of degree 2, form parameter 1, over the Finite Field of size 3
"""
if isinstance(R, (int, long, Integer)):
R = FiniteField(R, var)
if n % 2 != 0 and e != 0:
raise ValueError, "must have e = 0 for n even"
if n % 2 == 0 and e ** 2 != 1:
raise ValueError, "must have e=-1 or e=1 if n is even"
if is_FiniteField(R):
return SpecialOrthogonalGroup_finite_field(n, R, e)
else:
return SpecialOrthogonalGroup_generic(n, R, e)
示例10: SL
def SL(n, R, var='a'):
r"""
Return the special linear group of degree `n` over the ring
`R`.
EXAMPLES::
sage: SL(3,GF(2))
Special Linear Group of degree 3 over Finite Field of size 2
sage: G = SL(15,GF(7)); G
Special Linear Group of degree 15 over Finite Field of size 7
sage: G.category()
Category of finite groups
sage: G.order()
1956712595698146962015219062429586341124018007182049478916067369638713066737882363393519966343657677430907011270206265834819092046250232049187967718149558134226774650845658791865745408000000
sage: len(G.gens())
2
sage: G = SL(2,ZZ); G
Special Linear Group of degree 2 over Integer Ring
sage: G.gens()
[
[ 0 1]
[-1 0],
[1 1]
[0 1]
]
Next we compute generators for `\mathrm{SL}_3(\ZZ)`.
::
sage: G = SL(3,ZZ); G
Special Linear Group of degree 3 over Integer Ring
sage: G.gens()
[
[0 1 0]
[0 0 1]
[1 0 0],
[ 0 1 0]
[-1 0 0]
[ 0 0 1],
[1 1 0]
[0 1 0]
[0 0 1]
]
sage: TestSuite(G).run()
"""
if isinstance(R, (int, long, Integer)):
R = FiniteField(R, var)
if is_FiniteField(R):
return SpecialLinearGroup_finite_field(n, R)
else:
return SpecialLinearGroup_generic(n, R)
示例11: GO
def GO( n , R , e=0 ):
"""
Return the general orthogonal group.
EXAMPLES:
"""
if n%2!=0 and e!=0:
raise ValueError, "if e = 0, then n must be even."
if n%2 == 0 and e**2!=1:
raise ValueError, "must have e=-1 or e=1, if d is even."
if isinstance(R, (int, long, Integer)):
R = FiniteField(R)
if is_FiniteField(R):
return GeneralOrthogonalGroup_finite_field(n, R, e)
else:
return GeneralOrthogonalGroup_generic(n, R, e)
示例12: rational_points
def rational_points(self, F=None):
"""
Return the list of `F`-rational points on the affine space self,
where `F` is a given finite field, or the base ring of self.
EXAMPLES::
sage: P = ProjectiveSpace(1, GF(3))
sage: P.rational_points()
[(0 : 1), (1 : 1), (2 : 1), (1 : 0)]
sage: P.rational_points(GF(3^2, 'b'))
[(0 : 1), (b : 1), (b + 1 : 1), (2*b + 1 : 1), (2 : 1), (2*b : 1), (2*b + 2 : 1), (b + 2 : 1), (1 : 1), (1 : 0)]
"""
if F == None:
return [ P for P in self ]
elif not is_FiniteField(F):
raise TypeError("Second argument (= %s) must be a finite field."%F)
return [ P for P in self.base_extend(F) ]
示例13: SU
def SU(n, F, var='a'):
"""
Return the special unitary group of degree `n` over
`F`.
EXAMPLES::
sage: SU(3,5)
Special Unitary Group of degree 3 over Finite Field of size 5
sage: SU(3,QQ)
Traceback (most recent call last):
...
NotImplementedError: special unitary group only implemented over finite fields
"""
if isinstance(F, (int, long, Integer)):
F = GF(F,var)
if is_FiniteField(F):
return SpecialUnitaryGroup_finite_field(n, F, var=var)
else:
raise NotImplementedError, "special unitary group only implemented over finite fields"
示例14: Sp
def Sp(n, R, var='a'):
"""
Return the symplectic group of degree n over R.
EXAMPLES::
sage: Sp(4,5)
Symplectic Group of rank 2 over Finite Field of size 5
sage: Sp(3,GF(7))
Traceback (most recent call last):
...
ValueError: the degree n (=3) must be even
"""
if n%2!=0:
raise ValueError, "the degree n (=%s) must be even"%n
if isinstance(R, (int, long, Integer)):
R = FiniteField(R, var)
if is_FiniteField(R):
return SymplecticGroup_finite_field(n, R)
else:
return SymplecticGroup_generic(n, R)
示例15: normalize_args_e
def normalize_args_e(degree, ring, e):
"""
Normalize the arguments that relate the choice of quadratic form
for special orthogonal groups over finite fields.
INPUT:
- ``degree`` -- integer. The degree of the affine group, that is,
the dimension of the affine space the group is acting on.
- ``ring`` -- a ring. The base ring of the affine space.
- ``e`` -- integer, one of `+1`, `0`, `-1`. Only relevant for
finite fields and if the degree is even. A parameter that
distinguishes inequivalent invariant forms.
OUTPUT:
The integer ``e`` with values required by GAP.
TESTS::
sage: from sage.groups.matrix_gps.orthogonal import normalize_args_e
sage: normalize_args_e(2, GF(3), +1)
1
sage: normalize_args_e(3, GF(3), 0)
0
sage: normalize_args_e(3, GF(3), +1)
0
sage: normalize_args_e(2, GF(3), 0)
Traceback (most recent call last):
...
ValueError: must have e=-1 or e=1 for even degree
"""
if is_FiniteField(ring) and degree%2 == 0:
if e not in (-1, +1):
raise ValueError('must have e=-1 or e=1 for even degree')
else:
e = 0
return ZZ(e)