fix over.core.m.compare_float

This commit is contained in:
Martinez 2015-09-22 00:54:33 +02:00
parent 8d700f5ff1
commit 5dfd55673c

View file

@ -1,34 +1,27 @@
#! /usr/bin/env python3 #! /usr/bin/env python3
# encoding: utf-8 # encoding: utf-8
import sys
class compare_float: class compare_float:
""" """
Sets .lt, .eq or .gt iff A is less than, equal (within epsilon) or greather than B. Sets .lt, .eq or .gt iff A is less than, equal or greather than B.
""" """
def __init__(self, A, B, epsilon=sys.float_info.epsilon): def __init__(self, A, B, epsilon=1e-12):
self.lt = False self.lt = False
self.le = True self.le = True
self.eq = False self.eq = False
self.ge = True self.ge = True
self.gt = False self.gt = False
if A < B: if A < (B - epsilon):
self.lt = True self.lt = True
self.le = True
self.ge = False self.ge = False
elif A > B: elif A > (B + epsilon):
self.gt = True self.gt = True
self.le = False self.le = False
self.ge = True
if abs(A - B) < epsilon: if abs(A - B) < epsilon:
self.eq = True self.eq = True
else:
self.le = False
self.ge = False
# convenience # convenience
self.less = self.lt self.less = self.lt