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 j(\tau) = \frac{256(1-\lambda(1-\lambda))^3}{(\lambda(1-\lambda))^2} = \frac{256(1-\lambda+\lambda^2)^3}{\lambda^2 (1-\lambda)^2} \ . }

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

Semantic latex: j(\tau) = \frac{256(1 - \modularlambdatau@{1 - \lambda})^3}{(\modularlambdatau@{1 - \lambda})^2} = \frac{256(1-\lambda+\lambda^2)^3}{\lambda^2 (1-\lambda)^2}

Confidence: 0.6805

Mathematica

Translation: j[\[Tau]] == Divide[256*(1 - ModularLambda[1 - \[Lambda]])^(3),(ModularLambda[1 - \[Lambda]])^(2)] == Divide[256*(1 - \[Lambda]+ \[Lambda]^(2))^(3),\[Lambda]^(2)*(1 - \[Lambda])^(2)]

Information

Sub Equations

  • j[\[Tau]] = Divide[256*(1 - ModularLambda[1 - \[Lambda]])^(3),(ModularLambda[1 - \[Lambda]])^(2)]
  • Divide[256*(1 - ModularLambda[1 - \[Lambda]])^(3),(ModularLambda[1 - \[Lambda]])^(2)] = Divide[256*(1 - \[Lambda]+ \[Lambda]^(2))^(3),\[Lambda]^(2)*(1 - \[Lambda])^(2)]

Free variables

  • \[Lambda]
  • \[Tau]

Symbol info

  • Elliptic modular function; Example: \modularlambdatau@{\tau}

Will be translated to: ModularLambda[$0] Relevant links to definitions: DLMF: http://dlmf.nist.gov/23.15#E6 Mathematica: https://reference.wolfram.com/language/ref/ModularLambda.html

  • Function without DLMF-Definition. We keep it like it is (but delete prefix \ if necessary).

Tests

Symbolic

Test expression: (j*(\[Tau]))-(Divide[256*(1 - ModularLambda[1 - \[Lambda]])^(3),(ModularLambda[1 - \[Lambda]])^(2)])

ERROR:

{
    "result": "ERROR",
    "testTitle": "Simple",
    "testExpression": null,
    "resultExpression": null,
    "wasAborted": false,
    "conditionallySuccessful": false
}

Test expression: (Divide[256*(1 - ModularLambda[1 - \[Lambda]])^(3),(ModularLambda[1 - \[Lambda]])^(2)])-(Divide[256*(1 - \[Lambda]+ \[Lambda]^(2))^(3),\[Lambda]^(2)*(1 - \[Lambda])^(2)])

ERROR:

{
    "result": "ERROR",
    "testTitle": "Simple",
    "testExpression": null,
    "resultExpression": null,
    "wasAborted": false,
    "conditionallySuccessful": false
}
Numeric

SymPy

Translation:

Information

Symbol info

  • (LaTeX -> SymPy) No translation possible for given token: Cannot extract information from feature set: \modularlambdatau [\modularlambdatau]

Tests

Symbolic
Numeric

Maple

Translation:

Information

Symbol info

  • (LaTeX -> Maple) No translation possible for given token: Cannot extract information from feature set: \modularlambdatau [\modularlambdatau]

Tests

Symbolic
Numeric

Dependency Graph Information

Includes

Is part of

Complete translation information:

{
  "id" : "FORMULA_48b2456af7541e275f2039a6b92a4579",
  "formula" : "j(\\tau) = \\frac{256(1-\\lambda(1-\\lambda))^3}{(\\lambda(1-\\lambda))^2} = \\frac{256(1-\\lambda+\\lambda^2)^3}{\\lambda^2 (1-\\lambda)^2}",
  "semanticFormula" : "j(\\tau) = \\frac{256(1 - \\modularlambdatau@{1 - \\lambda})^3}{(\\modularlambdatau@{1 - \\lambda})^2} = \\frac{256(1-\\lambda+\\lambda^2)^3}{\\lambda^2 (1-\\lambda)^2}",
  "confidence" : 0.6805,
  "translations" : {
    "Mathematica" : {
      "translation" : "j[\\[Tau]] == Divide[256*(1 - ModularLambda[1 - \\[Lambda]])^(3),(ModularLambda[1 - \\[Lambda]])^(2)] == Divide[256*(1 - \\[Lambda]+ \\[Lambda]^(2))^(3),\\[Lambda]^(2)*(1 - \\[Lambda])^(2)]",
      "translationInformation" : {
        "subEquations" : [ "j[\\[Tau]] = Divide[256*(1 - ModularLambda[1 - \\[Lambda]])^(3),(ModularLambda[1 - \\[Lambda]])^(2)]", "Divide[256*(1 - ModularLambda[1 - \\[Lambda]])^(3),(ModularLambda[1 - \\[Lambda]])^(2)] = Divide[256*(1 - \\[Lambda]+ \\[Lambda]^(2))^(3),\\[Lambda]^(2)*(1 - \\[Lambda])^(2)]" ],
        "freeVariables" : [ "\\[Lambda]", "\\[Tau]" ],
        "tokenTranslations" : {
          "\\modularlambdatau" : "Elliptic modular function; Example: \\modularlambdatau@{\\tau}\nWill be translated to: ModularLambda[$0]\nRelevant links to definitions:\nDLMF:         http://dlmf.nist.gov/23.15#E6\nMathematica:  https://reference.wolfram.com/language/ref/ModularLambda.html",
          "j" : "Function without DLMF-Definition. We keep it like it is (but delete prefix \\ if necessary)."
        }
      },
      "numericResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "wasAborted" : false,
        "crashed" : false,
        "testCalculationsGroups" : [ ]
      },
      "symbolicResults" : {
        "overallResult" : "ERROR",
        "numberOfTests" : 2,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 2,
        "crashed" : false,
        "testCalculationsGroup" : [ {
          "lhs" : "j*(\\[Tau])",
          "rhs" : "Divide[256*(1 - ModularLambda[1 - \\[Lambda]])^(3),(ModularLambda[1 - \\[Lambda]])^(2)]",
          "testExpression" : "(j*(\\[Tau]))-(Divide[256*(1 - ModularLambda[1 - \\[Lambda]])^(3),(ModularLambda[1 - \\[Lambda]])^(2)])",
          "testCalculations" : [ {
            "result" : "ERROR",
            "testTitle" : "Simple",
            "testExpression" : null,
            "resultExpression" : null,
            "wasAborted" : false,
            "conditionallySuccessful" : false
          } ]
        }, {
          "lhs" : "Divide[256*(1 - ModularLambda[1 - \\[Lambda]])^(3),(ModularLambda[1 - \\[Lambda]])^(2)]",
          "rhs" : "Divide[256*(1 - \\[Lambda]+ \\[Lambda]^(2))^(3),\\[Lambda]^(2)*(1 - \\[Lambda])^(2)]",
          "testExpression" : "(Divide[256*(1 - ModularLambda[1 - \\[Lambda]])^(3),(ModularLambda[1 - \\[Lambda]])^(2)])-(Divide[256*(1 - \\[Lambda]+ \\[Lambda]^(2))^(3),\\[Lambda]^(2)*(1 - \\[Lambda])^(2)])",
          "testCalculations" : [ {
            "result" : "ERROR",
            "testTitle" : "Simple",
            "testExpression" : null,
            "resultExpression" : null,
            "wasAborted" : false,
            "conditionallySuccessful" : false
          } ]
        } ]
      }
    },
    "SymPy" : {
      "translation" : "",
      "translationInformation" : {
        "tokenTranslations" : {
          "Error" : "(LaTeX -> SymPy) No translation possible for given token: Cannot extract information from feature set: \\modularlambdatau [\\modularlambdatau]"
        }
      }
    },
    "Maple" : {
      "translation" : "",
      "translationInformation" : {
        "tokenTranslations" : {
          "Error" : "(LaTeX -> Maple) No translation possible for given token: Cannot extract information from feature set: \\modularlambdatau [\\modularlambdatau]"
        }
      }
    }
  },
  "positions" : [ ],
  "includes" : [ "\\tau", "\\lambda", "j(\\tau) = \\frac{256(1-\\lambda(1-\\lambda))^3}{(\\lambda(1-\\lambda))^2} = \\frac{256(1-\\lambda+\\lambda^2)^3}{\\lambda^2 (1-\\lambda)^2} ", "j", "\\lambda(\\tau)" ],
  "isPartOf" : [ "j(\\tau) = \\frac{256(1-\\lambda(1-\\lambda))^3}{(\\lambda(1-\\lambda))^2} = \\frac{256(1-\\lambda+\\lambda^2)^3}{\\lambda^2 (1-\\lambda)^2} " ],
  "definiens" : [ ]
}

Specify your own input