------------------------------------------------------------------------------ -- -- -- GNAT RUNTIME COMPONENTS -- -- -- -- 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 -- -- -- -- S p e c -- -- -- -- $Revision: 2 $ -- -- -- -- This specification is adapted from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- -- -- ------------------------------------------------------------------------------ generic type Result_Subtype is (<>); package Ada.Numerics.Discrete_Random is -- Basic facilities. type Generator is limited private; function Random (Gen : Generator) return Result_Subtype; procedure Reset (Gen : Generator); procedure Reset (Gen : Generator; Initiator : Integer); -- Advanced facilities. type State is private; procedure Save (Gen : Generator; To_State : out State); procedure Reset (Gen : Generator; From_State : State); Max_Image_Width : constant := 80; function Image (Of_State : State) return String; function Value (Coded_State : String) return State; private type Int_32 is range -2 ** 31 .. 2 ** 31 - 1; type Floating is digits 14; type State is record X1, X2, P, Q : Int_32; FP, Scale, Offset : Floating; end record; type Pointer is access State; function Create return Pointer; type Generator is record Point : Pointer := Create; end record; end Ada.Numerics.Discrete_Random;