UUlpNacre
พื้นที่เขียนโค้ดด้วย AI

ระยะ ULP ของ binary64 จำกัด

วัดระยะก้าวที่แทนค่าได้ระหว่าง binary64 จำกัดสองค่าโดยถือว่าศูนย์ทั้งสองเครื่องหมายเท่ากัน.

● ● ●UlpNacre●
ขั้นตอนการทำงาน · ระยะ ULP ของ binary64 จำกัด ×
import math, struct

def ulp_distance(a, b):
    if any(type(x) is not float or not math.isfinite(x) for x in (a, b)):
        raise ValueError("ulp.finite")
    def key(value):
        bits = struct.unpack(">Q", struct.pack(">d", value))[0]
        magnitude = bits & ((1 << 63)-1)
        return (1 << 63)-magnitude if bits >> 63 else (1 << 63)+magnitude
    return abs(key(a)-key(b))
✳ระยะ ULP ของ binary64 จำกัด
✓ การเปลี่ยนแปลงตรวจสอบก่อนนำไปใช้ ↗
ภาพประกอบพื้นที่ทำงาน
โมเดล
ตั้งค่า endpoint ที่รองรับ OpenAI หรือ Anthropic ด้วย URL หลักและคีย์ API หากจำเป็น ทดสอบการเชื่อมต่อ เซิร์ฟเวอร์โมเดลในเครื่องต้องทำงานอยู่ เครื่องมือระยะไกลอาจส่งข้อมูลแยกต่างหาก
โปรเจกต์
ทดสอบค่าต่ำกว่าปกติที่ติดกันและทั้งสองเครื่องหมาย ปฏิเสธจำนวนเต็ม อนันต์ และ NaN โดยไม่ตีความเป็นความคลาดเคลื่อนสัมพัทธ์.
ตรวจสอบก่อนนำไปใช้
เปรียบเทียบการทำงานจริงกับผลที่คาดหวัง หากการตรวจสอบไม่ผ่าน ให้หาสาเหตุก่อนแก้ไขเพิ่มเติม
ขั้นตอนการทำงาน

ระยะ ULP ของ binary64 จำกัด

ขั้นตอนการทำงาน ↗
ขั้นตอนการทำงาน
import math, struct

def ulp_distance(a, b):
    if any(type(x) is not float or not math.isfinite(x) for x in (a, b)):
        raise ValueError("ulp.finite")
    def key(value):
        bits = struct.unpack(">Q", struct.pack(">d", value))[0]
        magnitude = bits & ((1 << 63)-1)
        return (1 << 63)-magnitude if bits >> 63 else (1 << 63)+magnitude
    return abs(key(a)-key(b))
พื้นที่เขียนโค้ดด้วย AI

ใช้กฎเปรียบเทียบที่เหมาะกับความคลาดเคลื่อนเชิงตัวเลข

ผลตัวเลขสองค่าอาจพิมพ์ออกมาเหมือนกันแต่มีรูปแบบแทนค่าภายในต่างกัน UlpNacre ให้พื้นที่เขียนโค้ดด้วย AI บน Windows เพื่อสืบว่าความต่างนี้สำคัญต่อแอปหรือไม่ นำข้อมูลเข้าจริง การคำนวณ และการเปรียบเทียบที่ทำให้สงสัยมา ขอให้ผู้ช่วยตรวจวิธีสร้างและตัดสินค่าก่อนแทนการตรวจความเท่ากันด้วยกฎอื่น

ตัวอย่างระยะห่างของรูปแบบแทนค่าทศนิยมลอยตัวเป็นงานหนึ่งที่ทำได้ คุณอาจตรวจข้อมูลเข้าที่มีค่าจำกัดและศูนย์มีเครื่องหมาย แล้วหารือว่าระยะห่างควรใช้กับการทดสอบหรือวินิจฉัยอย่างไร แยกการตัดสินใจเรื่องค่าคลาดเคลื่อนที่แอปยอมรับจากการวัดเอง ซอร์สตัวอย่างเป็น Python ชื่อโดเมนไม่ได้ยืนยันว่ามีตัวแก้บั๊กเฉพาะ PHP หรือทำให้สมมติฐานใช้ได้กับรันไทม์ตัวเลขทุกชนิด

ใช้ปลายทาง OpenAI-compatible หรือ Anthropic ที่รองรับเพื่อเลือกโมเดล AI ที่ลดกลไกการปฏิเสธซึ่งมีให้ พร้อมข้อมูลรับรองเมื่อจำเป็น บริบท เครื่องมือ และข้อจำกัดขึ้นกับโมเดลและเซิร์ฟเวอร์นั้น ตรวจโค้ดเปรียบเทียบที่เสนอและรันกับค่าตัวแทนที่เกี่ยวกับแอป เซิร์ฟเวอร์โมเดลภายในเครื่องที่แยกต่างหากดูแลการอนุมาน แต่เครื่องมือที่เชื่อมต่ออาจยังทำงานผ่านบริการภายนอก

สืบความต่างของรูปแบบแทนค่า

ระยะห่างรูปแบบแทนค่าที่น้อยควรนับว่าเท่ากันเสมอหรือไม่

นั่นเป็นข้อกำหนดแอป ไม่ใช่ข้อสรุปจากการวัด พิจารณาการใช้ค่าและกำหนดกฎเปรียบเทียบที่ยอมรับได้ ขอให้ข้อเสนออธิบายขีดจำกัดและทดสอบค่าใกล้จุดตัดสินใจที่ซอฟต์แวร์ใช้จริง

เหตุใดควรแนบการคำนวณที่สร้างค่าเหล่านั้น

ที่มาช่วยอธิบายว่าค่าต่างกันเพราะอะไรและเป็นสิ่งที่คาดไว้หรือไม่ ตรวจการแปลงและการดำเนินการก่อนแก้การเปรียบเทียบสุดท้าย ค่าคลาดเคลื่อนที่ยอมรับใหม่อาจซ่อนบั๊กที่อื่นหากยังอธิบายเส้นทางการคำนวณไม่ได้

ตัวอย่างนี้เปรียบเทียบข้อมูลตัวเลขทุกชนิดได้หรือไม่

ไม่ได้ ข้อกำหนดระบุว่ารับข้อมูลทศนิยมลอยตัวที่มีค่าจำกัด ค่าอื่นต้องมีนโยบายชัดเจน คงข้อมูลที่ต้องปฏิเสธไว้ในการตรวจ แทนการสมมติว่าฟังก์ชันระยะห่างรูปแบบแทนค่าครอบคลุมชนิดตัวเลขหรือค่าพิเศษทั้งหมด

ควรตรวจอะไรเมื่อนำแนวคิดไปใช้ในรันไทม์อื่น

ตรวจรูปแบบแทนค่าตัวเลข พฤติกรรมการแปลง และการดำเนินการที่รันไทม์มี สร้างกรณีขอบเขตที่เกี่ยวข้องซ้ำในสภาพแวดล้อมนั้น ตัวอย่าง Python เป็นจุดเริ่มต้นสืบค้น ไม่ใช่หลักฐานว่าฉบับแปลงที่ยังไม่ทดสอบมีพฤติกรรมเหมือนกัน

ดาวน์โหลดสำหรับ Windows ↗

UlpNacre · อัปเดต 2026-10-25