/*
   C advanced code transfer function for Neuron Network
   File : model0Lev.h
*/

#ifndef model0_TRANSFERLEV_H
#define model0_TRANSFERLEV_H

  #define DISPERSION "dispersion"
  #define model0STUDENT95  2.00681676717028
  #define model0STDTRDEV   0.270659938187292
  #define model0MATRIXES   55
  #define mindex(i,j) (i>j)?(j+i*(i+1)/2):(i+j*(j+1)/2)

  #include "netraltype.h"

  extern real model0matrix[model0MATRIXES];

#ifdef __cplusplus      
  extern "C" {
#endif

  void model0transferlev(real*, real*, real*);
  /*Module   : model0lev
  Method     : model0transferlev
  Visibility : Public
  Arguments  : inputs: real* -> les entrées
               outputs: real* -> les sorties calculées
               leverage: real* -> les leviers calculés
  Description: Effectue un transfert par le réseau avec calcul du gradient, puis
    calcule les leviers.*/

  void model0transferlevW(real*, real*, real*, real*, real*);
  /*Module   : model0lev
  Method     : model0transferlevW
  Visibility : Public
  Arguments  : weights: real* -> les poids courants
               zmat: real* -> la matrice (ZtZ)inv
               inputs: real* -> les entrées
               outputs: real* -> les sorties calculées
               leverage: real* -> les leviers calculés
  Description: Effectue un transfert par le réseau avec calcul du gradient, puis
    calcule les leviers.*/

  long model0loadwl(char*);
  /*Module   : model0tfr
  Method     : model0loadwl
  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
                      4 -> le nombre de valeurs de dispersion est incorrect
                      5 -> la lecture n'a pas lu le bon nombre d'éléments de la matrice 
                           de dispersion. Dans ce cas, attention aux éléments qui ont 
                           été modifiés

  Description: charge les valeurs des poids et de la matrice de dispersionlues 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"*/

  long model0savewl(char*, char*);
  /*Module   : model0tfr
  Method     : model0savewl
  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 et de la matrice de dispersion dans le 
  fichier désigné. Si le nom de fichier transmis est NULL, on utilise le fichier par 
  défaut "model0w.txt"*/

#ifdef __cplusplus      
  }
#endif

#endif



NETRAL - Neuro Code 6