Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: Circular functions are not as intractable as you may think...



On 08/20/2011 03:52 PM, Dan Zuras Intervals wrote:

	In quad:

		maxpos3 = 2^16384*(1-2^-113)
		sin(maxpos3) = 0.951914854078820481136324892937573
		sin(maxpos3) contained in
	[4942624506426098432520117030049803/5192296858534827628530496329220096,
	9885249012852196865040234060099607/10384593717069655257060992658440192]

	These things are just not that difficult to compute any more.
	And haven't been for decades.  To continue to assume that
	they are&  deprecate the specifications of 1788 accordingly
	does a disservice to all.

	(Indeed, I discovered a fast&  efficient method of what was
	called 'range reduction' around 1980 or 1981.  It turns out
	I had rediscovered a result of Mary Payne's.  Which, in turn,
	was a variation of an earlier result by Gosper, I believe.
	And this result has been rediscovered&  improved upon many
	times since.  BTW, I won $3 from an MIT professor who bet me
	I couldn't do it at the time.  Best bet I ever made. :-)

	But, while 754 requires these functions to round correctly
	throughout their entire domain, the situation is somewhat
	easier for 1788.  And while it may be necessary, from time
	to time, to use the specifications of 754 to correctly
	contain a result within a narrow interval for an unreasonably
	huge argument, it is only needed in the case of zero width
	intervals.

	For, indeed, if zero width intervals for unreasonably large
	arguments are themselves unreasonable, then one need only
	consider efficient domain reduction for the domain of a
	circular function for which an ULP is less than 2*pi.  And
	that only happens for much MUCH smaller arguments.

	For single: ulp1 ~ 2^27 ~ 10^8
	For double: ulp2 ~ 2^56 ~ 10^17
	For quad: ulp3 ~ 2^116 ~ 10^35

	As for numbers as large as 2^2^64, except for unreasonable
	zero width arguments, one need only consider them when the
	PRECISION of the result is ALSO around 2^2^64.  Something
	that's not going to happen until memory gets much cheaper.

	For if the precision required is a small as 10,000 bits, we
	have that ulp10kb ~ 2^10003 ~ 10^3011.  Which is STILL well
	within the range of quad precision numbers.

	To conclude: There may be problems in which an interval
	computation is intractable when the corresponding
	floating-point problem is not.

	But computing narrow interval results reliably for 754
	transcendental functions is NOT one of them.

	Please feel free to consider reproducible versions of
	these functions as both feasible&  efficient.

Interesting.

Please provide references that what you claim for correct rounding is also valid for optimal directed rounding, which is what is needed for reproducble interval results.