For modular inverses in teaching I use

gcd2x=: 3 : 0

'r0 r1'=.y

's0 s1'=.1 0

't0 t1'=.0 1

while. r1 ~: 0 do.

q=. <. r0 % r1

'r0 r1'=. r1,r0-q*r1

's0 s1'=. s1,s0-q*s1

't0 t1'=. t1,t0-q*t1

end.

r0,s0,t0

)


invmod=: 4 : 'y| {: gcd2x y,x'

5 invmod 21

17

21|5*17

1


Best, Cliff
On 1/29/2014 11:35 AM, Pascal Jasmin wrote:

With all of the mathematicians on this list, these functions have likely been 
implemented before in J.

elyptic curve point add, multiplication and double
a python reference implementation: 
https://github.com/warner/python-ecdsa/blob/master/ecdsa/ellipticcurve.py

the functions are: __add__  __mul__ and double

if I may suggest J explicit signatures for the first 2 functions as:

F =: 4 : 0
'yx yy yo' =. y
'xx xy xo' =. x
)

Some other methods than the python reference could be considered here:

http://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication


also appreciated if you have in implementation of inverse_mod
for reference function of same nate at:  
https://github.com/warner/python-ecdsa/blob/master/ecdsa/numbertheory.py
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm


--
Clifford A. Reiter
Lafayette College, Easton, PA 18042
http://webbox.lafayette.edu/~reiterc/

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to