Skip to content
burcin edited this page Aug 3, 2011 · 102 revisions

Ideas for Singular on top of libpolys

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

  1. svn rebase!
  2. make script (just make in BASE/kernel) (Hans)
  3. eliminate mod2.h (replace by aux...h) (Hans)
  4. reintroduce currRing,rSetCurrRing (in polys/polys.h) and rCurrRingAssure_*?
  5. try compiling a test.cc with all the headerh #included inside (make test.oinBASE/kernel`):
  • works except for kutil.h
  • what is wrong with kutil.h? try to fix...
  1. try compiling a test.cc with all the sources #included inside (make test.oinBASE/kernel`):
  • no missing headers now!
  • complains about a lot of stuff... :(
  1. deal with structs.h! (Hans)
  2. install coeffs/mpr_complex.h and factory/templates/ftmpl_list.h
  3. what about longrat.h and modulop.h (i placed dummy including coeffs/number for now)
  4. deal with other dummy's (re-introduced stubs instead of correcting lots of code)
  5. Find out all possible "HAVE_*" (which were not yet set) and define them in mod2.h for the time being! (Hans?)
  6. 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?)
  7. Fix headers
  • kutil.h // problematic...!?
  • tgb_internal.h // uses kutil :(
  • F4.h // uses tgb_internal
  1. what about currQuotient? maybe we should document such stuff on Porting instructions?!
  2. pFDeg! (Hans?)
  3. pInline1.h and pInline2.h were forgotten in ROOT!/polys (Hans?)
  4. rename ./for_Hans_with_love.sh into autogen.sh (or use the standard one if it supports multiple configure entries...?)
  5. Try to link an empty source against libkernel.a (+libpolys)
  6. Coordinate work with other active! people (please assign yourself) for working through files
  7. coeffs/longrat.h needs to be public (Oleksandr says) since Singular/subexpr.cc uses it

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 (already fine?)
  • eigenval.cc (already fine?)
  • 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)
  • gfan.cc (empty, needs HAVE_FANS!)
  • GMPrat.cc (already fine/needs GMP)
  • gr_kstd2.cc (Hans, fine?)
  • hdegree.cc (already fine?)
  • hilb.cc (already fine?)
  • hutil.cc (Hans)
  • ideals.cc (Hans)
  • int64vec.cc (already fine)
  • 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 (already fine?)
  • mmstd.c (Hans)
  • multicnt.cc (already fine)
  • npolygon.cc (Martin)
  • ratgring.cc? (empty, Oleksandr/needs HAVE_RATGRING)
  • ringgb.cc (Martin)
  • semic.cc (Martin, moved to /Singular)
  • shiftgb.cc (already fine)
  • spectrum.cc (Martin, moved to /Singular)
  • splist.cc (Martin, moved to /Singular)
  • syz.cc (Oleksandr)
  • syz0.cc (Oleksandr)
  • syz1.cc (Oleksandr)
  • syz2.cc (Oleksandr)
  • 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)
  • kInline.cc -> kInLine.h(never used???)
  • mmalloc.cc (already fine)

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
  • bbcone.cc (needs HAVE_FAN)
  • bbfan.cc (needs HAVE_FAN)
  • bigintm.cc (empty)
  • blackbox.cc (no changes necessary)
  • calcSVD.cc (needs HAVE_SVD)
  • claptmpl.cc
  • cntrlc.cc
  • denom_list.cc (no changes necessary)
  • eigenval_ip.cc
  • emacs.cc
  • extra.cc
  • fehelp.cc
  • feOpt.cc
  • fglm.cc
  • gentable2.cc (no changes necessary)
  • gentable.cc (no changes necessary)
  • gms.cc
  • grammar.cc
  • interpolation.cc
  • iparith.cc
  • ipassign.cc
  • ipconv.cc
  • ipid.cc
  • iplib.cc
  • ipprint.cc
  • ipshell.cc
  • janet.cc
  • libparse.cc
  • linearAlgebra_ip.cc
  • lists.cc (no changes necessary)
  • maps_ip.cc
  • Minor.cc
  • MinorInterface.cc
  • MinorProcessor.cc
  • minpoly.cc (no changes necessary)
  • misc_ip.cc
  • 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
  • newstruct.cc
  • pcv.cc
  • pipeLink.cc
  • pyobject.cc
  • pyobject_setup.cc (no changes necessary)
  • scanner.cc
  • sdb.cc
  • silink.cc
  • sing_dbm.cc
  • sing_win.cc
  • slInit_Dynamic.cc
  • slInit_Static.cc
  • ssiLink.cc
  • subexpr.cc (Burcin)
  • tesths.cc
  • utils.cc
  • walk.cc (Martin) (fixed up to currRingHdl)
  • walk_ip.cc (Burcin)
  • wrapper.cc