Thread Links | Date Links | ||||
---|---|---|---|---|---|
Thread Prev | Thread Next | Thread Index | Date Prev | Date Next | Date Index |
Arnold Neumaier wrote:
Section 1.8 of ViennaProposal-v3.01 reads: 1.8. Suggestions for hardware implementation A proposed minimal useful set of hardware operations which would significantly speed up existing applications in constraint programming, global optimization, and computational geometry are the following operations defining core interval arithmetic. - forward and reverse interval operations for plus, minus, times, divide, sqr (Sections 3.8-3.11 and 7.9) - mixed operations with one interval argument for plus, minus, times, divide (Section 4.2) - forward sqrt, exp, log (Sections 3.8-3.9) - linearInt, linearExt, linearInv (Sections 5.8 and 7.11) - mid, rad (Sections 5.2 and 7.11) - division with gaps (Section 5.7) - optimal enclosure of sums and inner products (Section 5.1) These operations might be singled out to represent (together with the operations from Section 2.5) level 1 of the standard; the remaining operations would represent level 2. An appendix may suggest explicit model algorithms for all level 1 operations. [end of Section 1.8]I'd like to discuss the following additional suggestion for hardware inplementation:What if we propose implementing three different pipelines for floating-point operations in fixed, selectable rounding modes? This can be used in ordinary floating-point calculations to parallelize computations, and in interval calculations to do operations in different rounding modes in different pipelines. This would completely remove the penalty for rounding mode switches; an optimizing compiler can choose the rounding modes of each pipeline to maximize total throughput with a minimal number of switches. For example, during interval computations interspersed byapproximate floating-point computations (frequent in global optimization), one pipeline might be set to round up, one toround down, and one to round nearest. Note that there are many situations (for example, the Hansen-Bliek method for solving linear systems with interval coefficients) where one wants to do some directed rounding calculations within some routine using interval arithmetic; so the directed pipelines should be available for both interval and other directed calculations. Other applications of directed rounding arise when explicit use is made within interval computations of monotonicity behavior of certain formulas, which allows to compute lower and upper bounds separately using directed rounding. A well-known example is Barth and Nuding's optimal solution of linear systems with an interval M-matrix, but there are many other cases of interest; e.g. the algorithms in Section 5.8 of ViennaProposal-v3.0.
Related to this topic, which is: what kind of good underlying support we would like to implement interval arithmetic, Guillaume and I submitted a proposal to WG21 (C++) to add directed rounding mode arithmetic operations with some compiler support. You will find it attached. You may need to be proficient in C++0x to parse it though :) In any case, any comment is welcome! -- Sylvain Pion INRIA Sophia-Antipolis Geometrica Project-Team CGAL, http://cgal.org/
Attachment:
rounded_operations_N2811.pdf
Description: Adobe PDF document
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature