Indeed, it looks cool and simple - and it works!
But can you please tell me what the "R*s" (in line 406) actually does?
I mean, you have (decimals):
Rx = 102145896445573563625240447116654222837109247557536823325858067433615090286321
Ry = 64919894836278270547560110097107560214300342546989031110129938591497073087260
s = 46415740558353013011708862292271156479711188487571029354677187424581448381078
... and R*s gives you a point having:
x = 112793881772482502863430761842017408792441979840968192252645857563994847441261
y = 47321320458075246750488099844078925876574705494449064910511016586200529015312
So how do I multiply a point by a number to get such a result? I mean, not using python..