⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 javanns_kernelinterface.c

📁 著名的神经网络工具箱
💻 C
📖 第 1 页 / 共 5 页
字号:
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitSubnetNo(JNIEnv *jEnv, jobject jObj,
                                     jint unitNo, jint subnetNo) {
  krui_setUnitSubnetNo(unitNo, subnetNo);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    getUnitLayerNo
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_getUnitLayerNo(JNIEnv *jEnv, jobject jObj, jint unitNo) {
  return krui_getUnitLayerNo(unitNo);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    setUnitLayerNo
 * Signature: (II)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitLayerNo(JNIEnv *jEnv, jobject jObj,
                                    jint unitNo,
                                    jint layerNo) {
  krui_setUnitLayerNo(unitNo, layerNo);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    getUnitPosition
 * Signature: (I)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_getUnitPosition(JNIEnv *jEnv, jobject jObj, jint unitNo) {
  jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
  jfieldID fid;
  struct PosType pos;

  krui_getUnitPosition(unitNo, &pos);

  fid = (*jEnv)->GetFieldID(jEnv, cls, "posX", "I");
  if(fid) (*jEnv)->SetIntField(jEnv, jObj, fid, pos.x);
  fid = (*jEnv)->GetFieldID(jEnv, cls, "posY", "I");
  if(fid) (*jEnv)->SetIntField(jEnv, jObj, fid, pos.y);
  fid = (*jEnv)->GetFieldID(jEnv, cls, "posZ", "I");
  if(fid) (*jEnv)->SetIntField(jEnv, jObj, fid, pos.z);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    setUnitPosition
 * Signature: (I)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitPosition(JNIEnv *jEnv, jobject jObj, jint unitNo) {
  jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
  jfieldID fid;
  struct PosType pos;

  fid = (*jEnv)->GetFieldID(jEnv, cls, "posX", "I");
  if(fid) pos.x = (*jEnv)->GetIntField(jEnv, jObj, fid);
  fid = (*jEnv)->GetFieldID(jEnv, cls, "posY", "I");
  if(fid) pos.y = (*jEnv)->GetIntField(jEnv, jObj, fid);
  fid = (*jEnv)->GetFieldID(jEnv, cls, "posZ", "I");
  if(fid) pos.z = (*jEnv)->GetIntField(jEnv, jObj, fid);

  krui_setUnitPosition(unitNo, &pos);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    getUnitNoAtPosition
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_getUnitNoAtPosition(JNIEnv *jEnv, jobject jObj, jint subnetNo) {
  jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
  jfieldID fid;
  struct PosType pos;

  fid = (*jEnv)->GetFieldID(jEnv, cls, "posX", "I");
  if(fid) pos.x = (*jEnv)->GetIntField(jEnv, jObj, fid);
  fid = (*jEnv)->GetFieldID(jEnv, cls, "posY", "I");
  if(fid) pos.y = (*jEnv)->GetIntField(jEnv, jObj, fid);
  fid = (*jEnv)->GetFieldID(jEnv, cls, "posZ", "I");
  if(fid) pos.z = (*jEnv)->GetIntField(jEnv, jObj, fid);

  return krui_getUnitNoAtPosition(&pos, subnetNo);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    getUnitNoNearPosition
 * Signature: (III)I
 */
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_getUnitNoNearPosition(JNIEnv *jEnv, jobject jObj,
                                           jint subnetNo,
                                           jint range,
                                           jint gridWidth) {
  jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
  jfieldID fid;
  struct PosType pos;

  fid = (*jEnv)->GetFieldID(jEnv, cls, "posX", "I");
  if(fid) pos.x = (*jEnv)->GetIntField(jEnv, jObj, fid);
  fid = (*jEnv)->GetFieldID(jEnv, cls, "posY", "I");
  if(fid) pos.y = (*jEnv)->GetIntField(jEnv, jObj, fid);
  fid = (*jEnv)->GetFieldID(jEnv, cls, "posZ", "I");
  if(fid) pos.z = (*jEnv)->GetIntField(jEnv, jObj, fid);

  return krui_getUnitNoNearPosition(&pos, subnetNo, range, gridWidth);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    getUnitTType
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_getUnitTType(JNIEnv *jEnv, jobject jObj, jint unitNo) {
  return krui_getUnitTType(unitNo);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    setUnitTType
 * Signature: (II)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitTType(JNIEnv *jEnv, jobject jObj,
                                  jint unitNo,
                                  jint unitTType) {
  isOK(jEnv, krui_setUnitTType(unitNo, unitTType) );
}

/*
 * Class:     javanns_KernelInterface
 * Method:    freezeUnit
 * Signature: (I)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_freezeUnit(JNIEnv *jEnv, jobject jObj, jint unitNo) {
  isOK(jEnv, krui_freezeUnit(unitNo) );
}

/*
 * Class:     javanns_KernelInterface
 * Method:    unfreezeUnit
 * Signature: (I)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_unfreezeUnit(JNIEnv *jEnv, jobject jObj, jint unitNo) {
  isOK(jEnv, krui_unfreezeUnit(unitNo) );
}

/*
 * Class:     javanns_KernelInterface
 * Method:    isUnitFrozen
 * Signature: (I)Z
 */
JNIEXPORT jboolean JNICALL
Java_javanns_KernelInterface_isUnitFrozen(JNIEnv *jEnv, jobject jObj, jint unitNo) {
  return krui_isUnitFrozen(unitNo);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    getUnitInputType
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_getUnitInputType(JNIEnv *jEnv, jobject jObj, jint unitNo) {
  return krui_getUnitInputType(unitNo);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    getUnitValueA
 * Signature: (I)D
 */
JNIEXPORT jdouble JNICALL
Java_javanns_KernelInterface_getUnitValueA(JNIEnv *jEnv, jobject jObj, jint unitNo) {
  return krui_getUnitValueA(unitNo);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    setUnitValueA
 * Signature: (ID)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitValueA(JNIEnv *jEnv, jobject jObj,
                                   jint unitNo,
                                   jdouble unitValueA) {
  krui_setUnitValueA(unitNo, unitValueA);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    createDefaultUnit
 * Signature: ()I
 */
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_createDefaultUnit(JNIEnv *jEnv, jobject jObj) {
  int i = krui_createDefaultUnit();
  isOK(jEnv, i);
  return i;
}

/*
 * Class:     javanns_KernelInterface
 * Method:    createUnit
 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;DD)I
 */
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_createUnit(JNIEnv *jEnv, jobject jObj,
                                jstring jName,
                                jstring jOutFn,
                                jstring jActFn,
                                jdouble iAct,
                                jdouble bias) {
  const char *name = (*jEnv)->GetStringUTFChars(jEnv, jName, 0);
  const char *outFn = (*jEnv)->GetStringUTFChars(jEnv, jOutFn, 0);
  const char *actFn = (*jEnv)->GetStringUTFChars(jEnv, jActFn, 0);
  int i = krui_createUnit((char *)name, (char *)outFn, (char *)actFn, iAct, bias);
  (*jEnv)->ReleaseStringUTFChars(jEnv, jName, name);
  (*jEnv)->ReleaseStringUTFChars(jEnv, jOutFn, outFn);
  (*jEnv)->ReleaseStringUTFChars(jEnv, jActFn, actFn);
  isOK(jEnv, i);
  return i;
}

/*
 * Class:     javanns_KernelInterface
 * Method:    createFTypeUnit
 * Signature: (Ljava/lang/String;)I
 */
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_createFTypeUnit(JNIEnv *jEnv, jobject jObj, jstring jFtName) {
  const char *ftName = (*jEnv)->GetStringUTFChars(jEnv, jFtName, 0);
  int i = krui_createFTypeUnit( (char *)ftName );
  (*jEnv)->ReleaseStringUTFChars(jEnv, jFtName, ftName);
  isOK(jEnv, i);
  return i;
}

/*
 * Class:     javanns_KernelInterface
 * Method:    setUnitFType
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitFType(JNIEnv *jEnv, jobject jObj,
                                  jint unitNo,
                                  jstring jFtName) {
  const char *ftName = (*jEnv)->GetStringUTFChars(jEnv, jFtName, 0);
  int i = krui_setUnitFType( unitNo, (char *)ftName );
  (*jEnv)->ReleaseStringUTFChars(jEnv, jFtName, ftName);
  isOK(jEnv, i);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    copyUnit
 * Signature: (II)I
 */
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_copyUnit(JNIEnv *jEnv, jobject jObj,
                              jint unitNo,
                              jint copyMode) {
  int i = krui_copyUnit(unitNo, copyMode);
  isOK(jEnv, i);
  return i;
}

/*
 * Class:     javanns_KernelInterface
 * Method:    deleteUnitList
 * Signature: ([I)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_deleteUnitList(JNIEnv *jEnv, jobject jObj, jintArray jUnitNos) {
  int i;
  jsize len = (*jEnv)->GetArrayLength(jEnv, jUnitNos);
  jint *units = (*jEnv)->GetIntArrayElements(jEnv, jUnitNos, 0);
  int *unit_array = (int *)malloc(len*sizeof(int));

  if(unit_array) {
    for(i=0; i<len; i++) unit_array[i] = units[i];
    i = krui_deleteUnitList(len, unit_array);
    free(unit_array);
  }
  else {
    error(jEnv, "Out of memory: malloc failed in deleteUnitList");
    i=0;
  }
  (*jEnv)->ReleaseIntArrayElements(jEnv, jUnitNos, units, 0);
  isOK(jEnv, i);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    createSiteTableEntry
 * Signature: (Ljava/lang/String;Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_createSiteTableEntry(JNIEnv *jEnv, jobject jObj,
                                          jstring jSiteName,
                                          jstring jSiteFn) {
  const char *name = (*jEnv)->GetStringUTFChars(jEnv, jSiteName, 0);
  const char *fn = (*jEnv)->GetStringUTFChars(jEnv, jSiteFn, 0);
  int i = krui_createSiteTableEntry( (char *)name, (char *)fn);
  (*jEnv)->ReleaseStringUTFChars(jEnv, jSiteFn, fn);
  (*jEnv)->ReleaseStringUTFChars(jEnv, jSiteName, name);
  isOK(jEnv, i);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    changeSiteTableEntry
 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_changeSiteTableEntry(JNIEnv *jEnv, jobject jObj,
                                          jstring jOldSiteName,
                                          jstring jNewSiteName,
                                          jstring jNewSiteFn) {
  const char *oldName = (*jEnv)->GetStringUTFChars(jEnv, jOldSiteName, 0);
  const char *newName = (*jEnv)->GetStringUTFChars(jEnv, jNewSiteName, 0);
  const char *fn = (*jEnv)->GetStringUTFChars(jEnv, jNewSiteFn, 0);
  int i = krui_changeSiteTableEntry( (char *)oldName, (char *)newName, (char *)fn);
  (*jEnv)->ReleaseStringUTFChars(jEnv, jNewSiteFn, fn);
  (*jEnv)->ReleaseStringUTFChars(jEnv, jNewSiteName, newName);
  (*jEnv)->ReleaseStringUTFChars(jEnv, jOldSiteName, oldName);
  isOK(jEnv, i);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    deleteSiteTableEntry
 * Signature: (Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_deleteSiteTableEntry(JNIEnv *jEnv, jobject jObj, jstring jSiteName) {
  const char *name = (*jEnv)->GetStringUTFChars(jEnv, jSiteName, 0);
  int i = krui_deleteSiteTableEntry( (char *)name );
  (*jEnv)->ReleaseStringUTFChars(jEnv, jSiteName, name);
  isOK(jEnv, i);
}

/*
 * Class:     javanns_KernelInterface
 * Method:    getFirstSiteTableEntry
 * Signature: ()Z
 */
JNIEXPORT jboolean JNICALL
Java_javanns_KernelInterface_getFirstSiteTableEntry(JNIEnv *jEnv, jobject jObj) {
  char name[128];
  char fn[128];
  char *p_name = name;
  char *p_fn = fn;
  jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
  jfieldID fid;

  bool b = krui_getFirstSiteTableEntry( &p_name, &p_fn );

  fid = (*jEnv)->GetFieldID(jEnv, cls, "siteName", "Ljava/lang/String;");
  if(fid) (*jEnv)->SetObjectField(jEnv, jObj, fid, (*jEnv)->NewStringUTF(jEnv, name ) );
  fid = (*jEnv)->GetFieldID(jEnv, cls, "siteFunction", "Ljava/lang/String;");
  if(fid) (*jEnv)->SetObjectField(jEnv, jObj, fid, (*jEnv)->NewStringUTF(jEnv, fn ) );

  return b;
}

/*
 * Class:     javanns_KernelInterface
 * Method:    getNextSiteTableEntry
 * Signature: ()Z
 */
JNIEXPORT jboolean JNICALL
Java_javanns_KernelInterface_getNextSiteTableEntry(JNIEnv *jEnv, jobject jObj) {
  char name[128];
  char fn[128];
  char *p_name = name;
  char *p_fn = fn;
  jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
  jfieldID fid;

  bool b = krui_getNextSiteTableEntry( &p_name, &p_fn );

  fid = (*jEnv)->GetFieldID(jEnv, cls, "siteName", "Ljava/lang/String;");
  if(fid) (*jEnv)->SetObjectField(jEnv, jObj, fid, (*jEnv)->NewStringUTF(jEnv, name ) );
  fid = (*jEnv)->GetFieldID(jEnv, cls, "siteFunction", "Ljava/lang/String;");
  if(fid) (*jEnv)->SetObjectField(jEnv, jObj, fid, (*jEnv)->NewStringUTF(jEnv, fn ) );

  return b;
}

/*
 * Class:     javanns_KernelInterface
 * Method:    getSiteTableFuncName
 * Signature: (Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL
Java_javanns_KernelInterface_getSiteTableFuncName(JNIEnv *jEnv, jobject jObj, jstring jSiteName) {
  const char *name = (*jEnv)->GetStringUTFChars(jEnv, jSiteName, 0);
  char *fn = krui_getSiteTableFuncName( (char *)name);
  (*jEnv)->ReleaseStringUTFChars(jEnv, jSiteName, name);
  if(fn) return (*jEnv)->NewStringUTF(jEnv, fn );
  else return (*jEnv)->NewStringUTF(jEnv, "" );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -