=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/bc/bc.library,v retrieving revision 1.3 retrieving revision 1.4 diff -c -r1.3 -r1.4 *** src/usr.bin/bc/bc.library 2007/02/03 21:15:06 1.3 --- src/usr.bin/bc/bc.library 2012/03/14 07:35:53 1.4 *************** *** 1,4 **** ! /* $OpenBSD: bc.library,v 1.3 2007/02/03 21:15:06 otto Exp $ */ /* * Copyright (C) Caldera International Inc. 2001-2002. --- 1,4 ---- ! /* $OpenBSD: bc.library,v 1.4 2012/03/14 07:35:53 otto Exp $ */ /* * Copyright (C) Caldera International Inc. 2001-2002. *************** *** 45,51 **** r = ibase ibase = A t = scale ! scale = t + .434*x + 1 w = 0 if (x < 0) { --- 45,53 ---- r = ibase ibase = A t = scale ! scale = 0 ! if (x > 0) scale = (0.435*x)/1 ! scale = scale + t + length(scale + t) + 1 w = 0 if (x < 0) { *************** *** 94,119 **** t = scale f = 1 ! scale = scale + scale(x) - length(x) + 1 ! s = scale while (x > 2) { ! s = s + (length(x) - scale(x))/2 + 1 ! if (s > 0) scale = s x = sqrt(x) f = f*2 } while (x < .5) { ! s = s + (length(x) - scale(x))/2 + 1 ! if (s > 0) scale = s x = sqrt(x) f = f*2 } ! scale = t + length(f) - scale(f) + 1 u = (x - 1)/(x + 1) - - scale = scale + 1.1*length(t) - 1.1*scale(t) s = u*u b = 2*f c = b d = 1 --- 96,129 ---- t = scale f = 1 ! if (x < 1) { ! s = scale(x) ! } else { ! s = length(x)-scale(x) ! } ! scale = 0 ! a = (2.31*s)/1 /* estimated integer part of the answer */ ! s = t + length(a) + 2 /* estimated length of the answer */ while (x > 2) { ! scale = 0 ! scale = (length(x) + scale(x))/2 + 1 ! if (scale < s) scale = s x = sqrt(x) f = f*2 } while (x < .5) { ! scale = 0 ! scale = scale(x)/2 + 1 ! if (scale < s) scale = s x = sqrt(x) f = f*2 } ! scale = 0 ! scale = t + length(f) + length((1.05*(t+length(f))/1)) + 1 u = (x - 1)/(x + 1) s = u*u + scale = t + 2 b = 2*f c = b d = 1