Springen naar inhoud

Optimized trigometry


  • Log in om te kunnen reageren

#1

Vladimir Lenin

    Vladimir Lenin


  • >250 berichten
  • 829 berichten
  • Ervaren gebruiker

Geplaatst op 16 juli 2009 - 20:40

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-- (Владимир Ильич Ульянов)

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

oktagon

    oktagon


  • >1k berichten
  • 4502 berichten
  • Verbannen

Geplaatst op 16 juli 2009 - 20:56

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!

#3

Rogier

    Rogier


  • >5k berichten
  • 5679 berichten
  • VIP

Geplaatst op 16 juli 2009 - 21:29

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.

#4

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 17 juli 2009 - 07:09

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

#5

Rogier

    Rogier


  • >5k berichten
  • 5679 berichten
  • VIP

Geplaatst op 17 juli 2009 - 10:57

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.

#6

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 17 juli 2009 - 12:47

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

#7

Rogier

    Rogier


  • >5k berichten
  • 5679 berichten
  • VIP

Geplaatst op 17 juli 2009 - 13:28

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.

#8

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 17 juli 2009 - 13:39

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.

#9

Aries

    Aries


  • >25 berichten
  • 83 berichten
  • Ervaren gebruiker

Geplaatst op 14 augustus 2009 - 08:20

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..

Veranderd door Aries, 14 augustus 2009 - 08:19






0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures