RosettaCodeData/Task/Elliptic-curve-arithmetic/Racket/elliptic-curve-arithmetic-2.rkt
2023-07-01 13:44:08 -04:00

11 lines
476 B
Racket

(define (root3 x) (* (sgn x) (expt (abs x) 1/3)))
(define (y->point y) (vector (root3 (- (* y y) b)) y))
(define p (y->point 1))
(define q (y->point 2))
(displayln (~a "p = " p))
(displayln (~a "q = " q))
(displayln (~a "p+q = " ( p q)))
(displayln (~a "-(p+q) = " (neg ( p q))))
(displayln (~a "(p+q)+(-(p+q)) = " ( ( p q) (neg ( p q)))))
(displayln (~a "p+(q+(-(p+q))) = 0 " (zero? ( p ( q (neg ( p q)))))))
(displayln (~a "p*12345 " ( p 12345)))