/* C code transfer function for Neuron Network
   File : model0tfr.h
*/
#ifndef model0_TRANSFER_H
#define model0_TRANSFER_H

  #define MODEL            "model0"
  #define model0INPUTS     1
  #define model0OUTPUTS    1
  #define model0SYNAPSES   10
  #define model0NODES      7

  #include "netraltype.h"

  extern real model0weights[model0SYNAPSES];
  extern real model0min[model0INPUTS + model0OUTPUTS];
  extern real model0max[model0INPUTS + model0OUTPUTS];

#ifdef __cplusplus      
  extern "C" {
#endif

  void model0transfer(real*, real*);
  /*Module   : model0tfr
  Method     : model0transfer
  Visibility : Public
  Arguments  : inputs: real* -> variables d'entrée
               outputs: real* -> variables de sortie

  Description: Effectue le transfert par le réseau.
  Note : les poids utilisés sont les poids par défaut model0weights */

  void model0transferw(real*, real*, real*);
  /*Module   : model0tfr
  Method     : model0transferw
  Visibility : Public
  Arguments  : weights: real* -> les poids courants
               inputs: real* -> variables d'entrée
               outputs: real* -> variables de sortie

  Description: Effectue le transfert par le réseau. */

  long model0setweight(long, real);
  /*Module   : model0tfr
  Method     : model0setweight
  Visibility : Public
  Arguments  : index: long -> indice du poids visé
               value: real -> valeur à affecter */

  char *model0inputname(long);
  /*Module   : model0tfr
  Method     : model0inputname
  Visibility : Public
  Arguments  : index: long -> le rang de l'entrée
  Return     : char* -> le nom de l'entrée visée

  Description: retourne le nom de l'entrée visée. */

  char *model0outputname(long);
  /*Module   : model0tfr
  Method     : model0outputname
  Visibility : Public
  Arguments  : index: long -> le rang de la sortie
  Return     : char* -> le nom de la sortie visée

  Description: retourne le nom de la sortie visée. */

  char *model0weightname(long);
  /*Module   : model0tfr
  Method     : model0weightname
  Visibility : Public
  Arguments  : index: long -> le rang du poids
  Return     : char* -> le nom du poids visé

  Description: retourne le nom du poids visé. */

  real *model0inputrange(long);
  /*Module   : model0tfr
  Method     : model0inputrange
  Visibility : Public
  Arguments  : index: long -> le rang de l'entrée
  Return     : real* -> pointeur sur le tableau des valeurs Min et Max

  Description: retourne les valeurs min et max de l'entrée visée. Ces valeurs
    sont celles constatées lors de l'apprentissage */

  real *model0outputrange(long);
  /*Module   : model0tfr
  Method     : model0outputrange
  Visibility : Public
  Arguments  : index: long -> le rang de la sortie
  Return     : real* -> pointeur sur le tableau des valeurs Min et Max

  Description: retourne les valeurs min et max de la sortie visée. Ces valeurs
    sont celles constatées lors de l'apprentissage */

  long model0savew(char*, char*);
  /*Module   : model0tfr
  Method     : model0savew
  Visibility : Public
  Arguments  : filename: char* -> le nom du fichier cible ou NULL par défaut
               comment: char* -> commentaire à insérer en début de fichier
  Return     : long -> 0 si OK, sinon code d'erreur
                      1 -> impossible d'ouvrir le fichier

  Description: sauvegarde les valeurs des poids dans le fichier désigné. Si le 
  nom de fichier transmis est NULL, on utilise le fichier par défaut 
  "model0w.txt"*/

  long model0loadw(char*);
  /*Module   : model0tfr
  Method     : model0loadw
  Visibility : Public
  Arguments  : filename: char* -> le nom du fichier de poids ou NULL par défaut
  Return     : long -> 0 si OK, sinon code d'erreur
                      1 -> impossible d'ouvrir le fichier
                      2 -> le fichier de poids ne comporte pas le bon nombre de poids
                      3 -> la lecture n'a pas lu le bon nombre de poids. Dans ce cas, 
                           attention aux poids qui ont été modifiés

  Description: charge les valeurs des poids lues dans le fichier désigné. Si le 
  nom de fichier transmis est NULL, la recherche est faite dans le fichier par défaut
  "model0w.txt"*/

  real *model0getweightini(long index);
  /*Module   : model0tfr
  Method     : model0getweightini
  Visibility : Public
  Arguments  : index: indice du poids dont on lit les paramètres d'initialisation
  Return     : Pointer on  a double double.

  Description: lecture des paramètres d'initialisation d'un poids */
  
  long model0getwinit();
  /*Module   : model0tfr
  Method     : model0getwinit
  Visibility : Public
  Return     : weightinitialized value.

  Description: read the weight initialized state
  */

  void model0setwinit(long);
  /*Module   : model0tfr
  Method     : model0setwinit
  Visibility : Public
  Arguments  : long value

  Description: set the weight initialized state
  */

#ifdef __cplusplus      
  }
#endif

#endif



NETRAL - Neuro Code 6