     with HHNM; use HHNM;

     package FISL is
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     Copyright : constant string :=
       "FISL v1.00 (C) 1994 David Wallace Croft.  All rights reserved.";
     Description : constant string :=
       "Frustrated Inculcated Synaptic Localized (FISL) Learning";
     ----------------------------------------------------------------------
     Weight_Def     : constant float := 4.45148e-5;
     Weight_Min_Def : constant float := 1.0E-100;
     Weight_Max_Def : constant float := 1.0E+100;
     Threshold_Def  : constant float := -63.0E-3;    -- Volts
     Learn_Rate_Def : constant float := 0.1;         -- unitless
     Frequency_Def  : constant float := 40.0;        -- Hz
     Time_Max_Def   : constant float := 1.0;         -- seconds
     ----------------------------------------------------------------------
     type Synapse_Type is
       record
	 W : float := Weight_Def;
	 I : float := 0.0;
       end record;
     type Synapses_Type is array ( integer range <> ) of Synapse_Type;
     ----------------------------------------------------------------------
     procedure Demo;
     function Fixed (
       Phase_Shift  : in     float := 0.0;
       Weight_Float : in     float := Weight_Def * 0.1;
       Weight_Fixed : in     float := Weight_Def * 0.9;
       Time_Max     : in     float := 1.0 )
       return float;
     procedure Fixed_Demo;
     function Learn (
       Weight     : float;
       I_Syn      : float;
       Vm         : float;
       Time_Delta : float := Time_Delta_Default;
       Learn_Rate : float := Learn_Rate_Def;
       Threshold  : float := Threshold_Def;
       Weight_Min : float := Weight_Min_Def;
       Weight_Max : float := Weight_Max_Def )
       return float;
     procedure Single;
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     end FISL;
