Wo finde ich Algorithmen für mathematische Standardfunktionen?

Ich möchte einen Patch für die D-Programmiersprachen-Standardbibliothek einreichen, mit dem ein Großteil von std.math zur Kompilierungszeit mithilfe der zur Kompilierungszeit verfügbaren Funktionsevaluierungsfunktionen der Sprache ausgewertet werden kann. Die Funktionsbewertung zur Kompilierungszeit unterliegt mehreren Einschränkungen. Die wichtigsten sind:

Sie können keine Assemblersprache verwenden.Sie können keinen C-Code oder Code aufrufen, für den die Quelle ansonsten nicht verfügbar ist.

Einige std.math-Funktionen verletzen diese und es müssen Versionen zur Kompilierungszeit geschrieben werden. Wo finde ich Informationen zu guten Algorithmen für die Berechnung von Dingen wie Logarithmen, Exponenten, Potenzen und Triggerfunktionen? Ich bevorzuge aus zwei Gründen nur allgemeine Beschreibungen von Algorithmen gegenüber tatsächlichem Code:

Um rechtliche Unklarheiten und die Notwendigkeit zu vermeiden, dass mein Code von der Quelle "unterschiedlich genug" aussieht, um sicherzustellen, dass ich das Urheberrecht besitze.

Ich möchte einfache, tragbare Algorithmen. Die Mikrooptimierung ist mir egal, solange sie zumindest asymptotisch effizient ist.

Edit: Das Bewertungsmodell für die Kompilierzeitfunktion von D ermöglicht, dass sich Gleitkommaergebnisse, die zur Kompilierzeit berechnet wurden, von denen unterscheiden, die zur Laufzeit berechnet wurden. Daher ist es mir egal, ob meine Algorithmen zur Kompilierzeit keine lieferngenau das gleiche Ergebnis wie die Laufzeitversion, sofern sie nicht in einem praktisch signifikanten Ausmaß weniger genau sind.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage