Thread Links | Date Links | ||||
---|---|---|---|---|---|
Thread Prev | Thread Next | Thread Index | Date Prev | Date Next | Date Index |
Let's assume that we are using decimal arithmetic. Consider the two vectors a = (10²ºº, 23456, -10²ºº) and b = (1, 1, 1).A conventional for loop for the dot product of a and b in any available fixed precision gives you 0, while the EDP would give you 23456. A conventional for loop for the dot product of a by itself (norm) would give you an overflow, while the EDP would give you the value of the product.23456×23456 with no overflow.
For more details see the poster. Let me mention that I shall be out of town for a conference for one week. Ulrich Kulisch Am 17.09.2013 23:09, schrieb Richard Fateman:
On 9/17/2013 6:24 AM, Ulrich Kulisch wrote:Let me just discuss an explicit example more closely, computing the dot product of two vectors with interval components. What you would like to have is the least enclosure of the set of all dot products of real vectors out of the two interval vectors. Computing the interval dot product in conventional interval arithmetic (what we are going to standardize in P1788) for each interval product of two vector components you round the minimum of all products of the interval bounds downwards and the maximum upwards.There is no requirement that an interval dot product be computed by a simple loop for i:=1 to n sum a[i]*b[i] {where sum and * are interval operations} just as there is no requirement that a dot product of floats be computed by that same loop. If I were computing a dot product of vectors of ordinary floats I might consider extra-precise multiplication (via Split/TwoSum/TwoProd etc.) and compensated summation. For the analogous interval operation, perhaps the convenient operations I would need are already implicit in the standard, which permits multiple-precision.... For example multiplication of 2 double-float intervals [a1,a2] * [b1,b2] to produce [C,D] where C and D were quad-float numbers. e.g. C = <e,f> where e + f ,each a double-float, is a representation of exactly the product. This would be available as an appropriately overloaded interval mul(), with a quad target precision, e.g. quad_mul(a,b). I think that quad_add() would be effective in adding the minima and the maxima, vastly decreasing the possibility of a significant rounding error affecting the final outcome. Or perhaps a compensated summation of the collection of (scalar) values separately. While it is possible to add 3 numbers a,b,c via EDP(<a,b,c>, <1,1,1>) and multiply two numbers by EDP(<a>,<b>), it does not seem economical. RJF
-- Karlsruher Institut für Technologie (KIT) Institut für Angewandte und Numerische Mathematik D-76128 Karlsruhe, Germany Prof. Ulrich Kulisch Telefon: +49 721 608-42680 Fax: +49 721 608-46679 E-Mail: ulrich.kulisch@xxxxxxx www.kit.edu www.math.kit.edu/ianm2/~kulisch/ KIT - Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gesellschaft
Attachment:
Poster22.pdf
Description: Adobe PDF document