anchor.diff:      x))
   
   (defun ed25519-edwards-double (p)
  -  "Point doubling on curve25519."
  +  "Point doubling on ed25519 curve."
     (declare (optimize (speed 3) (safety 0) (space 0) (debug 0)))
     (let* ((x (car p))
            (y (cdr p))
  
positive.code: ;;;; -*- mode: lisp; indent-tabs-mode: nil -*-
  ;;;; ed25519.lisp -- implementation of the eddsa signature algorithm on curve25519
  
  (in-package :crypto)
  
  
negative.code:   (modular-inverse (mod x +ed25519-q+) +ed25519-q+))
  
  (defun ed25519-recover-x (y)
    "Recover the X coordinate of a point on ed25519 curve from the Y coordinate."
    (declare (optimize (speed 3) (safety 0) (space 0) (debug 0)))
    (let* ((yy (mod (* y y) +ed25519-q+))
           (xx (mod (* (- yy 1) (ed25519-inv (+ (* +ed25519-d+ yy) 1))) +ed25519-q+))
  