MCPcopy Create free account
hub / github.com/ElementsProject/elements / mulnadd3

Function mulnadd3

src/crypto/muhash.cpp:41–50  ·  view source on GitHub ↗

[c0,c1,c2] += n * [d0,d1,d2]. c2 is 0 initially */

Source from the content-addressed store, hash-verified

39
40/* [c0,c1,c2] += n * [d0,d1,d2]. c2 is 0 initially */
41inline void mulnadd3(limb_t& c0, limb_t& c1, limb_t& c2, limb_t& d0, limb_t& d1, limb_t& d2, const limb_t& n)
42{
43 double_limb_t t = (double_limb_t)d0 * n + c0;
44 c0 = t;
45 t >>= LIMB_SIZE;
46 t += (double_limb_t)d1 * n + c1;
47 c1 = t;
48 t >>= LIMB_SIZE;
49 c2 = t + d2 * n;
50}
51
52/* [c0,c1] *= n */
53inline void muln2(limb_t& c0, limb_t& c1, const limb_t& n)

Callers 2

MultiplyMethod · 0.85
SquareMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected