1
#include "primarydecomposition.h"
2
#include "python2.6/Python.h"
4
extern "C" void minimal_associated_primes(PolynomialSetList *l, PolynomialRing const *r, PolynomialSet const *g);
8
class SageSingularPrimDec : public PrimaryDecompositionEngine
11
SageSingularPrimDec() : PrimaryDecompositionEngine()
13
cerr<<"constructing SageSingularPrimDec"<<endl;
14
if (!Py_IsInitialized()) {
16
char* argv = {"gfan_python"};
17
PySys_SetArgv(1, &argv); // Sage needs argc, argv set for some reason
19
//Py_SetPythonHome("/home/burcin/sage/sage-4.3.2/local");
20
PyRun_SimpleString("import sys");
21
//PyRun_SimpleString("print sys.path");
22
PyRun_SimpleString("sys.path.append('/home/burcin/sage/sage-4.3.2/local/lib/python2.6/lib-dynload/')");
23
//PyRun_SimpleString("print sys.path");
24
cout<<"initialized python"<<endl;
26
PyRun_SimpleString("import sage.all");
28
PyObject* sage_module = PyImport_ImportModule("sage_link");
31
~SageSingularPrimDec()
35
virtual const char *name()
37
return "sagesingular";
39
virtual PolynomialSetList minimalAssociatedPrimes(PolynomialSet const &idealGenerators)
41
// ring r=singularRing(idealGenerators.getRing());
42
// ideal singularPolynomialSet(idealGenerators);
44
cerr<<"CALLING SINGULAR THROUGH SAGE"<<endl;
45
PolynomialSetList ret;
48
PolynomialRing r=idealGenerators.getRing();
49
minimal_associated_primes(&ret,&r,&idealGenerators);
50
cerr<<"RETURNiNG FROM SAGE"<<endl;
56
static SageSingularPrimDec sageSingularPrimDec;