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 \lambda(\tau) = \Bigg(\frac{\sqrt{2}\,\eta(\tfrac{\tau}{2})\eta^2(2\tau)}{\eta^3(\tau)}\Bigg)^8 = \frac{16}{\left(\frac{\eta(\tau/2)}{\eta(2\tau)}\right)^8 + 16} =\frac{\theta_2^4(0,\tau)}{\theta_3^4(0,\tau)} }

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

Semantic latex: \modularlambdatau@{\tau} =(\frac{\sqrt{2} \Dedekindeta@{\tfrac{\tau}{2}} \eta^2(2 \tau)}{\eta^3(\tau)})^8 = \frac{16}{(\frac{\Dedekindeta@{\tau / 2}}{\Dedekindeta@{2 \tau}})^8 + 16} = \frac{\theta_2^4(0,\tau)}{\theta_3^4(0,\tau)}

Confidence: 0.6805

Mathematica

Translation: ModularLambda[\[Tau]] == (Divide[Sqrt[2]*DedekindEta[Divide[\[Tau],2]]*(\[Eta][2*\[Tau]])^(2),(\[Eta][\[Tau]])^(3)])^(8) == Divide[16,(Divide[DedekindEta[\[Tau]/2],DedekindEta[2*\[Tau]]])^(8)+ 16] == Divide[(Subscript[\[Theta], 2])^(4)[0 , \[Tau]],(Subscript[\[Theta], 3])^(4)[0 , \[Tau]]]

Information

Sub Equations

  • ModularLambda[\[Tau]] = (Divide[Sqrt[2]*DedekindEta[Divide[\[Tau],2]]*(\[Eta][2*\[Tau]])^(2),(\[Eta][\[Tau]])^(3)])^(8)
  • (Divide[Sqrt[2]*DedekindEta[Divide[\[Tau],2]]*(\[Eta][2*\[Tau]])^(2),(\[Eta][\[Tau]])^(3)])^(8) = Divide[16,(Divide[DedekindEta[\[Tau]/2],DedekindEta[2*\[Tau]]])^(8)+ 16]
  • Divide[16,(Divide[DedekindEta[\[Tau]/2],DedekindEta[2*\[Tau]]])^(8)+ 16] = Divide[(Subscript[\[Theta], 2])^(4)[0 , \[Tau]],(Subscript[\[Theta], 3])^(4)[0 , \[Tau]]]

Free variables

  • Subscript[\[Theta], 2]
  • Subscript[\[Theta], 3]
  • \[Eta]
  • \[Tau]

Symbol info

  • Function without DLMF-Definition. We keep it like it is (but delete prefix \ if necessary).
  • Function without DLMF-Definition. We keep it like it is (but delete prefix \ if necessary).
  • 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

  • Dedikind's Eta function; Example: \Dedekindeta@{\tau}

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

Tests

Symbolic
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_d6c4d2084ffc580ed0b98cf204cb43c4",
  "formula" : "\\lambda(\\tau) = (\\frac{\\sqrt{2}\\eta(\\tfrac{\\tau}{2})\\eta^2(2\\tau)}{\\eta^3(\\tau)})^8 = \\frac{16}{\\left(\\frac{\\eta(\\tau/2)}{\\eta(2\\tau)}\\right)^8 + 16} =\\frac{\\theta_2^4(0,\\tau)}{\\theta_3^4(0,\\tau)}",
  "semanticFormula" : "\\modularlambdatau@{\\tau} =(\\frac{\\sqrt{2} \\Dedekindeta@{\\tfrac{\\tau}{2}} \\eta^2(2 \\tau)}{\\eta^3(\\tau)})^8 = \\frac{16}{(\\frac{\\Dedekindeta@{\\tau / 2}}{\\Dedekindeta@{2 \\tau}})^8 + 16} = \\frac{\\theta_2^4(0,\\tau)}{\\theta_3^4(0,\\tau)}",
  "confidence" : 0.6805,
  "translations" : {
    "Mathematica" : {
      "translation" : "ModularLambda[\\[Tau]] == (Divide[Sqrt[2]*DedekindEta[Divide[\\[Tau],2]]*(\\[Eta][2*\\[Tau]])^(2),(\\[Eta][\\[Tau]])^(3)])^(8) == Divide[16,(Divide[DedekindEta[\\[Tau]/2],DedekindEta[2*\\[Tau]]])^(8)+ 16] == Divide[(Subscript[\\[Theta], 2])^(4)[0 , \\[Tau]],(Subscript[\\[Theta], 3])^(4)[0 , \\[Tau]]]",
      "translationInformation" : {
        "subEquations" : [ "ModularLambda[\\[Tau]] = (Divide[Sqrt[2]*DedekindEta[Divide[\\[Tau],2]]*(\\[Eta][2*\\[Tau]])^(2),(\\[Eta][\\[Tau]])^(3)])^(8)", "(Divide[Sqrt[2]*DedekindEta[Divide[\\[Tau],2]]*(\\[Eta][2*\\[Tau]])^(2),(\\[Eta][\\[Tau]])^(3)])^(8) = Divide[16,(Divide[DedekindEta[\\[Tau]/2],DedekindEta[2*\\[Tau]]])^(8)+ 16]", "Divide[16,(Divide[DedekindEta[\\[Tau]/2],DedekindEta[2*\\[Tau]]])^(8)+ 16] = Divide[(Subscript[\\[Theta], 2])^(4)[0 , \\[Tau]],(Subscript[\\[Theta], 3])^(4)[0 , \\[Tau]]]" ],
        "freeVariables" : [ "Subscript[\\[Theta], 2]", "Subscript[\\[Theta], 3]", "\\[Eta]", "\\[Tau]" ],
        "tokenTranslations" : {
          "\\theta" : "Function without DLMF-Definition. We keep it like it is (but delete prefix \\ if necessary).",
          "\\eta" : "Function without DLMF-Definition. We keep it like it is (but delete prefix \\ if necessary).",
          "\\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",
          "\\Dedekindeta" : "Dedikind's Eta function; Example: \\Dedekindeta@{\\tau}\nWill be translated to: DedekindEta[$0]\nRelevant links to definitions:\nDLMF:         http://dlmf.nist.gov/23.15#E9\nMathematica:  https://reference.wolfram.com/language/ref/DedekindEta.html"
        }
      },
      "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" : "",
      "translationInformation" : {
        "tokenTranslations" : {
          "Error" : "(LaTeX -> SymPy) No translation possible for given token: Cannot extract information from feature set: \\modularlambdatau [\\modularlambdatau]"
        }
      },
      "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" : "",
      "translationInformation" : {
        "tokenTranslations" : {
          "Error" : "(LaTeX -> Maple) No translation possible for given token: Cannot extract information from feature set: \\modularlambdatau [\\modularlambdatau]"
        }
      },
      "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" : [ "\\tau", "\\lambda", "\\eta(\\tau)", "\\lambda(\\tau) = \\Bigg(\\frac{\\sqrt{2}\\,\\eta(\\tfrac{\\tau}{2})\\eta^2(2\\tau)}{\\eta^3(\\tau)}\\Bigg)^8 = \\frac{16}{\\left(\\frac{\\eta(\\tau/2)}{\\eta(2\\tau)}\\right)^8 + 16} =\\frac{\\theta_2^4(0,\\tau)}{\\theta_3^4(0,\\tau)}", "\\lambda(\\tau)" ],
  "isPartOf" : [ "\\lambda(\\tau) = \\Bigg(\\frac{\\sqrt{2}\\,\\eta(\\tfrac{\\tau}{2})\\eta^2(2\\tau)}{\\eta^3(\\tau)}\\Bigg)^8 = \\frac{16}{\\left(\\frac{\\eta(\\tau/2)}{\\eta(2\\tau)}\\right)^8 + 16} =\\frac{\\theta_2^4(0,\\tau)}{\\theta_3^4(0,\\tau)}" ],
  "definiens" : [ ]
}

Specify your own input