From 3976b59363117972ca151336192112674e8022e0 Mon Sep 17 00:00:00 2001 From: Michael Nolan Date: Fri, 17 Apr 2020 11:22:24 -0400 Subject: [PATCH] Revert "Use higher precision arithmetic when calculating the atan2 table" This reverts commit 7aea44d471226db693ee99fd272504248d57375b. --- setup.py | 1 - src/ieee754/cordic/fpsin_cos.py | 14 ++------------ 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/setup.py b/setup.py index c5bf5cf0..95367ed0 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,6 @@ version = '0.0.1' install_requires = [ 'nmutil', # 'sfpy', # XXX temporarily disabled - 'gmpy2' ] test_requires = [ diff --git a/src/ieee754/cordic/fpsin_cos.py b/src/ieee754/cordic/fpsin_cos.py index 3c96cafa..c61e6bf2 100644 --- a/src/ieee754/cordic/fpsin_cos.py +++ b/src/ieee754/cordic/fpsin_cos.py @@ -8,10 +8,6 @@ import math from enum import Enum, unique from ieee754.fpcommon.fpbase import FPNumBaseRecord, FPNumDecode -import gmpy2 -from gmpy2 import mpfr - - @unique class CordicState(Enum): @@ -29,14 +25,8 @@ class CordicROM(Elaboratable): self.addr = Signal(range(iterations)) self.data = Signal(range(-M, M-1)) - angles = [] - gmpy2.get_context().precision = 150 - for i in range(self.iterations): - x = mpfr(2) ** -i - x = gmpy2.atan(x) - x = x/(gmpy2.const_pi()/mpfr(2)) - x = x * mpfr(M) - angles.append(int(round(x))) + angles = [int(round(M*math.atan(2**(-i))/(math.pi/2))) + for i in range(self.iterations)] self.mem = Memory(width=self.data.width, depth=self.iterations, -- 2.30.2