File : reps-ops.ads


with Ada.Numerics.Generic_Elementary_Functions;

package Reps.Ops is

  function "*"(N: Integer; R: Rep) return Rep;
  function "/"(N: Integer; R: Rep) return Rep;
  function "/"(R: Rep; N: Integer) return Rep;
  function Sqr(R: Rep) return Rep;

  package Rep_EF is new Ada.Numerics.Generic_Elementary_Functions(Rep);

  function Sqrt(R: Rep) return Rep renames Rep_EF.Sqrt;
  function Cos(R: Rep) return Rep renames Rep_EF.Cos;
  function Sin(R: Rep) return Rep renames Rep_EF.Sin;
  function Log(R: Rep) return Rep renames Rep_EF.Log;
  function Cosh(R: Rep) return Rep renames Rep_EF.Cosh;
  function Sinh(R: Rep) return Rep renames Rep_EF.Sinh;
  function Exp(R: Rep) return Rep renames Rep_EF.Exp;

  S2: constant Rep := Sqrt(Two);
  S3: constant Rep := Sqrt(Three);
  S6: constant Rep := Sqrt(Six);

  pragma Inline ("*","/",Sqr);

end Reps.Ops;