|
Extensions version 4
|
| Spécification de la librairie dynamique accessoire.
|
|
|
| Nom de la DLL: "NeuroMath.dll"
|
|
|
| types spécifiques :
|
| TNeuroneFonction = (_Activation, _Cost);
|
| enum TNeuroneFonction = _Activation, _Cost;
|
|
|
| La librairie doit contenir deux fonctions d'interrogation :
|
|
|
| Function FunctionNumber(var IndexF, IndexD: integer; NF: TNeuroneFonction): Integer; stdCall;
|
| int __stdcall FunctionNumber(int & IndexF, int & IndexD, TNeuroneFonction NF);
|
|
|
| IN NF : fonction d'activation ou fonction de coût
|
| OUT IndexF : indice d'exportation de la première fonction du type
|
| OUT IndexD : indice d'exportation de la première fonction dérivée du type
|
| retour Nombre de fonctions du type à lire
|
|
|
| et
|
|
|
| Function FunctionName(Dest: PChar; Index: integer; NF: TNeuroneFonction): PChar; stdCall;
|
| char * __stdcall FunctionName(char * Dest, int Index, TNeuroneFonction NF)
|
|
|
| IN NF : fonction d'activation ou fonction de coût
|
| IN Index : indice de la fonction du type visée
|
| IN/OUT Dest : Buffer de destination
|
| retour Pointeur sur le buffer de destination.
|
|
|
| Cette fonction charge le nom de la fonction dans le buffer de destination.
|
| Le nom ne peut pas être une chaîne vide.
|
|
|
| Les fonctions d'activation et leurs dérivées doivent répondre au prototype :
|
|
|
| Function Function(X: Double; var code: Integer): Double; stdCall;
|
| double __stdcall Function(double A, int & code);
|
|
|
| IN X : potentiel du neurone
|
| OUT code: 0 si OK, code d'erreur sinon
|
| retour l'activation calculée
|
|
|
| Les fonctions de coût et leurs dérivées doivent répondre au prototype :
|
|
|
| Function Function(A, B, C: Double; var code: Integer): Double; stdCall;
|
| double __stdcall Function(double A, double B, double C, int & code);
|
|
|
| IN A : Valeur de sortie calculée
|
| IN B : Valeur de sortie désirée
|
| IN C : Paramètre à la disposition du développeur
|
| OUT code : 0 si calcul OK, code d'erreur sinon
|
| retour le coût calculé
|
|
|
|
|
|
|
| Les fonctions doivent être exportées par la DLL avec l'indice d'exportation calculé à partir des informations données dans FunctionNumber et de l'indice de la fonction dans son type. Pour chaque nouvelle fonction, il faut fournir la fonction et sa dérivée.
|
|
|
!!!!!!!!!!!!!! ATTENTION !!!!!!!!!!!!!!!!!
|
|
|
| La responsabilité du développeur est engagée dans le résultat de l'utilisation des fonctions ainsi définies. MONAL et Neuro One n'ont aucun moyen de gérer les exceptions éventuellement générées dans la DLL "NeuroMath" au cours des calculs. En cas d'exception dans cette DLL, le programme s'arrêtera. Cette éventualité peut facilement être évitée en capturant et en gérant les exceptions au sein même de la DLL.
|
|
|
| Présentation des extensions
|
|
|