In einer engen Schleife mache ich eine lineare Interpolation zwischen zwei Fließkommawerten. Der einzige notwendige Teil des Ergebnisses ist jedoch das Vorzeichen (ob das Ergebnis negativ oder positiv ist). Ich mache gerade eine typische Lerp-Operation zwischen a und b.Lineare Interpolationsoptimierung für Sign-
a + f * (b - a);
Gibt es etwas effizienter bedenkt, dass ich brauche nur das resultierende Zeichen kennen und nicht der tatsächliche Wert lerped?
Edit: 'f' ist ein Satz fester Abstände entlang der Interpolation, die vorher bekannt sind.
Als allgemeine Faustregel gelten Berechnungen schneller als Zweige (z. 'if'-Aussagen). Dein Lerp-Code ist optimal imho. –
Gibt es einen der Parameter a, b, f, der konstant ist? –
Als Q & D-Hack können Sie das Vorzeichenbit als MSB in der IEEE-Darstellung erhalten. Dies erspart einen Test. Wie auch immer, es sei denn, der Körper des If ist wirklich leicht, jede Mikrooptimierung, die Sie hier machen können, wird unbemerkt bleiben. –