File : lowerqdegs.adb
with Reps, Fouriers_Init;
use Reps, Fouriers_Init;
with Fouriers.Ops, Fouriers.IO;
with Intervals, Intervals.Ops, Intervals.IO;
use Intervals, Intervals.Ops, Intervals.IO;
pragma Elaborate_All(Intervals.Ops, Intervals.IO);
procedure LowerQDegs is
subtype Scalar is Interval;
Lmax: constant Positive := 40;
Wmax: constant Positive := 40;
Pdeg: constant Positive := 16;
Dho: constant Natural := 8;
package Scal_Fou is new Fouriers (Lmax => Lmax, Wmax => Wmax, Pdeg => Pdeg, Dho => Dho, Scalar => Scalar);
package Scal_Fou_IO is new Scal_Fou.IO;
package Scal_Fou_Ops is new Scal_Fou.Ops;
use Scal_Fou, Scal_Fou_Ops, Scal_Fou_IO;
R: constant Weights := (0.85,0.15); -- for domain of RG
Iname: constant String := "40-16-8"; -- name stem for input
Oname1: constant String := "30-16-8"; -- 1st name stem for output
Oname2: constant String := "25-16-8"; -- 2nd name stem for output
HDec: constant Boolean := False; -- use decimal IO for Hamiltonians
Lmax1: constant Positive := 30;
Wmax1: constant Positive := 30;
Lmax2: constant Positive := 25;
Wmax2: constant Positive := 25;
H: Fourier;
begin
Read("Fix-" & Iname & ".nh",0,(R.Q,One),H,HDec);
QDegConvert(Lmax1,Wmax1,H);
Write("Fix-" & Oname1 & ".nh",H,HDec);
Read("Fix-" & Iname & ".nh",0,(R.Q,One),H,HDec);
QDegConvert(Lmax2,Wmax2,H);
Write("Fix-" & Oname2 & ".nh",H,HDec);
---
Read("Hdq-" & Iname & ".nh",1,(R.Q,One),H,HDec);
QDegConvert(Lmax1,Wmax1,H);
Write("Hdq-" & Oname1 & ".nh",H,HDec);
Read("Hdq-" & Iname & ".nh",1,(R.Q,One),H,HDec);
QDegConvert(Lmax2,Wmax2,H);
Write("Hdq-" & Oname2 & ".nh",H,HDec);
---
Read("Hdp-" & Iname & ".nh",0,(R.Q,One),H,HDec);
QDegConvert(Lmax1,Wmax1,H);
Write("Hdp-" & Oname1 & ".nh",H,HDec);
Read("Hdp-" & Iname & ".nh",0,(R.Q,One),H,HDec);
QDegConvert(Lmax2,Wmax2,H);
Write("Hdp-" & Oname2 & ".nh",H,HDec);
---
Read("Hzp-" & Iname & ".nh",0,(Two,One),H,HDec); -- knows its domain
QDegConvert(Lmax1,Wmax1,H);
Write("Hzp-" & Oname1 & ".nh",H,HDec);
Read("Hzp-" & Iname & ".nh",0,(Two,One),H,HDec); -- knows its domain
QDegConvert(Lmax2,Wmax2,H);
Write("Hzp-" & Oname2 & ".nh",H,HDec);
----
Read("Hq-" & Iname & ".nh",1,(R.Q,One),H,HDec);
QDegConvert(Lmax1,Wmax1,H);
Write("Hq-" & Oname1 & ".nh",H,HDec);
Read("Hq-" & Iname & ".nh",1,(R.Q,One),H,HDec);
QDegConvert(Lmax2,Wmax2,H);
Write("Hq-" & Oname2 & ".nh",H,HDec);
---
Read("Hdi-" & Iname & ".nh",0,(Two,One),H,HDec); -- knows its domain
QDegConvert(Lmax1,Wmax1,H);
Write("Hdi-" & Oname1 & ".nh",H,HDec);
end LowerQDegs;