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 \sum_{k=0}^{\infty}\left(\frac{a^k}{(q;q)_n}*q^{k+1 \choose 2}*y_{m}*(q^k;a;q)*y_{n}*(q^k;a;q)\right)=(q;q)_{n}*(-aq^n;q)_{\infty}\frac{ a^{n}*q^{n+1 \choose 2} }{1+aq^{2n}}\delta_{mn} }

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

Semantic latex: \sum_{k=0}^{\infty}\left(\frac{a^k}{(q;q)_n}*q^{k+1 \choose 2}*y_{m}*(q^k;a;q)*y_{n}*(q^k;a;q)\right)=(q;q)_{n}*(-aq^n;q)_{\infty}\frac{ a^{n}*q^{n+1 \choose 2} }{1+aq^{2n}}\delta_{mn}

Confidence: 0

Mathematica

Translation: Sum[Divide[(a)^(k),Subscript[q ; q, n]]* (q)^(Binomial[k + 1,2])* Subscript[y, m]*((q)^(k); a ; q)* Subscript[y, n]*((q)^(k); a ; q), {k, 0, Infinity}, GenerateConditions->None] == Subscript[q ; q, n]*Subscript[- a*(q)^(n); q, Infinity]*Divide[(a)^(n)* (q)^(Binomial[n + 1,2]),1 + a*(q)^(2*n)]*Subscript[\[Delta], m, n]

Information

Sub Equations

  • Sum[Divide[(a)^(k),Subscript[q ; q, n]]* (q)^(Binomial[k + 1,2])* Subscript[y, m]*((q)^(k); a ; q)* Subscript[y, n]*((q)^(k); a ; q), {k, 0, Infinity}, GenerateConditions->None] = Subscript[q ; q, n]*Subscript[- a*(q)^(n); q, Infinity]*Divide[(a)^(n)* (q)^(Binomial[n + 1,2]),1 + a*(q)^(2*n)]*Subscript[\[Delta], m, n]

Free variables

  • Subscript[\[Delta], m, n]
  • Subscript[y, m]
  • Subscript[y, n]
  • a
  • m
  • n
  • q

Symbol info

  • Could be the first Feigenbaum constant.

But this system doesn't know how to translate it as a constant. It was translated as a general letter.

Tests

Symbolic
Numeric

SymPy

Translation: Sum(((a)**(k))/(Symbol('{q ; q}_{n}'))* (q)**(binomial(k + 1,2))* Symbol('{y}_{m}')*((q)**(k); a ; q)* Symbol('{y}_{n}')*((q)**(k); a ; q), (k, 0, oo)) == Symbol('{q ; q}_{n}')*Symbol('{- a*(q)**(n); q}_{oo}')*((a)**(n)* (q)**(binomial(n + 1,2)))/(1 + a*(q)**(2*n))*Symbol('{Symbol('delta')}_{m, n}')

Information

Sub Equations

  • Sum(((a)**(k))/(Symbol('{q ; q}_{n}'))* (q)**(binomial(k + 1,2))* Symbol('{y}_{m}')*((q)**(k); a ; q)* Symbol('{y}_{n}')*((q)**(k); a ; q), (k, 0, oo)) = Symbol('{q ; q}_{n}')*Symbol('{- a*(q)**(n); q}_{oo}')*((a)**(n)* (q)**(binomial(n + 1,2)))/(1 + a*(q)**(2*n))*Symbol('{Symbol('delta')}_{m, n}')

Free variables

  • Symbol('{Symbol('delta')}_{m, n}')
  • Symbol('{y}_{m}')
  • Symbol('{y}_{n}')
  • a
  • m
  • n
  • q

Symbol info

  • Could be the first Feigenbaum constant.

But this system doesn't know how to translate it as a constant. It was translated as a general letter.

Tests

Symbolic
Numeric

Maple

Translation: sum(((a)^(k))/(q ; q[n])* (q)^(binomial(k + 1,2))* y[m]*((q)^(k); a ; q)* y[n]*((q)^(k); a ; q), k = 0..infinity) = q ; q[n]*- a*(q)^(n); q[infinity]*((a)^(n)* (q)^(binomial(n + 1,2)))/(1 + a*(q)^(2*n))*delta[m, n]

Information

Sub Equations

  • sum(((a)^(k))/(q ; q[n])* (q)^(binomial(k + 1,2))* y[m]*((q)^(k); a ; q)* y[n]*((q)^(k); a ; q), k = 0..infinity) = q ; q[n]*- a*(q)^(n); q[infinity]*((a)^(n)* (q)^(binomial(n + 1,2)))/(1 + a*(q)^(2*n))*delta[m, n]

Free variables

  • a
  • delta[m, n]
  • m
  • n
  • q
  • y[m]
  • y[n]

Symbol info

  • Could be the first Feigenbaum constant.

But this system doesn't know how to translate it as a constant. It was translated as a general letter.

Tests

Symbolic
Numeric

Dependency Graph Information

Complete translation information:

{
  "id" : "FORMULA_21442d193be59630ec5f276727ec9da1",
  "formula" : "\\sum_{k=0}^{\\infty}\\left(\\frac{a^k}{(q;q)_n}*q^{k+1 \\choose 2}*y_{m}*(q^k;a;q)*y_{n}*(q^k;a;q)\\right)=(q;q)_{n}*(-aq^n;q)_{\\infty}\\frac{ a^{n}*q^{n+1 \\choose 2} }{1+aq^{2n}}\\delta_{mn}",
  "semanticFormula" : "\\sum_{k=0}^{\\infty}\\left(\\frac{a^k}{(q;q)_n}*q^{k+1 \\choose 2}*y_{m}*(q^k;a;q)*y_{n}*(q^k;a;q)\\right)=(q;q)_{n}*(-aq^n;q)_{\\infty}\\frac{ a^{n}*q^{n+1 \\choose 2} }{1+aq^{2n}}\\delta_{mn}",
  "confidence" : 0.0,
  "translations" : {
    "Mathematica" : {
      "translation" : "Sum[Divide[(a)^(k),Subscript[q ; q, n]]* (q)^(Binomial[k + 1,2])* Subscript[y, m]*((q)^(k); a ; q)* Subscript[y, n]*((q)^(k); a ; q), {k, 0, Infinity}, GenerateConditions->None] == Subscript[q ; q, n]*Subscript[- a*(q)^(n); q, Infinity]*Divide[(a)^(n)* (q)^(Binomial[n + 1,2]),1 + a*(q)^(2*n)]*Subscript[\\[Delta], m, n]",
      "translationInformation" : {
        "subEquations" : [ "Sum[Divide[(a)^(k),Subscript[q ; q, n]]* (q)^(Binomial[k + 1,2])* Subscript[y, m]*((q)^(k); a ; q)* Subscript[y, n]*((q)^(k); a ; q), {k, 0, Infinity}, GenerateConditions->None] = Subscript[q ; q, n]*Subscript[- a*(q)^(n); q, Infinity]*Divide[(a)^(n)* (q)^(Binomial[n + 1,2]),1 + a*(q)^(2*n)]*Subscript[\\[Delta], m, n]" ],
        "freeVariables" : [ "Subscript[\\[Delta], m, n]", "Subscript[y, m]", "Subscript[y, n]", "a", "m", "n", "q" ],
        "tokenTranslations" : {
          "\\delta" : "Could be the first Feigenbaum constant.\nBut this system doesn't know how to translate it as a constant. It was translated as a general letter.\n"
        }
      },
      "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" : "Sum(((a)**(k))/(Symbol('{q ; q}_{n}'))* (q)**(binomial(k + 1,2))* Symbol('{y}_{m}')*((q)**(k); a ; q)* Symbol('{y}_{n}')*((q)**(k); a ; q), (k, 0, oo)) == Symbol('{q ; q}_{n}')*Symbol('{- a*(q)**(n); q}_{oo}')*((a)**(n)* (q)**(binomial(n + 1,2)))/(1 + a*(q)**(2*n))*Symbol('{Symbol('delta')}_{m, n}')",
      "translationInformation" : {
        "subEquations" : [ "Sum(((a)**(k))/(Symbol('{q ; q}_{n}'))* (q)**(binomial(k + 1,2))* Symbol('{y}_{m}')*((q)**(k); a ; q)* Symbol('{y}_{n}')*((q)**(k); a ; q), (k, 0, oo)) = Symbol('{q ; q}_{n}')*Symbol('{- a*(q)**(n); q}_{oo}')*((a)**(n)* (q)**(binomial(n + 1,2)))/(1 + a*(q)**(2*n))*Symbol('{Symbol('delta')}_{m, n}')" ],
        "freeVariables" : [ "Symbol('{Symbol('delta')}_{m, n}')", "Symbol('{y}_{m}')", "Symbol('{y}_{n}')", "a", "m", "n", "q" ],
        "tokenTranslations" : {
          "\\delta" : "Could be the first Feigenbaum constant.\nBut this system doesn't know how to translate it as a constant. It was translated as a general letter.\n"
        }
      },
      "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" : "sum(((a)^(k))/(q ; q[n])* (q)^(binomial(k + 1,2))* y[m]*((q)^(k); a ; q)* y[n]*((q)^(k); a ; q), k = 0..infinity) = q ; q[n]*- a*(q)^(n); q[infinity]*((a)^(n)* (q)^(binomial(n + 1,2)))/(1 + a*(q)^(2*n))*delta[m, n]",
      "translationInformation" : {
        "subEquations" : [ "sum(((a)^(k))/(q ; q[n])* (q)^(binomial(k + 1,2))* y[m]*((q)^(k); a ; q)* y[n]*((q)^(k); a ; q), k = 0..infinity) = q ; q[n]*- a*(q)^(n); q[infinity]*((a)^(n)* (q)^(binomial(n + 1,2)))/(1 + a*(q)^(2*n))*delta[m, n]" ],
        "freeVariables" : [ "a", "delta[m, n]", "m", "n", "q", "y[m]", "y[n]" ],
        "tokenTranslations" : {
          "\\delta" : "Could be the first Feigenbaum constant.\nBut this system doesn't know how to translate it as a constant. It was translated as a general letter.\n"
        }
      },
      "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" : 2,
    "sentence" : 0,
    "word" : 0
  } ],
  "includes" : [ ],
  "isPartOf" : [ ],
  "definiens" : [ ]
}

Specify your own input