Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
my $sre = qr{\"[^"]+\"};
+print <<END;
+// autogenerated from $0 @ARGV
+let mk : any;
+END
+
while (<>) {
next unless m/^mod test/..0;
my $l = $_;
$l =~ s{bf\(($sre)\)}{ chk_repr($1) }ge;
-
+
+ if (m{^ +fn addition}..m{^ +\#\[test\]}) {
+ if (m{^ +mk\(($sre)\)}) {
+ print "mk = $1;\n";
+ } elsif (m{^ +\.chk\((\w+),\s*($sre)\)\s*$}) {
+ print "mk = Bigfloats.add(mk, $1); assert_eq(mk, $2);\n";
+ }
+ }
}
export function add(p: Bigfloat, step: number): Bigfloat {
let v = unpack(p);
- add_to_limb(v, 0, step * 0x10000);
+ add_to_limb(v, v.exponent, step * 0x10000);
return pack(v);
}