Skip to content

Commit f2034c9

Browse files
committed
Add Ideals, and start to try to work away from cypari dependency
1 parent 936bbb7 commit f2034c9

13 files changed

Lines changed: 1750 additions & 77 deletions

File tree

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,22 @@ print(a + 1.5) # "(4+6j)" (1.5 -> 1)
153153

154154
---
155155

156+
## Ideals and class numbers
157+
158+
`quadint` can work with integral ideals of quadratic orders.
159+
160+
```python
161+
from quadint import QuadraticRing
162+
163+
O = QuadraticRing(-5)
164+
I = O.ideal(3, O(1, 1))
165+
166+
assert not I.is_principal()
167+
assert O.class_number == 2
168+
```
169+
170+
---
171+
156172
## Basis-vector coordinates
157173

158174
`QuadInt` separates public basis coordinates from the internal numerator coordinates used by the arithmetic engine.

quadint/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from quadint.eisenstein import eisensteinint as eisensteinint
44
from quadint.quad import (
55
Factorization as Factorization,
6+
Ideal as Ideal,
7+
IdealClass as IdealClass,
68
QuadInt as QuadInt,
79
QuadraticRing as QuadraticRing,
810
)

quadint/quad/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
from quadint.quad.ideal import (
2+
Ideal as Ideal,
3+
IdealClass as IdealClass,
4+
)
15
from quadint.quad.int import (
26
QuadInt as QuadInt,
37
)

0 commit comments

Comments
 (0)