in java/com_spotify_voyager_jni_Index.cpp [313:344]
void Java_com_spotify_voyager_jni_Index_nativeConstructor(
JNIEnv *env, jobject self, jobject spaceType, jint numDimensions, jlong M,
jlong efConstruction, jlong randomSeed, jlong maxElements,
jobject storageDataType) {
try {
switch (toStorageDataType(env, storageDataType)) {
case StorageDataType::Float32:
setHandle<Index>(env, self,
new TypedIndex<float>(toSpaceType(env, spaceType),
numDimensions, M, efConstruction,
randomSeed, maxElements));
break;
case StorageDataType::Float8:
setHandle<Index>(env, self,
new TypedIndex<float, int8_t, std::ratio<1, 127>>(
toSpaceType(env, spaceType), numDimensions, M,
efConstruction, randomSeed, maxElements));
break;
case StorageDataType::E4M3:
setHandle<Index>(env, self,
new TypedIndex<float, E4M3>(
toSpaceType(env, spaceType), numDimensions, M,
efConstruction, randomSeed, maxElements));
break;
}
} catch (std::exception const &e) {
if (!env->ExceptionCheck()) {
env->ThrowNew(env->FindClass("java/lang/RuntimeException"), e.what());
}
}
}