root.py
#!/usr/bin/env python
#
# Compute root of a real number
#
# Author: Yotam Medini [email protected] -- Created: 2005/December/11
#
import sys
def usage_exit(a0, rc):
sys.stderr.write(
"""
Usage:
%s <a> <n>
Where:
<a> Real number to get root from
<n> Integer number which is the order of the root to get.
""" % a0)
sys.exit(rc)
def root(a, n):
m = 0.
M = a + 1.
error = M - m
progress = True
while progress:
x = (m + M)/2.
xSquare = x**n
if xSquare == a:
progress = False
else:
if xSquare < a:
m = x
else:
M = x
new_error = M - m
progress = (new_error < error)
error = new_error
return x
if len(sys.argv) != 3:
usage_exit(sys.argv[0], 1)
a = float(sys.argv[1])
n = int(sys.argv[2])
r = root(a, n)
sys.stdout.write("Root[%d](%f) = %f\n" % (n, a, r))
sys.exit(0)
Generated by GNU enscript 1.6.4.