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 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" : [ ]
}