Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. import ctypes
  2.  
  3. def pari_isprime(self, n):
  4. try: pari = ctypes.cdll.LoadLibrary("libpari.so")
  5. except OSError:
  6. print "pari_isprime: couldn't load libpari!"
  7. exit()
  8. int(n)
  9. pari.pari_init(4000000, 2)
  10. ret = bool(pari.isprime(pari.gp_read_str(str(n))))
  11. pari.pari_close()
  12. return ret
  13.  
  14. from instant import inline
  15.  
  16. runpari_code = """
  17. PyObject* runpari(PyObject *args) {
  18. pari_init(40000000, 2);
  19. char *pari_code;
  20. char *outstr;
  21.  
  22. if (!PyArg_Parse(args, "s", &pari_code)) { return NULL; } // instant uses old-style args; for a module, use PyArg_ParseTuple
  23. outstr = GENtostr(gp_read_str(pari_code));
  24. pari_close();
  25. return Py_BuildValue("s", outstr);
  26. }
  27. """
  28. runpari = inline(runpari_code, system_headers=['pari/pari.h'], libraries=['pari'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement