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

Commit

Permalink
fix imports in doctests, and add a tutorial on lazy import into globa…
Browse files Browse the repository at this point in the history
…l namespace
  • Loading branch information
darijgr committed Nov 6, 2014
1 parent 2bc92ad commit b68e76b
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 15 deletions.
40 changes: 30 additions & 10 deletions src/sage/algebras/divided_power_algebra.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,26 @@ class UnivariateDividedPowerAlgebra(CombinatorialFreeModule):
map :meth:`from_shuffle_algebra`) sends `t_i` to the word
`x x \cdots x` (with `i` factors `x`).
.. NOTE::
Due to this being a toy implementation (and essentially a
particular case of the shuffle algebra), the univariate
divided power algebra is not available in the global
namespace for immediate interactive use. Instead, it
needs to be explicitly imported before using::
sage: from sage.algebras.divided_power_algebra import UnivariateDividedPowerAlgebra
sage: A = UnivariateDividedPowerAlgebra(Zmod(9)); A
The divided power algebra over Ring of integers modulo 9
If you want to implement an algebra which needs not be
imported in order to be called, you need to add a
``lazy_import`` statement to ``src/sage/algebras/all.py``.
In the case of the univariate divided power algebra, it
would look as follows::
lazy_import('sage.algebras.divided_power_algebra', 'UnivariateDividedPowerAlgebra')
INPUT:
- ``R``: base ring (a commutative ring).
Expand All @@ -78,7 +98,7 @@ class UnivariateDividedPowerAlgebra(CombinatorialFreeModule):
EXAMPLES::
sage: from sage.algebras.all import UnivariateDividedPowerAlgebra
sage: from sage.algebras.divided_power_algebra import UnivariateDividedPowerAlgebra
sage: A = UnivariateDividedPowerAlgebra(ZZ); A
The divided power algebra over Integer Ring
sage: TestSuite(A).run()
Expand Down Expand Up @@ -117,7 +137,7 @@ def one(self):
EXAMPLES::
sage: from sage.algebras.all import UnivariateDividedPowerAlgebra
sage: from sage.algebras.divided_power_algebra import UnivariateDividedPowerAlgebra
sage: A = UnivariateDividedPowerAlgebra(ZZ)
sage: A.one()
B[0]
Expand All @@ -144,7 +164,7 @@ def product_on_basis(self, left, right):
EXAMPLES::
sage: from sage.algebras.all import UnivariateDividedPowerAlgebra
sage: from sage.algebras.divided_power_algebra import UnivariateDividedPowerAlgebra
sage: B = UnivariateDividedPowerAlgebra(ZZ).basis()
sage: B[3]*B[4]
35*B[7]
Expand All @@ -161,7 +181,7 @@ def coproduct_on_basis(self, t):
EXAMPLES::
sage: from sage.algebras.all import UnivariateDividedPowerAlgebra
sage: from sage.algebras.divided_power_algebra import UnivariateDividedPowerAlgebra
sage: A = UnivariateDividedPowerAlgebra(ZZ)
sage: B = A.basis()
sage: A.coproduct(B[4])
Expand All @@ -180,7 +200,7 @@ def counit_on_basis(self, t):
EXAMPLES::
sage: from sage.algebras.all import UnivariateDividedPowerAlgebra
sage: from sage.algebras.divided_power_algebra import UnivariateDividedPowerAlgebra
sage: A = UnivariateDividedPowerAlgebra(ZZ)
sage: B = A.basis()
sage: A.counit(B[3])
Expand All @@ -200,7 +220,7 @@ def antipode_on_basis(self, t):
EXAMPLES::
sage: from sage.algebras.all import UnivariateDividedPowerAlgebra
sage: from sage.algebras.divided_power_algebra import UnivariateDividedPowerAlgebra
sage: A = UnivariateDividedPowerAlgebra(ZZ)
sage: B = A.basis()
sage: A.antipode(B[4]+B[5])
Expand Down Expand Up @@ -229,7 +249,7 @@ def degree_on_basis(self, t):
EXAMPLES::
sage: from sage.algebras.all import UnivariateDividedPowerAlgebra
sage: from sage.algebras.divided_power_algebra import UnivariateDividedPowerAlgebra
sage: A = UnivariateDividedPowerAlgebra(ZZ)
sage: A.degree_on_basis(3)
3
Expand All @@ -249,7 +269,7 @@ def algebra_generators(self):
EXAMPLES::
sage: from sage.algebras.all import UnivariateDividedPowerAlgebra
sage: from sage.algebras.divided_power_algebra import UnivariateDividedPowerAlgebra
sage: A = UnivariateDividedPowerAlgebra(ZZ)
sage: A.algebra_generators()
Family (Non negative integers)
Expand All @@ -268,7 +288,7 @@ def to_shuffle_algebra(self, letter="x"):
EXAMPLES::
sage: from sage.algebras.all import UnivariateDividedPowerAlgebra
sage: from sage.algebras.divided_power_algebra import UnivariateDividedPowerAlgebra
sage: A = UnivariateDividedPowerAlgebra(QQ)
sage: A_bas = A.basis()
sage: tosh_x = A.to_shuffle_algebra()
Expand Down Expand Up @@ -298,7 +318,7 @@ def from_shuffle_algebra(self, letter="x"):
EXAMPLES::
sage: from sage.algebras.all import UnivariateDividedPowerAlgebra
sage: from sage.algebras.divided_power_algebra import UnivariateDividedPowerAlgebra
sage: A = UnivariateDividedPowerAlgebra(QQ)
sage: frosh_x = A.from_shuffle_algebra()
sage: ShA_x = ShuffleAlgebra(QQ, 'x')
Expand Down
30 changes: 25 additions & 5 deletions src/sage/algebras/quantum_divided_power_algebra.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,26 @@ class UnivariateQuantumDividedPowerAlgebra(CombinatorialFreeModule):
isomorphic to the polynomial ring `R[t]` by the algebra
isomorphism which sends every `t_i` to `t^i / i!_q`.
.. NOTE::
Due to this being a toy implementation, the univariate
quantum divided power algebra is not available in the
global namespace for immediate interactive use. Instead,
it needs to be explicitly imported before using::
sage: from sage.algebras.quantum_divided_power_algebra import UnivariateQuantumDividedPowerAlgebra
sage: A = UnivariateQuantumDividedPowerAlgebra(Zmod(9), Zmod(9)(2)); A
The quantum divided power algebra over Ring of integers modulo 9
with quantum parameter 1
If you want to implement an algebra which needs not be
imported in order to be called, you need to add a
``lazy_import`` statement to ``src/sage/algebras/all.py``.
In the case of the univariate quantum divided power
algebra, it would look as follows::
lazy_import('sage.algebras.quantum_divided_power_algebra', 'UnivariateQuantumDividedPowerAlgebra')
INPUT:
- ``R`` (default: `\ZZ`): base ring (a commutative ring).
Expand All @@ -67,7 +87,7 @@ class UnivariateQuantumDividedPowerAlgebra(CombinatorialFreeModule):
EXAMPLES::
sage: from sage.algebras.all import UnivariateQuantumDividedPowerAlgebra
sage: from sage.algebras.quantum_divided_power_algebra import UnivariateQuantumDividedPowerAlgebra
sage: A = UnivariateQuantumDividedPowerAlgebra(ZZ, 1); A
The quantum divided power algebra over Integer Ring
with quantum parameter 1
Expand Down Expand Up @@ -163,7 +183,7 @@ def one(self):
EXAMPLES::
sage: from sage.algebras.all import UnivariateQuantumDividedPowerAlgebra
sage: from sage.algebras.quantum_divided_power_algebra import UnivariateQuantumDividedPowerAlgebra
sage: A = UnivariateQuantumDividedPowerAlgebra(ZZ)
sage: A.one()
B[0]
Expand All @@ -190,7 +210,7 @@ def product_on_basis(self, left, right):
EXAMPLES::
sage: from sage.algebras.all import UnivariateQuantumDividedPowerAlgebra
sage: from sage.algebras.quantum_divided_power_algebra import UnivariateQuantumDividedPowerAlgebra
sage: A = UnivariateQuantumDividedPowerAlgebra(ZZ)
sage: B = A.basis()
sage: B[2]*B[3]
Expand All @@ -214,7 +234,7 @@ def degree_on_basis(self, t):
EXAMPLES::
sage: from sage.algebras.all import UnivariateQuantumDividedPowerAlgebra
sage: from sage.algebras.quantum_divided_power_algebra import UnivariateQuantumDividedPowerAlgebra
sage: A = UnivariateQuantumDividedPowerAlgebra(ZZ)
sage: A.degree_on_basis(3)
3
Expand All @@ -234,7 +254,7 @@ def algebra_generators(self):
EXAMPLES::
sage: from sage.algebras.all import UnivariateQuantumDividedPowerAlgebra
sage: from sage.algebras.quantum_divided_power_algebra import UnivariateQuantumDividedPowerAlgebra
sage: A = UnivariateQuantumDividedPowerAlgebra(ZZ)
sage: A.algebra_generators()
Family (Non negative integers)
Expand Down

0 comments on commit b68e76b

Please sign in to comment.