home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gnat-2.06-src.tgz / tar.out / fsf / gnat / ada / a-nudira.ads < prev    next >
Text File  |  1996-09-28  |  2KB  |  63 lines

  1. ------------------------------------------------------------------------------
  2. --                                                                          --
  3. --                         GNAT RUNTIME COMPONENTS                          --
  4. --                                                                          --
  5. --         A D A . N U M E R I C S . D I S C R E T E _ R A N D O M          --
  6. --                                                                          --
  7. --                                 S p e c                                  --
  8. --                                                                          --
  9. --                            $Revision: 1.6 $                              --
  10. --                                                                          --
  11. -- This specification is adapted from the Ada Reference Manual for use with --
  12. -- GNAT.  In accordance with the copyright of that document, you can freely --
  13. -- copy and modify this specification,  provided that if you redistribute a --
  14. -- modified version,  any changes that you have made are clearly indicated. --
  15. --                                                                          --
  16. ------------------------------------------------------------------------------
  17.  
  18. generic
  19.    type Result_Subtype is (<>);
  20. package Ada.Numerics.Discrete_Random is
  21.  
  22.    --  Basic facilities.
  23.  
  24.    type Generator is limited private;
  25.  
  26.    function Random (Gen : Generator) return Result_Subtype;
  27.  
  28.    procedure Reset (Gen : Generator);
  29.    procedure Reset (Gen : Generator; Initiator : Integer);
  30.  
  31.    --  Advanced facilities.
  32.  
  33.    type State is private;
  34.  
  35.    procedure Save  (Gen : Generator; To_State   : out State);
  36.    procedure Reset (Gen : Generator; From_State : State);
  37.  
  38.    Max_Image_Width : constant := 80;
  39.  
  40.    function Image (Of_State    : State)  return String;
  41.    function Value (Coded_State : String) return State;
  42.  
  43. private
  44.  
  45.    type Int_32 is range -2 ** 31 .. 2 ** 31 - 1;
  46.  
  47.    type Floating is digits 14;
  48.  
  49.    type State is record
  50.       X1, X2, P, Q : Int_32;
  51.       FP, Scale, Offset : Floating;
  52.    end record;
  53.  
  54.    type Pointer is access State;
  55.  
  56.    function Create return Pointer;
  57.  
  58.    type Generator is record
  59.       Point : Pointer := Create;
  60.    end record;
  61.  
  62. end Ada.Numerics.Discrete_Random;
  63.