• Tutorial: Adding a new Mathics3 Function
    • Hello, World! – using Predefined
    • Introducing the Builtin Class and Pattern-based Parameter Specification
    • Checking Parameter Counts
    • Adding Help (Information[]) Text
    • Writing Document Tests
    • Working with Multiple Patterns
    • Function Application via Rules
    • Class variables and Function Attributes
    • Emitting Warnings and Errors
  • Case Studies for Adding Builtins
    • Defining Variable $MachineName
    • Selecting a Builtin to Add
    • Adding Builtin Undefined
      • Decide where in the code and document to place the code in Mathics3
      • What is Undefined?
      • Is there something similar to Undefined that we can use as an example?
      • First Skeletal version
        • Undefined Title Line
        • Undefined Symbol Definition Description
        • User-Oriented Examples
      • Checking the Skeletal version
      • Completing Undefined
      • Testing Undefined
      • Pytest testing of Undefined
    • Adding Builtin Function KroneckerProduct
      • Finding a corresponding SymPy function and Wikipedia name for KroneckerProduct
      • KroneckerProduct placement in Mathics3
      • KroneckerProduct Basic Skeleton
        • KroneckerProduct Title Line
        • KroneckerProduct Function Definition Description
        • KroneckerProduct Examples
      • Checking the KroneckerProduct[] Skeletal Version
      • Completing KroneckerProduct
        • KroneckerProduct[] skeletal code
        • KroneckerProduct[] class variables
        • KroneckerProduct[] evaluation method
        • KroneckerProduct[] evaluation method, second version
      • Testing KroneckerProduct[]
    • Adding Builtin Function Curl
      • Writing Curl in Mathics
        • Two-dimensional Mathematical Definition
        • Two-dimensional Mathics3 Function
        • Three-dimensional Mathematical Definition
        • Three-dimensional Mathics3 Function
        • Adding Curl as an autoloaded function
        • Testing autoloaded Curl function
      • Curl placement in Mathics3
        • When there is no existing section in Mathics3 already…
      • Find corresponding Sympy, SciPy, mpmath, or NumPy function
      • Basic version of Curl using Rules
        • Basic Curl version
      • Checking the Curl[] Basic Version
      • Finishing up Curl[]
  • Guide Sections and Subsections
  • Documentation Markup
    • Markup in Documentation
    • Markup for Code Examples
      • Example of >>, =, and = ...
      • Example of #>
      • Examples of S>
      • Example of ##
  • Guidelines for Writing Documentation
    • Title
    • Definition Block
    • Extended Description Section
  • Thoughts and Experience from Adding Builtins
    • Don’t Reinvent the Wheel
      • Magic-bullet Technology versus Thoughtful Coding
      • Caching Expression cache vs. @lru
    • Don’t Micromanage Python
    • Misuse of Rewrite Rules
    • Overusing Expensive Evaluate

Mathics3

Navigation

Contents:

  • The Components of Mathics3
  • Installing Mathics3
  • Running Mathics3
  • Reporting Bugs and Problems
  • Input/Output Unicode Tables
  • Mathics3 Kernel Interpreter
  • Extending Mathics3
  • Making a Mathics3 Release

Related Topics

  • Documentation overview
    • Extending Mathics3
      • <no title>
        • Mathics3 from Python
          • Previous: Using Mathics3 from your code
          • Next: Tutorial: Adding a new Mathics3 Function
©2020-2026 The Mathics3 Team. | Powered by Sphinx 9.1.0 & Alabaster 1.0.0 | Page source