--- /dev/null
+#!/usr/bin/perl -w
+
+use strict;
+
+our(@e12) = qw(10 12 15 18 22 27 33 39 47 56 68 82);
+our(@ex24) = qw(11 13 16 20 24 30 36 43 51 62 75 91);
+our(@e24)= sort @e12, @ex24;
+
+our ($tlin,$tlog,@byrat);
+
+sub thead ($$) {
+ my ($t,$h) = @_;
+ $$t = sprintf "%-10s |", $h;
+}
+sub chead ($$) {
+ my ($t,$h) = @_;
+ $$t .= sprintf " %5s", $h;
+}
+sub theadend ($) {
+ my ($t) = @_;
+ $$t .= "\n".('-'x(10+1)).'+'.('-'x(24*6))."\n";
+}
+sub rhead ($$) {
+ my ($t,$h) = @_;
+ $$t .= sprintf "%10s |", $h;
+}
+sub cell ($$) {
+ my ($t,$v) = @_;
+ $$t .= sprintf " %5.3f", $v;
+}
+sub rend ($$) {
+ my ($t,$n) = @_;
+ $$t .= "\n";
+ $$t .= "\n" if ($n % 4) == 3;
+}
+sub tend ($) {
+ my ($t) = @_;
+}
+
+sub scan () {
+ my ($row,$col,$lin,$log,$rownum);
+ @byrat = ();
+ thead(\$tlin,'Row/Col');
+ thead(\$tlog,'L(R/C)+1');
+ for $col (@e24) {
+ chead(\$tlin,$col);
+ chead(\$tlog,$col);
+ }
+ theadend(\$tlin);
+ theadend(\$tlog);
+ $rownum= 0;
+ for $row (@e24) {
+ rhead(\$tlin,$row);
+ rhead(\$tlog,$row);
+ for $col (@e24) {
+ $lin= $col*1.0 / $row;
+ $log= log($lin)/log(10) + 1.0;
+ cell(\$tlin,$lin);
+ cell(\$tlog,$log);
+ if ($col < $row) { $lin *= 10; }
+ next if $row==$col;
+ push @byrat, { Num => $col,
+ Den => $row,
+ Lin => $lin,
+ Log => $log };
+ }
+ rend(\$tlin,$rownum);
+ rend(\$tlog,$rownum);
+ $rownum++;
+ }
+ tend(\$tlin);
+ tend(\$tlog);
+ push @byrat, { Num => '*',
+ Den => '*',
+ Lin => 1.0,
+ Log => 1.0 };
+}
+
+sub ptable ($) {
+ my ($tt) = @_;
+ print $tt or die $!;
+}
+
+sub sortbyrat () {
+ @byrat= sort {
+ $a->{Lin} <=> $b->{Lin}
+ } @byrat;
+}
+
+sub byratcol ($$$) {
+ my ($or,$cwr,$colnum) = @_;
+ $$or .= ' ' if $colnum;
+ $$cwr = ($colnum<4 ? 7 : 6);
+}
+
+sub printbyrat () {
+ use integer;
+ my ($brcols) = 7;
+ my ($brrows) = (@byrat+$brcols-1) / $brcols;
+ my ($byrat,$o,$colnum,$rownum,$cw);
+ $o= '';
+ for ($colnum=0; $colnum<$brcols; $colnum++) {
+ byratcol(\$o,\$cw,$colnum);
+ $o .= sprintf(" N/D %${cw}s %7s",
+ 'Q[*10]','Lg(Q)+1');
+ }
+ $o .= "\n";
+ for ($colnum=0; $colnum<$brcols; $colnum++) {
+ byratcol(\$o,\$cw,$colnum);
+ $o .= '-' x (5+1+$cw+1+7);
+ }
+ $o .= "\n";
+ for ($rownum=0; $rownum<$brrows; $rownum++) {
+ for ($colnum=0; $colnum<$brcols; $colnum++) {
+ $byrat= $byrat[$colnum*$brrows + $rownum];
+ next unless defined $byrat;
+ byratcol(\$o,\$cw,$colnum);
+ $o .= sprintf("%2s/%-2s %${cw}.".($cw-2)."f %7.5f",
+ $byrat->{Num}, $byrat->{Den},
+ $byrat->{Lin}, $byrat->{Log});
+ }
+ $o .= "\n";
+ }
+ print $o or die $!;
+}
+
+scan();
+ptable($tlin);
+ptable($tlog);
+
+sortbyrat();
+printbyrat();
default: ours-a.ps ours-al.ps parts.ps
layers: $(LAYERS)
-all: default layers circuit.bom bulkres.bom
+all: default layers circuit.bom bulkres.bom divider-tables
o=>$@.new && mv -f $@.new $@
bulkres-items.partlist:
./farnell-resistor-convert.pl <bulkres-items.descs MRS25 std $o
+divider-table.txt: divider-table.pl
+ ./$^ $o
+
+divider-tables: divider-table.ps divider-table.txt
+
+divider-table.ps: divider-table.txt
+ a2ps -o- -R -1 --borders no -B -l156 -L"$$(wc -l <$^)" <$^ $o
+
%.d4: %.m4 $(M4INCS) Makefile
m4 -s <$< $o
default: ours-a.ps ours-al.ps parts.ps
layers: $(LAYERS)
-all: default layers circuit.bom bulkres.bom
+all: default layers circuit.bom bulkres.bom divider-tables
o=>$@.new && mv -f $@.new $@
bulkres-items.partlist:
./farnell-resistor-convert.pl <bulkres-items.descs MRS25 std $o
+divider-table.txt: divider-table.pl
+ ./$^ $o
+
+divider-tables: divider-table.ps divider-table.txt
+
+divider-table.ps: divider-table.txt
+ a2ps -o- -R -1 --borders no -B -l156 -L"$$(wc -l <$^)" <$^ $o
+
%.d4: %.m4 $(M4INCS) Makefile
m4 -s <$< $o
default: ours-a.ps ours-al.ps parts.ps
layers: $(LAYERS)
-all: default layers circuit.bom bulkres.bom
+all: default layers circuit.bom bulkres.bom divider-tables
o=>$@.new && mv -f $@.new $@
bulkres-items.partlist:
./farnell-resistor-convert.pl <bulkres-items.descs MRS25 std $o
+divider-table.txt: divider-table.pl
+ ./$^ $o
+
+divider-tables: divider-table.ps divider-table.txt
+
+divider-table.ps: divider-table.txt
+ a2ps -o- -R -1 --borders no -B -l156 -L"$$(wc -l <$^)" <$^ $o
+
%.d4: %.m4 $(M4INCS) Makefile
m4 -s <$< $o