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

List of things to be resolved or accomplished:
issues to consider:
 implement BerlekampZassenhaus for modular factorization
 implement IDEALDIV2 with extGB
 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 signature based GB computation
 make hashCode to reuse computed value > not immutable
 use further util.concurrent algorithms where possible, e.g. in DHT
 make polynomial chinese remainder generic (?)
 test caching results of gcd computation
 refactor BigDecimal to RingElem and RingFactory, make precision variable
 refactor from BasicLinAlg to GenMatrix and GenVector
 implement univariate power series composition and power
 make final variables public (?)
 define quotientRemainder in RingElem interface (?)
 make use of gcd in pseudo reduction, needs other coefficient type
 implement matrices to vector
 implement Boolean with RingElem interface (?)
 check solvable polynomials with integral domain coefficients
 refactor method names for groovy operator overloading, make examples for usage
partially resolved and completed issues:
 provide all Jython examples also for JRuby
 implement multivariate Hensel lifting for multivariate polynomial factorization
 implement 0dim ideal complex root selection
 refactor package structure to reduce circular dependences
 implement parallel proxys for GB computation
 rework parallel GB algorithms
 implement FGLM GB algorithm
 implement other term orders for multivariate power series
 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
 implement squarefree decomposition over fields of characteristic p
 implement absolute polynomial factorization
 implement univaiate and multivariate polynomial factorization
 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
 define power(n) in RingElem (not done) and implement in edu.jas.structure.Power
and classes, done
 add product category to applications
 implement direct products of ring elements
 define FieldElem and Field factory interfaces and use them for GB coefficients
 refactor Hensel lifting to ufd package, not possible because of
coefficient replacement trick
!must be done some how!
 check correct term order in recursive algorithms,
in GCD ModEval only univariate cases are used, so term order is not a problem
 add assertions to check for number of polynomial variables and term order,
nvar in GenPolynomial and GenSolvablePolynomial done
resolved and completed issues:
 refactor unit tests to a different source code tree to avoid circular dependencys
 implement AlgebraicNumber primitive element computation, done
 implement prime and primary ideal decomposition for nonzerodimensional ideals, done
 implement prime and primary ideal decomposition for zerodimensional ideals, done
 implement multivariate power series, done
 implement univariate power series, done
 develop modifiable polynomial constructor or put method and iterators
 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 d and ereductions and d/eGroebner bases, done
 implement Groebner bases for regular rings, done
 implement comprehensive GB, done
 implement term order optimization from MAS, also for coefficients
and solvable polynomials, done
 implement complex roots, done
 implement ModLong for faster modular arithmetic, done
 implement construction of univariate polynomials in zerodimensional ideals
done
 implement a global variable name generator in edu.jas.kern
and use it in extend() and contract()
done in GenPolynomialRing
 implement RealAlgebraicNumber and RealAlgebraicNumberRing, done
 implement real roots with Sturm sequence, done
 refactor univPoly in solvable implementations, done
 add missing comments in edu.jas.Algebra*, done
 let inverse() throw a runtime exception, done; throw a checked exception (?, no)
 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 threadandnetworkprogramming algorithms with
util.concurrent, done
 implement multivariate polynomial greatest common divisors, done
 add methods to GenPolynomialRing to construct x_i polynomials, done
 add version information in jas jarfile names, done
 split RingFactory to ElemFactory, done
 split AlgebraicNumber to AlgebraicNumberRing factory, done
$Id: TODO 4369 20130413 17:14:08Z kredel $
