-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathCHANGELOG
More file actions
114 lines (93 loc) · 6.13 KB
/
Copy pathCHANGELOG
File metadata and controls
114 lines (93 loc) · 6.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# Changelog
All notable changes to this project will be documented in this file.
## [Unreleased]
- Added faster Hensel lifting using linear algebra but can only increase linearly multiplying the modulus by an irreducible element each step. Still faster than before and now used in Berlekamp Zassenhaus algorithm.
- Added macro for inline loops over const small primes.
- Updated macro for generating metatypes to handle generics in trait definitions.
- Added structure types for quotient sets.
- Renamed `SetSignature::Set` -> `SetSignature::Elem`.
- Added Montgomery form for modular arithmetic modulo odd integers.
- Added `EnumeratedOrdFiniteSetSignature` for ordered enumerated finite sets.
- Added duads, synthemes, and pentads.
- Added the set of subsets of a finite set.
- Added the set of subsets of a finite set with a fixed size.
- Improved the finite set of functions between two finite sets.
- Added group actions.
## [0.0.17] - 2026-03-06
- Added an LLL implementation over any field with the appropriate structure inherited from the real numbers.
- Added an LLL implementation over the integers using integer-only operations.
- Bugfix in Cantor-Zassenhaus for factoring polynomials over finite fields in characteristic 2 where the construction of a high-degree polynomial without doing a reduction caused very poor performance on large inputs.
- Bugfix multiplication of algebraic p-adics.
- Bugfix printing isolated real algebraic numbers where the sign of the irrational part was wrong.
## [0.0.16] - 2026-01-15
- Added `MultiplicativeMonoidSignature`.
- Added `MultiplicativeGroupSignature`.
- Removed `RingDivisionError` in favour of `Option`.
- Added `SetWithZeroSignature`.
- Added `MultiplicativeMonoidWithZeroSignature`.
- Added `MultiplicativeIntegralMonoidSignature`.
- Added `CancellativeAdditiveMonoidSignature`.
- Removed old factorization traits and structs for natural numbers, elements in UFDs, and ideals in Dedekind domain.
- Added new factorization traits and structs which cover all the above in a unifed way, generic with respect to the respective structures.
- Fixed a bug in Berlekamp-Zassenhaus algorithm for factoring integer polynomials where the sign could be wrong if the leftover part of the polynomial was the unit -1.
- Started using a proc macro for generating meta structure types.
- Redid group structure traits.
- Split existing ring structure traits into finer structure per trait.
## [0.0.15] - 2026-01-06
- Merged polynomial ring and polynomial semiring structures into a single polynomial structure.
## [0.0.14] - 2026-01-01
- Added Minkowski sum of shapes.
- Added multithreading to speed up shape algorithms.
- `RingSignature` no longer requires `EqSignature`.
- Added traits for representing points as a limit of decreasing subsets.
- Implemented above traits for intervals on the real line and boxes in the complex plane.
- Added types for continued fractions and for computing best rational approximations.
- Added quadratic algebraic number fields.
- Added `SymmetricMatrix`.
- Added orders for algebraic number fields and their ideals, with the ring of integers as a special case.
- Added quotient submodules and quotient ideals.
- Added conductor of an order in an algebraic number field.
## [0.0.13] - 2025-07-21
- Added database of Conway polynomials.
- Added structure for finite fields using Conway polynomials and inclusion maps between finite fields.
- Fixed a bug in ring of integers multiplication in dimensions >= 3.
- Rename structure traits from SomethingStructure to SomethingSignature.
- Moved a bunch of stuff around in algebraeon-rings.
- Added Legendre Jacobi and Kronecker symbols.
- Listing ring of algebraic integers ideals of a given norm.
- Added trait for getting the characteristic of a ring.
- Allow certain structures to borrow other structures.
- Basics of quaternion algebras.
- Started graphs crate.
- Added trait for ANFs and implemented it for rationals and ANFs via polynomial quotients.
## [0.0.12] - 2025-04-12
- Ring of Integers
- Ideal sum, product, intersection, containment, equality for integers and rings of integers.
- Split Structure into SetStructure for sets and Structure.
- Structures for morphisms, functions, injective functions, ring homomorphisms, principal subring, field of fractions inclusion...
- Added try_to_int to CharZeroStructure.
- Replaced the old CanonicalStructure with a derive proc macro to generate a canonical structure per type. This lets the canonical structure type be defined in the same crate as the type it is the canonical structure of and so lets foreign traits be defined for it.
- Traits for integral closures, dedekind domains, ideal factorization.
- Ideal factorization in rings of algebraic integers.
- Removed reference counters in favour of clones for structures - in most situations the structures are empty anyway.
- Merged EqStructure and PartialEqStructure.
- Added is_element() to SetStructure.
- Structure for a commuting square of integral domain, its field of fractions, a finite field extension, and integral closure. Additional structure when both rings are Dedekind domains for factoring prime ideals of the small ring in the big ring.
## [0.0.11] - 2025-04-05
- Lots of reorganizing where things are.
- Added docs and examples to sets::combinatorics.
- Mucking around trying to get `cargo ws` to work.
- Added Lenstra elliptic-curve factorization for integers.
- Added signature of a number field.
- Removed old prime generator in favour of faster implementation in malachite.
- Added gcd and factoring for multivariable polynomials over the integers.
- Updated to rust 2024
- Created algebraeon-nzq with new Natural, Integer and Rational types wrapping the malachite equivalents.
- Nicer formatting of multivariable polynomial strings by omitting coefficients and powers equal to 1
## [0.0.10] - 2025-01-19
- Cantor–Zassenhaus factorization algorithm over finite fields
- Distinct degree factorization over finite fields
- Quotient structure no longer requires the base ring to implement unique factorization.
## [0.0.9] - 2025-01-18
- P-adic root isolation.
- P-adic root arithmetic up to implementing field structure.