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 (2j_1+1)(2j_2+1)(2j_4+1)(2j_5+1)}

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

Semantic latex: (2j_1+1)(2j_2+1)(2j_4+1)(2j_5+1)

Confidence: 0

Mathematica

Translation: (2*Subscript[j, 1]+ 1)*(2*Subscript[j, 2]+ 1)*(2*Subscript[j, 4]+ 1)*(2*Subscript[j, 5]+ 1)

Information

Sub Equations

  • (2*Subscript[j, 1]+ 1)*(2*Subscript[j, 2]+ 1)*(2*Subscript[j, 4]+ 1)*(2*Subscript[j, 5]+ 1)

Free variables

  • Subscript[j, 1]
  • Subscript[j, 2]
  • Subscript[j, 4]
  • Subscript[j, 5]

Tests

Symbolic
Numeric

SymPy

Translation: (2*Symbol('{j}_{1}')+ 1)*(2*Symbol('{j}_{2}')+ 1)*(2*Symbol('{j}_{4}')+ 1)*(2*Symbol('{j}_{5}')+ 1)

Information

Sub Equations

  • (2*Symbol('{j}_{1}')+ 1)*(2*Symbol('{j}_{2}')+ 1)*(2*Symbol('{j}_{4}')+ 1)*(2*Symbol('{j}_{5}')+ 1)

Free variables

  • Symbol('{j}_{1}')
  • Symbol('{j}_{2}')
  • Symbol('{j}_{4}')
  • Symbol('{j}_{5}')

Tests

Symbolic
Numeric

Maple

Translation: (2*j[1]+ 1)*(2*j[2]+ 1)*(2*j[4]+ 1)*(2*j[5]+ 1)

Information

Sub Equations

  • (2*j[1]+ 1)*(2*j[2]+ 1)*(2*j[4]+ 1)*(2*j[5]+ 1)

Free variables

  • j[1]
  • j[2]
  • j[4]
  • j[5]

Tests

Symbolic
Numeric

Dependency Graph Information

Includes

Description

  • dimension
  • orthonormal basis for the space
  • set of function

Complete translation information:

{
  "id" : "FORMULA_c4b093431b6c9718383da5f7b2352e4b",
  "formula" : "(2j_1+1)(2j_2+1)(2j_4+1)(2j_5+1)",
  "semanticFormula" : "(2j_1+1)(2j_2+1)(2j_4+1)(2j_5+1)",
  "confidence" : 0.0,
  "translations" : {
    "Mathematica" : {
      "translation" : "(2*Subscript[j, 1]+ 1)*(2*Subscript[j, 2]+ 1)*(2*Subscript[j, 4]+ 1)*(2*Subscript[j, 5]+ 1)",
      "translationInformation" : {
        "subEquations" : [ "(2*Subscript[j, 1]+ 1)*(2*Subscript[j, 2]+ 1)*(2*Subscript[j, 4]+ 1)*(2*Subscript[j, 5]+ 1)" ],
        "freeVariables" : [ "Subscript[j, 1]", "Subscript[j, 2]", "Subscript[j, 4]", "Subscript[j, 5]" ]
      },
      "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" : "(2*Symbol('{j}_{1}')+ 1)*(2*Symbol('{j}_{2}')+ 1)*(2*Symbol('{j}_{4}')+ 1)*(2*Symbol('{j}_{5}')+ 1)",
      "translationInformation" : {
        "subEquations" : [ "(2*Symbol('{j}_{1}')+ 1)*(2*Symbol('{j}_{2}')+ 1)*(2*Symbol('{j}_{4}')+ 1)*(2*Symbol('{j}_{5}')+ 1)" ],
        "freeVariables" : [ "Symbol('{j}_{1}')", "Symbol('{j}_{2}')", "Symbol('{j}_{4}')", "Symbol('{j}_{5}')" ]
      },
      "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" : "(2*j[1]+ 1)*(2*j[2]+ 1)*(2*j[4]+ 1)*(2*j[5]+ 1)",
      "translationInformation" : {
        "subEquations" : [ "(2*j[1]+ 1)*(2*j[2]+ 1)*(2*j[4]+ 1)*(2*j[5]+ 1)" ],
        "freeVariables" : [ "j[1]", "j[2]", "j[4]", "j[5]" ]
      },
      "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" : [ {
    "section" : 1,
    "sentence" : 4,
    "word" : 15
  } ],
  "includes" : [ "j", "_{4}" ],
  "isPartOf" : [ ],
  "definiens" : [ {
    "definition" : "dimension",
    "score" : 0.722
  }, {
    "definition" : "orthonormal basis for the space",
    "score" : 0.6460746792928004
  }, {
    "definition" : "set of function",
    "score" : 0.6460746792928004
  } ]
}

Specify your own input