A good way to speed up code involving trigonometric functions (sine, cosine, tangent, etc.) is to build a table or array of pre-calculated trig values.
However, this becomes troublesome if the code uses non-integer degrees or radians, as you have to construct a larger table as you get more precise. Eventually, the table becomes too large to store in memory, and slows down the execution of the program, defeating its purpose.
I propose a computer chip, similar to graphics cards and memory chips, which store trigonometry tables with extremely accurate values - allowing degrees or radians, with up to 8 digits of precision. Calls to trigonometry functions from code would be re-routed to the Trig Chip, and a value would be looked up and returned.
With the Trig Chip installed, graphics calculations would be sped up incredibly. 3D engines would especially benefit from this, and would be able to perform calculations much more quickly.
In recent years, storage has gotten fairly large at small volumes. Tables like I suggest could be stored on a chip just a few inches wide. Production for these tables would be extremely easy, and therefore would probably cost little.-- rgovostes, Dec 24 2003 It was pointed out to me that a program will not know if a Trig Chip is installed unless it is specifically programmed to do so. Therefore, it would not speed up any existing programs which construct their own trig tables. (It would, I suppose, speed up the creation of the tables.)
It would still enhance other programs, though.-- rgovostes, Dec 24 2003 What size of info table (bytes) would you need for anything useful?
A few years ago a student of mine had an assignment on audio creation, and did it with java. The program was too slow, so, rather than calculating, we used pre-stored tables. Of course we compromised the flexibility, using only preconcieved waves. But it was enough for our demo.-- pashute, Jun 02 2004 I've not benchmarked any of the newer chips, but chip makers spend a fair amount of money to get pretty decent trig algorithms wired into their high-end processors. I fail to see much benefit to having a separate chip for such functions.-- supercat, Jun 02 2004 Increased speed, but increased cost, and a lot of effort to convert over. Knowing programming fairly well myself I can definitely understand the use for this, but I can't see it gaining acceptance. neutral for you.-- 5th Earth, Jun 03 2004 A separate chip that handles trigonometry functions, as well as floating point math operations, is called a math coprocessor. On the Intel platforms, this was called the x87. It was so popular, starting with the 386, the chip was integrated into the CPU.
The algorithm used in modern coprocessors is called CORDIC, it uses a small stored table and very simple logic.-- jsuen, Jul 11 2004 we have pyhisics processor cards so why not-- dev45, Nov 11 2006 random, halfbakery