diff options
author | Jed Barber <jjbarber@y7mail.com> | 2017-02-07 00:21:59 +1100 |
---|---|---|
committer | Jed Barber <jjbarber@y7mail.com> | 2017-02-07 00:21:59 +1100 |
commit | f11c770329edf407de1e534e286ecbfd2a3495c9 (patch) | |
tree | d479a20db6b31edc4d56c364f93ee416b9bfeda1 /src/rationals.ads | |
parent | 8f2f6a5e2074a5da684f9f1a5f5e8f3c51a82b76 (diff) |
Rationals package added
Diffstat (limited to 'src/rationals.ads')
-rw-r--r-- | src/rationals.ads | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/src/rationals.ads b/src/rationals.ads new file mode 100644 index 0000000..03ac95e --- /dev/null +++ b/src/rationals.ads @@ -0,0 +1,218 @@ + + +package Rationals is + + + type Fraction is private; + + + + + function "+" + (Left, Right : in Fraction) + return Fraction; + + function "+" + (Left : in Fraction; + Right : in Integer) + return Fraction; + + function "+" + (Left : in Integer; + Right : in Fraction) + return Fraction; + + + + + function "-" + (Left, Right : in Fraction) + return Fraction; + + function "-" + (Left : in Fraction; + Right : in Integer) + return Fraction; + + function "-" + (Left : in Integer; + Right : in Fraction) + return Fraction; + + + + + function "-" + (Right : in Fraction) + return Fraction; + + + + + function "*" + (Left, Right : in Fraction) + return Fraction; + + function "*" + (Left : in Fraction; + Right : in Integer) + return Fraction; + + function "*" + (Left : in Integer; + Right : in Fraction) + return Fraction; + + + + + function "/" + (Left, Right : in Fraction) + return Fraction; + + function "/" + (Left : in Fraction; + Right : in Integer) + return Fraction; + + function "/" + (Left : in Integer; + Right : in Fraction) + return Fraction; + + function "/" + (Left, Right : in Integer) + return Fraction; + + + + + function "=" + (Left, Right : in Fraction) + return Boolean; + + function "=" + (Left : in Fraction; + Right : in Integer) + return Boolean; + + function "=" + (Left : in Integer; + Right : in Fraction) + return Boolean; + + + + + function "<=" + (Left, Right : in Fraction) + return Boolean; + + function "<=" + (Left : in Fraction; + Right : in Integer) + return Boolean; + + function "<=" + (Left : in Integer; + Right : in Fraction) + return Boolean; + + + + + function "<" + (Left, Right : in Fraction) + return Boolean; + + function "<" + (Left : in Fraction; + Right : in Integer) + return Boolean; + + function "<" + (Left : in Integer; + Right : in Fraction) + return Boolean; + + + + + function ">=" + (Left, Right : in Fraction) + return Boolean; + + function ">=" + (Left : in Fraction; + Right : in Integer) + return Boolean; + + function ">=" + (Left : in Integer; + Right : in Fraction) + return Boolean; + + + + + function ">" + (Left, Right : in Fraction) + return Boolean; + + function ">" + (Left : in Fraction; + Right : in Integer) + return Boolean; + + function ">" + (Left : in Integer; + Right : in Fraction) + return Boolean; + + + + + function Numerator + (Item : in Fraction) + return Integer; + + function Denominator + (Item : in Fraction) + return Integer; + + function Floor + (Item : in Fraction) + return Integer; + + function Ceiling + (Item : in Fraction) + return Integer; + + function Round + (Item : in Fraction) + return Integer; + + + + + function Image + (Item : in Fraction) + return String; + + function Value + (Item : in String) + return Fraction; + + +private + + + type Fraction is record + Num : Integer := 0; + Den : Integer := 1; + end record; + + +end Rationals; + + |