LaTeX to CAS translator

Jump to navigation Jump to search

This mockup demonstrates the concept of TeX to Computer Algebra System (CAS) conversion.

The demo-application converts LaTeX functions which directly translate to CAS counterparts.

Functions without explicit CAS support are available for translation via a DRMF package (under development).

The following LaTeX input ...

{\displaystyle \frac{x_1^2}{a^2} + \frac{y_1^2}{b^2} = 1}

... is translated to the CAS output ...

Semantic latex: \frac{x_1^2}{a^2} + \frac{y_1^2}{b^2} = 1

Confidence: 0

Mathematica

Translation: Divide[(Subscript[x, 1])^(2),(a)^(2)]+Divide[(Subscript[y, 1])^(2),(b)^(2)] == 1

Information

Sub Equations

  • Divide[(Subscript[x, 1])^(2),(a)^(2)]+Divide[(Subscript[y, 1])^(2),(b)^(2)] = 1

Free variables

  • Subscript[x, 1]
  • Subscript[y, 1]
  • a
  • b

Tests

Symbolic
Numeric

SymPy

Translation: ((Symbol('{x}_{1}'))**(2))/((a)**(2))+((Symbol('{y}_{1}'))**(2))/((b)**(2)) == 1

Information

Sub Equations

  • ((Symbol('{x}_{1}'))**(2))/((a)**(2))+((Symbol('{y}_{1}'))**(2))/((b)**(2)) = 1

Free variables

  • Symbol('{x}_{1}')
  • Symbol('{y}_{1}')
  • a
  • b

Tests

Symbolic
Numeric

Maple

Translation: ((x[1])^(2))/((a)^(2))+((y[1])^(2))/((b)^(2)) = 1

Information

Sub Equations

  • ((x[1])^(2))/((a)^(2))+((y[1])^(2))/((b)^(2)) = 1

Free variables

  • a
  • b
  • x[1]
  • y[1]

Tests

Symbolic
Numeric

Dependency Graph Information

Includes

Complete translation information:

{
  "id" : "FORMULA_340f0388a75be84d6fa9cfcbd2c27884",
  "formula" : "\\frac{x_1^2}{a^2} + \\frac{y_1^2}{b^2} = 1",
  "semanticFormula" : "\\frac{x_1^2}{a^2} + \\frac{y_1^2}{b^2} = 1",
  "confidence" : 0.0,
  "translations" : {
    "Mathematica" : {
      "translation" : "Divide[(Subscript[x, 1])^(2),(a)^(2)]+Divide[(Subscript[y, 1])^(2),(b)^(2)] == 1",
      "translationInformation" : {
        "subEquations" : [ "Divide[(Subscript[x, 1])^(2),(a)^(2)]+Divide[(Subscript[y, 1])^(2),(b)^(2)] = 1" ],
        "freeVariables" : [ "Subscript[x, 1]", "Subscript[y, 1]", "a", "b" ]
      },
      "numericResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "wasAborted" : false,
        "crashed" : false,
        "testCalculationsGroups" : [ ]
      },
      "symbolicResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "crashed" : false,
        "testCalculationsGroup" : [ ]
      }
    },
    "SymPy" : {
      "translation" : "((Symbol('{x}_{1}'))**(2))/((a)**(2))+((Symbol('{y}_{1}'))**(2))/((b)**(2)) == 1",
      "translationInformation" : {
        "subEquations" : [ "((Symbol('{x}_{1}'))**(2))/((a)**(2))+((Symbol('{y}_{1}'))**(2))/((b)**(2)) = 1" ],
        "freeVariables" : [ "Symbol('{x}_{1}')", "Symbol('{y}_{1}')", "a", "b" ]
      },
      "numericResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "wasAborted" : false,
        "crashed" : false,
        "testCalculationsGroups" : [ ]
      },
      "symbolicResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "crashed" : false,
        "testCalculationsGroup" : [ ]
      }
    },
    "Maple" : {
      "translation" : "((x[1])^(2))/((a)^(2))+((y[1])^(2))/((b)^(2)) = 1",
      "translationInformation" : {
        "subEquations" : [ "((x[1])^(2))/((a)^(2))+((y[1])^(2))/((b)^(2)) = 1" ],
        "freeVariables" : [ "a", "b", "x[1]", "y[1]" ]
      },
      "numericResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "wasAborted" : false,
        "crashed" : false,
        "testCalculationsGroups" : [ ]
      },
      "symbolicResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "crashed" : false,
        "testCalculationsGroup" : [ ]
      }
    }
  },
  "positions" : [ ],
  "includes" : [ "= 1", "b", "a", "y", "x" ],
  "isPartOf" : [ ],
  "definiens" : [ ]
}

Specify your own input