Spaces:
Running
Running
"""Special exception classes for numberfields. """ | |
class ClosureFailure(Exception): | |
r""" | |
Signals that a :py:class:`ModuleElement` which we tried to represent in a | |
certain :py:class:`Module` cannot in fact be represented there. | |
Examples | |
======== | |
>>> from sympy.polys import Poly, cyclotomic_poly, ZZ | |
>>> from sympy.polys.matrices import DomainMatrix | |
>>> from sympy.polys.numberfields.modules import PowerBasis, to_col | |
>>> T = Poly(cyclotomic_poly(5)) | |
>>> A = PowerBasis(T) | |
>>> B = A.submodule_from_matrix(2 * DomainMatrix.eye(4, ZZ)) | |
Because we are in a cyclotomic field, the power basis ``A`` is an integral | |
basis, and the submodule ``B`` is just the ideal $(2)$. Therefore ``B`` can | |
represent an element having all even coefficients over the power basis: | |
>>> a1 = A(to_col([2, 4, 6, 8])) | |
>>> print(B.represent(a1)) | |
DomainMatrix([[1], [2], [3], [4]], (4, 1), ZZ) | |
but ``B`` cannot represent an element with an odd coefficient: | |
>>> a2 = A(to_col([1, 2, 2, 2])) | |
>>> B.represent(a2) | |
Traceback (most recent call last): | |
... | |
ClosureFailure: Element in QQ-span but not ZZ-span of this basis. | |
""" | |
pass | |
class StructureError(Exception): | |
r""" | |
Represents cases in which an algebraic structure was expected to have a | |
certain property, or be of a certain type, but was not. | |
""" | |
pass | |
class MissingUnityError(StructureError): | |
r"""Structure should contain a unity element but does not.""" | |
pass | |
__all__ = [ | |
'ClosureFailure', 'StructureError', 'MissingUnityError', | |
] | |