Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagelib
Path: blob/master/sage/algebras/quaternion_algebra_element.py
4100 views
1
#######################################################################
2
# Backward compatible unpickle functions
3
#######################################################################
4
5
from quatalg.quaternion_algebra_element import (QuaternionAlgebraElement_generic,
6
QuaternionAlgebraElement_rational_field,
7
QuaternionAlgebraElement_number_field)
8
9
def unpickle_QuaternionAlgebraElement_generic_v0(*args):
10
"""
11
EXAMPLES::
12
13
sage: K.<X> = QQ[]
14
sage: Q.<i,j,k> = QuaternionAlgebra(Frac(K), -5,-19); z = 2/3 + i*X - X^2*j + X^3*k
15
sage: f, t = z.__reduce__()
16
sage: import sage.algebras.quaternion_algebra_element
17
sage: sage.algebras.quaternion_algebra_element.unpickle_QuaternionAlgebraElement_generic_v0(*t)
18
2/3 + X*i + (-X^2)*j + X^3*k
19
sage: sage.algebras.quaternion_algebra_element.unpickle_QuaternionAlgebraElement_generic_v0(*t) == z
20
True
21
"""
22
return QuaternionAlgebraElement_generic(*args)
23
24
def unpickle_QuaternionAlgebraElement_rational_field_v0(*args):
25
"""
26
EXAMPLES::
27
28
sage: Q.<i,j,k> = QuaternionAlgebra(-5,-19); a = 2/3 + i*5/7 - j*2/5 +19/2
29
sage: f, t = a.__reduce__()
30
sage: import sage.algebras.quaternion_algebra_element
31
sage: sage.algebras.quaternion_algebra_element.unpickle_QuaternionAlgebraElement_rational_field_v0(*t)
32
61/6 + 5/7*i - 2/5*j
33
"""
34
return QuaternionAlgebraElement_rational_field(*args)
35
36
def unpickle_QuaternionAlgebraElement_number_field_v0(*args):
37
"""
38
EXAMPLES::
39
40
sage: K.<a> = QQ[2^(1/3)]; Q.<i,j,k> = QuaternionAlgebra(K, -3, a); z = i + j
41
sage: f, t = z.__reduce__()
42
sage: import sage.algebras.quaternion_algebra_element
43
sage: sage.algebras.quaternion_algebra_element.unpickle_QuaternionAlgebraElement_number_field_v0(*t)
44
i + j
45
sage: sage.algebras.quaternion_algebra_element.unpickle_QuaternionAlgebraElement_number_field_v0(*t) == z
46
True
47
"""
48
return QuaternionAlgebraElement_number_field(*args)
49
50