program mmfirst(input,output);
{ first part of contraction M: scale and square }
const
  hdim=93;
  edim=187;
  vdim=1001;
  lmax=29;

%include 'types.h';

var
  beta2,rho,tau: scalar;
  v1,v2,v3: vector;

%include 'reps.i';
%include 'scalar.i';
%include 'vector.i';

begin { mmfirst }
  sinit;

  writeln('mmfirst: reading approx fixed point and scaling with beta^2');
  sread('rho.s',rho);
  sread('beta2.s',beta2);
  vread('approx.v',rho,v1);
  vscale(beta2,v1,v2);
  writeln;

  writeln('mmfirst: squaring and writing result to sqr.out.v');
  sread('tau.s',tau);
  vsqr(tau,v2,v3);
  vwrite('sqr.out.v',v3);
  writeln;

  sdone('mmfirst');
end { mmfirst }.

