File: README for nestedSqrt
Core Library
$Id: README,v 1.3 2002/10/02 14:48:21 exact Exp $
========================================================================
SYNOPSIS:
	The following example is from a paper in SODA'98 by
	Burnikel, Fleischer, Mehlhorn and Schirra (BFMS)
	describing their constructive root bound for radical expressions.

	Let SQRE(x, k) = SQRT(x, k-1)**2     if k > 0,
		       = x                   if k=0.
	    SQRT(x, k) = sqrt(SQRT((x, k-1)) if k > 0,
		       = x                   if k=0.

	The program nestedSqrt.cpp computes

		 E  =  SQRT(SQRE(2, k) - 1, k) - 2,

	which is a negative number very close to zero.

	We also use this as a demo of the use of Incremental Flag, to
	show the vast improvement in speed for some expressions.
	
========================================================================

Sep 30, 2002:

	nestedSqrtX.cpp is a variant of nestedSqrt.cpp.

	We now allow the base value (x) to be any decimal number.
	We evaluate two expressions:
		One expression E1 is essentially the one in nestedSqrt.cpp,
		except that the result is a small positive value:

				E1 = SQRT(SQRE(x, k) + 1, k) - x

		Another expression E0 is identically zero.
		
			E0 = SQRT(SQRE(x, k) , k) - x

	This allows us to test the speedup from the new k-ary root bounds.

	
TIMING RESULTS: platform is SunBlade 1000 (2 CPU)

	> % time nestedSqrtX 6 2.5
	> ================== NestedSqrtX ================
	> ===============================================
	>    Nesting depth is 6
	>    x = 2.50000000000000
	>    E = SQRE(2.50000000000000, 6) 
	>      = 29387358770557187699218413.43055614194547
	>        where SQRE(x,k)= SQRE(x,k-1)**2 and SQRE(x,0)=x
	>    E1 = SQRT(E + 1, 6) - x 
	>       = .1329227995784915872903807038018071559792e-26
	>         (N.B. E1 should be very small positive number)
	>         ( lg(E1) ~ -90)
	>    E0 = SQRT(E, 6) - x 
	>       = 0
	>         (CORRECT!! E0 is identically zero)
	> ===============================================
	> 0.05u 0.02s 0:00.13 53.8%

  Repeating the above with different nesting depths, we get:

	DEPTH	CORE 1.5x	CORE 1.5	CORE 1.4
	=====	=========	========	========
	6	0.05		0.06		7.17
	7	0.10		0.20		57.58
	8	0.35		0.85		...
	9	1.48		3.74
	10	7.50		18.14
	=====	=========	========	========

  Note: in CORE 1.5x has the BFMSS[2,5] Bounds
  	   CORE 1.5 has the BFMSS[2] Bounds
	   CORE 1.4 has the BFMS Bounds
========================================================================
