David Benjamin
David Benjamin
The ladder does somewhat matter in that Fiat's code really has two different types of field element, the "loose" and "tight" ones. If you don't capture that in the type...
If you all decide to swap the input/output order, we can certainly adapt. Although matching our order is certainly more convenient! (We put outputs first because that tends to be...
> otherwise we will have to require code calling us to declare the field element type as uintptr_t[5]. FWIW, I think it's fine to have opinions on how the field...
This article reminded me of the `uintptr_t` vs. pointer discussion. This is probably another reason to use actual pointers if outputting to C. https://www.ralfj.de/blog/2020/12/14/provenance.html
Java 9 has `Math.multiplyHigh` (also `Math.multiplyFull`) which I assume gets JITed to the sensible thing, though it's all signed integers and (a - 2^64) * (b - 2^64) != a...
Long-term, I think we need language support for this sort of thing. In the meantime, yeah, the compilers seem to have gotten smart enough, so we have a derpy function...
That too. :-) Although projects often need to support random generic targets, so anything close to machine code tends to be in addition to rather than instead of C. I'm...
(Then again, `value_barrier` doesn't work for no-asm builds anyway...)
Looking at the function in isolation won't work. While, in isolation, the compiler may not know what's going on, inlining will give the optimizer visibility into the caller, where it...
What are the next steps for this PR? Is this waiting on anything from me?