git » metnum-tp1.git » master » tree

[master] / err.py

#!/usr/bin/env python

"""
Esta utilidad recibe la salida de los distintos algoritmos (que esta siempre
en el mismo formato), y la emite tal cual, pero agregando al final de cada
linea el error del resultado, comparandolo con uno conocido y utilizando
aritmetica de precision fija a 90 digitos.
"""

import sys
from decimal import Decimal, getcontext

# Precision de los decimales a 90 digitos
getcontext().prec = 90

# Cargamos la posta, tiene 98 digitos
P = Decimal('1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157')

# Procesamos la entrada
for l in sys.stdin.readlines():
	niters, prec, resultado, res_hex = l.split()

	# Calculamos el error
	r = Decimal(resultado)
	error = abs(P - r)

	print l.strip(), error