-
Notifications
You must be signed in to change notification settings - Fork 64
/
todo.txt
168 lines (98 loc) · 4.13 KB
/
todo.txt
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
mpoly
-----
* setting coefficients to zero should result in a shift of coefficients
* setting a coefficient beyond the end of a polynomial should throw
* scalar multiplication and multiplication should remove any resulting
zero terms when working over a residue ring
Build
-----
* Remove dependency on git on Windows
General
-------
* add lots of tests for exceptions and special cases dealt with in code
* don't use isequal; in Julia it's for objects that hash to the same value
* fix issues with stack overflow on nonexistent operators
* rename primpart to primitive_part
* Optimise for monomials in polynomial modules, especially powering
* introduce CapRelSeries abstract type
* extend documentation for absolute power series
fq_poly.jl / fq_nmod_poly.jl
----------------------------
* divexact is missing along with numerous other things provided by generic Poly
* division is currently using basecase instead of divide and conquer
nmod_poly.jl
------------
* Add constructor for array of ints
* Use Int throughout instead of UInt and allow modulus only up to typemax(Int)
fmpz_mod_poly.jl
----------------
* Add constructor for array of ints
Poly.jl/fmpz_poly.jl
--------------------
* Fix printing of monomials, e.g. y + (x), y + (6)
* Fix efficient powering of x in flint specialised polynomials cases
* function to convert poly to array
* check flint pseudodivision really returns a result with the power of L as defined in the nemo docs
* check the resultant and bezout functions for flint polys work correctly for nonmonic polys
* correct description of bezout for nonmonic polys
* Should mod be defined for polys over ZZ where the divisor is monic?
* implement fmpz_mod_poly_get_str_pretty and use it in show
* Add generic multipoint evaluation a la ArbPolyRingElem evaluate(x::ArbPolyRingElem, b::Vector{ArbFieldElem}).
* Add generic function for constructing a polynomial from its roots, a la the
ArbPolyRingElem function from_roots.
* implement Sylvester matrix version of generic resultant
* add the tricks used in SparsePoly for gcd (subresultant algorithm) to Poly.jl.These include finding obvious content and removing it using exact divisions,
and evaluating at random points at the start to determine the likely degree of
the gcd, then replacing the last pseudorem with divides.
Residue.jl
----------
* Make powering do its own powermod
* implement divexact by an invertible integer, etc
FLINT
-----
* allow fmpq_sqrt_series to take square constant coefficient
* fix printing of parentheses in polys over finite fields
* document and test fq_poly_scalar_div_fq
* add fq_poly_scalar_div_ui/si/fmpz
* implement print_pretty_series (reverse order of coeffs)
* suppress printing of 1 coeffs in fmpq_poly_print_pretty
* fmpq_poly_inv_series can be faster than Sage's power series inversion
* handle monomials and binomials optimally in powering, composition, division
etc. in polynomial/power series functions (over Z, Z/nZ, Q, Fq)
* Print pretty for fmpz_mod_poly
* Inflate/deflate for fmpz_mod_poly
* Interpolate for fmpz_mod_poly
* factor_get_fmpz_mod_poly for fmpz_mod_poly (inlines.c)
* gcdinv doesn't exist for fq_poly and fq_nmod_poly
PowerSeries.jl
--------------
* allow division by power series with non-invertible leading coeff if division
can still be performed
* ensure exp is only defined for rings in which division by an integer is
possible
* store relative power series in valuation/unit (i.e. relative) form instead of
current absolute form
Fraction.jl
-----------
* canonical_unit for fractions is odd for (1//(x^2+1))//(2//(x+1)) over
rationals
nf.jl
-----
* find way of allowing number_field to take a polynomial over Z instead of
over Q, and yet allow all the coercions from that ring into number fields
maximal orders, ideals, etc., without making it inefficient
nmod_mat
--------
* fix _checkbounds and related functions
* implement missing functions from generic matrices
fmpz_mat
--------
* fix _checkbounds
ArbFieldElem/AcbFieldElem(_poly/mat)
------------------
* add hash functions
* add missing ad hoc operators
* document flags for roots() in AcbPolyRingElem
Matrix.jl
---------
* Add rref_with_transform