Changes between Version 27 and Version 28 of SoC2013
- Timestamp:
- Mar 27, 2013, 9:16:11 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoC2013
v27 v28 158 158 * First of all, we will closely monitor the progress of this project and decide what precision ranges we would like to support. 159 159 * The easiest precision level involves floating-point numbers with less than about 1,000 decimal digits of precision. 160 * Further levels climb to thousands or even millions of digits, but these require algorithms of increasing complexity.161 * One of the first steps is to provid ing I/O handling for character-based strings and C++ <iostream> support.162 * The next important step involves implementing the basic algebraic operations (+, +, *, /)using a variety of techniques.163 * Multiplication is the performance bottleneck in multiprecision , and depending on the range goals, we may optionally include high-performance with Karatsuba multiplication and potentially ultra high performance and high digit countswith FFT-based multiplication.164 * Optionally we will be providing support for the elementary transcendental functions listed in <cmath>, as is now done for the existing back-ends.160 * Further precision levels climb to thousands or even millions of decimal digits. These require algorithms of increasing complexity. 161 * One of the first steps is to provide I/O handling for character-based strings and C++ <iostream> and <iomanip> support. 162 * The next important step involves implementing the basic algebraic operations (+, -, *, /), in other words addition, subtraction, multiplication, and division, using a variety of techniques. 163 * Multiplication is the performance bottleneck in multiprecision and we will be spending a lot of time here. Depending on the digit-range goals, we may optionally include high-performance with Karatsuba multiplication and potentially ultra-high performance with FFT-based multiplication. 164 * Optionally, we will be providing support for the elementary transcendental functions listed in <cmath>, as is now done for the existing back-ends. 165 165 * Finally, we need to ensure that the back-end seamlessly interoperates with Boost.Math. 166 166 * Testing is essential in order to verify the correctness of the implementation. We will, therefore, be writing a variety of tests to validate the algebra as well as the functions. 167 168 The existing radix-10 implementation in <boost/multiprecision/cpp_dec_float.hpp> can serve as a guide for candidates interested in visualizing the level of complexity involved in this project. In addition, a sketch consisting of mainly a feasibility check for radix-2 can be found in the sandbox. 167 169 168 170 Heavy use will be made of … … 174 176 * Fast Fourier transforms 175 177 * Conversion to and from radix-2 and radix-10 176 177 The existing radix-10 implementation in <boost/multiprecision/cpp_dec_float.hpp> can serve as a guide for candidates interested in visualizing the level of complexity involved in this project. In addition, a sketch consisting of mainly a feasibility check for radix-2 can be found in the sandbox.178 178 179 179 The new reference book "Modern Computer Arithmetic" is a valuable source for the algorithms in this project. A draft version of the book is available free of charge and the printed copy can be found in a library or at a book seller.