So meine Quadratwurzel ist fertig.
Hab mir ein Iteratives VErfahren ausgedacht, dass nach dem Prinzip der Annäherung durch Intervallhalbierung funktioniert.
dadurch konnte ich folgende verbesserung erziehlen:
400000/232000 Berechnung der Gelenkwinkel IK (72% schneller)

hat jemand von euch eine Idee wie man die Arkus Winkelfunktionen Approximieren kann? In Festkomma Arithmetik...
Code:
uint16_t sqroot(unsigned long number)				// O(n)=log_2(n) Max Abweichung meistens 0 oder 1, selten 2 bzw. 0.1% für große zahlen
{
	if(number==0) return 0;							//triviale Fälle abfangen
	if(number==1) return 1;
	
	unsigned long r2;
	uint16_t root=0,delta;
	if(number>16777216UL)							//falls die Zahl größer als eine 24 Bit Zahl ist
		delta=(number>>16);
	else if(number>64536)							//falls die Zahl größer als eine 16 Bit Zahl ist
		delta=(number>>8);							//günstigeren Anfangspunkt Wählen --> führt zu leichter Unschärfe 0.1%
	else
		delta=(number>>1);								//sonst beginn bei der Zahl selbst
	
	while (delta)									//sollte innerhalb von 16 Iterationen eine Lösung liefern
	{
		r2=(unsigned long)root*root;
		if(r2>number)
			root-=delta;
		else
			root+=delta;
		delta=(delta>>1);
	}
	return (uint16_t)root;
}
mfg WarChild