ฉันต้องการคำนวณทั้งไซน์และไซน์ร่วมของค่าด้วยกัน (ตัวอย่างเช่นการสร้างเมทริกซ์การหมุน) แน่นอนว่าฉันสามารถคำนวณแยกจากกันได้a = cos(x); b = sin(x);
แต่ฉันสงสัยว่ามีวิธีที่เร็วกว่าเมื่อต้องการทั้งสองค่า
แก้ไข: เพื่อสรุปคำตอบจนถึงตอนนี้:
วลาดกล่าวว่ามีคำสั่ง asm ที่
FSINCOS
คำนวณทั้งคู่ (เกือบจะในเวลาเดียวกันกับการโทรไปหาFSIN
คนเดียว)เช่นเดียวกับที่จิสังเกตเห็นการเพิ่มประสิทธิภาพนี้บางครั้งคอมไพเลอร์ทำไปแล้ว (เมื่อใช้แฟล็กการปรับให้เหมาะสม)
คาเฟ่ชี้ให้เห็นว่าฟังก์ชั่น
sincos
และsincosf
อาจพร้อมใช้งานและสามารถเรียกได้โดยตรงเพียงแค่รวมmath.h
มีการกล่าวถึงวิธีการของ Tanascius ในการใช้ตารางการค้นหาที่ขัดแย้งกัน (อย่างไรก็ตามในคอมพิวเตอร์ของฉันและในสถานการณ์มาตรฐานจะทำงานได้เร็วกว่า 3 เท่า
sincos
โดยมีความแม่นยำเกือบเท่ากันสำหรับจุดลอยตัว 32 บิต)โจเอลกู๊ดวินเชื่อมโยงกับแนวทางที่น่าสนใจของเทคนิคการประมาณค่าที่รวดเร็วมากพร้อมด้วยความแม่นยำที่ค่อนข้างดี (สำหรับฉันนี่จะเร็วกว่านี้จากการค้นหาตาราง)