2024-03-29 00:19:28 +01:00

25 lines
532 B
Python

from util import Object
import numpy as np
CURVE_LINSPACE = np.linspace(-10, 30, num=1000)
DEFAULT_CURVE = (1, 3, 3)
NSA_CURVE = (1, 3, 0)
BTC_CURVE = (1, 0, 7)
class EllipticCurve(Object):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = b
self.xl = CURVE_LINSPACE
self.yl = self._x2y()
def _x2y(self):
r = np.empty((self.xl.size, 2))
for i, xi in enumerate(self.xl):
r[i][0] = np.sqrt((self.a * xi**3) + (self.b * xi**2) + self.c)
for i in range(self.xl.size):
r[i][1] = -r[i][0]
return r