Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Commit

Permalink
Merge branch 'public/29968-reb' of git://trac.sagemath.org/sage into …
Browse files Browse the repository at this point in the history
…public/29968-reb2
  • Loading branch information
Jonathan Kliem committed Jul 12, 2020
2 parents 1d99129 + 8038412 commit 46c0147
Showing 1 changed file with 20 additions and 10 deletions.
30 changes: 20 additions & 10 deletions src/sage/algebras/quatalg/quaternion_algebra.py
Expand Up @@ -522,17 +522,27 @@ def random_element(self, *args, **kwds):
EXAMPLES::
sage: QuaternionAlgebra(QQ[sqrt(2)],-3,7).random_element()
(sqrt2 + 2)*i + (-12*sqrt2 - 2)*j + (-sqrt2 + 1)*k
sage: QuaternionAlgebra(-3,19).random_element()
-1 + 2*i - j - 6/5*k
sage: QuaternionAlgebra(GF(17)(2),3).random_element()
14 + 10*i + 4*j + 7*k
sage: g = QuaternionAlgebra(QQ[sqrt(2)], -3, 7).random_element()
sage: g.parent() is QuaternionAlgebra(QQ[sqrt(2)], -3, 7)
True
sage: g = QuaternionAlgebra(-3, 19).random_element()
sage: g.parent() is QuaternionAlgebra(-3, 19)
True
sage: g = QuaternionAlgebra(GF(17)(2), 3).random_element()
sage: g.parent() is QuaternionAlgebra(GF(17)(2), 3)
True
Specify the numerator and denominator bounds::
sage: QuaternionAlgebra(-3,19).random_element(10^6,10^6)
-979933/553629 + 255525/657688*i - 3511/6929*j - 700105/258683*k
sage: g = QuaternionAlgebra(-3,19).random_element(10^6, 10^6)
sage: for h in g:
....: assert h.numerator() in range(-10^6, 10^6 + 1)
....: assert h.denominator() in range(10^6 + 1)
sage: g = QuaternionAlgebra(-3,19).random_element(5, 4)
sage: for h in g:
....: assert h.numerator() in range(-5, 5 + 1)
....: assert h.denominator() in range(4 + 1)
"""
K = self.base_ring()
return self([K.random_element(*args, **kwds) for _ in range(4)])
Expand Down Expand Up @@ -1526,9 +1536,9 @@ def random_element(self, *args, **kwds):
EXAMPLES::
sage: QuaternionAlgebra(-11,-1).maximal_order().random_element()
sage: QuaternionAlgebra(-11,-1).maximal_order().random_element() # random
-4 - 4*i + j - k
sage: QuaternionAlgebra(-11,-1).maximal_order().random_element(-10,10)
sage: QuaternionAlgebra(-11,-1).maximal_order().random_element(-10,10) # random
-9/2 - 7/2*i - 7/2*j - 3/2*k
"""
return sum(ZZ.random_element(*args, **kwds) * b for b in self.basis())
Expand Down

0 comments on commit 46c0147

Please sign in to comment.