     ----------------------------------------------------------------------
     -- Title       :  MathAK
     -- Version     :  1.10
     -- Author      :  David Wallace Croft, CompuServe [76600,102]
     -- Compiler    :  standard Ada
     -- Unit Type   :  package specification
     -- Copyright   :  1994 David Wallace Croft.  All rights reserved.
     -- Description :  Math
     ----------------------------------------------------------------------

     with A83_014_Vector; use A83_014_Vector;
     with A83_015_Matrix; use A83_015_Matrix;
--   with FileAK; use FileAK; -- for Interpolate_Type

     package MathAK is
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     Copyright : constant string :=
       "MathAK v1.00 (C) 1994 David Wallace Croft.  All rights reserved.";
     ----------------------------------------------------------------------
     E  : constant float
       := 2.71828_18284_59045_23536_02874_71352_66249_77572;
     Pi : constant float
       := 3.14159_26535_89793_23846_26433_83279_50288_41972;
     ----------------------------------------------------------------------
     type Float_Array is array ( integer range <> ) of float;
     type Float_Array_2 is array ( integer range <>, integer range <> )
       of float;
     ----------------------------------------------------------------------
--   type Interpolate_Type is
--     record
--       Old_File : File_Type;
--       Tmp_File : File_Type;
--       Old_1    : float;
--       Old_2    : float;
--       Last_1   : natural;
--       Last_2   : natural;
--       Old_Line_1 : Line_Type;
--       Old_Line_2 : Line_Type;
--       Start_Over : boolean := true;
--     end record;
     ----------------------------------------------------------------------
     function "**" ( -- not sure how accurate
       X, Y : float )
       return float;
     procedure Alpha (
       V        : in out float;
       dV_dt    : in out float;
       Stimulus : in     float := 0.0;
       Decay    : in     float := 1.0;
       dt       : in     float := 0.001 );
     function Characteristic (
       InFloat : in float )
       return integer;
     function Combination (
       N : in natural;
       R : in natural )
       return float;
     function Cos (
       R : in float ) -- radians
       return float;
     function Crosscorrelation (
       X, Y : in     Vector_Type )
       return Vector_Type;
     procedure Demo;
     function Exp (
       I : in integer )
       return float;
     function Exp (
       F : in float )
       return float;
     function Factorial (
       X : in natural )
       return float;
     procedure Integrate (
       Y: in out Float_Array;
       F: in     Float_Array_2;
       E: in     float );
--   procedure Interpolate (
--     Completed       :    out boolean;
--     Mid_Point       : in out float;
--     Rec             : in out Interpolate_Type;
--     Results         : in     string  := "";
--     Old_File_Name   : in     string  := "";
--     Tmp_File_Name   : in     string  := "" );
--   procedure Interpolate_Demo;
     function Ln (  -- only defined for X > 0, not sure how accurate
       X : float )
       return float;
     function Minimum (
       X, Y : float )
       return float;
     function Odd (
       I : in integer )
       return boolean;
     function Sigmoid (
       F : float )
       return float;
     function Sin (
       R : in float ) -- radians
       return float;
     function Sqr (  -- squares the value:  Sqr ( F ) := F ** 2
       F : float )
       return float;
     function TanH (
       F : float )
       return float;
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     end MathAK;

