File: TODO

package info (click to toggle)
jas 2.7.200-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 15,732 kB
  • sloc: java: 164,370; python: 14,882; ruby: 14,509; xml: 583; makefile: 545; sh: 349
file content (250 lines) | stat: -rw-r--r-- 7,395 bytes parent folder | download
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
List of things to be resolved or accomplished:

issues to consider:

- implement Berlekamp-Zassenhaus for modular factorization

- implement Musers multivariate factorization, evtl. with sparse Hensel lifting

- implement real roots with other methods, e.g. after Uspensky or Rolle

- implement complex roots with other methods, e.g. after Collins and Krandick

- implement involutive bases computation

- implement univariate power series composition and power

- setup unit tests for JRuby and Jython methods and examples

- make polynomial chinese remainder generic (?)

- check / test caching results of gcd computation

- algebraic number theory

- algebraic topology

- group theory, permutation groups

- use further util.concurrent algorithms where possible, e.g. in DHT

- remove unnecessary @see since JavaDoc 7 

- implement matrices to vector

- refactor from BasicLinAlg to GenMatrix and GenVector 

- implement Boolean with RingElem interface (?)

- refactor method names for groovy operator overloading, make examples for usage



partially resolved and completed issues:

- rework parallel GB algorithms

- rework distributed parallel GB algorithms

- parallel modular algorithms

- check solvable polynomials with integral domain coefficients

- implement quaternion integers for non-commutative coefficients

- implement other term orders for multivariate power series

- implement multivariate Hensel lifting for multivariate polynomial factorization

- implement 0-dim ideal complex root selection

- implement absolute polynomial factorization

- implement univaiate and multivariate polynomial factorization

- implement signature based GB computation, only iterative done

- implement Word ideal intersection, if possible

- provide all Jython examples also for JRuby

- provide a Sage Python like interface in Jython

- implement parallel proxys for GB computation

- refactor BigDecimal to RingElem and RingFactory, precision is now variable via context

- check the 693 exceptions (including 473 runtime exceptions) that are thrown, 
  reduce number of runtime exceptions

- check for safe publication in constructors, check wrt. the (new) Java memory model

- check and fix Findbugs warnings

- make use of gcd in pseudo reduction, needs other coefficient type

- add product category to applications

- implement direct products of ring elements

- define FieldElem and Field factory interfaces and use them for GB coefficients

- check correct term order in recursive algorithms,
  in GCD ModEval only univariate cases are used, so term order is not a problem
  in polynomial factorization we force / convert to invlex term order

- add assertions to check for number of polynomial variables and term order,
  nvar in GenPolynomial and GenSolvablePolynomial, done

- use record classes and lambda expressions

- make final variables public (?)

- make hashCode to reuse computed value --> not immutable

- add method bitLength() to Element

- implement IDEALDIV2 with extGB

- use Maven/Gradle/Buildr configuration management, Ivy done

- make QuotSolvablePolynomial(Ring), LocalSolvablePolynomial(Ring)
  and ResidueSolvablePolynomial(Ring) unsused, except self tests.
  Only use QLRSolvablePolynomial(Ring) instead done

- rework SPIN model checking with TLA+ parallel model checker
  https://en.wikipedia.org/wiki/TLA%2B
  https://lamport.azurewebsites.net/tla/tla.html


resolved and completed issues:

- implement TOP term orders for module Gröbner bases, done for some combinations

- implement FGLM GB algorithm, done

- implement Groebner Walk GB computation, done

- implement squarefree decomposition over fields of characteristic p

- implement AlgebraicNumber primitive element computation, done

- design factories for (solvable) Gröbner bases, GCD computation,
  squarefree decomposition, factorization, extension fields

- check inseparable field extension, done

- implement prime and primary ideal decomposition for non-zero-dimensional ideals, done

- implement prime and primary ideal decomposition for zero-dimensional ideals, done

- implement multivariate power series, done

- implement univariate power series, done

- implement d- and e-reductions and d-/e-Groebner bases, done

- implement Groebner bases for regular rings, done

- implement comprehensive GB, done

- refactor package structure to reduce circular dependences, done

- implement term order optimization from MAS, also for coefficients 
  and solvable polynomials, done

- implement complex roots, done

- implement construction of univariate polynomials in zero-dimensional ideals
  done

- implement RealAlgebraicNumber and RealAlgebraicNumberRing, done

- implement real roots with Sturm sequence, done

- implement multivariate polynomial greatest common divisors, done

- design and implement free non-commuative polynomials GenWordPolynomial, done

- implement Mora's standard base algorithm for GenWordPolynomial

- add methods to GenPolynomialRing to construct x_i polynomials, done

- refactor univPoly in solvable implementations, done

- develop modifiable polynomial constructor or put method and iterators

- refactor unit tests to a different source code tree to avoid circular dependencies

- provide scripting interfaces for JAS, done

- rework junit tests to stop failing in case of zero polynomials

- using git to publish the repository, done

- rename divideAndRemainder to quotientRemainder

- refactor the Quotient class to edu.jas.ufd package, done

- implement ModLong for faster modular arithmetic, done

- implement a global variable name generator in edu.jas.kern
  and use it in extend() and contract()
  done in GenPolynomialRing, 
  undone in 2020 to avoid memory waste

- add missing comments in edu.jas.Algebra*, done

- let inverse() throw a runtime exception, done; throw a checked exception (?, no)

- refactor Power with Java 8 features, use lambdas and default implementations, done

- let arith implementations extend Power as abstract class
  add divide, subtract, abs, remainder to Power, 
  name e.g RingElemAbstract
  clean structure of compareTo, signum and equals
  - is not possible -> but in Java 8 with default implentations, see next

- define power(n) in MonoidElem with default implementation in
  edu.jas.structure.Power class, done

- split ModInteger to ModIntegerRing factory, done

- make logger variables also final, done

- rename getval() to getVal() in ExpVector, done

- refactor ExpVector for different array element types, done

- incorporate gcd() in the Quotient class in edu.jas.application

- implement BigDecimal with RingElem interface, done

- make examples with rational function field coefficients, 
  e.g. Raksanyi example

- replace thread-and-network-programming algorithms with 
  util.concurrent, done

- add version information in jas jar-file names, done

- split RingFactory to ElemFactory, done

- split AlgebraicNumber to AlgebraicNumberRing factory, done

- obsolete: check usage SDP (Socked Direct Protokol) with Java 7 and InfiniBand

- refactor Hensel lifting to ufd package, not possible because of 
  coefficient replacement trick
  is now in ufd package (must be done some how)

- define quotientRemainder in MonoidElem interface with default implementation, done

- completely switch from svn to git

- remove @usage doc tag

- extend mod integer factory interface by Iterable


$Id$