Optimized trigometry

Moderators: jkien, Xilvo

Reageer
Gebruikersavatar
Berichten: 829

Optimized trigometry

Weet er iemand een methode die de berekeningen van trigometry sneller maken, mits dan wel natuurlijk een zekere foutmarge, ik werk namelijk aan een stuk code die gigantisch vertraagd door de lange berekeningen van Sinussen en Cosinussen.
"Als je niet leeft zoals je denkt, zul je snel gaan denken zoals je leeft."

--Vladimir Lenin-- (Владимир Ильич Ульянов)

Berichten: 4.502

Re: Optimized trigometry

Geef eens een berekening of vraagstuk op ;ik gebruikte zoiets dergelijks ook in mijn QB 45-programma's,moest wel graden omrekenen in radialen,dus de ingevoerde graden delen door 57.29578 omdat mijn wrs.amerikaanse QB-systeem werkt met radialen.

Bij het resultaat weer terugrekenen in graden!

Gebruikersavatar
Berichten: 5.679

Re: Optimized trigometry

Geef eens een voorbeeld van zo'n formule die je uitrekent? Want behalve programmeertruukjes kun je beter eerst op algoritmisch niveau optimaliseren. Als je 3 sinussen kunt ombouwen tot 1 is dat beter.

Als het dan nog steeds te traag is: lookup tables?
In theory, there's no difference between theory and practice. In practice, there is.

Gebruikersavatar
Berichten: 7.224

Re: Optimized trigometry

Of probeer een andere library:

http://mathnet.opensourcedotnet.info/

Als je echt performance wilt hebben en er ook een euro of 1500 voor neer wilt tellen, dan is de ISML library wel wat:

http://www.vni.com/products/imsl/
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

Gebruikersavatar
Berichten: 5.679

Re: Optimized trigometry

Ik heb trouwens geen ervaring met C# maar kun je daar in release (optimized) mode de asm code zien die hij ervan maakt? Ik neem toch wel aan dat C# net als C++ compileert naar optimized FPU code enzo, en niet halfslachtig gaat lopen scripten/interpreten/ansi-complient-emuleren/whatever?
In theory, there's no difference between theory and practice. In practice, there is.

Gebruikersavatar
Berichten: 7.224

Re: Optimized trigometry

Ik heb trouwens geen ervaring met C# maar kun je daar in release (optimized) mode de asm code zien die hij ervan maakt? Ik neem toch wel aan dat C# net als C++ compileert naar optimized FPU code enzo, en niet halfslachtig gaat lopen scripten/interpreten/ansi-complient-emuleren/whatever?


C# compileert naar MLIS (Microsoft Intermediate Language) code. Deze kan vervolgens door de Common Language Runtime (CLR) uitgevoerd worden. Een beetje heel erg a la Java dus.
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

Gebruikersavatar
Berichten: 5.679

Re: Optimized trigometry

Oh ;)

Nou TS, dan heb ik hier een tip voor je die echt veel snelheid gaat opleveren: doe het in C++
In theory, there's no difference between theory and practice. In practice, there is.

Gebruikersavatar
Berichten: 6.905

Re: Optimized trigometry

Math.Net is een heel goede library. Ik zou eerst wiskundig optimaliseren en dan kijken wat de snelheid is. Je zou uiteraard een tabel kunnen maken en opzoeken maar ik weet niet of je snelheid gaat winnen.
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Berichten: 83

Re: Optimized trigometry

Ik heb trouwens geen ervaring met C# maar kun je daar in release (optimized) mode de asm code zien die hij ervan maakt? Ik neem toch wel aan dat C# net als C++ compileert naar optimized FPU code enzo, en niet halfslachtig gaat lopen scripten/interpreten/ansi-complient-emuleren/whatever?
C# doet een geoptimaliseerde Compilatie voor die ene machine bij de eerste run van het programma, daarom is C# veel sneller dan java. zoek de benchmarks maar eens op.

Java heeft alleen JIT compilatie voor sommige dingen het wordt nooit een "echt" programma.

Als je het echt goed wil doen, schrijf een DLL in C++ en asm en gebruik deze in je programma
Math.Net is een heel goede library. Ik zou eerst wiskundig optimaliseren en dan kijken wat de snelheid is. Je zou uiteraard een tabel kunnen maken en opzoeken maar ik weet niet of je snelheid gaat winnen.
Niks is zo snel als een lookup table, maar je "mist" wel bepaalde waarden. voor sommige toepassingen maakt dat echter niks uit..

Reageer