my @v = (3,1,5); # should have determinant 108 my $n = @v; print "@v\n"; my $r = 8*atan2(1,1)/$n; # 2*pi/n my ($pr,$pc) = (1,0); for (my $k=0;$k<$n;$k++) { my ($sr,$sc) = 0; for (my $j=0;$j<$n;$j++) { $sr += $v[$j]*cos($j*$k*$r); $sc += $v[$j]*sin($j*$k*$r); } print "eigenvalue $k: ($sr,$sc)\n"; ($pr,$pc)=($pr*$sr-$pc*$sc,$pr*$sc+$pc*$sr); } print "product ($pr,$pc)\n";