Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
approx_kfn.pl 4.72 KiB
:- module(approx_kfn, [ initDrusillaModelNoTrain/2,
initDrusillaModelWithTrain/5,
searchDrusilla/10,
trainDrusilla/5,
initQDAFNModelNoTrain/2,
initQDAFNModelWithTrain/5,
searchQDAFN/10,
trainQDAFN/5]).
%% requirements of library(struct)
:- load_files(library(str_decl),
[when(compile_time), if(changed)]).
%% needed for using the array type
:- use_module(library(structs)).
:- use_module('../../helper_files/helper.pl').
%% type definitions for the float array
:- foreign_type
float32 = float_32,
float_array = array(float32).
%% definitions for the connected function
%% --Input--
%% int l,
%% int m
%%
%% --Output--
%%
%% --Description--
%% Initiates the DrusillaSearch Model but doesnt train it.
%% trainDrusilla has to be used before searchDrusilla can be used.
%%
foreign(initDrusillaModelNoTrain, c, initDrusillaModelNoTrain(+integer, +integer)).
%% --Input--
%% mat referenceSet,
%% int l,
%% int m
%%
%% --Output--
%%
%% --Description--
%% Initiates the DrusillaSearch Model and trains it with the given reference Set.
%% Afterwards searchDrusilla can be used.
%%
foreign(initDrusillaModelWithTrain, c, initDrusillaModelWithTrain( +pointer(float_array), +integer, +integer,
+integer, +integer)).
%% --Input--
%% mat querySet,
%% int k
%%
%% --Output--
%% mat neighbors,
%% mat distances
%%
%% --Description--
%%
%%
foreign(searchDrusilla, c, searchDrusilla( +pointer(float_array), +integer, +integer,
+integer,
-pointer(float_array), -integer, -integer,
-pointer(float_array), -integer, -integer)).
%% --Input--
%% mat referenceSet,
%% int l => 0,
%% int m => 0
%%
%% --Output--
%%
%% --Description--
%% Trains the DrusillaSearch Model with the given reference Set.
%%
foreign(trainDrusilla, c, trainDrusilla(+pointer(float_array), +integer, +integer,
+integer, +integer)).
%% --Input--
%% int l,
%% int m
%%
%% --Output--
%%
%% --Description--
%% Initiates the QDAFNSearch Model but doesnt train it.
%% trainQDAFN has to be used before searchQDAFN can be used.
%%
foreign(initQDAFNModelNoTrain, c, initQDAFNModelNoTrain(+integer, +integer)).
%% --Input--
%% mat referenceSet,
%% int l,
%% int m
%%
%% --Output--
%%
%% --Description--
%% Initiates the QDAFNSearch Model and trains it with the given reference Set.
%% Afterwards searchQDAFN can be used.
%%
foreign(initQDAFNModelWithTrain, c, initQDAFNModelWithTrain( +pointer(float_array), +integer, +integer,
+integer, +integer)).
%% --Input--
%% mat querySet,
%% int k
%%
%% --Output--
%% mat neighbors,
%% mat distances
%%
%% --Description--
%%
%%
foreign(searchQDAFN, c, searchQDAFN( +pointer(float_array), +integer, +integer,
+integer,
-pointer(float_array), -integer, -integer,
-pointer(float_array), -integer, -integer)).
%% TODO:
%% --Input--
%% mat referenceSet,
%% int l => 0,
%% int m => 0
%%
%% --Output--
%%
%% --Description--
%% Trains the QDAFNSearch Model with the given reference Set.
%%
foreign(trainQDAFN, c, trainQDAFN( +pointer(float_array), +integer, +integer,
+integer, +integer)).
%% Defines the functions that get connected from main.cpp
foreign_resource(approx_kfn, [ initDrusillaModelNoTrain,
initDrusillaModelWithTrain,
searchDrusilla,
trainDrusilla,
initQDAFNModelNoTrain,
initQDAFNModelWithTrain,
searchQDAFN,
trainQDAFN]).
:- load_foreign_resource(approx_kfn).