Here are some remarks from Hans Schoenemann:
Singular consist of several parts:
- a memory management for small memory blocks (omalloc)
documented with:
http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/doc/OMALLOC.ps.gz (gzipped postscript) resp.
http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/doc/OMALLOC.texi.gz (gzipped texinfo)
- factorization of multivariate polynomials (factory and libfac)
(a quite old but still useful) documentation:
http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/doc/factory.ps.gz (gzipped postscript)
http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/Factory/factory-doc.tar.gz (tex sources)
- polynomial arithmetic, Groebner/Standard bases and free resolutions
(kernel)
- general overview over prozedures etc.
http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/singular-anatomy.tgz (tex source)
- Data structures for polynomials:
O. Bachmann and H. Schönemann: Monomial Representations for Groebner
Basis Computations. In: ISSAC 1998. (1998).
http://www.mathematik.uni-kl.de/~zca/Reports_on_ca/18/paper_full.ps.gz (gzipped postscript)
- Extension to non-commutive polynomials:
V. Levandovskyy and H. Schönemann: Plural - a Computer Algebra
System for Noncommutative Polynomial Algebras. In: ISSAC 2003.
- C++-interface to the interpreter:
http://www.singular.uni-kl.de/DynMod.ps