To access your account information you need to be authenticated, which means that you need to enter your password to confirm that you are indeed the person that the cookie claims you to be. Charles Dickens Hardbacks Cheeny. About this product Compufer This handbook is intended to acquaint users with methods for designing function subroutines and, in the case of the most commonly needed functions, to provide them with the necessary tables to do so efficiently. Peter Pauper Press Show more Show less.
|Published (Last):||11 August 2010|
|PDF File Size:||7.43 Mb|
|ePub File Size:||17.86 Mb|
|Price:||Free* [*Free Regsitration Required]|
John D. Cook John D. Cook This was not always the case, until the i DX all floating point calculations were done in software "soft-float" for x86 series without a separate coprocessor.
Not all of which FPUs included transcendental functions e. Weitek How does one "polish up" an approximation using a Taylor series? Suppose you know the exact value of both at one point e. See randomascii.
Most other processors do not have instructions for sine and cosine because calculating them in software gives more flexibility, and may even be faster. First, the accuracy and resolution of the operation is extremely important for many applications.
Cordic is notoriously inaccurate when you get to the 7th digit or so, and unpredictable. Secondly, i heard there is a bug in their implementation, which causes even more problems. I took a look at the sin function for linux gcc, and sure enough, it uses chebyshev. Oh, also, the cordic algorithm in the chip is slower than the software solution.
This is one of my biggest complaints with inexperienced software engineers. Not true. This is a well defined problem and has been approached thousands of times by very clever software and hardware engineers and has a well defined solution.
Basically, most of the transcendental functions use Chebyshev Polynomials to calculate them. As to which polynomials are used depends on the circumstances.
First, the bible on this matter is a book called "Computer Approximations" by Hart and Cheney. In that book, you can decide if you have a hardware adder, multiplier, divider, etc, and decide which operations are fastest.
Without the fast divider, it might be just P x , where P has much more terms than P1 or P So, first step is to determine your hardware and what it can do. Then you decide what decimal precision you want. Then you implement your algorithm in software in the form: p4. Note that most hardware implementations of transcendental operations in an FPU usually involve some microcode and operations like this depends on the hardware. Chebyshev polynomials are used for most transcendentals but not all. Square root is faster to use a double iteration of Newton raphson method using a lookup table first.
Again, that book "Computer Approximations" will tell you that. It really is the bible for these kinds of algorithms. Note that there are bunches of alternative means for calculating these values like cordics, etc, but these tend to be best for specific algorithms where you only need low precision.
To guarantee the precision every time, the chebyshev polynomials are the way to go. Like I said, well defined problem. Has been solved for 50 years now Now, that being said, there are techniques whereby the Chebyshev polynomials can be used to get a single precision result with a low degree polynomial like the example for cosine above. This latter technique is what the post referring to the ACM literature is referring to.
Subscribe to RSS
No Results Found