MCPcopy Create free account
hub / github.com/JeanLucPons/VanitySearch / AddDirect

Method AddDirect

SECP256K1.cpp:797–822  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

795}
796
797Point Secp256K1::AddDirect(Point &p1,Point &p2) {
798
799 Int _s;
800 Int _p;
801 Int dy;
802 Int dx;
803 Point r;
804 r.z.SetInt32(1);
805
806 dy.ModSub(&p2.y,&p1.y);
807 dx.ModSub(&p2.x,&p1.x);
808 dx.ModInv();
809 _s.ModMulK1(&dy,&dx); // s = (p2.y-p1.y)*inverse(p2.x-p1.x);
810
811 _p.ModSquareK1(&_s); // _p = pow2(s)
812
813 r.x.ModSub(&_p,&p1.x);
814 r.x.ModSub(&p2.x); // rx = pow2(s) - p1.x - p2.x;
815
816 r.y.ModSub(&p2.x,&r.x);
817 r.y.ModMulK1(&_s);
818 r.y.ModSub(&p2.y); // ry = - p2.y - s*(ret.x-p2.x);
819
820 return r;
821
822}
823
824Point Secp256K1::Add2(Point &p1, Point &p2) {
825

Callers 5

VanitySearchMethod · 0.80
checkPrivKeyMethod · 0.80
getCPUStartingKeyMethod · 0.80
getGPUStartingKeysMethod · 0.80
GenerateCodeMethod · 0.80

Calls 5

SetInt32Method · 0.80
ModSubMethod · 0.80
ModMulK1Method · 0.80
ModSquareK1Method · 0.80
ModInvMethod · 0.45

Tested by

no test coverage detected