Re: Using Pari from within a C program

[email protected] Mon, 15 Sep 2025 11:50:12 +0200
Newsgroups gmane.comp.mathematics.pari.user
Message-ID <[email protected]>
On 2025-09-15 09:35, Gordon Royle wrote:
> 
>  I am aware that there is documentation concerning the use of Pari as
> a library and how to incorporate it into a C program,
> 
and that documentation is really good:
https://pari.math.u-bordeaux.fr/pub/pari/manuals/2.17.2/libpari.pdf

> but in this
> situation (described below), I don't have full control over the C
> program and I don't understand where to put things like the Pari
> initialisation code.
> 
>  Anyway, here is the setup.
> 
>  I am writing a single function in C that has a fixed prototype that
> is to be called hundreds of millions of times as a "plugin" in a
> larger program.
> 
What you definitely need in addition is:
#include <pari/pari.h>

I did need Karim's conversion function "mpz2GEN(mpz_t X)" as well in 
order to convert gmp number to PARI number format, both in "#ifdef 
PARI":
https://github.com/Hermann-SW/RSA_numbers_factored/blob/main/c%2B%2B/sqrtm1.smallest_known_1million_digit_prime.cc#L19-L40

Here you can see how the pari initialization code is used:
https://github.com/Hermann-SW/RSA_numbers_factored/blob/main/c%2B%2B/sqrtm1.smallest_known_1million_digit_prime.cc#L68-L93

The commented out asserts demonstrate some PARI types you will have to 
use as well.

Regards,

Hermann.