Package sage :: Package algebras :: Package old :: Module quatalg
[show private | hide private]
[frames | no frames]

Module sage.algebras.old.quatalg

nodoctest
Quaternion algebras:

    WORK IN PROGRESS!!!!  April 30, 2005  - William Stein -

Classes
Algebra  
Algebra_QQ  
Ideal  
Ideal_QQ  
Lattice  
Lattice_QQ  
Order  
Order_QQ  

Function Summary
  QuaternionAlgebra(K, a, b)
INPUT: K -- field a -- nonzero element of K b -- nonzero element of K EXAMPLES: We create quaternion algebras over several base fields.
  QuaternionAlgebra_FromD(D1, D2, T)
The quaternion algebra over Q generated by i and j, where Z[i] and Z[j] are quadratic suborders of discriminant D_1 and D_2, respectively, and Z[ij - ji] is a quadratic suborder of discriminant D_3 = D_1 D_2 - T^2.
  QuaternionAlgebra_RamifiedAt(N)
  QuaternionOrder_FromD(D1, D2, T)
  QuaternionOrder_RamifiedAt(N, M)

Variable Summary
RationalField QQ = Rational Field
IntegerRing ZZ = Integer Ring

Function Details

QuaternionAlgebra(K, a, b)

INPUT:
    K -- field
    a -- nonzero element of K
    b -- nonzero element of K

EXAMPLES:

We create quaternion algebras over several base fields.

    >>> QuaternionAlgebra(RationalField(), -1, -7)
    Quaternion Algebra over Rational Field

    >>> QuaternionAlgebra(NumberField(x**2-5), -1, -7)
    Quaternion Algebra over Number Field with defining polynomial x^2 - 5

    >>> QuaternionAlgebra(GF(3), -1, -7)
    Quaternion Algebra over Finite field of size 3

Note that both a and b must be nonzero:

    >>> QuaternionAlgebra(RationalField(), 1, 0)
    Traceback (most recent call last):
    ...
    ArithmeticError: Both i^2 (=1) and j^2 (=0) must be nonzero.

    >>> QuaternionAlgebra(GF(7), -1, -7)
    Traceback (most recent call last):
    ...
    ArithmeticError: Both i^2 (=6) and j^2 (=0) must be nonzero.

Note that K must be a field.  This is because we represent
elements of the quaternion algebra as vectors in a vector space,
and we support division.  Use the QuaternionOrder_... commands.

     >>> QuaternionAlgebra(IntegerRing(), -1, -1)
     Traceback (most recent call last):
     ...
     TypeError: K (=Integer Ring) must be a field

QuaternionAlgebra_FromD(D1, D2, T)

The quaternion algebra over Q generated by i and j, where Z[i] and
Z[j] are quadratic suborders of discriminant D_1 and D_2,
respectively, and Z[ij - ji] is a quadratic suborder of
discriminant D_3 = D_1 D_2 - T^2.

INPUT:
    D1 -- int
    D2 -- int
    T -- int
    
    The integers D_1, D_2 and T must all be even or all odd, and
    D_1, D_2 and D_3 must each be the discriminant of some
    quadratic order, i.e. nonsquare integers = 0, 1 (mod 4).
    
OUTPUT:
    A quaternion algebra.

EXAMPLES:
    >>> A = QuaternionAlgebra_FromD(-7,-47,1); A
    Quaternion Algebra over Rational Field
    >>> i, j, k = A.gens()
    >>> i**2
    -2 + i
    >>> j**2
    -12 + j
    >>> k**2
    -24 + k
    >>> i.minimal_polynomial()
    x^2 - x + 2
    >>> j.minimal_polynomial()
    x^2 - x + 12
    >>> k.minimal_polynomial()
    x^2 - x + 24
    >>> i*j
    k

Variable Details

QQ

Type:
RationalField
Value:
Rational Field                                                         

ZZ

Type:
IntegerRing
Value:
Integer Ring                                                           

Generated by Epydoc 2.1 on Mon May 9 17:57:03 2005 http://epydoc.sf.net