program SNNSpat;
  uses crt;

  const PAT_CNT:integer=100;
  const I_CNT=2;
  const O_CNT=1;
  var f:text;
  var i:integer;
  var lbound,rbound:integer;
  var x,y:real;

procedure writepattern(i:integer);
begin
end;

function log(x:real):real;
begin
  log:=ln(x)/ln(10);
  {log:=ln(x);}
end;

function funkcia(x,y:real):real;
begin
  funkcia:=log(x*y) / (2 - (log(abs(x))*log(abs(y))));
end;

begin
  clrscr;
  randomize;

  writeln('This is Simple SNNS *.pat generator');
  readln;

  assign(f,'fcia.pat');
  rewrite(f);
  writeln(f,'SNNS pattern definition file V3.2');
  writeln(f,'generated at Fri Apr 22 20:18:25 1994');

  writeln(f,'No. of patterns : ' ,PAT_CNT);
  writeln(f,'No. of input units : ', I_CNT);
  writeln(f,'No. of output units : ', O_CNT);


  for i:=1 to PAT_CNT do begin
    writeln(f,'# Input pattern ', i, ':');
    repeat
      x:=(random*2)-1;
      y:=(random*2)-1;
    until (x*y)>0;
    writeln(f,x:2:4,' ',y:2:4);

    writeln(f,'# Output pattern ', i, ':');
    writeln(f,funkcia(x,y):2:4);
  end;

  close(f);

  writeln('Jobs done.');
end.