File : numerics-ops-fou.ads


with Fouriers_Init, Fouriers;
use Fouriers_Init;

generic

  Lmax, Wmax, Pdeg: in Positive;
  Dho: in Natural;

package Numerics.Ops.Fou is

  package Polynoms is new Fouriers (Lmax => Lmax, Wmax => Wmax, Pdeg => Pdeg, Dho => Dho, Scalar => Numeric);

  subtype Polynom is Polynoms.Fourier;

  function Par(H: Polynom) return Parity;
  function Rho(H: Polynom) return Weights;
  function Deg(M,N: Integer; H: Polynom) return DegType;
  procedure SetZero(J: in Parity; R: in Weights; H: out Polynom);
  function Component(M,N,K: Integer; H: Polynom) return Rep;
  procedure SetComponent(M,N,K: in Integer; R: in Rep; H: in out Polynom);
  function NumInv(Err: Radius; H: Polynom) return Polynom;
  function NumFixComp3(Err: Radius; H: Polynom) return Polynom;
  function NumInvAplus1(Err: Radius; L: Degrees; Hdq,Hdp,F: Polynom) return Polynom;

end Numerics.Ops.Fou;