Also: 304 Byte / Objekt * 500.000 Objekte = ca. 145 MB Daten
Laufzeitmessung ist leider Plattformabhängig. Unter Linux kannst du das so machen
Unter Windows geht das am besten mit QueryPerformaceCounter.Code:#include <sys/time.h> double get_time(void) { struct timeval tv; gettimeofday(&tv, NULL); return (tv.tv_sec + (tv.tv_use * 1E-6)); } void foo(void) { double tstart, telapsed; tstart = get_time(); /* Mach was */ telapsed = get_time() - tstart; printf("Time: %f\n", telapsed); }


So etwas hatte ich erwartetMeine Funktion ist 75.5 mal langsamer als sqrt![]()



int length = 1024 * 1024 * 64;
double *a = new double[length];
tstart = ...;
for (int i = 0; i < length; ++i)
{
a[i] = sqrt(a[i]);
}
telapsed = ...;
delete[] a;
long double base::gethyp(long double lega, long double legb)
{
long double hyp;
long int N = 0;
long double middle1;
long double middle2;
long double middle3;
hyp = 23;//lega * lega + legb * legb;
for (int n = 0; n * n <= hyp; n++) // Bescleunigeung der Annäherung
{
N++;
}
middle1 = hyp / N;
middle2 = (middle1 + N) / 2;
middle3 = hyp / middle2;
for (int i = 0; i < 5; i++) // Bei 23 reichen auch schon 3, jedoch weiß ich nicht, wie adere Zahlen ragieren (Genaugkeit von 35 Stellen in der Variable)
{
middle2 = (middle2 + middle3) / 2;
middle3 = hyp / middle2;
}
return (middle2);
}
for(int n = n*n; n >= hyp; n--)
rechnet nicht in jedem schleifen durchgang n*n.
Wieso verwendest du C und nicht C++? Du könntest dir eine utility Klasse schreiben mit solch Berechnungen. Sollten halt static und ggf. inline sein.
.
Ah, ja vergess das bin leicht übermüdet.... Hab den code nicht nachvollzogen.
Da es jedoch utility methoden sind sollten sie besser static sein.


Hey ich hätte da noch ein Buch für dich: Game Engine Architecture
Das Buch "Game Engine Architecture" wurde vom Naughty Dog Lead Programmierer Jason Gregory geschrieben und erscheint am 5. August in einer zweiten Ausgabe.
In der überarbeiteten Ausgabe wurde viel hinzugefügt und überarbeitet.....unter anderem: extended/updated sections on multicore programming, pipelined CPU architecture and optimization, localization, C++11, pseudovectors and Grassman algebra, dual quaternions, SIMD vector math, memory alignment and anti-aliasing
Es ist zwar eher an Spieleengine Programmierung ausgerichtet, aber dürfte auch für dein Projekt ziemlich aufschlussreich sein.
Der einzige "Nachteil": es ist halt auf englisch^^
Edit:
Dieses Kapitel im Buch wäre wohl das Interessanteste für dich^^
12. Collision and Rigid Body Dynamics
12.1 Do You Want Physics in Your Game?
12.2 Collision/Physics Middleware
12.3 The Collision Detection System
12.4 Rigid Body Dynamics
12.5 Integrating a Physics Engine into Your Game
12.6 Advanced Physics Features