chiark / gitweb /
Merge and end branch-hostside-wip-2008-01-25 PROPERLY; cvs up -j branch-hostside...
[trains.git] / hostside / retransmit-table.h.gen
1 #!/usr/bin/perl
2
3 $count= 20;
4 $exp= 1.3;
5 $first= 1.0;
6
7 print <<END or die $!;
8 #define SPEEDYCOUNT $count
9
10 typedef struct {
11   Retransmit__Time interval; /* interval after this retransmission */
12   DLIST2_HEAD(RetransmitUrgentNode) queue; /* msgs transmitted ix times */
13 } PerSpeedyTrans;
14
15 END
16
17 for ($ix=0, $accum=0; $ix<$count; $ix++) {
18     $val= int($first * $exp**$ix + 0.49);
19     $accum += $val;
20     push @s, sprintf("  { %3d } /* %3s cum=%3d cumforother=%3d".
21                      " use=%3d%% cumuse=%3d%% */",
22                      $val, "#$ix", $accum, $accum-($ix+1),
23                      (100.0/$val), (100.0*($ix+1))/$accum);
24 }
25
26 print("#define SPEEDIESINIT { \\\n",
27       join(", \\\n", @s),
28       "  \\\n }\n")
29     or die $!;