2010-12-09 4 views
2

Rex Kerr a publié des informations sur l'utilisation de GMP avec scala, en particulier pour lancer le programme pidigits. libjpargmp.so est généré en utilisant GmpUtil.cutilisation de GMPUtil pour pidigits scala

Ma question est: où puis-je trouver GMPUtil.c? Mes recherches Google n'ont rien trouvé.

Cordialement, Doug

Répondre

2

affichage sur le forum du jeu de référence des langages informatiques Alioth produirait plus probablement une réponse que l'affichage ici. Cependant, dans ce cas vous avez eu de la chance (bien que je ne sache pas si c'est exactement une utilisation appropriée de StackOverflow).

GmpUtil.h:

/* DO NOT EDIT THIS FILE - it is machine generated */ 
#include <jni.h> 
/* Header for class GmpUtil */ 

#ifndef _Included_GmpUtil 
#define _Included_GmpUtil 
#ifdef __cplusplus 
extern "C" { 
#endif 
/* 
* Class:  GmpUtil 
* Method: mpz_init 
* Signature:()J 
*/ 
JNIEXPORT jlong JNICALL Java_GmpUtil_mpz_1init 
    (JNIEnv *, jclass); 

/* 
* Class:  GmpUtil 
* Method: mpz_clear 
* Signature: (J)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1clear 
    (JNIEnv *, jclass, jlong); 

/* 
* Class:  GmpUtil 
* Method: mpz_set_si 
* Signature: (JI)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1set_1si 
    (JNIEnv *, jclass, jlong, jint); 

/* 
* Class:  GmpUtil 
* Method: mpz_get_si 
* Signature: (J)I 
*/ 
JNIEXPORT jint JNICALL Java_GmpUtil_mpz_1get_1si 
    (JNIEnv *, jclass, jlong); 

/* 
* Class:  GmpUtil 
* Method: mpz_cmp 
* Signature: (JJ)I 
*/ 
JNIEXPORT jint JNICALL Java_GmpUtil_mpz_1cmp 
    (JNIEnv *, jclass, jlong, jlong); 

/* 
* Class:  GmpUtil 
* Method: mpz_add 
* Signature: (JJJ)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1add 
    (JNIEnv *, jclass, jlong, jlong, jlong); 

/* 
* Class:  GmpUtil 
* Method: mpz_sub 
* Signature: (JJJ)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1sub 
    (JNIEnv *, jclass, jlong, jlong, jlong); 

/* 
* Class:  GmpUtil 
* Method: mpz_mul_si 
* Signature: (JJI)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1mul_1si 
    (JNIEnv *, jclass, jlong, jlong, jint); 

/* 
* Class:  GmpUtil 
* Method: mpz_divexact 
* Signature: (JJJ)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1divexact 
    (JNIEnv *, jclass, jlong, jlong, jlong); 

/* 
* Class:  GmpUtil 
* Method: mpz_tdiv_qr 
* Signature: (JJJJ)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1tdiv_1qr 
    (JNIEnv *, jclass, jlong, jlong, jlong, jlong); 

/* 
* Class:  GmpUtil 
* Method: mpz_gcd 
* Signature: (JJJ)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1gcd 
    (JNIEnv *, jclass, jlong, jlong, jlong); 

#ifdef __cplusplus 
} 
#endif 
#endif 

GmpUtil.c:

#include "GmpUtil.h" 
#include "gmp.h" 

/* 
* Class:  GmpUtil 
* Method: mpz_init 
* Signature:()J 
*/ 
JNIEXPORT jlong JNICALL Java_GmpUtil_mpz_1init 
    (JNIEnv *x, jclass y) 
{ 
    mpz_t *p = malloc(sizeof(__mpz_struct)); 
    __gmpz_init(*p); 

    return (jlong)p; 
} 

/* 
* Class:  GmpUtil 
* Method: mpz_clear 
* Signature: (J)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1clear 
    (JNIEnv *x, jclass y, jlong o) 
{ 
    mpz_t* p = (mpz_t*)o; 
    __gmpz_clear(*p); 
    free(p); 
} 

/* 
* Class:  GmpUtil 
* Method: mpz_set_si 
* Signature: (JI)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1set_1si 
    (JNIEnv *x, jclass y, jlong dest, jint val) 
{ 
    __gmpz_set_si(*((mpz_t*)dest), (long) val); 
} 

/* 
* Class:  GmpUtil 
* Method: mpz_get_si 
* Signature: (J)I 
*/ 
JNIEXPORT jint JNICALL Java_GmpUtil_mpz_1get_1si 
    (JNIEnv *x, jclass y, jlong dest) 
{ 
    return (jint)__gmpz_get_si(*((mpz_t*)dest)); 
} 

/* 
* Class:  GmpUtil 
* Method: mpz_cmp 
* Signature: (JJ)I 
*/ 
JNIEXPORT jint JNICALL Java_GmpUtil_mpz_1cmp 
    (JNIEnv *x, jclass y, jlong op1, jlong op2) 
{ 
    return (jint) __gmpz_cmp(*((mpz_t*)op1), *((mpz_t*)op2)); 
} 

/* 
* Class:  GmpUtil 
* Method: mpz_add 
* Signature: (JJJ)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1add 
    (JNIEnv *x, jclass y, jlong dest, jlong src, jlong val) 
{ 
    __gmpz_add(*((mpz_t*)dest), *((mpz_t*)src), *((mpz_t*)val)); 
} 

/* 
* Class:  GmpUtil 
* Method: mpz_sub 
* Signature: (JJJ)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1sub 
    (JNIEnv *x, jclass y, jlong dest, jlong src, jlong val) 
{ 
    __gmpz_sub(*((mpz_t*)dest), *((mpz_t*)src), *((mpz_t*)val)); 
} 

/* 
* Class:  GmpUtil 
* Method: mpz_mul_si 
* Signature: (JJI)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1mul_1si 
    (JNIEnv *x, jclass y, jlong dest, jlong src, jint val) 
{ 
    __gmpz_mul_si(*((mpz_t*)dest), *((mpz_t*)src), (long) val); 
} 

/* 
* Class:  GmpUtil 
* Method: mpz_divexact 
* Signature: (JJJ)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1divexact 
    (JNIEnv *x, jclass y, jlong quot, jlong n, jlong d) 
{ 
    __gmpz_divexact(*((mpz_t*)quot), *((mpz_t*)n), *((mpz_t*)d)); 
} 

/* 
* Class:  GmpUtil 
* Method: mpz_tdiv_qr 
* Signature: (JJJJ)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1tdiv_1qr 
    (JNIEnv *x, jclass y, jlong q, jlong r, jlong n, jlong d) 
{ 
    __gmpz_tdiv_qr(*((mpz_t*)q), *((mpz_t*)r), *((mpz_t*)n), *((mpz_t*)d)); 
} 

/* 
* Class:  GmpUtil 
* Method: mpz_gcd 
* Signature: (JJJ)V 
*/ 
JNIEXPORT void JNICALL Java_GmpUtil_mpz_1gcd 
    (JNIEnv *x, jclass y, jlong r, jlong a, jlong b) 
{ 
    __gmpz_gcd(*((mpz_t*)r), *((mpz_t*)a), *((mpz_t*)b)); 
} 
Questions connexes