MCPcopy Create free account
hub / github.com/Meituan-Dianping/SQLAdvisor / Multiply4

Method Multiply4

extra/yassl/taocrypt/src/integer.cpp:724–757  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

722
723
724void Portable::Multiply4(word *R, const word *A, const word *B)
725{
726 DWord p;
727 word c, d, e;
728
729 p = DWord::Multiply(A[0], B[0]);
730 R[0] = p.GetLowHalf();
731 c = p.GetHighHalf();
732 d = e = 0;
733
734 MulAcc(0, 1);
735 MulAcc(1, 0);
736
737 SaveMulAcc(1, 2, 0);
738 MulAcc(1, 1);
739 MulAcc(0, 2);
740
741 SaveMulAcc(2, 0, 3);
742 MulAcc(1, 2);
743 MulAcc(2, 1);
744 MulAcc(3, 0);
745
746 SaveMulAcc(3, 3, 1);
747 MulAcc(2, 2);
748 MulAcc(1, 3);
749
750 SaveMulAcc(4, 2, 3);
751 MulAcc(3, 2);
752
753 R[5] = c;
754 p = DWord::MultiplyAndAdd(A[3], B[3], d);
755 R[6] = p.GetLowHalf();
756 R[7] = e + p.GetHighHalf();
757}
758
759void Portable::Square2(word *R, const word *A)
760{

Callers

nothing calls this directly

Calls 2

GetLowHalfMethod · 0.45
GetHighHalfMethod · 0.45

Tested by

no test coverage detected