Skip to content
Singular2 edited this page Sep 14, 2011 · 102 revisions

Ideas for Singular on top of libpolys

Fix the compilation of libkernel.a (BASE/kernel):

  1. Coordinate work with other active! people (please assign yourself) for working through files
  2. svn rebase! (Mohamed + Hans + Oleksandr)
  3. make script (just make in BASE/kernel) (Hans)
  4. mod2.h is being crafted by hand + includes aux...h (Hans)
  5. reintroduce currRing,rSetCurrRing, currQuotient (in kernel/polys.h)
  6. deal with structs.h! (Hans)
  7. install coeffs/mpr_complex.h and factory/templates/ftmpl_list.h
  8. what about longrat.h and modulop.h (i placed dummy including coeffs/number for now)
  9. deal with other dummy's (re-introduced stubs instead of correcting lots of code)
  10. Find out all possible "HAVE_*" (which were not yet set) and define them in mod2.h for the time being! (Hans?)
  11. GMP: ~~pass correct GMP_CFLAGS/GMP_LIBS: GMPrat.h, misc.cc, si_gmp.h~ + sort out kernel/si_gmp.h: removed in favour of coeffs/si_gmp.h (or factory/cf_gmp.h, which are private at the moment...)?! put a copy to kernel/...? (Oleksandr?)
  12. documentation of some mixed stuff Porting instructions?!
  13. p[FL]Deg -> p_[FL]Deg (Hans?)
  14. pInline1.h and pInline2.h were forgotten in ROOT!/polys (Hans?)
  15. rename ./for_Hans_with_love.sh into autogen.sh (or use the standard one if it supports multiple configure entries...?)
  16. linking of libkernel*.a + make check in kernel (Oleksandr)
  17. coeffs/longrat.h should NOT to be public! (Hans says) => rewrite with the use of number and n_*
  18. TODO: a lot of code in p_polys.cc was commented out by Frank while switching to new alg./trans. extension fields :(
  19. TODO: Singular interpretor has to support new alg./trans. extension fields ...!

List of files to be fixed!

Write your name next to a file if you are working on it. When you are done, use ~~ to put a strike through the file name.

See Porting instructions for instructions on what needs to be done for each file.

  • digitech.cc
  • eigenval.cc
  • f5c.cc, f5data.cc, f5gb.cc, f5lists.cc, F5cLists.cc, F4.cc?, F5cData.cc (Christian, they are empty now)
  • fast_maps.cc (Hans)
  • fast_mult.cc (Martin)
  • febase.cc, febase.h (Hans)
  • feread.c (Hans)
  • fegetopt.* (Hans)
  • fglmvec.cc, fglmzero.cc, fglmcomb.cc, fglmgauss.cc (Hans)
  • fglmhom.cc (empty, needs some HAVE_?)
  • gfan.cc (empty, needs HAVE_FANS!)
  • GMPrat.cc
  • gr_kstd2.cc (Hans)
  • hdegree.cc
  • hilb.cc
  • hutil.cc (Hans)
  • ideals.cc (Hans, Oleksandr)
  • int64vec.cc
  • khstd.cc
  • kstd1.cc, kstd2.cc, kstdfac.cc
  • kutil.cc (mostly Martin + Non-Commutative: Oleksandr)
  • linearAlgebra.cc (Martin: mixed with/without const ring R, interface part (with lists) went to the /Singular directory)
  • misc.cc
  • mmstd.c (Hans)
  • multicnt.cc
  • npolygon.cc (Martin)
  • ratgring.cc? (empty, Oleksandr/needs HAVE_RATGRING)
  • ringgb.cc (Martin)
  • semic.cc (Martin, moved to /Singular)
  • shiftgb.cc
  • spectrum.cc (Martin, moved to /Singular)
  • splist.cc (Martin, moved to /Singular)
  • syz.cc, syz0.cc, syz1.cc, syz2.cc, syz3.cc (Oleksandr)
  • tgb.cc, tgbgauss.cc (Hans)
  • tgb_obsolete.cc (removed)
  • timer.cc (Hans!/Burcin, works with HAVE_SYS_TIME_H, TIME_WITH_SYS_TIME, HAVE_GETTIMEOFDAY on 64-bit current gentoo)
  • units.cc (Hans)
  • walkMain.cc, walkProc.cc, walkSupport.cc
  • kpolys.cc (Burcin)
  • kspoly.cc (Burcin)
  • mmalloc.cc
  • kInline.cc -> kInLine.h

Ideas for improving libpolys:

  • we have a lot of easy to-get-get-rid-of-warnings (in compile time): eliminate them.
  • create a single libpolys.a (and libpolys.so!?) out of all our libraries (libpolys/misc.a .... etc)
  • try to make use of clang and Sun-Studio-compiler for libpolys: don't work as of now :(
  • find some tool to check test coverage

##List of files to be fixed in Singular directory

  • attrib.cc (no changes necessary)
  • bbcone.cc (needs HAVE_FAN)
  • bbfan.cc (needs HAVE_FAN)
  • bigintm.cc (empty)
  • blackbox.cc (no changes necessary)
  • calcSVD.cc (needs HAVE_SVD) (Hans, O.)
  • claptmpl.cc (no changes necessary)
  • cntrlc.cc (no changes necessary)
  • denom_list.cc (no changes necessary)
  • eigenval_ip.cc (Burcin)
  • emacs.cc (removed by Hans)
  • extra.cc (O.)
  • fehelp.cc (Burcin)
  • feOpt.cc (Martin, Burcin)
  • fglm.cc (Burcin)
  • gentable2.cc (no changes necessary)
  • gentable.cc (no changes necessary)
  • gms.cc (Oleksandr)
  • grammar.cc (Hans)
  • interpolation.cc (Burcin, uses coeffs/longrat.h!!!)
  • iparith.cc (Burcin, Hans, O.)
  • ipassign.cc (Burcin, Hans, O.)
  • ipconv.cc (Burcin)
  • ipid.cc (Hans?)
  • iplib.cc (Hans?)
  • ipprint.cc (Hans?)
  • ipshell.cc (Burcin, Hand, O.)
  • janet.cc (Martin)
  • libparse.cc (Hans?)
  • linearAlgebra_ip.cc (Burcin)
  • lists.cc (no changes necessary)
  • maps_ip.cc (Burcin, Hans, O.)
  • Minor.cc, MinorInterface.cc, MinorProcessor.cc (Burcin)
  • minpoly.cc (no changes necessary)
  • misc_ip.cc (Oleksandr)
  • mpsr_Error.cc (needs HAVE_MPSR)
  • mpsr_Get.cc (needs HAVE_MPSR)
  • mpsr_GetMisc.cc (needs HAVE_MPSR)
  • mpsr_GetPoly.cc (needs HAVE_MPSR)
  • mpsr_Put.cc (needs HAVE_MPSR)
  • mpsr_PutPoly.cc (needs HAVE_MPSR)
  • mpsr_sl.cc (needs HAVE_MPSR)
  • mpsr_Timer.cc (no changes necessary)
  • mpsr_Tok.cc (needs HAVE_MPSR)
  • ndbm.cc (empty!?)
  • newstruct.cc (Hans)
  • pcv.cc (Burcin)
  • pipeLink.cc (Hans?)
  • pyobject.cc (Oleksandr, makefile needs python-config for this!)
  • pyobject_setup.cc (no changes necessary)
  • scanner.cc (Hans?)
  • sdb.cc (Hans?)
  • silink.cc, ssiLink.cc (Hans?)
  • sing_dbm.cc, sing_win.cc (empty)
  • slInit_Dynamic.cc, slInit_Static.cc
  • subexpr.cc (Burcin)
  • tesths.cc (Burcin, Hans, O.)
  • utils.cc (O.)
  • walk.cc (Martin) (fixed up to currRingHdl)
  • walk_ip.cc (Burcin)
  • wrapper.cc (Hans)

Singular TODOs

qring/currQuotient (O.)

  • ring r; ring->cf set in rDefault (O.)
  • tests in kernel & Singular needed special linking options for using modules (Burcin, O.)
  • parameter handling?
  • minpoly?

##List of files to be fixed in numbers/ directory

  • *.h (Burcin)
  • *.cc (O.)
  • Makefile.am + made libraries: libnumeric{.a,_g.a} out of this directory (O.)
  • declare a ring with params (rInit) (Hans, O.)
  • output the Frank's extension fields in the old Singular way (in order to avoid changing the testsuite result) (O.)
  • use ring names for building towers as in ring NEW = OLD, (VARSTR), (ORDSTR); where OLD is a ring or qring (O.), BUT: interpreter should be tought more about this since there can be more valid symbol names than variables and the immediate parameters!
  • minpoly = (number); seems to work now (O.) BUT: ring A = (2,a), x, dp; 1*a^2+1*a^1+1*a^0; shows: (a2) :(
  • TODO: add *KillChar to coefficient domains! esp. Frank's extensions (they should also --ref.count for ext.Ring)