File : fouriers-io.ads


with Ada.Text_IO, Taylors.IO;
use Ada.Text_IO;

pragma Elaborate_All (Ada.Text_IO, Taylors.IO);

generic

  with procedure Show(S: in Scalar; NewLine: in Boolean := True) is <>;
  with procedure Get(F: in File_Type; S: out Scalar; Decimal: in Boolean := True) is <>;
  with procedure Put(F: in File_Type; S: in Scalar; Decimal: in Boolean := True) is <>;

package Fouriers.IO is

  package Components_IO is new Components.IO;

  procedure Show(S: in String; R: in Weights; Decimal: in Boolean := True);
  procedure Show(L: in Degrees);
  procedure Show(H: in Fourier; Cut: in Rep := Zero);           -- Show coeffs of H  (of modulus>Cut)
  procedure Read(Name: in String; J: in Parity; R: in Weights;
                 H: out Fourier; Decimal: in Boolean := True);  -- Read H from file Name
  procedure Write(Name: in String;
                  H: in Fourier; Decimal: in Boolean := True);  -- Write H to file Name

  procedure Show(H: in Sobolev; Cut: in Rep := Zero);           -- Show coeffs of H  (of modulus>Cut)
  procedure ShowNorms(H: in Sobolev; Cut: in Rep := Zero);      -- Show norms of terms of H
  procedure Read(Name: in String; J: in Parity; R: in Radius;
                  H: out Sobolev; Decimal: in Boolean := True); -- Read H from file Name
  procedure Write(Name: in String;
                  H: in Sobolev; Decimal: in Boolean := True);  -- Write H to file Name

private

  procedure EffDeg(H: in Fourier; Dm,Dn: out Integer);
  procedure ShowIndices(J: in Parity; M: in Freq1; N: in Freq2; K: in Power);
  procedure ShowIndices(J: in Parity; M: in Freq1; N: in Freq2);
  procedure ShowIndices(I: in FreqE; K: in Power);
  procedure ShowIndices(I: in FreqE);

  procedure EffDeg(H: in Sobolev; Dm,Dn: out Integer);

end Fouriers.IO;