Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ctypes
- def pari_isprime(self, n):
- try: pari = ctypes.cdll.LoadLibrary("libpari.so")
- except OSError:
- print "pari_isprime: couldn't load libpari!"
- exit()
- int(n)
- pari.pari_init(4000000, 2)
- ret = bool(pari.isprime(pari.gp_read_str(str(n))))
- pari.pari_close()
- return ret
- from instant import inline
- runpari_code = """
- PyObject* runpari(PyObject *args) {
- pari_init(40000000, 2);
- char *pari_code;
- char *outstr;
- if (!PyArg_Parse(args, "s", &pari_code)) { return NULL; } // instant uses old-style args; for a module, use PyArg_ParseTuple
- outstr = GENtostr(gp_read_str(pari_code));
- pari_close();
- return Py_BuildValue("s", outstr);
- }
- """
- runpari = inline(runpari_code, system_headers=['pari/pari.h'], libraries=['pari'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement