#include #include #include #include #include /*************************************************************** $Id: org_nevec_prima_simulator_SLALIB.c,v 1.5 2005/09/14 17:00:02 mathar Exp $ who when what ----------------------------------------------------------- jdejong 2005-08-? implemented map, slaE2h, slaGmst mathar 2005-09-08 added slaAddet, slaAfin, slaAirmas, slaAltaz, up to slaAv2m mathar 2005-09-09 jcharArray->jstring, added all other implementations mathar 2005-09-14 use GetSTringUTFRegion() instead of GetSTringUTFChars() to avoid complaints about the 'const' ******************************************************************/ /** Convenient JNI macros to pin and release the most important structures. The first letter (D,F,I,L,C) denotes whether this is using double, float, integer, long or char/string type of allocations. For each of the Get..ArrayElements macros there is an associated Release-type of macro which starts with an additional R. */ #define Djni(d) jdouble * d##J = (*env)->GetDoubleArrayElements(env,d,0) ; #define Fjni(f) jfloat * f##J = (*env)->GetFloatArrayElements(env,f,0) ; #define Ijni(i) jint * i##J = (*env)->GetIntArrayElements(env,i,0) ; #define Ljni(l) jlong * l##J = (*env)->GetLongArrayElements(env,l,0) ; #define RDjni(d) (*env)->ReleaseDoubleArrayElements(env,d,d##J,0) ; #define RFjni(f) (*env)->ReleaseFloatArrayElements(env,f,f##J,0) ; #define RIjni(i) (*env)->ReleaseIntArrayElements(env,i,i##J,0) ; #define RLjni(l) (*env)->ReleaseLongArrayElements(env,l,l##J,0) ; /** Sjni... does not involve a 'const char *' [as GetStringUTFChars() does] but a local buffer, which helps to avoid problems with the 'non-const' declarations in all the slablib.h interfaces. */ #define SjniLen(s) (*env)->GetStringUTFLength(env,s) #define Sjni(s) char * s##J = malloc(SjniLen(s)*sizeof(char)) ; (*env)->GetStringUTFRegion(env,s,0,SjniLen(s),s##J) ; #define RSjni(s) s=(*env)->NewStringUTF(env,s##J) ; free(s##J) ; /** JNI macros to copy/access 3x3 matrices. The corresponding jfloat f##J[3][3] or jdouble[3][3] matrix is always either input or output. Masking one of the two cases with the preprocessor is standard. */ #define F3jni(f) \ for(int i=0 ; i < 3; i++) \ { \ jfloatArray f##3 = (*env)->GetObjectArrayElement(env, f, i) ; \ (*env)->GetFloatArrayRegion(env,f##3,0,3,f##J[i]) ; \ } #define D3jni(d) \ for(int i=0 ; i < 3; i++) \ { \ jdoubleArray d##3 = (*env)->GetObjectArrayElement(env, d, i) ; \ (*env)->GetDoubleArrayRegion(env,d##3,0,3,d##J[i]) ; \ } #define RF3jni(f) \ for(int i=0 ; i < 3; i++) \ { \ jfloatArray f##3 = (*env)->NewFloatArray(env,3) ; \ (*env)->SetFloatArrayRegion(env,f##3,0,3,f##J[i]) ; \ (*env)->SetObjectArrayElement(env, f, i, f##3) ; \ } #define RD3jni(d) \ for(int i=0 ; i < 3; i++) \ { \ jdoubleArray d##3 = (*env)->NewDoubleArray(env,3) ; \ (*env)->SetDoubleArrayRegion(env,d##3,0,3,d##J[i]) ; \ (*env)->SetObjectArrayElement(env, d, i, d##3) ; \ } /** @see SLALIB 2.4-12 */ /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAddet * Signature: (DDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAddet (JNIEnv *env, jclass obj, jdouble rm, jdouble dm, jdouble eq, jdoubleArray rc, jdoubleArray dc) { Djni(rc) Djni(dc) slaAddet(rm,dm,eq,rcJ,dcJ ) ; RDjni(rc) RDjni(dc) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAfin * Signature: (Ljava/lang/String;[I[F[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAfin (JNIEnv *env, jclass obj, jstring string, jintArray iptr, jfloatArray a, jintArray j) { Sjni(string) Ijni(iptr) Fjni(a) Ijni(j) slaAfin (stringJ, iptrJ, aJ, jJ ) ; RSjni(string) RIjni(iptr) RFjni(a) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAirmas * Signature: (D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAirmas (JNIEnv *env, jclass obj, jdouble zd) { return slaAirmas (zd ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAltaz * Signature: (DDD[D[D[D[D[D[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAltaz (JNIEnv *env, jclass obj, jdouble ha, jdouble dec, jdouble phi, jdoubleArray az, jdoubleArray azd, jdoubleArray azdd, jdoubleArray el, jdoubleArray eld, jdoubleArray eldd, jdoubleArray pa, jdoubleArray pad, jdoubleArray padd) { Djni(az) Djni(azd) Djni(azdd) Djni(el) Djni(eld) Djni(eldd) Djni(pa) Djni(pad) Djni(padd) slaAltaz (ha,dec,phi,azJ,azdJ,azddJ,elJ,eldJ,elddJ,paJ,padJ,paddJ) ; RDjni(az) RDjni(azd) RDjni(azdd) RDjni(el) RDjni(eld) RDjni(eldd) RDjni(pa) RDjni(pad) RDjni(padd) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAmp * Signature: (DDDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAmp (JNIEnv *env, jclass obj, jdouble ra, jdouble da, jdouble date, jdouble eq, jdoubleArray rm, jdoubleArray dm) { Djni(rm) Djni(dm) slaAmp ( ra, da, date, eq, rmJ, dmJ ); RDjni(rm) RDjni(dm) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAmpqk * Signature: (DD[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAmpqk (JNIEnv *env, jclass obj, jdouble ra, jdouble da, jdoubleArray amprms, jdoubleArray rm, jdoubleArray dm) { Djni(amprms) Djni(rm) Djni(dm) slaAmpqk ( ra, da, amprmsJ, rmJ, dmJ ) ; RDjni(amprms) RDjni(rm) RDjni(dm) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAop * Signature: (DDDDDDDDDDDDDD[D[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAop (JNIEnv *env, jclass obj, jdouble rap, jdouble dap, jdouble date, jdouble dut, jdouble elongm, jdouble phim, jdouble hm, jdouble xp, jdouble yp, jdouble tdk, jdouble pmb, jdouble rh, jdouble wl, jdouble tlr, jdoubleArray aob, jdoubleArray zob, jdoubleArray hob, jdoubleArray dob, jdoubleArray rob) { Djni(aob) Djni(zob) Djni(hob) Djni(dob) Djni(rob) slaAop ( rap, dap, date, dut, elongm, phim, hm, xp, yp, tdk, pmb, rh, wl, tlr, aobJ, zobJ, hobJ, dobJ, robJ ) ; RDjni(aob) RDjni(zob) RDjni(hob) RDjni(dob) RDjni(rob) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAoppa * Signature: (DDDDDDDDDDDD[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAoppa (JNIEnv *env, jclass obj, jdouble date, jdouble dut, jdouble elongm, jdouble phim, jdouble hm, jdouble xp, jdouble yp, jdouble tdk, jdouble pmb, jdouble rh, jdouble wl, jdouble tlr, jdoubleArray aoprms) { Djni(aoprms) slaAoppa ( date, dut, elongm, phim, hm, xp, yp, tdk, pmb, rh, wl, tlr, aoprmsJ ) ; RDjni(aoprms) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAoppat * Signature: (D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAoppat (JNIEnv *env, jclass obj, jdouble date, jdoubleArray aoprms) { Djni(aoprms) slaAoppat ( date, aoprmsJ) ; RDjni(aoprms) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAopqk * Signature: (DD[D[D[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAopqk (JNIEnv *env, jclass obj, jdouble rap, jdouble dap, jdoubleArray aoprms, jdoubleArray aob, jdoubleArray zob, jdoubleArray hob, jdoubleArray dob, jdoubleArray rob) { Djni(aoprms) Djni(aob) Djni(zob) Djni(hob) Djni(dob) Djni(rob) slaAopqk ( rap, dap, aoprmsJ, aobJ, zobJ, hobJ, dobJ, robJ ) ; RDjni(aoprms) RDjni(aob) RDjni(zob) RDjni(hob) RDjni(dob) RDjni(rob) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAtmdsp * Signature: (DDDDDDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAtmdsp (JNIEnv *env, jclass obj, jdouble tdk, jdouble pmb, jdouble rh, jdouble wl1, jdouble a1, jdouble b1, jdouble wl2, jdoubleArray a2, jdoubleArray b2) { Djni(a2) Djni(b2) slaAtmdsp ( tdk, pmb, rh, wl1, a1, b1, wl2, a2J, b2J ) ; RDjni(a2) RDjni(b2) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaAv2m * Signature: ([F[[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaAv2m (JNIEnv *env, jclass obj, jfloatArray axvec, jobjectArray rmat) { Fjni(axvec) jfloat rmatJ[3][3] ; #if 0 /* rmat is an output, so copying rmat to rmatJ on start is superfluous */ F3jni(rmat) #endif slaAv2m ( axvecJ, rmatJ) ; RF3jni(rmat) RFjni(axvec) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaBear * Signature: (FFFF)F * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jfloat JNICALL Java_org_nevec_prima_simulator_SLALIB_slaBear (JNIEnv *env, jclass obj, jfloat a1, jfloat b1, jfloat a2, jfloat b2) { return slaBear(a1,b1,a2,b2 ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCaf2r * Signature: (IIF[F[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCaf2r (JNIEnv *env, jclass obj, jint ideg, jint iamin, jfloat asec, jfloatArray rad, jintArray j) { Fjni(rad) Ijni(j) slaCaf2r ( ideg, iamin, asec, radJ, jJ ) ; RFjni(rad) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCaldj * Signature: (III[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCaldj (JNIEnv *env, jclass obj, jint iy, jint im, jint id, jdoubleArray djm, jintArray j) { Djni(djm) Ijni(j) slaCaldj ( iy, im, id, djmJ, jJ ) ; RDjni(djm) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCalyd * Signature: (III[I[I[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCalyd (JNIEnv *env, jclass obj, jint iy, jint im, jint id, jintArray ny, jintArray nd, jintArray j) { Ijni(ny) Ijni(nd) Ijni(j) slaCalyd ( iy, im, id, nyJ, ndJ, jJ ) ; RIjni(ny) RIjni(nd) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCc2s * Signature: ([F[F[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCc2s (JNIEnv *env, jclass obj, jfloatArray v, jfloatArray a, jfloatArray b) { Fjni(v) Fjni(a) Fjni(b) slaCc2s ( vJ, aJ, bJ ) ; RFjni(v) RFjni(a) RFjni(b) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCc62s * Signature: ([F[F[F[F[F[F[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCc62s (JNIEnv *env, jclass obj, jfloatArray v, jfloatArray a, jfloatArray b, jfloatArray r, jfloatArray ad, jfloatArray bd, jfloatArray rd) { Fjni(v) Fjni(a) Fjni(b) Fjni(r) Fjni(ad) Fjni(bd) Fjni(rd) slaCc62s ( vJ, aJ, bJ, rJ, adJ, bdJ, rdJ ) ; RFjni(v) RFjni(a) RFjni(b) RFjni(r) RFjni(ad) RFjni(bd) RFjni(rd) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCd2tf * Signature: (IFLjava/lang/String;[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCd2tf (JNIEnv *env, jclass obj, jint ndp, jfloat days, jstring sign, jintArray ihmsf) { Sjni(sign) Ijni(ihmsf) slaCd2tf ( ndp, days, signJ, ihmsfJ ) ; RSjni(sign) RIjni(ihmsf) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCldj * Signature: (III[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCldj (JNIEnv *env, jclass obj, jint iy, jint im, jint id, jdoubleArray djm, jintArray j) { Djni(djm) Ijni(j) slaCldj ( iy, im, id, djmJ, jJ ) ; RDjni(djm) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaClyd * Signature: (III[I[I[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaClyd (JNIEnv *env, jclass obj, jint iy, jint im, jint id, jintArray ny, jintArray nd, jintArray jstat) { Ijni(ny) Ijni(nd) Ijni(jstat) slaClyd ( iy, im, id, nyJ, ndJ, jstatJ ) ; RIjni(ny) RIjni(nd) RIjni(jstat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCombn * Signature: (II[I[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCombn (JNIEnv *env, jclass obj, jint nsel, jint ncand, jintArray list, jintArray j) { Ijni(list) Ijni(j) slaCombn ( nsel, ncand, listJ, jJ ) ; RIjni(list) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCr2af * Signature: (IFLjava/lang/String;[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCr2af (JNIEnv *env, jclass obj, jint ndp, jfloat angle, jstring sign, jintArray idmsf) { Ijni(idmsf) Sjni(sign) slaCr2af ( ndp, angle, signJ, idmsfJ ) ; RIjni(idmsf) RSjni(sign) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCr2tf * Signature: (IFLjava/lang/String;[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCr2tf (JNIEnv *env, jclass obj, jint ndp, jfloat angle, jstring sign, jintArray ihmsf) { Ijni(ihmsf) Sjni(sign) slaCr2tf ( ndp, angle, signJ, ihmsfJ ) ; RIjni(ihmsf) RSjni(sign) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCs2c * Signature: (FF[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCs2c (JNIEnv *env, jclass obj, jfloat a, jfloat b, jfloatArray v) { Fjni(v) slaCs2c ( a, b, vJ ) ; RFjni(v) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCs2c6 * Signature: (FFFFFF[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCs2c6 (JNIEnv *env, jclass obj, jfloat a, jfloat b, jfloat r, jfloat ad, jfloat bd, jfloat rd, jfloatArray v) { Fjni(v) slaCs2c6 ( a, b, r, ad, bd, rd, vJ ) ; RFjni(v) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCtf2d * Signature: (IIF[F[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCtf2d (JNIEnv *env, jclass obj, jint ihour, jint imin, jfloat sec, jfloatArray days, jintArray j) { Fjni(days) Ijni(j) slaCtf2d ( ihour, imin, sec, daysJ, jJ ) ; RFjni(days) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaCtf2r * Signature: (IIF[F[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaCtf2r (JNIEnv *env, jclass obj, jint ihour, jint imin, jfloat sec, jfloatArray rad, jintArray j) { Fjni(rad) Ijni(j) slaCtf2r ( ihour, imin, sec, radJ, jJ ) ; RFjni(rad) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDaf2r * Signature: (IID[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDaf2r (JNIEnv *env, jclass obj, jint ideg, jint iamin, jdouble asec, jdoubleArray rad, jintArray j) { Djni(rad) Ijni(j) slaDaf2r ( ideg, iamin, asec, radJ, jJ ) ; RDjni(rad) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDafin * Signature: (Ljava/lang/String;[I[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDafin (JNIEnv *env, jclass obj, jstring string, jintArray iptr, jdoubleArray a, jintArray j) { Sjni(string) Ijni(iptr) Djni(a) Ijni(j) slaDafin ( stringJ, iptrJ, aJ, jJ ) ; RSjni(string) RIjni(iptr) RDjni(a) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDat * Signature: (D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDat (JNIEnv *env, jclass obj, jdouble utc) { return slaDat (utc ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDav2m * Signature: ([D[[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDav2m (JNIEnv *env, jclass obj, jdoubleArray axvec, jobjectArray rmat) { Djni(axvec) jdouble rmatJ[3][3] ; #if 0 /* rmat is an output, so copying rmat to rmatJ on start is superfluous */ D3jni(rmat) #endif slaDav2m ( axvecJ, rmatJ ) ; RD3jni(rmat) RDjni(axvec) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDbear * Signature: (DDDD)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDbear (JNIEnv *env, jclass obj, jdouble a1, jdouble b1, jdouble a2, jdouble b2) { return slaDbear ( a1, b1, a2, b2 ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDbjin * Signature: (Ljava/lang/String;[I[D[I[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDbjin (JNIEnv *env, jclass obj, jstring string, jintArray nstrt, jdoubleArray dreslt, jintArray jf1, jintArray jf2) { Sjni(string) Ijni(nstrt) Djni(dreslt) Ijni(jf1) Ijni(jf2) slaDbjin ( stringJ, nstrtJ, dresltJ, jf1J, jf2J ) ; RSjni(string) RIjni(nstrt) RDjni(dreslt) RIjni(jf1) RIjni(jf2) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDc62s * Signature: ([D[D[D[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDc62s (JNIEnv *env, jclass obj, jdoubleArray v, jdoubleArray a, jdoubleArray b, jdoubleArray r, jdoubleArray ad, jdoubleArray bd, jdoubleArray rd) { Djni(v) Djni(a) Djni(b) Djni(r) Djni(ad) Djni(bd) Djni(rd) slaDc62s ( vJ, aJ, bJ, rJ, adJ, bdJ, rdJ ) ; RDjni(v) RDjni(a) RDjni(b) RDjni(r) RDjni(ad) RDjni(bd) RDjni(rd) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDcc2s * Signature: ([D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDcc2s (JNIEnv *env, jclass obj, jdoubleArray v, jdoubleArray a, jdoubleArray b) { Djni(v) Djni(a) Djni(b) slaDcc2s ( vJ, aJ, bJ ) ; RDjni(v) RDjni(a) RDjni(b) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDcmpf * Signature: ([D[D[D[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDcmpf (JNIEnv *env, jclass obj, jdoubleArray coeffs, jdoubleArray xz, jdoubleArray yz, jdoubleArray xs, jdoubleArray ys, jdoubleArray perp, jdoubleArray orient) { Djni(coeffs) Djni(xz) Djni(yz) Djni(xs) Djni(ys) Djni(perp) Djni(orient) slaDcmpf ( coeffsJ, xzJ, yzJ, xsJ, ysJ, perpJ, orientJ ) ; RDjni(coeffs) RDjni(xz) RDjni(yz) RDjni(xs) RDjni(ys) RDjni(perp) RDjni(orient) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDcs2c * Signature: (DD[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDcs2c (JNIEnv *env, jclass obj, jdouble a, jdouble b, jdoubleArray v) { Djni(v) slaDcs2c ( a, b, vJ ) ; RDjni(v) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDd2tf * Signature: (IDLjava/lang/String;[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDd2tf (JNIEnv *env, jclass obj, jint ndp, jdouble days, jstring sign, jintArray ihmsf) { Sjni(sign) Ijni(ihmsf) slaDd2tf ( ndp, days, signJ, ihmsfJ ) ; RSjni(sign) RIjni(ihmsf) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDe2h * Signature: (DDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDe2h (JNIEnv *env, jclass obj, jdouble ha, jdouble dec, jdouble phi, jdoubleArray az, jdoubleArray el) { Djni(az) Djni(el) slaDe2h ( ha, dec, phi, azJ, elJ ) ; RDjni(az) RDjni(el) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDeuler * Signature: (Ljava/lang/String;DDD[[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDeuler (JNIEnv *env, jclass obj, jstring order, jdouble phi, jdouble theta, jdouble psi, jobjectArray rmat) { Sjni(order) jdouble rmatJ[3][3] ; #if 0 /* rmat is an output, so copying rmat to rmatJ on start is superfluous */ D3jni(rmat) #endif slaDeuler ( orderJ, phi, theta, psi, rmatJ ) ; RD3jni(rmat) RSjni(order) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDfltin * Signature: (Ljava/lang/String;[I[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDfltin (JNIEnv *env, jclass obj, jstring string, jintArray nstrt, jdoubleArray dreslt, jintArray jflag) { Sjni(string) Ijni(nstrt) Djni(dreslt) Ijni(jflag) slaDfltin ( stringJ, nstrtJ, dresltJ, jflagJ ) ; RSjni(string) RIjni(nstrt) RDjni(dreslt) RIjni(jflag) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDh2e * Signature: (DDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDh2e (JNIEnv *env, jclass obj, jdouble az, jdouble el, jdouble phi, jdoubleArray ha, jdoubleArray dec) { Djni(ha) Djni(dec) slaDh2e ( az, el, phi, haJ, decJ ) ; RDjni(ha) RDjni(dec) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDimxv * Signature: ([[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDimxv (JNIEnv *env, jclass obj, jobjectArray dm, jdoubleArray va, jdoubleArray vb) { Djni(va) Djni(vb) jdouble dmJ[3][3] ; /* this leads to a warning of 'used unitialized' dm3 by gcc, which is irrelevant */ D3jni(dm) slaDimxv ( dmJ, vaJ, vbJ ) ; #if 0 /* dm is an input array and there is no need to copy it back on return */ RD3jni(dm) #endif RDjni(va) RDjni(vb) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDjcal * Signature: (ID[I[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDjcal (JNIEnv *env, jclass obj, jint ndp, jdouble djm, jintArray iymdf, jintArray j) { Ijni(iymdf) Ijni(j) slaDjcal ( ndp, djm, iymdfJ, jJ ) ; RIjni(iymdf) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDjcl * Signature: (D[I[I[I[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDjcl (JNIEnv *env, jclass obj, jdouble djm, jintArray iy, jintArray im, jintArray id, jdoubleArray fd, jintArray j) { Ijni(iy) Ijni(im) Ijni(id) Djni(fd) Ijni(j) slaDjcl ( djm, iyJ, imJ, idJ, fdJ, jJ) ; RIjni(iy) RIjni(im) RIjni(id) RDjni(fd) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDm2av * Signature: ([[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDm2av (JNIEnv *env, jclass obj, jobjectArray rmat, jdoubleArray axvec) { Djni(axvec) jdouble rmatJ[3][3] ; D3jni(rmat) slaDm2av ( rmatJ, axvecJ ) ; #if 0 /* rmat is an input; copying on return is superfluous */ RD3jni(rmat) #endif RDjni(axvec) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDmat * Signature: (I[D[D[D[I[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDmat (JNIEnv *env, jclass obj, jint n, jdoubleArray a, jdoubleArray y, jdoubleArray d, jintArray jf, jintArray iw) { Djni(a) Djni(y) Djni(d) Ijni(jf) Ijni(iw) slaDmat ( n, aJ, yJ, dJ, jfJ, iwJ) ; RDjni(a) RDjni(y) RDjni(d) RIjni(jf) RIjni(iw) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDmoon * Signature: (D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDmoon (JNIEnv *env, jclass obj, jdouble date, jdoubleArray pv) { Djni(pv) slaDmoon ( date, pvJ ) ; RDjni(pv) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDmxm * Signature: ([[D[[D[[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDmxm (JNIEnv *env, jclass obj, jobjectArray a, jobjectArray b, jobjectArray c) { jdouble aJ[3][3] ; jdouble bJ[3][3] ; jdouble cJ[3][3] ; D3jni(a) D3jni(b) #if 0 /* c is output: superfluous to initialize */ D3jni(c) #endif slaDmxm ( aJ, bJ, cJ ) ; #if 0 /* a and b are an input; copying on return is superfluous */ RD3jni(a) RD3jni(b) #endif RD3jni(c) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDmxv * Signature: ([[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDmxv (JNIEnv *env, jclass obj, jobjectArray dm, jdoubleArray va, jdoubleArray vb) { Djni(va) Djni(vb) jdouble dmJ[3][3] ; /* this leads to a warning of 'used unitialized' dm3 by gcc, which is irrelevant */ D3jni(dm) slaDmxv ( dmJ, vaJ, vbJ ) ; #if 0 /* dm is an input array and there is no need to copy it back on return */ RD3jni(dm) #endif RDjni(va) RDjni(vb) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDpav * Signature: ([D[D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDpav (JNIEnv *env, jclass obj, jdoubleArray v1, jdoubleArray v2) { Djni(v1) Djni(v2) const jdouble res =slaDpav ( v1J, v2J ) ; RDjni(v1) RDjni(v2) return res ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDr2af * Signature: (IDLjava/lang/String;[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDr2af (JNIEnv *env, jclass obj, jint ndp, jdouble angle, jstring sign, jintArray idmsf) { Sjni(sign) Ijni(idmsf) slaDr2af ( ndp, angle, signJ, idmsfJ ) ; RSjni(sign) RIjni(idmsf) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDr2tf * Signature: (IDLjava/lang/String;[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDr2tf (JNIEnv *env, jclass obj, jint ndp, jdouble angle, jstring sign, jintArray ihmsf) { Sjni(sign) Ijni(ihmsf) slaDr2tf ( ndp, angle, signJ, ihmsfJ ) ; RSjni(sign) RIjni(ihmsf) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDrange * Signature: (D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDrange (JNIEnv *env, jclass obj, jdouble angle) { return slaDrange (angle ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDranrm * Signature: (D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDranrm (JNIEnv *env, jclass obj, jdouble angle) { return slaDranrm (angle ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDs2c6 * Signature: (DDDDDD[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDs2c6 (JNIEnv *env, jclass obj, jdouble a, jdouble b, jdouble r, jdouble ad, jdouble bd, jdouble rd, jdoubleArray v) { Djni(v) slaDs2c6 ( a, b, r, ad, bd, rd, vJ ) ; RDjni(v) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDs2tp * Signature: (DDDD[D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDs2tp (JNIEnv *env, jclass obj, jdouble ra, jdouble dec, jdouble raz, jdouble decz, jdoubleArray xi, jdoubleArray eta, jintArray j) { Djni(xi) Djni(eta) Ijni(j) slaDs2tp ( ra, dec, raz, decz, xiJ, etaJ, jJ ) ; RDjni(xi) RDjni(eta) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDsep * Signature: (DDDD)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDsep (JNIEnv *env, jclass obj, jdouble a1, jdouble b1, jdouble a2, jdouble b2) { return slaDsep ( a1, b1, a2, b2 ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDsepv * Signature: ([D[D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDsepv (JNIEnv *env, jclass obj, jdoubleArray v1, jdoubleArray v2) { Djni(v1) Djni(v2) const double resul = slaDsepv( v1J, v2J ) ; RDjni(v1) RDjni(v2) return resul ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDt * Signature: (D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDt (JNIEnv *env, jclass obj, jdouble epoch) { return slaDt(epoch) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDtf2d * Signature: (IID[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDtf2d (JNIEnv *env, jclass obj, jint ihour, jint imin, jdouble sec, jdoubleArray days, jintArray j) { Djni(days) Ijni(j) slaDtf2d ( ihour, imin, sec, daysJ, jJ ) ; RDjni(days) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDtf2r * Signature: (IID[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDtf2r (JNIEnv *env, jclass obj, jint ihour, jint imin, jdouble sec, jdoubleArray rad, jintArray j) { Djni(rad) Ijni(j) slaDtf2r ( ihour, imin, sec, radJ, jJ ) ; RDjni(rad) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDtp2s * Signature: (DDDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDtp2s (JNIEnv *env, jclass obj, jdouble xi, jdouble eta, jdouble raz, jdouble decz, jdoubleArray ra, jdoubleArray dec) { Djni(ra) Djni(dec) slaDtp2s ( xi, eta, raz, decz, raJ, decJ ) ; RDjni(ra) RDjni(dec) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDtp2v * Signature: (DD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDtp2v (JNIEnv *env, jclass obj, jdouble xi, jdouble eta, jdoubleArray v0, jdoubleArray v) { Djni(v0) Djni(v) slaDtp2v ( xi, eta, v0J, vJ ) ; RDjni(v0) RDjni(v) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDtps2c * Signature: (DDDD[D[D[D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDtps2c (JNIEnv *env, jclass obj, jdouble xi, jdouble eta, jdouble ra, jdouble dec, jdoubleArray raz1, jdoubleArray decz1, jdoubleArray raz2, jdoubleArray decz2, jintArray n) { Djni(raz1) Djni(decz1) Djni(raz2) Djni(decz2) Ijni(n) slaDtps2c ( xi, eta, ra, dec, raz1J, decz1J, raz2J, decz2J, nJ ) ; RDjni(raz1) RDjni(decz1) RDjni(raz2) RDjni(decz2) RIjni(n) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDtpv2c * Signature: (DD[D[D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDtpv2c (JNIEnv *env, jclass obj, jdouble xi, jdouble eta, jdoubleArray v, jdoubleArray v01, jdoubleArray v02, jintArray n) { Djni(v) Djni(v01) Djni(v02) Ijni(n) slaDtpv2c ( xi, eta, vJ, v01J, v02J, nJ ) ; RDjni(v) RDjni(v01) RDjni(v02) RIjni(n) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDtt * Signature: (D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDtt (JNIEnv *env, jclass obj, jdouble utc) { return slaDtt(utc) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDv2tp * Signature: ([D[D[D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDv2tp (JNIEnv *env, jclass obj, jdoubleArray v, jdoubleArray v0, jdoubleArray xi, jdoubleArray eta, jintArray j) { Djni(v) Djni(v0) Djni(xi) Djni(eta) Ijni(j) slaDv2tp ( vJ, v0J, xiJ, etaJ, jJ ) ; RDjni(v) RDjni(v0) RDjni(xi) RDjni(eta) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDvdv * Signature: ([D[D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDvdv (JNIEnv *env, jclass obj, jdoubleArray va, jdoubleArray vb) { Djni(va) Djni(vb) const double resul = slaDvdv ( vaJ, vbJ ) ; RDjni(va) RDjni(vb) return resul ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDvn * Signature: ([D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDvn (JNIEnv *env, jclass obj, jdoubleArray v, jdoubleArray uv, jdoubleArray vm) { Djni(v) Djni(uv) Djni(vm) slaDvn ( vJ, uvJ, vmJ ) ; RDjni(v) RDjni(uv) RDjni(vm) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaDvxv * Signature: ([D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaDvxv (JNIEnv *env, jclass obj, jdoubleArray va, jdoubleArray vb, jdoubleArray vc) { Djni(va) Djni(vb) Djni(vc) slaDvxv ( vaJ, vbJ, vcJ) ; RDjni(va) RDjni(vb) RDjni(vc) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaE2h * Signature: (DDD)[D * @author Jeroen A. de Jong * @since 2005-08 */ JNIEXPORT jfloatArray JNICALL Java_org_nevec_prima_simulator_SLALIB_slaE2h(JNIEnv *env, jclass obj, jfloat ha, jfloat dec, jfloat phi) { /* Create exception class */ jclass runTimeExcep = (*env)->FindClass(env,"java/lang/NullPointerException"); /* create array for ra and da */ jfloatArray arr = (*env)->NewFloatArray(env,2); if (arr==NULL) { (*env)->ThrowNew(env,runTimeExcep,"Could not create Array"); return NULL; } jfloat* arrptr = (*env)->GetFloatArrayElements(env,arr,NULL); if (arrptr==NULL) { (*env)->ThrowNew(env,runTimeExcep,"Could not get array elements"); return NULL; } slaE2h((float)ha,(float)dec,(float)phi,arrptr,arrptr+1); (*env)->ReleaseFloatArrayElements(env,arr,arrptr,0); return arr; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEarth * Signature: (IIF[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEarth (JNIEnv *env, jclass obj, jint iy, jint id, jfloat fd, jfloatArray pv) { Fjni(pv) slaEarth ( iy, id, fd, pvJ ) ; RFjni(pv) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEcleq * Signature: (DDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEcleq (JNIEnv *env, jclass obj, jdouble dl, jdouble db, jdouble date, jdoubleArray dr, jdoubleArray dd) { Djni(dr) Djni(dd) slaEcleq ( dl, db, date, drJ, ddJ) ; RDjni(dr) RDjni(dd) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEcmat * Signature: (D[[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEcmat (JNIEnv *env, jclass obj, jdouble date, jobjectArray rmat) { jdouble rmatJ[3][3] ; #if 0 /* rmat is an output, so copying rmat to rmatJ on start is superfluous */ D3jni(rmat) #endif slaEcmat ( date, rmatJ ) ; RD3jni(rmat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEcor * Signature: (FFIIF[F[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEcor (JNIEnv *env, jclass obj, jfloat rm, jfloat dm, jint iy, jint id, jfloat fd, jfloatArray rv, jfloatArray tl) { Fjni(rv) Fjni(tl) slaEcor ( rm, dm, iy, id, fd, rvJ, tlJ ) ; RFjni(rv) RFjni(tl) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEg50 * Signature: (DD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEg50 (JNIEnv *env, jclass obj, jdouble dr, jdouble dd, jdoubleArray dl, jdoubleArray db) { Djni(dl) Djni(db) slaEg50 ( dr, dd, dlJ, dbJ ) ; RDjni(dl) RDjni(db) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEl2ue * Signature: (DIDDDDDDDD[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEl2ue (JNIEnv *env, jclass obj, jdouble date, jint jform, jdouble epoch, jdouble orbinc, jdouble anode, jdouble perih, jdouble aorq, jdouble e, jdouble aorl, jdouble dm, jdoubleArray u, jintArray jstat) { Djni(u) Ijni(jstat) slaEl2ue ( date, jform, epoch, orbinc, anode, perih, aorq, e, aorl, dm, uJ, jstatJ ) ; RDjni(u) RIjni(jstat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEpb * Signature: (D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEpb (JNIEnv *env, jclass obj, jdouble date) { return slaEpb(date) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEpb2d * Signature: (D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEpb2d (JNIEnv *env, jclass obj, jdouble epb) { return slaEpb2d(epb) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEpco * Signature: (CCD)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEpco (JNIEnv *env, jclass obj, jchar k0, jchar k, jdouble e) { /* the JNI seems to have no way to convert 16bit jchar to 8-bit jbyte without an intermediate jstring representation.... */ jstring sk0 = (*env)->NewString(env, & k0, 1) ; Sjni(sk0) jstring sk = (*env)->NewString(env, & k, 1) ; Sjni(sk) const jdouble resul = slaEpco(*sk0J, *skJ, e) ; RSjni(sk0) RSjni(sk) return resul ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEpj * Signature: (D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEpj (JNIEnv *env, jclass obj, jdouble date) { return slaEpj(date) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEpj2d * Signature: (D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEpj2d (JNIEnv *env, jclass obj, jdouble epj) { return slaEpj2d(epj) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEqecl * Signature: (DDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEqecl (JNIEnv *env, jclass obj, jdouble dr, jdouble dd, jdouble date, jdoubleArray dl, jdoubleArray db) { Djni(dl) Djni(db) slaEqecl ( dr, dd, date, dlJ, dbJ ) ; RDjni(dl) RDjni(db) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEqeqx * Signature: (D)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEqeqx (JNIEnv *env, jclass obj, jdouble date) { return slaEqeqx(date) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEqgal * Signature: (DD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEqgal (JNIEnv *env, jclass obj, jdouble dr, jdouble dd, jdoubleArray dl, jdoubleArray db) { Djni(dl) Djni(db) slaEqgal ( dr, dd, dlJ, dbJ ) ; RDjni(dl) RDjni(db) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEtrms * Signature: (D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEtrms (JNIEnv *env, jclass obj, jdouble ep, jdoubleArray ev) { Djni(ev) slaEtrms ( ep, evJ ) ; RDjni(ev) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEuler * Signature: (Ljava/lang/String;FFF[[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEuler (JNIEnv *env, jclass obj, jstring order, jfloat phi, jfloat theta, jfloat psi, jobjectArray rmat) { Sjni(order) jfloat rmatJ[3][3] ; #if 0 /* rmat is an output, so copying rmat to rmatJ on start is superfluous */ F3jni(rmat) #endif slaEuler ( orderJ, phi, theta, psi, rmatJ ) ; RF3jni(rmat) RSjni(order) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaEvp * Signature: (DD[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaEvp (JNIEnv *env, jclass obj, jdouble date, jdouble deqx, jdoubleArray dvb, jdoubleArray dpb, jdoubleArray dvh, jdoubleArray dph) { Djni(dvb) Djni(dpb) Djni(dvh) Djni(dph) slaEvp ( date, deqx, dvbJ, dpbJ, dvhJ, dphJ ) ; RDjni(dvb) RDjni(dpb) RDjni(dvh) RDjni(dph) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaFitxy * Signature: (II[[D[[D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaFitxy (JNIEnv *env, jclass obj, jint itype, jint np, jobjectArray xye, jobjectArray xym, jdoubleArray coeffs, jintArray j) { Djni(coeffs) Ijni(j) /* or alternatively use any NewDoubleArray(...) with a later ReleaseDoubleArrayElements() */ jdouble (*xyeJ)[2] = malloc(np*sizeof(jdouble[2])) , (*xymJ)[2] = malloc(np*sizeof(jdouble[2])) ; for(int i=0 ; i < np; i++) { jdoubleArray x = (*env)->GetObjectArrayElement(env, xye, i) ; (*env)->GetDoubleArrayRegion(env,x,0,2,xyeJ[i]) ; x = (*env)->GetObjectArrayElement(env, xym, i) ; (*env)->GetDoubleArrayRegion(env,x,0,2,xymJ[i]) ; } slaFitxy ( itype, np, xyeJ, xymJ, coeffsJ, jJ ) ; /* xye and xym were inputs: nothing to be copied back here */ free(xymJ) ; free(xyeJ) ; RDjni(coeffs) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaFk425 * Signature: (DDDDDD[D[D[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaFk425 (JNIEnv *env, jclass obj, jdouble r1950, jdouble d1950, jdouble dr1950, jdouble dd1950, jdouble p1950, jdouble v1950, jdoubleArray r2000, jdoubleArray d2000, jdoubleArray dr2000, jdoubleArray dd2000, jdoubleArray p2000, jdoubleArray v2000) { Djni(r2000) Djni(d2000) Djni(dr2000) Djni(dd2000) Djni(p2000) Djni(v2000) slaFk425 ( r1950, d1950, dr1950, dd1950, p1950, v1950, r2000J, d2000J, dr2000J, dd2000J, p2000J, v2000J ) ; RDjni(r2000) RDjni(d2000) RDjni(dr2000) RDjni(dd2000) RDjni(p2000) RDjni(v2000) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaFk45z * Signature: (DDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaFk45z (JNIEnv *env, jclass obj, jdouble r1950, jdouble d1950, jdouble bepoch, jdoubleArray r2000, jdoubleArray d2000) { Djni(r2000) Djni(d2000) slaFk45z ( r1950, d1950, bepoch, r2000J, d2000J ) ; RDjni(r2000) RDjni(d2000) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaFk524 * Signature: (DDDDDD[D[D[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaFk524 (JNIEnv *env, jclass obj, jdouble r2000, jdouble d2000, jdouble dr2000, jdouble dd2000, jdouble p2000, jdouble v2000, jdoubleArray r1950 , jdoubleArray d1950, jdoubleArray dr1950, jdoubleArray dd1950, jdoubleArray p1950, jdoubleArray v1950) { Djni(r1950) Djni(d1950) Djni(dr1950) Djni(dd1950) Djni(p1950) Djni(v1950) slaFk524 ( r2000, d2000, dr2000, dd2000, p2000, v2000, r1950J, d1950J, dr1950J, dd1950J, p1950J, v1950J ) ; RDjni(r1950) RDjni(d1950) RDjni(dr1950) RDjni(dd1950) RDjni(p1950) RDjni(v1950) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaFk52h * Signature: (DDDD[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaFk52h (JNIEnv *env, jclass obj, jdouble r5, jdouble d5, jdouble dr5, jdouble dd5, jdoubleArray rh, jdoubleArray dh, jdoubleArray drh, jdoubleArray ddh) { Djni(rh) Djni(dh) Djni(drh) Djni(ddh) slaFk52h ( r5, d5, dr5, dd5, rhJ, dhJ, drhJ, ddhJ ) ; RDjni(rh) RDjni(dh) RDjni(drh) RDjni(ddh) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaFk54z * Signature: (DDD[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaFk54z (JNIEnv *env, jclass obj, jdouble r2000, jdouble d2000, jdouble bepoch, jdoubleArray r1950, jdoubleArray d1950, jdoubleArray dr1950, jdoubleArray dd1950) { Djni(r1950) Djni(d1950) Djni(dr1950) Djni(dd1950) slaFk54z ( r2000, d2000, bepoch, r1950J, d1950J, dr1950J, dd1950J) ; RDjni(r1950) RDjni(d1950) RDjni(dr1950) RDjni(dd1950) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaFk5hz * Signature: (DDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaFk5hz (JNIEnv *env, jclass obj, jdouble r5, jdouble d5, jdouble epoch, jdoubleArray rh, jdoubleArray dh) { Djni(rh) Djni(dh) slaFk5hz ( r5, d5, epoch, rhJ, dhJ) ; RDjni(rh) RDjni(dh) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaFlotin * Signature: (Ljava/lang/String;[I[F[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaFlotin (JNIEnv *env, jclass obj, jstring string, jintArray nstrt, jfloatArray reslt, jintArray jflag) { Sjni(string) Ijni(nstrt) Fjni(reslt) Ijni(jflag) slaFlotin ( stringJ, nstrtJ, resltJ, jflagJ) ; RSjni(string) RIjni(nstrt) RFjni(reslt) RIjni(jflag) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaGaleq * Signature: (DD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaGaleq (JNIEnv *env, jclass obj, jdouble dl, jdouble db, jdoubleArray dr, jdoubleArray dd) { Djni(dr) Djni(dd) slaGaleq ( dl, db, drJ, ddJ ) ; RDjni(dr) RDjni(dd) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaGalsup * Signature: (DD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaGalsup (JNIEnv *env, jclass obj, jdouble dl, jdouble db, jdoubleArray dsl, jdoubleArray dsb) { Djni(dsl) Djni(dsb) slaGalsup ( dl, db, dslJ, dsbJ) ; RDjni(dsl) RDjni(dsb) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaGe50 * Signature: (DD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaGe50 (JNIEnv *env, jclass obj, jdouble dl, jdouble db, jdoubleArray dr, jdoubleArray dd) { Djni(dr) Djni(dd) slaGe50 ( dl, db, drJ, ddJ) ; RDjni(dr) RDjni(dd) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaGeoc * Signature: (DD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaGeoc (JNIEnv *env, jclass obj, jdouble p, jdouble h, jdoubleArray r, jdoubleArray z) { Djni(r) Djni(z) slaGeoc ( p, h, rJ, zJ) ; RDjni(r) RDjni(z) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaGmst * Signature: (D)D * @author Jeroen A. de Jong * @since 2005-08 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaGmst (JNIEnv *env, jclass obj, jdouble ut1) { return slaGmst(ut1); } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaGmsta * Signature: (DD)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaGmsta (JNIEnv *env, jclass obj, jdouble date, jdouble ut) { return slaGmsta ( date, ut ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaH2e * Signature: (FFF[F[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaH2e (JNIEnv *env, jclass obj, jfloat az, jfloat el, jfloat phi, jfloatArray ha, jfloatArray dec) { Fjni(ha) Fjni(dec) slaH2e ( az, el, phi, haJ,decJ) ; RFjni(ha) RFjni(dec) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaH2fk5 * Signature: (DDDD[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaH2fk5 (JNIEnv *env, jclass obj, jdouble rh, jdouble dh, jdouble drh, jdouble ddh, jdoubleArray r5, jdoubleArray d5, jdoubleArray dr5, jdoubleArray dd5) { Djni(r5) Djni(d5) Djni(dr5) Djni(dd5) slaH2fk5 ( rh, dh, drh, ddh, r5J, d5J, dr5J, dd5J) ; RDjni(r5) RDjni(d5) RDjni(dr5) RDjni(dd5) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaHfk5z * Signature: (DDD[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaHfk5z (JNIEnv *env, jclass obj, jdouble rh, jdouble dh, jdouble epoch, jdoubleArray r5, jdoubleArray d5, jdoubleArray dr5, jdoubleArray dd5) { Djni(r5) Djni(d5) Djni(dr5) Djni(dd5) slaHfk5z ( rh, dh, epoch, r5J, d5J, dr5J, dd5J) ; RDjni(r5) RDjni(d5) RDjni(dr5) RDjni(dd5) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaImxv * Signature: ([[F[F[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaImxv (JNIEnv *env, jclass obj, jobjectArray rm, jfloatArray va, jfloatArray vb) { Fjni(va) Fjni(vb) jfloat rmJ[3][3] ; F3jni(rm) slaImxv ( rmJ, vaJ, vbJ ) ; #if 0 /* rm is an input, copying on output not necessary */ RF3jni(rm) #endif RFjni(va) RFjni(vb) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaIntin * Signature: (Ljava/lang/String;[I[J[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaIntin (JNIEnv *env, jclass obj, jstring string, jintArray nstrt, jlongArray ireslt, jintArray jflag) { Sjni(string) Ijni(nstrt) Ljni(ireslt) Ijni(jflag) /* since the native jlong type is 64 bits, but (obviously by compiler warning) the C long type different, we add an explicit widening conversion ... */ long ireslt_l ; slaIntin ( stringJ, nstrtJ, &ireslt_l, jflagJ) ; *iresltJ = ireslt_l ; RSjni(string) RIjni(nstrt) RLjni(ireslt) RIjni(jflag) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaInvf * Signature: ([D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaInvf (JNIEnv *env, jclass obj, jdoubleArray fwds, jdoubleArray bkwds, jintArray j) { Djni(fwds) Djni(bkwds) Ijni(j) slaInvf ( fwdsJ, bkwdsJ, jJ ) ; RDjni(fwds) RDjni(bkwds) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaKbj * Signature: (IDLjava/lang/String;[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaKbj (JNIEnv *env, jclass obj, jint jb, jdouble e, jstring k, jintArray j) { Sjni(k) Ijni(j) slaKbj ( jb, e, kJ, jJ ) ; RSjni(k) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaM2av * Signature: ([[F[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaM2av (JNIEnv *env, jclass obj, jobjectArray rmat, jfloatArray axvec) { Fjni(axvec) jfloat rmatJ[3][3] ; F3jni(rmat) slaM2av ( rmatJ, axvecJ) ; #if 0 RF3jni(rmat) #endif RFjni(axvec) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaMap * Signature: (DDDDDDDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaMap (JNIEnv *env, jclass obj, jdouble rm, jdouble dm, jdouble pr, jdouble pd, jdouble px, jdouble rv, jdouble eq, jdouble date, jdoubleArray ra, jdoubleArray da) { Djni(ra) Djni(da) slaMap ( rm, dm, pr, pd, px, rv, eq, date, raJ, daJ ) ; RDjni(ra) RDjni(da) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaMappa * Signature: (DD[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaMappa (JNIEnv *env, jclass obj, jdouble eq, jdouble date, jdoubleArray amprms) { Djni(amprms) slaMappa ( eq, date, amprmsJ ) ; RDjni(amprms) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaMapqk * Signature: (DDDDDD[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaMapqk (JNIEnv *env, jclass obj, jdouble rm, jdouble dm, jdouble pr, jdouble pd, jdouble px, jdouble rv, jdoubleArray amprms, jdoubleArray ra, jdoubleArray da) { Djni(amprms) Djni(ra) Djni(da) slaMapqk ( rm, dm, pr, pd, px, rv, amprmsJ, raJ, daJ); RDjni(amprms) RDjni(ra) RDjni(da) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaMapqkz * Signature: (DD[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaMapqkz (JNIEnv *env, jclass obj, jdouble rm, jdouble dm, jdoubleArray amprms, jdoubleArray ra, jdoubleArray da) { Djni(amprms) Djni(ra) Djni(da) slaMapqkz ( rm, dm, amprmsJ, raJ, daJ) ; RDjni(amprms) RDjni(ra) RDjni(da) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaMoon * Signature: (IIF[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaMoon (JNIEnv *env, jclass obj, jint iy, jint id, jfloat fd, jfloatArray pv) { Fjni(pv) slaMoon ( iy, id, fd, pvJ ) ; RFjni(pv) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaMxm * Signature: ([[F[[F[[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaMxm (JNIEnv *env, jclass obj, jobjectArray a, jobjectArray b, jobjectArray c) { jfloat aJ[3][3] ; jfloat bJ[3][3] ; jfloat cJ[3][3] ; F3jni(a) F3jni(b) #if 0 /* c is output: superfluous to initialize */ F3jni(c) #endif slaMxm ( aJ, bJ, cJ ) ; #if 0 /* a and b are an input; copying on return is superfluous */ RF3jni(a) RF3jni(b) #endif RF3jni(c) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaMxv * Signature: ([[F[F[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaMxv (JNIEnv *env, jclass obj, jobjectArray rm, jfloatArray va, jfloatArray vb) { Fjni(va) Fjni(vb) jfloat rmJ[3][3] ; /* this leads to a warning of 'used unitialized' rm3 by gcc, which is irrelevant */ F3jni(rm) slaMxv ( rmJ, vaJ, vbJ ) ; #if 0 /* rm is an input array and there is no need to copy it back on return */ RF3jni(rm) #endif RFjni(va) RFjni(vb) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaNut * Signature: (D[[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaNut (JNIEnv *env, jclass obj, jdouble date, jobjectArray rmatn) { jdouble rmatnJ[3][3] ; #if 0 /* rmatn is an output, so copying rmatn to rmatnJ on start is superfluous */ D3jni(rmatn) #endif slaNut ( date, rmatnJ ) ; RD3jni(rmatn) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaNutc * Signature: (D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaNutc (JNIEnv *env, jclass obj, jdouble date, jdoubleArray dpsi, jdoubleArray deps, jdoubleArray eps0) { Djni(dpsi) Djni(deps) Djni(eps0) slaNutc ( date, dpsiJ, depsJ, eps0J ) ; RDjni(dpsi) RDjni(deps) RDjni(eps0) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaOap * Signature: (Ljava/lang/String;DDDDDDDDDDDDDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaOap (JNIEnv *env, jclass obj, jstring type, jdouble ob1, jdouble ob2, jdouble date, jdouble dut, jdouble elongm, jdouble phim, jdouble hm, jdouble xp, jdouble yp, jdouble tdk, jdouble pmb, jdouble rh, jdouble wl, jdouble tlr, jdoubleArray rap, jdoubleArray dap) { Sjni(type) Djni(rap) Djni(dap) slaOap ( typeJ, ob1, ob2, date, dut, elongm, phim, hm, xp, yp, tdk, pmb, rh, wl, tlr, rapJ, dapJ) ; RSjni(type) RDjni(rap) RDjni(dap) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaOapqk * Signature: (Ljava/lang/String;DD[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaOapqk (JNIEnv *env, jclass obj, jstring type, jdouble ob1, jdouble ob2, jdoubleArray aoprms, jdoubleArray rap, jdoubleArray dap) { Sjni(type) Djni(aoprms) Djni(rap) Djni(dap) slaOapqk ( typeJ, ob1, ob2, aoprmsJ, rapJ, dapJ); RSjni(type) RDjni(aoprms) RDjni(rap) RDjni(dap) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaObs * Signature: (ILjava/lang/String;Ljava/lang/String;[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaObs (JNIEnv *env, jclass obj, jint n, jstring c, jstring name, jdoubleArray w, jdoubleArray p, jdoubleArray h) { Sjni(c) Sjni(name) Djni(w) Djni(p) Djni(h) slaObs ( n, cJ, nameJ, wJ, pJ, hJ) ; RSjni(c) RSjni(name) RDjni(w) RDjni(p) RDjni(h) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPa * Signature: (DDD)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPa (JNIEnv *env, jclass obj, jdouble ha, jdouble dec, jdouble phi) { return slaPa(ha,dec,phi) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPav * Signature: ([F[F)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPav (JNIEnv *env, jclass obj, jfloatArray v1, jfloatArray v2) { Fjni(v1) Fjni(v2) double resul = slaPav ( v1J, v2J ) ; RFjni(v1) RFjni(v2) return resul ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPcd * Signature: (D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPcd (JNIEnv *env, jclass obj, jdouble disco, jdoubleArray x, jdoubleArray y) { Djni(x) Djni(y) slaPcd ( disco, xJ, yJ ) ; RDjni(x) RDjni(y) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPda2h * Signature: (DDD[D[I[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPda2h (JNIEnv *env, jclass obj, jdouble p, jdouble d, jdouble a, jdoubleArray h1, jintArray j1, jdoubleArray h2, jintArray j2) { Djni(h1) Ijni(j1) Djni(h2) Ijni(j2) slaPda2h ( p, d, a, h1J, j1J, h2J, j2J ) ; RDjni(h1) RIjni(j1) RDjni(h2) RIjni(j2) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPdq2h * Signature: (DDD[D[I[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPdq2h (JNIEnv *env, jclass obj, jdouble p, jdouble d, jdouble q, jdoubleArray h1, jintArray j1, jdoubleArray h2, jintArray j2) { Djni(h1) Ijni(j1) Djni(h2) Ijni(j2) slaPdq2h ( p, d, q, h1J, j1J, h2J, j2J ) ; RDjni(h1) RIjni(j1) RDjni(h2) RIjni(j2) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPermut * Signature: (I[I[I[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPermut (JNIEnv *env, jclass obj, jint n, jintArray istate, jintArray iorder, jintArray j) { Ijni(istate) Ijni(iorder) Ijni(j) slaPermut ( n, istateJ, iorderJ, jJ) ; RIjni(istate) RIjni(iorder) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPertel * Signature: (IDDDDDDDDD[D[D[D[D[D[D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPertel (JNIEnv *env, jclass obj, jint jform, jdouble date0, jdouble date1, jdouble epoch0, jdouble orbi0, jdouble anode0, jdouble perih0, jdouble aorq0, jdouble e0, jdouble am0, jdoubleArray epoch1, jdoubleArray orbi1, jdoubleArray anode1, jdoubleArray perih1, jdoubleArray aorq1, jdoubleArray e1, jdoubleArray am1, jintArray jstat) { Ijni(jstat) Djni(epoch1) Djni(orbi1) Djni(anode1) Djni(perih1) Djni(aorq1) Djni(e1) Djni(am1) slaPertel (jform, date0, date1, epoch0, orbi0, anode0, perih0, aorq0, e0, am0, epoch1J, orbi1J, anode1J, perih1J, aorq1J, e1J, am1J, jstatJ) ; RIjni(jstat) RDjni(epoch1) RDjni(orbi1) RDjni(anode1) RDjni(perih1) RDjni(aorq1) RDjni(e1) RDjni(am1) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPertue * Signature: (D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPertue (JNIEnv *env, jclass obj, jdouble date, jdoubleArray u, jintArray jstat) { Djni(u) Ijni(jstat) slaPertue ( date, uJ, jstatJ) ; RDjni(u) RIjni(jstat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPlanel * Signature: (DIDDDDDDDD[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPlanel (JNIEnv *env, jclass obj, jdouble date, jint jform, jdouble epoch, jdouble orbinc, jdouble anode, jdouble perih, jdouble aorq, jdouble e, jdouble aorl, jdouble dm, jdoubleArray pv, jintArray jstat) { Djni(pv) Ijni(jstat) slaPlanel ( date, jform, epoch, orbinc, anode, perih, aorq, e, aorl, dm, pvJ, jstatJ ) ; RDjni(pv) RIjni(jstat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPlanet * Signature: (DI[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPlanet (JNIEnv *env, jclass obj, jdouble date, jint np, jdoubleArray pv, jintArray jstat) { Djni(pv) Ijni(jstat) slaPlanet ( date, np, pvJ, jstatJ) ; RDjni(pv) RIjni(jstat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPlante * Signature: (DDDIDDDDDDDD[D[D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPlante (JNIEnv *env, jclass obj, jdouble date, jdouble elong, jdouble phi, jint jform, jdouble epoch, jdouble orbinc, jdouble anode, jdouble perih, jdouble aorq, jdouble e, jdouble aorl, jdouble dm, jdoubleArray ra, jdoubleArray dec, jdoubleArray r, jintArray jstat) { Djni(ra) Djni(dec) Djni(r) Ijni(jstat) slaPlante( date, elong, phi, jform, epoch, orbinc, anode, perih, aorq, e, aorl, dm, raJ, decJ, rJ, jstatJ) ; RDjni(ra) RDjni(dec) RDjni(r) RIjni(jstat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPm * Signature: (DDDDDDDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPm (JNIEnv *env, jclass obj, jdouble r0, jdouble d0, jdouble pr, jdouble pd, jdouble px, jdouble rv, jdouble ep0, jdouble ep1, jdoubleArray r1, jdoubleArray d1) { Djni(r1) Djni(d1) slaPm ( r0, d0, pr, pd, px, rv, ep0, ep1, r1J, d1J ) ; RDjni(r1) RDjni(d1) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPolmo * Signature: (DDDD[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPolmo (JNIEnv *env, jclass obj, jdouble elongm, jdouble phim, jdouble xp, jdouble yp, jdoubleArray elong, jdoubleArray phi, jdoubleArray daz) { Djni(elong) Djni(phi) Djni(daz) slaPolmo ( elongm, phim, xp, yp, elongJ, phiJ, dazJ ); RDjni(elong) RDjni(phi) RDjni(daz) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPrebn * Signature: (DD[[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPrebn (JNIEnv *env, jclass obj, jdouble bep0, jdouble bep1, jobjectArray rmatp) { jdouble rmatpJ[3][3] ; #if 0 /* rmatp is an output, so copying rmatp to rmatpJ on start is superfluous */ D3jni(rmatp) #endif slaPrebn ( bep0, bep1, rmatpJ ) ; RD3jni(rmatp) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPrec * Signature: (DD[[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPrec (JNIEnv *env, jclass obj, jdouble ep0, jdouble ep1, jobjectArray rmatp) { jdouble rmatpJ[3][3] ; #if 0 /* rmatp is an output, so copying rmatp to rmatpJ on start is superfluous */ D3jni(rmatp) #endif slaPrec ( ep0, ep1, rmatpJ ) ; RD3jni(rmatp) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPrecl * Signature: (DD[[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPrecl (JNIEnv *env, jclass obj, jdouble ep0, jdouble ep1, jobjectArray rmatp) { jdouble rmatpJ[3][3] ; #if 0 /* rmatp is an output, so copying rmatp to rmatpJ on start is superfluous */ D3jni(rmatp) #endif slaPrecl ( ep0, ep1, rmatpJ ) ; RD3jni(rmatp) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPreces * Signature: (Ljava/lang/String;DD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPreces (JNIEnv *env, jclass obj, jstring sys, jdouble ep0, jdouble ep1, jdoubleArray ra, jdoubleArray dc) { Sjni(sys) Djni(ra) Djni(dc) slaPreces ( sysJ, ep0, ep1, raJ, dcJ ) ; RSjni(sys) RDjni(ra) RDjni(dc) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPrenut * Signature: (DD[[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPrenut (JNIEnv *env, jclass obj, jdouble epoch, jdouble date, jobjectArray rmatpn) { jdouble rmatpnJ[3][3] ; #if 0 /* rmatpn is an output, so copying rmatpn to rmatpnJ on start is superfluous */ D3jni(rmatpn) #endif slaPrenut ( epoch, date, rmatpnJ ) ; RD3jni(rmatpn) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPv2el * Signature: ([DDDI[I[D[D[D[D[D[D[D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPv2el (JNIEnv *env, jclass obj, jdoubleArray pv, jdouble date, jdouble pmass, jint jformr, jintArray jform, jdoubleArray epoch, jdoubleArray orbinc, jdoubleArray anode, jdoubleArray perih, jdoubleArray aorq, jdoubleArray e, jdoubleArray aorl, jdoubleArray dm, jintArray jstat) { Djni(pv) Ijni(jform) Djni(epoch) Djni(orbinc) Djni(anode) Djni(perih) Djni(aorq) Djni(e) Djni(aorl) Djni(dm) Ijni(jstat) slaPv2el ( pvJ, date, pmass, jformr, jformJ, epochJ, orbincJ, anodeJ, perihJ, aorqJ, eJ, aorlJ, dmJ, jstatJ) ; RDjni(pv) RIjni(jform) RDjni(epoch) RDjni(orbinc) RDjni(anode) RDjni(perih) RDjni(aorq) RDjni(e) RDjni(aorl) RDjni(dm) RIjni(jstat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPv2ue * Signature: ([DDD[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPv2ue (JNIEnv *env, jclass obj, jdoubleArray pv, jdouble date, jdouble pmass, jdoubleArray u, jintArray jstat) { Djni(pv) Djni(u) Ijni(jstat) slaPv2ue ( pvJ, date, pmass, uJ, jstatJ ) ; RDjni(pv) RDjni(u) RIjni(jstat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPvobs * Signature: (DDD[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPvobs (JNIEnv *env, jclass obj, jdouble p, jdouble h, jdouble stl, jdoubleArray pv) { Djni(pv) slaPvobs ( p, h, stl, pvJ ) ; RDjni(pv) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaPxy * Signature: (I[[D[[D[D[[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaPxy (JNIEnv *env, jclass obj, jint np, jobjectArray xye, jobjectArray xym, jdoubleArray coeffs, jobjectArray xyp, jdoubleArray xrms, jdoubleArray yrms, jdoubleArray rrms) { Djni(coeffs) Djni(xrms) Djni(yrms) Djni(rrms) /* or alternatively use any NewDoubleArray(...) with a later ReleaseDoubleArrayElements() */ jdouble (*xyeJ)[2] = malloc(np*sizeof(jdouble[2])) , (*xymJ)[2] = malloc(np*sizeof(jdouble[2])) , (*xypJ)[2] = malloc(np*sizeof(jdouble[2])) ; for(int i=0 ; i < np; i++) { jdoubleArray x = (*env)->GetObjectArrayElement(env, xye, i) ; (*env)->GetDoubleArrayRegion(env,x,0,2,xyeJ[i]) ; x = (*env)->GetObjectArrayElement(env, xym, i) ; (*env)->GetDoubleArrayRegion(env,x,0,2,xymJ[i]) ; /* xyp is output, so nothing done for it here ...*/ } slaPxy ( np , xyeJ, xymJ, coeffsJ, xypJ , xrmsJ , yrmsJ, rrmsJ ) ; /* xye and xym were inputs: nothing to be copied back here for these */ for(int i=0 ; i < np; i++) { jdoubleArray x = (*env)->NewDoubleArray(env,2) ; (*env)->SetDoubleArrayRegion(env,x,0,2,xypJ[i]) ; (*env)->SetObjectArrayElement(env, xyp, i, x) ; } free(xypJ) ; free(xymJ) ; free(xyeJ) ; RDjni(coeffs) RDjni(xrms) RDjni(yrms) RDjni(rrms) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRange * Signature: (F)F * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jfloat JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRange (JNIEnv *env, jclass obj, jfloat angle) { return slaRange(angle) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRanorm * Signature: (F)F * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jfloat JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRanorm (JNIEnv *env, jclass obj, jfloat angle) { return slaRanorm(angle) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRcc * Signature: (DDDDD)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRcc (JNIEnv *env, jclass obj, jdouble tdb, jdouble ut1, jdouble wl, jdouble u, jdouble v) { return slaRcc ( tdb, ut1, wl, u, v ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRdplan * Signature: (DIDD[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRdplan (JNIEnv *env, jclass obj, jdouble date, jint np, jdouble elong, jdouble phi, jdoubleArray ra, jdoubleArray dec, jdoubleArray diam) { Djni(ra) Djni(dec) Djni(diam) slaRdplan ( date, np, elong, phi, raJ, decJ, diamJ) ; RDjni(ra) RDjni(dec) RDjni(diam) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRefco * Signature: (DDDDDDDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRefco (JNIEnv *env, jclass obj, jdouble hm, jdouble tdk, jdouble pmb, jdouble rh, jdouble wl, jdouble phi, jdouble tlr, jdouble eps, jdoubleArray refa, jdoubleArray refb) { Djni(refa) Djni(refb) slaRefco ( hm, tdk, pmb, rh, wl, phi, tlr, eps, refaJ, refbJ) ; RDjni(refa) RDjni(refb) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRefcoq * Signature: (DDDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRefcoq (JNIEnv *env, jclass obj, jdouble tdk, jdouble pmb, jdouble rh, jdouble wl, jdoubleArray refa, jdoubleArray refb) { Djni(refa) Djni(refb) slaRefcoq ( tdk, pmb, rh, wl, refaJ, refbJ) ; RDjni(refa) RDjni(refb) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRefro * Signature: (DDDDDDDDD[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRefro (JNIEnv *env, jclass obj, jdouble zobs, jdouble hm, jdouble tdk, jdouble pmb, jdouble rh, jdouble wl, jdouble phi, jdouble tlr, jdouble eps, jdoubleArray ref) { Djni(ref) slaRefro ( zobs, hm, tdk, pmb, rh, wl, phi, tlr, eps, refJ ) ; RDjni(ref) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRefv * Signature: ([DDD[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRefv (JNIEnv *env, jclass obj, jdoubleArray vu, jdouble refa, jdouble refb, jdoubleArray vr) { Djni(vu) Djni(vr) slaRefv ( vuJ, refa, refb, vrJ ) ; RDjni(vu) RDjni(vr) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRefz * Signature: (DDD[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRefz (JNIEnv *env, jclass obj, jdouble zu, jdouble refa, jdouble refb, jdoubleArray zr) { Djni(zr) slaRefz ( zu, refa, refb, zrJ ) ; RDjni(zr) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRverot * Signature: (FFFF)F * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jfloat JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRverot (JNIEnv *env, jclass obj, jfloat phi, jfloat ra, jfloat da, jfloat st) { return slaRverot ( phi, ra, da, st ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRvgalc * Signature: (FF)F * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jfloat JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRvgalc (JNIEnv *env, jclass obj, jfloat r2000, jfloat d2000) { return slaRvgalc ( r2000, d2000 ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRvlg * Signature: (FF)F * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jfloat JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRvlg (JNIEnv *env, jclass obj, jfloat r2000, jfloat d2000) { return slaRvlg ( r2000, d2000 ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRvlsrd * Signature: (FF)F * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jfloat JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRvlsrd (JNIEnv *env, jclass obj, jfloat r2000, jfloat d2000) { return slaRvlsrd ( r2000, d2000 ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaRvlsrk * Signature: (FF)F * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jfloat JNICALL Java_org_nevec_prima_simulator_SLALIB_slaRvlsrk (JNIEnv *env, jclass obj, jfloat r2000, jfloat d2000) { return slaRvlsrk ( r2000, d2000 ) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaS2tp * Signature: (FFFF[F[F[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaS2tp (JNIEnv *env, jclass obj, jfloat ra, jfloat dec, jfloat raz, jfloat decz, jfloatArray xi, jfloatArray eta, jintArray j) { Fjni(xi) Fjni(eta) Ijni(j) slaS2tp ( ra, dec, raz, decz, xiJ, etaJ, jJ ) ; RFjni(xi) RFjni(eta) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaSep * Signature: (FFFF)F * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jfloat JNICALL Java_org_nevec_prima_simulator_SLALIB_slaSep (JNIEnv *env, jclass obj, jfloat a1, jfloat b1, jfloat a2, jfloat b2) { return slaSep(a1,b1,a2,b2) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaSepv * Signature: ([F[F)F * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jfloat JNICALL Java_org_nevec_prima_simulator_SLALIB_slaSepv (JNIEnv *env, jclass obj, jfloatArray v1, jfloatArray v2) { Fjni(v1) Fjni(v2) jfloat resul = slaSepv ( v1J, v2J ) ; RFjni(v1) RFjni(v2) return resul ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaSmat * Signature: (I[F[F[F[I[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaSmat (JNIEnv *env, jclass obj, jint n, jfloatArray a, jfloatArray y, jfloatArray d, jintArray jf, jintArray iw) { Fjni(a) Fjni(y) Fjni(d) Ijni(jf) Ijni(iw) slaSmat ( n, aJ, yJ, dJ, jfJ, iwJ ) ; RFjni(a) RFjni(y) RFjni(d) RIjni(jf) RIjni(iw) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaSubet * Signature: (DDD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaSubet (JNIEnv *env, jclass obj, jdouble rc, jdouble dc, jdouble eq, jdoubleArray rm, jdoubleArray dm) { Djni(rm) Djni(dm) slaSubet ( rc, dc, eq, rmJ, dmJ ) ; RDjni(rm) RDjni(dm) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaSupgal * Signature: (DD[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaSupgal (JNIEnv *env, jclass obj, jdouble dsl, jdouble dsb, jdoubleArray dl, jdoubleArray db) { Djni(dl) Djni(db) slaSupgal ( dsl, dsb, dlJ, dbJ) ; RDjni(dl) RDjni(db) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaSvd * Signature: (IIII[D[D[D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaSvd (JNIEnv *env, jclass obj, jint m, jint n, jint mp, jint np, jdoubleArray a, jdoubleArray w, jdoubleArray v, jdoubleArray work, jintArray jstat) { Djni(a) Djni(w) Djni(v) Djni(work) Ijni(jstat) slaSvd ( m, n, mp, np, aJ, wJ, vJ, workJ, jstatJ ) ; RDjni(a) RDjni(w) RDjni(v) RDjni(work) RIjni(jstat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaSvdcov * Signature: (III[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaSvdcov (JNIEnv *env, jclass obj, jint n, jint np, jint nc, jdoubleArray w, jdoubleArray v, jdoubleArray work, jdoubleArray cvm) { Djni(w) Djni(v) Djni(work) Djni(cvm) slaSvdcov ( n, np, nc, wJ, vJ, workJ, cvmJ) ; RDjni(w) RDjni(v) RDjni(work) RDjni(cvm) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaSvdsol * Signature: (IIII[D[D[D[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaSvdsol (JNIEnv *env, jclass obj, jint m, jint n, jint mp, jint np, jdoubleArray b, jdoubleArray u, jdoubleArray w, jdoubleArray v, jdoubleArray work, jdoubleArray x) { Djni(b) Djni(u) Djni(w) Djni(v) Djni(work) Djni(x) slaSvdsol ( m, n, mp, np, bJ, uJ, wJ, vJ, workJ, xJ ) ; RDjni(b) RDjni(u) RDjni(w) RDjni(v) RDjni(work) RDjni(x) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaTp2s * Signature: (FFFF[F[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaTp2s (JNIEnv *env, jclass obj, jfloat xi, jfloat eta, jfloat raz, jfloat decz, jfloatArray ra, jfloatArray dec) { Fjni(ra) Fjni(dec) slaTp2s ( xi, eta, raz, decz, raJ, decJ); RFjni(ra) RFjni(dec) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaTp2v * Signature: (FF[F[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaTp2v (JNIEnv *env, jclass obj, jfloat xi, jfloat eta, jfloatArray v0, jfloatArray v) { Fjni(v0) Fjni(v) slaTp2v ( xi, eta, v0J, vJ ) ; RFjni(v0) RFjni(v) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaTps2c * Signature: (FFFF[F[F[F[F[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaTps2c (JNIEnv *env, jclass obj, jfloat xi, jfloat eta, jfloat ra, jfloat dec, jfloatArray raz1, jfloatArray decz1, jfloatArray raz2, jfloatArray decz2, jintArray n) { Fjni(raz1) Fjni(decz1) Fjni(raz2) Fjni(decz2) Ijni(n) slaTps2c ( xi, eta, ra, dec, raz1J, decz1J, raz2J, decz2J, nJ ) ; RFjni(raz1) RFjni(decz1) RFjni(raz2) RFjni(decz2) RIjni(n) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaTpv2c * Signature: (FF[F[F[F[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaTpv2c (JNIEnv *env, jclass obj, jfloat xi, jfloat eta, jfloatArray v, jfloatArray v01, jfloatArray v02, jintArray n) { Fjni(v) Fjni(v01) Fjni(v02) Ijni(n) slaTpv2c ( xi, eta, vJ, v01J, v02J, nJ ) ; RFjni(v) RFjni(v01) RFjni(v02) RIjni(n) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaUe2el * Signature: ([DI[I[D[D[D[D[D[D[D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaUe2el (JNIEnv *env, jclass obj, jdoubleArray u, jint jformr, jintArray jform, jdoubleArray epoch, jdoubleArray orbinc, jdoubleArray anode, jdoubleArray perih, jdoubleArray aorq, jdoubleArray e, jdoubleArray aorl, jdoubleArray dm, jintArray jstat) { Djni(u) Ijni(jform) Djni(epoch) Djni(orbinc) Djni(anode) Djni(perih) Djni(aorq) Djni(e) Djni(aorl) Djni(dm) Ijni(jstat) slaUe2el ( uJ, jformr, jformJ, epochJ, orbincJ, anodeJ, perihJ, aorqJ, eJ, aorlJ, dmJ, jstatJ ) ; RDjni(u) RIjni(jform) RDjni(epoch) RDjni(orbinc) RDjni(anode) RDjni(perih) RDjni(aorq) RDjni(e) RDjni(aorl) RDjni(dm) RIjni(jstat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaUe2pv * Signature: (D[D[D[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaUe2pv (JNIEnv *env, jclass obj, jdouble date, jdoubleArray u, jdoubleArray pv, jintArray jstat) { Djni(u) Djni(pv) Ijni(jstat) slaUe2pv ( date, uJ, pvJ, jstatJ ) ; RDjni(u) RDjni(pv) RIjni(jstat) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaUnpcd * Signature: (D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaUnpcd (JNIEnv *env, jclass obj, jdouble disco, jdoubleArray x, jdoubleArray y) { Djni(x) Djni(y) slaUnpcd ( disco, xJ, yJ ) ; RDjni(x) RDjni(y) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaV2tp * Signature: ([F[F[F[F[I)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaV2tp (JNIEnv *env, jclass obj, jfloatArray v, jfloatArray v0, jfloatArray xi, jfloatArray eta, jintArray j) { Fjni(v) Fjni(v0) Fjni(xi) Fjni(eta) Ijni(j) slaV2tp ( vJ, v0J, xiJ, etaJ, jJ ) ; RFjni(v) RFjni(v0) RFjni(xi) RFjni(eta) RIjni(j) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaVdv * Signature: ([F[F)F * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jfloat JNICALL Java_org_nevec_prima_simulator_SLALIB_slaVdv (JNIEnv *env, jclass obj, jfloatArray va, jfloatArray vb) { Fjni(va) Fjni(vb) jfloat resul = slaVdv ( vaJ, vbJ ) ; RFjni(va) RFjni(vb) return resul ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaVn * Signature: ([F[F[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaVn (JNIEnv *env, jclass obj, jfloatArray v, jfloatArray uv, jfloatArray vm) { Fjni(v) Fjni(uv) Fjni(vm) slaVn ( vJ, uvJ, vmJ ) ; RFjni(v) RFjni(uv) RFjni(vm) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaVxv * Signature: ([F[F[F)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaVxv (JNIEnv *env, jclass obj, jfloatArray va, jfloatArray vb, jfloatArray vc) { Fjni(va) Fjni(vb) Fjni(vc) slaVxv ( vaJ, vbJ, vcJ ) ; RFjni(va) RFjni(vb) RFjni(vc) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaXy2xy * Signature: (DD[D[D[D)V * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT void JNICALL Java_org_nevec_prima_simulator_SLALIB_slaXy2xy (JNIEnv *env, jclass obj, jdouble xc1, jdouble yc1, jdoubleArray coeffs, jdoubleArray xc2, jdoubleArray yc2) { Djni(coeffs) Djni(xc2) Djni(yc2) slaXy2xy ( xc1, yc1, coeffsJ, xc2J, yc2J ) ; RDjni(coeffs) RDjni(xc2) RDjni(yc2) } /* * Class: org_nevec_prima_simulator_SLALIB * Method: slaZd * Signature: (DDD)D * @author Richard J. Mathar * @since 2005-09-09 */ JNIEXPORT jdouble JNICALL Java_org_nevec_prima_simulator_SLALIB_slaZd (JNIEnv *env, jclass obj, jdouble ha, jdouble dec, jdouble phi) { return slaZd(ha,dec,phi) ; } /* * Class: org_nevec_prima_simulator_SLALIB * Method: map * Signature: (DDDDDDDD)[D * @author Jeroen A. de Jong * @since 2005-08 */ JNIEXPORT jdoubleArray JNICALL Java_org_nevec_prima_simulator_SLALIB_map (JNIEnv *env, jclass obj, jdouble rm, jdouble dm, jdouble pr, jdouble pd, jdouble px, jdouble rv, jdouble eq, jdouble date) { /* Create exception class */ jclass runTimeExcep = (*env)->FindClass(env,"java/lang/NullPointerException"); /* create array for ra and da */ jdoubleArray arr = (*env)->NewDoubleArray(env,2); if (arr==NULL) { (*env)->ThrowNew(env,runTimeExcep,"Could not create Array"); return NULL; } jdouble* arrptr = (*env)->GetDoubleArrayElements(env,arr,NULL); if (arrptr==NULL) { (*env)->ThrowNew(env,runTimeExcep,"Could not get array elements"); return NULL; } /* Call SLALIB function to compute apparent coordinates */ slaMap((double)rm,(double)dm,(double)pr,(double)pd,(double)px, (double)rv,(double)eq,(double)date,arrptr,arrptr+1); (*env)->ReleaseDoubleArrayElements(env,arr,arrptr,0); return arr; } #undef Djni #undef Fjni #undef Ijni #undef Ljni #undef RDjni #undef RFjni #undef RIjni #undef RLjni #undef D3jni #undef F3jni #undef RD3jni #undef RF3jni #undef SjniLen #undef Sjni #undef RSjni /* $Log: org_nevec_prima_simulator_SLALIB.c,v $ Revision 1.5 2005/09/14 17:00:02 mathar Replaced JNI functions with GetStringUTFChars by GetStringRegion to avoid that compilation with the slalib.h declarations complains lot about 'discard qualifiers' from the const <-> non-const mismatch. Revision 1.4 2005/09/09 20:31:16 mathar Implemented all about 180 native functions of TPOINT/src/slalib. Revision 1.3 2005/09/08 13:03:43 mathar Formally complete JNI interface to slalib. */