summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2019-12-05[PATCH v2] Force correct sign for intermediate steps of bigmulsgilles@umd.edu
Since y1 is usually smaller than y0, the sign of (x0 - x1) * (y1 - y0) is usually the same as that of (x0 - x1). This isn't always the case, though, especially if y is 2^Large * small. Also, the result of umul should be trimmed, so that we can trust that z0, z1 are trimmed in kmul. Otherwise, if their signs are different, bigadd(z1, z0) may become confused about which has greater magnitude and perform an incorrect subtraction. Since the result of kmul comes from bigadd(), which trims already, we need only trim the result of smallmul to ensure that umul's result is trimmed.
2019-12-01[PATCH v2 4/3] Somewhat better error for std.put("{w=?}", "foo")"S. Gilles"
2019-12-04Allow specifying padding width from variableS. Gilles
So I can write std.put("{w=?}{w=?}\n", field_a, max_width, field_b, max_width)
2019-12-04Make vanext decrement tc.nelt unconditionallyS. Gilles
This allows formatting functions to pass off the valist to type-specific formatters, which may themselves consume elements from the valist, and still check for correct argument counts without passing around counter variables.
2019-12-04Convert lib/test/fmt.myr to use testrS. Gilles
2019-10-24Allow bigdivmod to return remainders between 2^31 and 2^32S. Gilles
2019-09-10Force scientific notation to print trailing 0sS. Gilles
Also, recalculate 2*R + M+ during the Fixup loop. This prevents rare digit miscalculations: e.g. std.put("{e,s=4}\n", std.flt32frombits(0x2899fbf7))
2019-09-09Allow printing fltXY in scientific notationS. Gilles
2019-09-09Split out intfmt to a separate file.S. Gilles
This prepares for intfmt being used within fltfmt for the exponent in scientific notation.
2019-09-09Specify sigfigs (cutoff + Relative mode) for fltXY formattingS. Gilles
2019-09-07Allow padding for fltXY formattingS. Gilles
2019-09-07Collect fltXYbfmt parameters into analogue of intparamsS. Gilles
2019-07-31Fix bug in dump code: Stray '{', wrong args.Ori Bernstein
2019-07-26Fix wycheproof tests for curve25519 (thanks Mike)Ori Bernstein
2019-07-25Add curv25519 tests (thanks Mike)Ori Bernstein
2019-07-23Add OpenBSD 6.4 syscallsCarlin Bingham
Only relevant change between 6.3 and 6.4 is adding unveil: https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/kern/syscalls.master.diff?r1=1.188&r2=1.180&f=h
2019-07-22Fix std.getcwd on OpenBSD -currentCarlin Bingham
The __getcwd syscall returning the length of the string was apparently unintended and was changed in 6.5 -current to return 0 on success: https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/kern/vfs_getcwd.c#rev1.33 This causes std.getcwd to return an empty string, which at least breaks `mbld test`. This patch works with both the old and new behaviour.
2019-07-18Fix bigand/bigor: Thanks, MikeOri Bernstein
2019-07-13Oops, mangled something with git9.Ori Bernstein
2019-07-14Fix crash with large shifts in bigint.Ori Bernstein
2019-07-14Fix memory leak in bigparse. (Thanks, Mike)Ori Bernstein
2019-06-13Correctly Fused Multiply Add when all top bits cancel.S. Gilles
2019-06-09Merge commit 'e09c6b53f3b1928d3752c53c813025dbcbb976e0'Ori Bernstein
2019-06-09Fix error message for {} without parameterS. Gilles
Move the nfmt > nvarargs check to where it can detect the imminent bad access.
2019-06-09Use fma instead of rote multiplication in powr's final calculation.S. Gilles
Since the exp() we use is sometimes wrong by 1 ulp, the final multiplication has a possibility of increasing that to 2 ulps. Using fma instead makes such a thing much less likely. This makes some of our off-by-0s off-by-1s, and vice versa, but on the whole it is a definite improvement.
2019-06-09Test powr.S. Gilles
2019-06-09Rewrite powr to use log-overkill.S. Gilles
2019-06-09Apply changes of pown to rootn. Faster, better edge handling.S. Gilles
2019-06-09Rework pown to be less embarrassingly slow.S. Gilles
2019-06-09Fix some special cases in log-overkill related to subnormals.S. Gilles
2019-06-07Move hi/lo multiplication and addition routines to util.S. Gilles
2019-06-07Merge remote-tracking branch 'origin/master' into pown-implS. Gilles
2019-06-07Remove debugging information.S. Gilles
2019-06-07Rewrite log-overkill.myrS. Gilles
Instead of performing the arbitrary-precision calculation, we can instead generalize [Tan90] slightly to use multiple levels of tables. This isn't quite as wasteful.
2019-05-21Correct sign-handling for pown special caseS. Gilles
2019-05-11Fix Remez algorithm.S. Gilles
2019-05-10Allow exact case of mkbigint(2^32)S. Gilles
2019-05-02Replace costly sum with slightly faster sums in log-overkill.S. Gilles
This still doesn't make the function fast, but it's less embarassingly slow now.
2019-05-01Typo in log-overkill explanation.S. Gilles
2019-05-01Implement rootn.S. Gilles
2019-05-01Add missing reference for pown and rootn.S. Gilles
2019-05-01Add pown function.S. Gilles
2019-05-01Test the slow2sum function.S. Gilles
The singular piece of test data is the tuple that caused me to spend far too long realizing that fast2sum is not always appropriate.
2019-05-01Add a log function which returns far too much precision.S. Gilles
This makes accurately computing pown and powr easier.
2019-05-01Add 2sum in math utilS. Gilles
Fast2sum is only for when magnitudes of the arguments are known. 2sum (called "slow2sum") avoids this, at the cost of speed. It ends up being necessary in the forthcoming log-overkill function.
2019-05-01Add fltXXfromuintXX to ancillary math script.S. Gilles
2019-04-29Print "NaN" and "Inf" for floating-point NaNs and infinites.S. Gilles
2019-03-21Commit bio.readtermOri Bernstein
2019-03-21bio.readto and EOFCarlin Bingham
Hi, When using bio.readto I often want to be able to tell if the delimeter was found, or if the file was truncated, but there doesn't appear to be a way to tell if readto stopped searching because it found what it was looking for or if it reached EOF, other than to do another read. A simple solution to this would be a new function that reads to and includes the delimeter in the returned slice if it was found, which can be used intead when you care. I've tentatively included a patch for this. Is this something that would be wanted? Is there a better solution? Or a better name? -- Carlin NB. I've stolen the `Keep tag that was already there but apparently never used. Not sure if it was intended for a higher purpose. >From c230b380fbf0e7ba2c24aae332e4ce8016843d66 Mon Sep 17 00:00:00 2001 From: Carlin Bingham <cb@viennan.net> Date: Sat, 16 Mar 2019 10:20:23 +1300 Subject: [PATCH] Add bio.readtoinc - read to including delimiter X-Spam-Status: No, hits=0.000000 required=0.900000 Similar to bio.readto except it includes the delimeter in the returned slice if it was found, making the absence of the delimiter indicate EOF
2019-03-16Add synchronization to xset.iriri
Unfortunately, this is necessary to achieve sequential consistency.