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$
|