مرحبا بالجميع!
كانت هناك حاجة لكتابة حساب سريع للخطيئة و Cos. كان أساس الحسابات هو التوسع في سلسلة تايلور. أستخدمه في أنظمة ثلاثية الأبعاد (OpenGL والمكتبة الرسومية في تطوري). لسوء الحظ ، من المستحيل تقليل عدد "المثالي" لـ Double ، ولكن هذا يعوضه تسارع جيد. الرمز مكتوب في المجمع في دلفي XE6. مستخدمة بواسطة SSE2.
غير مناسب للحوسبة العلمية ، ولكن للاستخدام بالكامل في الألعاب.
الدقة كافية لتغطية طول عدد العازبات المستخدم
الضرب في المصفوفة.
باختصار:
- الدقة المحققة هي: 10.e-13
- الحد الأقصى للتعارض مع وحدة المعالجة المركزية هو 0.000000000000045.
- تزداد السرعة بالمقارنة مع وحدة المعالجة المركزية بمقدار 4.75 مرة.
- تزداد السرعة بالمقارنة مع Math.Sin و Math.Cos بمقدار 2.6 مرة.
في الاختبار ، استخدمت معالج Intel Core-i7 6950X Extreme 3.0 GHz.
يتم تضمين شفرة مصدر دلفي في تعليقات المجمع.
كود المصدر:
عنوان المفسدvar gSinTab: array of Double; gSinAddr: UInt64; const AbsMask64: UInt64 = ($7FFFFFFFFFFFFFFF); PI90: Double = (PI / 2.0); FSinTab: array[0..7] of Double = (1.0 / 6.0,
مثال العمل هناالاقتراحات والتعليقات البناءة مرحب بها