package body standard_floating_numbers is function Create ( n : natural ) return single_float is begin return single_float(n); end Create; function Create ( n : natural ) return double_float is begin return double_float(n); end Create; function Equal ( a,b : single_float ) return boolean is begin return (a = b); end equal; function Equal ( a,b : double_float ) return boolean is begin return (a = b); end Equal; function AbsVal ( a : single_float ) return single_float is begin return ABS(a); end AbsVal; function AbsVal ( a : double_float ) return double_float is begin return ABS(a); end AbsVal; procedure Copy ( a : in single_float; b : in out single_float ) is begin b := a; end Copy; procedure Copy ( a : in double_float; b : in out double_float ) is begin b := a; end Copy; procedure Add ( a : in out single_float; b : in single_float ) is begin a := a + b; end Add; procedure Add ( a : in out double_float; b : in double_float ) is begin a := a + b; end Add; procedure Sub ( a : in out single_float; b : in single_float ) is begin a := a - b; end Sub; procedure Sub ( a : in out double_float; b : in double_float ) is begin a := a - b; end Sub; procedure Min ( a : in out single_float ) is begin a := -a; end Min; procedure Min ( a : in out double_float ) is begin a := -a; end Min; procedure Mul ( a : in out single_float; b : in single_float ) is begin a := a*b; end Mul; procedure Mul ( a : in out double_float; b : in double_float ) is begin a := a*b; end Mul; procedure Div ( a : in out single_float; b : in single_float ) is begin a := a/b; end Div; procedure Div ( a : in out double_float; b : in double_float ) is begin a := a/b; end Div; procedure Clear ( a : in out single_float ) is begin null; end Clear; procedure Clear ( a : in out double_float ) is begin null; end Clear; end Standard_Floating_Numbers;