liba 0.1.15

An algorithm library based on C/C++
Documentation
#include "a.h"
#include "a/trajpoly3.h"
#include "liba_trajpoly3.h"

#undef L
#define L Java_liba_trajpoly3
static struct
{
    jmethodID New;
    jfieldID ctx;
} L = {NULL, NULL};

JNIEXPORT void JNICALL Java_liba_trajpoly3_clinit(JNIEnv *Env, jclass Cls)
{
    jclass Nbb = (*Env)->FindClass(Env, "Ljava/nio/ByteBuffer;");
    L.New = (*Env)->GetStaticMethodID(Env, Nbb, "allocateDirect", "(I)Ljava/nio/ByteBuffer;");
    L.ctx = (*Env)->GetFieldID(Env, Cls, "ctx", "Ljava/nio/ByteBuffer;");
}

JNIEXPORT jobject JNICALL Java_liba_trajpoly3_gen(JNIEnv *Env, jobject Obj, jdouble ts, jdouble p0, jdouble p1, jdouble v0, jdouble v1)
{
    jobject Ctx = (*Env)->CallObjectMethod(Env, Obj, L.New, (jint)sizeof(a_trajpoly3));
    a_trajpoly3 *ctx = (a_trajpoly3 *)(*Env)->GetDirectBufferAddress(Env, Ctx);
    (*Env)->SetObjectField(Env, Obj, L.ctx, Ctx);
    a_trajpoly3_gen(ctx, ts, p0, p1, v0, v1);
    return Obj;
}

JNIEXPORT jobject JNICALL Java_liba_trajpoly3_p(JNIEnv *Env, jobject Obj)
{
    jobject Ctx = (*Env)->GetObjectField(Env, Obj, L.ctx);
    a_trajpoly3 *ctx = (a_trajpoly3 *)(*Env)->GetDirectBufferAddress(Env, Ctx);
    jobject p = (*Env)->NewDoubleArray(Env, A_LEN(ctx->p));
    (*Env)->SetDoubleArrayRegion(Env, p, 0, A_LEN(ctx->p), ctx->p);
    return p;
}

JNIEXPORT jobject JNICALL Java_liba_trajpoly3_v(JNIEnv *Env, jobject Obj)
{
    jobject Ctx = (*Env)->GetObjectField(Env, Obj, L.ctx);
    a_trajpoly3 *ctx = (a_trajpoly3 *)(*Env)->GetDirectBufferAddress(Env, Ctx);
    jobject v = (*Env)->NewDoubleArray(Env, A_LEN(ctx->v));
    (*Env)->SetDoubleArrayRegion(Env, v, 0, A_LEN(ctx->v), ctx->v);
    return v;
}

JNIEXPORT jobject JNICALL Java_liba_trajpoly3_a(JNIEnv *Env, jobject Obj)
{
    jobject Ctx = (*Env)->GetObjectField(Env, Obj, L.ctx);
    a_trajpoly3 *ctx = (a_trajpoly3 *)(*Env)->GetDirectBufferAddress(Env, Ctx);
    jobject a = (*Env)->NewDoubleArray(Env, A_LEN(ctx->a));
    (*Env)->SetDoubleArrayRegion(Env, a, 0, A_LEN(ctx->a), ctx->a);
    return a;
}

JNIEXPORT jdouble JNICALL Java_liba_trajpoly3_pos(JNIEnv *Env, jobject Obj, jdouble x)
{
    jobject Ctx = (*Env)->GetObjectField(Env, Obj, L.ctx);
    a_trajpoly3 *ctx = (a_trajpoly3 *)(*Env)->GetDirectBufferAddress(Env, Ctx);
    return a_trajpoly3_pos(ctx, x);
}

JNIEXPORT jdouble JNICALL Java_liba_trajpoly3_vel(JNIEnv *Env, jobject Obj, jdouble x)
{
    jobject Ctx = (*Env)->GetObjectField(Env, Obj, L.ctx);
    a_trajpoly3 *ctx = (a_trajpoly3 *)(*Env)->GetDirectBufferAddress(Env, Ctx);
    return a_trajpoly3_vel(ctx, x);
}

JNIEXPORT jdouble JNICALL Java_liba_trajpoly3_acc(JNIEnv *Env, jobject Obj, jdouble x)
{
    jobject Ctx = (*Env)->GetObjectField(Env, Obj, L.ctx);
    a_trajpoly3 *ctx = (a_trajpoly3 *)(*Env)->GetDirectBufferAddress(Env, Ctx);
    return a_trajpoly3_acc(ctx, x);
}