#!/usr/bin/perl

use Math::Trig;

#01234567890123456
#strange  1 n  2
#012345678901234567890123456789012345678901234567890123456789
# 1   3.81966010 '-1   3.81966013 '-1   2.79396772 '-9
# 2   2.61803399       2.61803401       2.23517418 '-8

$n=0;
$s=0;
$maxn=0;

while($l = <>)
{
  chomp($l);
# print "line: $l\n";

  if($l =~ /^strange +(\d+) +n +(\d+)$/)
  {
    $n = $2+0;
    $s = $1+0;
    $maxn = $n if($n>$maxn);
#   print "n: $n s: $s\n";
  }
  elsif($l =~ /^([ 123456789][0123456789])  /)
  {
    $i = $1+0;
    $ev = substr($l,4,15);
    $ev =~ s/'/e/g;
    $ev =~ s/ //g;
    $evlist[$i] = $ev+0;
    if($i == $n)
    {
      for($j=1;$j<=$n;$j++)
      {
	$t1 = pi;
	$t2 = pi/(2.0*$n+1);
	$t3 = $j*$t2;
	$t4 = cos($t3);
	$t5 = 1/$t4;
	$t6 = 0.25*$t5*$t5;
#	print "t1: $t1 t2: $t2 t3: $t3 t4: $t4 t5: $t5 t6: $t6\n";
	$x1 = 1.0/cos($j*pi/(2.0*$n+1));
	$x = 0.25*$x1*$x1;
#	print "$j $x1 $x\n";
	$ecalc[$j] = $x;
      }
#     print "\n\n@ecalc\n";
      @sevlist = sort {$a <=> $b} @evlist;
      @secalc = sort {$a <=> $b} @ecalc;
#     print "@secalc\n";
      $meanerror=0;
      for($j=1;$j<=$n;$j++)
      {
	$error = $sevlist[$j]-$secalc[$j];
	printf "%2d %18.10e %18.10e %18.10e\n",$j, $sevlist[$j], $secalc[$j], $error;
	$meanerror += $error*$error;
      }
      $meanerrors[$n][$s] = sqrt($meanerror/($n-1));
    }
  }
}
for($n=2;$n<=$maxn;$n++)
{
  printf "%2d %.4e %.4e    ",$n,$meanerrors[$n][1],$meanerrors[$n][2];
  if($meanerrors[$n][1]<$meanerrors[$n][2])
  {
    print "normal is best\n";
  }
  else
  {
    print "strange is best\n";
  }
}

