-
Notifications
You must be signed in to change notification settings - Fork 20
planning
malex984 edited this page Nov 16, 2014
·
24 revisions
- GMP
- Flint
- Readline
- NTL
- Singular
- Factory
- call C++ methods from Julia:
- name mangling
- exception handling, virtual methods are not necessary for Singular binding
- Polymake configure option in Singular doesn't work
- Julia CXX package requires Julia source build of 0.4-nightly
- Powering test fails in Nemo with Julia-0.4 (now fixed)
- https://github.com/Keno/Cxx.jl/issues/20 (workarounds exist)
-
Does Julia's CXX interface work? Yes.
-
Does Julia's CXX require packages to be built with Clang? No.
-
Can we pass Julia types to C++? Currently no. Keno is working on it. (Issue 22)
-
Initialise path to Singular executable from libresources (feInitResources(const char*))
-
Make use of canonical form from libfactory (canonical form)
- there is a global context encoding the base field: Zp, ZZ, QQ, which is set before constructing canonical forms
- CF = either is a pointer to internal CF, immediate integers (small, Zp) or a pointer to big integer or QQ
- CF is a sparse recursive polynomial over Zp, ZZ, QQ
-
Singular low level types (in libpolys):
- element: intvec (no elementHandler)
- element: number == void*, elementHandler: coeffs,
- element: poly = pointer to Spolyrec, elementHandler: ring
- all the types are pointers
- elementHandlers pointer to separate classes with function pointers emulating "virtual method"s
- arrays of elements:
- numbermatrix, Handler: coeffs,
- ideal = ideal/matrix/module/map?, Handler: ring
- polyrec, resolution
-
Make use of polys and rings from libpolys (rDefault (int, int, char **) and p_One(const ring)).
-
Print ring with rWrite(ring, BOOLEAN), poly with printf p_String(poly,ring,ring).
First experiments are at Accessing Singular from Julia