gmp ขี้เกียจกำหนดรูปแบบด้วย mpq_t หรือไม่

เมื่อใช้เหตุผล gmp ฉันมีหน้าที่จองการโทรไปที่ canonicalize() หรือไม่ (ซึ่งอาจมีค่าใช้จ่ายสูงตามประสิทธิภาพ) gmp รู้หรือไม่ว่าเหตุผลไม่ได้เปลี่ยนแปลงตั้งแต่การเรียกครั้งสุดท้ายที่ canonicalize() และจะกลับมาหากฉันพยายามกำหนดรูปแบบมาตรฐาน

ฉันไม่พบคำตอบในเอกสารประกอบ และอาจมีบางคนได้ตรวจสอบแหล่งที่มาของสิ่งนี้แล้ว


person rwst    schedule 25.11.2015    source แหล่งที่มา
comment
นั่นไม่ตอบคำถามใช่ไหม? ยังไม่ชัดเจนว่าการเรียก canonicalize() ตามลำดับสองครั้งส่งผลให้มีการใช้ทรัพยากรเดียวกันหรือไม่   -  person rwst    schedule 25.11.2015
comment
สามารถดูแหล่งที่มาได้ที่นี่: gmplib.org/repo/gmp/file/tip /mpq/canonicalize.c ไม่มีทางลัด   -  person Marc Glisse    schedule 26.11.2015


คำตอบ (1)


ไม่น่าจะส่งคืนมาเนื่องจาก mpq_t ไม่มีข้อมูลรูปแบบใดๆ ไม่ว่าเศษส่วนจะอยู่ในรูปแบบมาตรฐานอยู่แล้วหรือไม่ก็ตาม อย่างน้อยเอกสาร GMP ไม่ได้กล่าวถึงใน 16.2 Rational Internals:

ตัวแปร mpq_t แสดงถึงเหตุผลโดยใช้ตัวเศษและตัวส่วน mpz_t (ดูจำนวนเต็มภายใน)

ในทางปฏิบัติ อาจเรียก mpz_gcd() (หรือเทียบเท่า) เพื่อตรวจสอบว่าตัวเศษและส่วนเป็นจำนวนเฉพาะหรือไม่

person Grzegorz Szpetkowski    schedule 25.11.2015