C:\test>rbtcs-form-verify -H=16 -B=16 Using N x 2**16 vectors: 12 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 192 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 256 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384 : 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 512 : 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 768 : 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1024 : 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1536 : 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2048 : 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3072 : 70 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4096 : 125 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6144 : 279 16 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8192 : 491 38 3 0 0 0 0 0 0 0 0 0 0 0 0 0 12288 : 1083 125 16 2 0 0 0 0 0 0 0 0 0 0 0 0 16384 : 1887 284 47 8 1 0 0 0 0 0 0 0 0 0 0 0 24576 : 4082 877 209 53 13 3 1 0 0 0 0 0 0 0 0 0 32768 : 6981 1908 577 185 61 20 7 2 0 0 0 0 0 0 0 0 49152 : 14573 5450 2241 971 435 200 93 44 21 10 4 2 1 0 0 0 65536 : 24109 11016 5498 2882 1559 862 485 276 159 92 53 31 18 11 6 3 #### #! perl -slw use strict; sub PTn { my @row; for( 1 .. shift ) { push @row, 1; $row [$_] += $row [$_ - 1] for reverse 1 .. @row - 2; } return @row; } sub expN { my( $P, $N, $X ) = @_; my $xDIVn = $X / $N; my @coefs = PTn( $P+1 ); my $rv = 0; my $toggle = $P & 1 ? 1 : -1; for my $p ( reverse 1 .. $P ) { $rv += $toggle * $coefs[ $p ] * $N / $p * exp( -$p * $xDIVn ); $toggle *= -1; } return $rv + $X; } our $H //= 10; our $B //= 32; print "Using N x 2**$B vectors:"; for my $inserts ( map{ 2**$_*3/4, 2**$_ } 4 .. $B ) { printf "%10d : ", $inserts; for my $h ( 1 .. $H ) { printf "%6d ", expN( $h, 2**$B, $inserts ) - expN( $h, 2**$B, 0 ); } print ''; }