LaTeX to CAS translator
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" : [ ]
}