4 คะแนน โดย GN⁺ 2024-12-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

สรุปอัปเดต Mathics3/mathics-core

  • ฟีเจอร์ใหม่และการปรับปรุง

    • กำลังดำเนินงานเพื่อรองรับการโหลดแบบ lazy ของฟังก์ชัน built-in
    • ปรับโค้ดและสไตล์ของ Python ให้ทันสมัย เพิ่ม type annotations และลบคำสะกดผิด
    • ใช้งาน SymPy และ Python เวอร์ชันล่าสุด
    • เพิ่มฟังก์ชัน built-in ใหม่: $MaxLengthIntStringConversion, Elements, ComplexExpand, ConjugateTranspose, LeviCivitaTensor, RealAbs, RealSign, RealValuedNumberQ.
  • เอกสารประกอบ

    • แก้ปัญหารูปแบบของไฟล์ PDF
    • เพิ่มระยะห่างของหมายเลขในสารบัญระดับ chapter และ section
    • เพิ่มพื้นที่ว่างรอบคำจำกัดความของ built-in
    • แก้ไขคำสะกดผิด
    • ปรับปรุงการรัน doctests และโค้ดสร้างเอกสาร LaTeX เพื่อให้สามารถอัปเดต built-in แบบค่อยเป็นค่อยไปได้
  • ความเข้ากันได้

    • Plot จะไม่แสดงข้อความระหว่างการประเมินผล
    • ตอนนี้ Range[] สามารถจัดการค่าติดลบได้แล้ว
    • ปรับปรุงการรองรับ DirectedInfinity และ Indeterminate
    • แสดง tooltip ของข้อความผิดพลาดในอินเทอร์เฟซ Mathics-Django
    • สามารถเปลี่ยน $CharacterEncoding ภายในเซสชันได้
  • โครงสร้างภายใน

    • แยก eval_abs และ eval_sign ออกจาก Abs และ Sign แล้วเพิ่มไปยัง mathics.eval.arithmetic
    • จำนวนหลักสูงสุดของสตริงถูกตั้งไว้ที่ 7000 และสามารถปรับได้ผ่านตัวแปรสภาพแวดล้อม MATHICS_MAX_STR_DIGITS
    • ตอนนี้การเปรียบเทียบจำนวนจริงอิงตามการทำงานภายในของ RealSign
    • ใน Python 3.11, $MaxLengthIntStringConversion ควบคุมขนาดสูงสุดของการแปลงระหว่างจำนวนเต็มขนาดใหญ่กับสตริง
  • การแก้บั๊ก

    • Definitions เข้ากันได้กับ pickle
    • ปรับปรุงการรองรับนิพจน์ Quantity
    • ตัวเลือกพื้นหลังของ Graphics และ Graphics3D ทำงานได้
    • แก้ปัญหาการเปรียบเทียบเชิงตัวเลขสำหรับนิพจน์ที่มีสตริง
    • แก้ปัญหาการจัดการอินฟินิตี้ของ Switch[]
    • แก้ปัญหาการจัดการ SparseArray ของ Outer[]
    • ArrayQ[] สามารถตรวจจับ SparseArray ได้
    • แก้ปัญหาการจัดการข้อยกเว้น BoxExpressionError
    • แก้ปัญหาการประเมินอนุพันธ์ของ True, False, List[]
    • ปรับแก้แพ็กเกจ Combinatorica
    • แก้ปัญหาการทำงานของ Exit[]
    • BaseForm ถูกแสดงอยู่ใน $OutputForms
  • การเปลี่ยนแปลง API

    • จำเป็นต้องเรียกใช้ฟังก์ชันใหม่ import_and_load_builtins()
    • สิ่งนี้จำเป็นเพื่อรองรับการโหลดแบบ lazy ของโมดูล built-in
  • อัปเดตแพ็กเกจ

    • รองรับ Python 3.11
    • รองรับ Sympy 1.12

1 ความคิดเห็น

 
GN⁺ 2024-12-09
ความคิดเห็นจาก Hacker News
  • ผมติดตามโปรเจ็กต์นี้มาหลายปี และมีโซลูชันที่ค่อนข้างสมบูรณ์หลากหลายสำหรับคนที่สนใจระบบพีชคณิตเชิงคำนวณแบบโอเพนซอร์ส

    • มีตั้งแต่ตัวคลาสสิกอย่าง GNU Octave, Maxima ไปจนถึงตัวสมัยใหม่อย่าง SAGEmath, Symbolics.jl, sympy
    • ครอบคลุมตั้งแต่ไลบรารีเชิงสัญลักษณ์อย่าง GiNaC ไปจนถึง IDE แบบ "มีทุกอย่างพร้อมใช้" อย่าง SAGEmath
    • SAGEmath เป็นผู้บุกเบิกเว็บโน้ตบุ๊กอินเทอร์เฟซ ซึ่งต่อมาได้กลายมาเป็น Jupyter ในปัจจุบัน
  • โดยส่วนตัวผมชอบสไตล์แบบ LISPy ของ Mathematica แต่พลังที่แท้จริงของ MMA อยู่ที่ไลบรารีขนาดมหาศาล

    • ไม่ได้มีแค่โซลูชันชั้นนำของอุตสาหกรรมสำหรับหัวข้อพื้นฐานอย่างการอินทิเกรตเชิงสัญลักษณ์, กราฟิก 2D/3D, วิธีไฟไนต์เอลิเมนต์เท่านั้น แต่ยังรวมถึงโดเมนเฉพาะทางอย่างชีวสารสนเทศศาสตร์ด้วย
    • Mathics จำลองแกนหลักได้ดี แต่ยังขาดไลบรารีทั้งหมดเหล่านั้น
    • ตรรกะคล้ายกับกรณีของตัวโคลน Matlab และ numpy
  • Wolfram Cloud เปิดให้ใช้งานฟรีสำหรับการใช้งานส่วนบุคคล และ Wolfram Engine เป็นอีกวิธีในการใช้ Mathematica ฟรีผ่านบรรทัดคำสั่ง

  • ดูคำแนะนำสั้น ๆ เกี่ยวกับ Mathics ได้ที่นี่

  • Mathematica ใช้งานฟรีบน Raspberry Pi ได้ และมหาวิทยาลัยส่วนใหญ่ก็มี site license อยู่แล้ว

    • ไลเซนส์ "Home & Hobby" มีราคาค่อนข้างถูกที่ $195 ต่อปี หรือไลเซนส์ถาวร $390
    • ผมคิดว่าการจ่ายค่าราคาไลเซนส์สำหรับงานอดิเรกนั้นคุ้มค่า และคิดว่าการสนับสนุนซอฟต์แวร์คณิตศาสตร์เป็นเรื่องที่ดี
  • ซอฟต์แวร์คณิตศาสตร์แบบ (F)OSS ยังคงมีบทบาทสำคัญ

    • Mathematica นั้นครอบคลุมมาก แต่ก็ยังมีข้อด้อยสำคัญบางประการในคณิตศาสตร์ขั้นสูง
    • ซอฟต์แวร์ (F)OSS อย่าง GAP, M2, PARI/GP มีบทบาทสำคัญในการเติมเต็มส่วนที่ Wolfram Language ยังขาดอยู่
  • ผมไม่ได้สนใจมากนักกับโปรเจ็กต์ที่พยายามทำซ้ำความสามารถของ Mathematica แต่โปรเจ็กต์เหล่านี้ก็สร้างแรงกดดันให้ Wolfram Research ต้องปรับปรุงความสามารถพื้นฐานอย่างต่อเนื่อง

  • วิศวกรซอฟต์แวร์มักมีแนวโน้มไม่อยากจ่ายเงินค่าเครื่องมือซอฟต์แวร์

  • จุดที่ใช้งานไม่สะดวกอย่างหนึ่งของ Mathematica คือฟังก์ชันทั้งหมดถูกรวมอัดแน่นอยู่ใน namespace เดียว และไม่มีการโอเวอร์โหลดด้วยตัวเลือกการกำหนดพารามิเตอร์แบบอื่น