Some tasks for Singular
Volunteers needed
Programming in C/C++: the easy stuff
introduce namespace singular and singular_factory with macros
(analogue to NTL)
make Singular and Macaulay2 to use the same libraries (factory, libfac)
rewrite factory to use mpz_t instead of MP_INT -- done
write a 64bit version of kernel/longrat.cc -- assigned
Programming in C/C++: the advanced stuff
rewrite kernel/longalg -- done
improve/rewrite long floating point arithmetic to be usable in
Groebner base computations (via a hybrid emthod: each number is a pair (float, mod-p-integer))
omalloc: rewrite it (inline routines, thread safe) -- assigned
rewrite Singular/grammar.y to be compatible with bison 2.4
rewrite Singular/scanner.l to be compatible with flex > 2.5.4
Programming in Singular libraries
rewrite zeroset.lib/primitiv.lib: should use factorize instead of FactorMain
in all libaries: exchange constructions with execute by ringlist
in all libraries: introduce the new argument alias for parameters, test it
and time it
Mathematics
rewrite factorize for univariate polynomials over Q(a)
rewrite factorize for multivariate polynomials over Q(a)
incremental algorithm: given a radical ideal I and a polynomial p not in I,
compute the radical of I+(p)
incremental algorithm: given a prime ideal I and a polynomial p not in I,
compute the primary decomposition of I+(p)
special case algorithm: given a radical ideal I,
compute the primary decomposition of I
Testing
test the different variants for GCD (SW_USE_GCD_P, SW_USE_EZGCD, SW_USE_CHINREM_GCD, SW_USE_fieldGCD, SW_USE_EZGCD_P, SW_USE_QGCD ...)
timings for the different variants of GCD
Singular uses test suites to test the correctness of new versions.
Task: write/adapt tools to test the coverage of the test suite(s):
which part of the source code is not tested,
which commands/variants of commands do not appear in the
documentation ?
improve lib2doc (the utility to generate the documentation from
for a library)
check all magic constants in Singular: are they still valid ? -- assigned
Porting
compile and test Singular on your favorite platform(s)