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 F_2(x,y)=C_1F_2(a,b_1,b_2,c_1,c_2;x,y)+C_2x^{1-c_1}F_2(a-c_1+1,b_1-c_1+1,b_2,2-c_1,c_2;x,y)+C_3y^{1-c_2}F_2(a-c_2+1,b_1,b_2-c_2+1,c_1,2-c_2;x,y)+C_4x^{1-c_1}y^{1-c_2}F_2(a-c_1-c_2+2,b_1-c_1+1,b_2-c_2+1,2-c_1,2-c_2;x,y)}

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

Semantic latex: F_2(x,y)=C_1F_2(a,b_1,b_2,c_1,c_2;x,y)+C_2x^{1-c_1}F_2(a-c_1+1,b_1-c_1+1,b_2,2-c_1,c_2;x,y)+C_3y^{1-c_2}F_2(a-c_2+1,b_1,b_2-c_2+1,c_1,2-c_2;x,y)+C_4x^{1-c_1}y^{1-c_2}F_2(a-c_1-c_2+2,b_1-c_1+1,b_2-c_2+1,2-c_1,2-c_2;x,y)

Confidence: 0

Mathematica

Translation: Subscript[F, 2][x , y] == Subscript[C, 1]*Subscript[F, 2][a , Subscript[b, 1], Subscript[b, 2], Subscript[c, 1], Subscript[c, 2]; x , y]+ Subscript[C, 2]*(x)^(1 - Subscript[c, 1])* Subscript[F, 2][a - Subscript[c, 1]+ 1 , Subscript[b, 1]- Subscript[c, 1]+ 1 , Subscript[b, 2], 2 - Subscript[c, 1], Subscript[c, 2]; x , y]+ Subscript[C, 3]*(y)^(1 - Subscript[c, 2])* Subscript[F, 2][a - Subscript[c, 2]+ 1 , Subscript[b, 1], Subscript[b, 2]- Subscript[c, 2]+ 1 , Subscript[c, 1], 2 - Subscript[c, 2]; x , y]+ Subscript[C, 4]*(x)^(1 - Subscript[c, 1])* (y)^(1 - Subscript[c, 2])* Subscript[F, 2][a - Subscript[c, 1]- Subscript[c, 2]+ 2 , Subscript[b, 1]- Subscript[c, 1]+ 1 , Subscript[b, 2]- Subscript[c, 2]+ 1 , 2 - Subscript[c, 1], 2 - Subscript[c, 2]; x , y]

Information

Sub Equations

  • Subscript[F, 2][x , y] = Subscript[C, 1]*Subscript[F, 2][a , Subscript[b, 1], Subscript[b, 2], Subscript[c, 1], Subscript[c, 2]; x , y]+ Subscript[C, 2]*(x)^(1 - Subscript[c, 1])* Subscript[F, 2][a - Subscript[c, 1]+ 1 , Subscript[b, 1]- Subscript[c, 1]+ 1 , Subscript[b, 2], 2 - Subscript[c, 1], Subscript[c, 2]; x , y]+ Subscript[C, 3]*(y)^(1 - Subscript[c, 2])* Subscript[F, 2][a - Subscript[c, 2]+ 1 , Subscript[b, 1], Subscript[b, 2]- Subscript[c, 2]+ 1 , Subscript[c, 1], 2 - Subscript[c, 2]; x , y]+ Subscript[C, 4]*(x)^(1 - Subscript[c, 1])* (y)^(1 - Subscript[c, 2])* Subscript[F, 2][a - Subscript[c, 1]- Subscript[c, 2]+ 2 , Subscript[b, 1]- Subscript[c, 1]+ 1 , Subscript[b, 2]- Subscript[c, 2]+ 1 , 2 - Subscript[c, 1], 2 - Subscript[c, 2]; x , y]

Free variables

  • Subscript[C, 1]
  • Subscript[C, 2]
  • Subscript[C, 3]
  • Subscript[C, 4]
  • Subscript[b, 1]
  • Subscript[b, 2]
  • Subscript[c, 1]
  • Subscript[c, 2]
  • a
  • x
  • y

Symbol info

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

Tests

Symbolic
Numeric

SymPy

Translation: Symbol('{F}_{2}')(x , y) == Symbol('{C}_{1}')*Symbol('{F}_{2}')(a , Symbol('{b}_{1}'), Symbol('{b}_{2}'), Symbol('{c}_{1}'), Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{2}')*(x)**(1 - Symbol('{c}_{1}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{1}')+ 1 , Symbol('{b}_{1}')- Symbol('{c}_{1}')+ 1 , Symbol('{b}_{2}'), 2 - Symbol('{c}_{1}'), Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{3}')*(y)**(1 - Symbol('{c}_{2}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{2}')+ 1 , Symbol('{b}_{1}'), Symbol('{b}_{2}')- Symbol('{c}_{2}')+ 1 , Symbol('{c}_{1}'), 2 - Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{4}')*(x)**(1 - Symbol('{c}_{1}'))* (y)**(1 - Symbol('{c}_{2}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{1}')- Symbol('{c}_{2}')+ 2 , Symbol('{b}_{1}')- Symbol('{c}_{1}')+ 1 , Symbol('{b}_{2}')- Symbol('{c}_{2}')+ 1 , 2 - Symbol('{c}_{1}'), 2 - Symbol('{c}_{2}'); x , y)

Information

Sub Equations

  • Symbol('{F}_{2}')(x , y) = Symbol('{C}_{1}')*Symbol('{F}_{2}')(a , Symbol('{b}_{1}'), Symbol('{b}_{2}'), Symbol('{c}_{1}'), Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{2}')*(x)**(1 - Symbol('{c}_{1}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{1}')+ 1 , Symbol('{b}_{1}')- Symbol('{c}_{1}')+ 1 , Symbol('{b}_{2}'), 2 - Symbol('{c}_{1}'), Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{3}')*(y)**(1 - Symbol('{c}_{2}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{2}')+ 1 , Symbol('{b}_{1}'), Symbol('{b}_{2}')- Symbol('{c}_{2}')+ 1 , Symbol('{c}_{1}'), 2 - Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{4}')*(x)**(1 - Symbol('{c}_{1}'))* (y)**(1 - Symbol('{c}_{2}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{1}')- Symbol('{c}_{2}')+ 2 , Symbol('{b}_{1}')- Symbol('{c}_{1}')+ 1 , Symbol('{b}_{2}')- Symbol('{c}_{2}')+ 1 , 2 - Symbol('{c}_{1}'), 2 - Symbol('{c}_{2}'); x , y)

Free variables

  • Symbol('{C}_{1}')
  • Symbol('{C}_{2}')
  • Symbol('{C}_{3}')
  • Symbol('{C}_{4}')
  • Symbol('{b}_{1}')
  • Symbol('{b}_{2}')
  • Symbol('{c}_{1}')
  • Symbol('{c}_{2}')
  • a
  • x
  • y

Symbol info

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

Tests

Symbolic
Numeric

Maple

Translation: F[2](x , y) = C[1]*F[2](a , b[1], b[2], c[1], c[2]; x , y)+ C[2]*(x)^(1 - c[1])* F[2](a - c[1]+ 1 , b[1]- c[1]+ 1 , b[2], 2 - c[1], c[2]; x , y)+ C[3]*(y)^(1 - c[2])* F[2](a - c[2]+ 1 , b[1], b[2]- c[2]+ 1 , c[1], 2 - c[2]; x , y)+ C[4]*(x)^(1 - c[1])* (y)^(1 - c[2])* F[2](a - c[1]- c[2]+ 2 , b[1]- c[1]+ 1 , b[2]- c[2]+ 1 , 2 - c[1], 2 - c[2]; x , y)

Information

Sub Equations

  • F[2](x , y) = C[1]*F[2](a , b[1], b[2], c[1], c[2]; x , y)+ C[2]*(x)^(1 - c[1])* F[2](a - c[1]+ 1 , b[1]- c[1]+ 1 , b[2], 2 - c[1], c[2]; x , y)+ C[3]*(y)^(1 - c[2])* F[2](a - c[2]+ 1 , b[1], b[2]- c[2]+ 1 , c[1], 2 - c[2]; x , y)+ C[4]*(x)^(1 - c[1])* (y)^(1 - c[2])* F[2](a - c[1]- c[2]+ 2 , b[1]- c[1]+ 1 , b[2]- c[2]+ 1 , 2 - c[1], 2 - c[2]; x , y)

Free variables

  • C[1]
  • C[2]
  • C[3]
  • C[4]
  • a
  • b[1]
  • b[2]
  • c[1]
  • c[2]
  • x
  • y

Symbol info

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

Tests

Symbolic
Numeric

Dependency Graph Information

Includes

Description

  • solution
  • A system
  • Appell
  • definition
  • partial differential equation
  • system
  • derivative
  • derivative result from the definition
  • double series
  • system of differential equation
  • system of second-order differential equation

Complete translation information:

{
  "id" : "FORMULA_26fb9e69275fe26d56459576839eeb84",
  "formula" : "F_2(x,y)=C_1F_2(a,b_1,b_2,c_1,c_2;x,y)+C_2x^{1-c_1}F_2(a-c_1+1,b_1-c_1+1,b_2,2-c_1,c_2;x,y)+C_3y^{1-c_2}F_2(a-c_2+1,b_1,b_2-c_2+1,c_1,2-c_2;x,y)+C_4x^{1-c_1}y^{1-c_2}F_2(a-c_1-c_2+2,b_1-c_1+1,b_2-c_2+1,2-c_1,2-c_2;x,y)",
  "semanticFormula" : "F_2(x,y)=C_1F_2(a,b_1,b_2,c_1,c_2;x,y)+C_2x^{1-c_1}F_2(a-c_1+1,b_1-c_1+1,b_2,2-c_1,c_2;x,y)+C_3y^{1-c_2}F_2(a-c_2+1,b_1,b_2-c_2+1,c_1,2-c_2;x,y)+C_4x^{1-c_1}y^{1-c_2}F_2(a-c_1-c_2+2,b_1-c_1+1,b_2-c_2+1,2-c_1,2-c_2;x,y)",
  "confidence" : 0.0,
  "translations" : {
    "Mathematica" : {
      "translation" : "Subscript[F, 2][x , y] == Subscript[C, 1]*Subscript[F, 2][a , Subscript[b, 1], Subscript[b, 2], Subscript[c, 1], Subscript[c, 2]; x , y]+ Subscript[C, 2]*(x)^(1 - Subscript[c, 1])* Subscript[F, 2][a - Subscript[c, 1]+ 1 , Subscript[b, 1]- Subscript[c, 1]+ 1 , Subscript[b, 2], 2 - Subscript[c, 1], Subscript[c, 2]; x , y]+ Subscript[C, 3]*(y)^(1 - Subscript[c, 2])* Subscript[F, 2][a - Subscript[c, 2]+ 1 , Subscript[b, 1], Subscript[b, 2]- Subscript[c, 2]+ 1 , Subscript[c, 1], 2 - Subscript[c, 2]; x , y]+ Subscript[C, 4]*(x)^(1 - Subscript[c, 1])* (y)^(1 - Subscript[c, 2])* Subscript[F, 2][a - Subscript[c, 1]- Subscript[c, 2]+ 2 , Subscript[b, 1]- Subscript[c, 1]+ 1 , Subscript[b, 2]- Subscript[c, 2]+ 1 , 2 - Subscript[c, 1], 2 - Subscript[c, 2]; x , y]",
      "translationInformation" : {
        "subEquations" : [ "Subscript[F, 2][x , y] = Subscript[C, 1]*Subscript[F, 2][a , Subscript[b, 1], Subscript[b, 2], Subscript[c, 1], Subscript[c, 2]; x , y]+ Subscript[C, 2]*(x)^(1 - Subscript[c, 1])* Subscript[F, 2][a - Subscript[c, 1]+ 1 , Subscript[b, 1]- Subscript[c, 1]+ 1 , Subscript[b, 2], 2 - Subscript[c, 1], Subscript[c, 2]; x , y]+ Subscript[C, 3]*(y)^(1 - Subscript[c, 2])* Subscript[F, 2][a - Subscript[c, 2]+ 1 , Subscript[b, 1], Subscript[b, 2]- Subscript[c, 2]+ 1 , Subscript[c, 1], 2 - Subscript[c, 2]; x , y]+ Subscript[C, 4]*(x)^(1 - Subscript[c, 1])* (y)^(1 - Subscript[c, 2])* Subscript[F, 2][a - Subscript[c, 1]- Subscript[c, 2]+ 2 , Subscript[b, 1]- Subscript[c, 1]+ 1 , Subscript[b, 2]- Subscript[c, 2]+ 1 , 2 - Subscript[c, 1], 2 - Subscript[c, 2]; x , y]" ],
        "freeVariables" : [ "Subscript[C, 1]", "Subscript[C, 2]", "Subscript[C, 3]", "Subscript[C, 4]", "Subscript[b, 1]", "Subscript[b, 2]", "Subscript[c, 1]", "Subscript[c, 2]", "a", "x", "y" ],
        "tokenTranslations" : {
          "F" : "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" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "crashed" : false,
        "testCalculationsGroup" : [ ]
      }
    },
    "SymPy" : {
      "translation" : "Symbol('{F}_{2}')(x , y) == Symbol('{C}_{1}')*Symbol('{F}_{2}')(a , Symbol('{b}_{1}'), Symbol('{b}_{2}'), Symbol('{c}_{1}'), Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{2}')*(x)**(1 - Symbol('{c}_{1}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{1}')+ 1 , Symbol('{b}_{1}')- Symbol('{c}_{1}')+ 1 , Symbol('{b}_{2}'), 2 - Symbol('{c}_{1}'), Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{3}')*(y)**(1 - Symbol('{c}_{2}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{2}')+ 1 , Symbol('{b}_{1}'), Symbol('{b}_{2}')- Symbol('{c}_{2}')+ 1 , Symbol('{c}_{1}'), 2 - Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{4}')*(x)**(1 - Symbol('{c}_{1}'))* (y)**(1 - Symbol('{c}_{2}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{1}')- Symbol('{c}_{2}')+ 2 , Symbol('{b}_{1}')- Symbol('{c}_{1}')+ 1 , Symbol('{b}_{2}')- Symbol('{c}_{2}')+ 1 , 2 - Symbol('{c}_{1}'), 2 - Symbol('{c}_{2}'); x , y)",
      "translationInformation" : {
        "subEquations" : [ "Symbol('{F}_{2}')(x , y) = Symbol('{C}_{1}')*Symbol('{F}_{2}')(a , Symbol('{b}_{1}'), Symbol('{b}_{2}'), Symbol('{c}_{1}'), Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{2}')*(x)**(1 - Symbol('{c}_{1}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{1}')+ 1 , Symbol('{b}_{1}')- Symbol('{c}_{1}')+ 1 , Symbol('{b}_{2}'), 2 - Symbol('{c}_{1}'), Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{3}')*(y)**(1 - Symbol('{c}_{2}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{2}')+ 1 , Symbol('{b}_{1}'), Symbol('{b}_{2}')- Symbol('{c}_{2}')+ 1 , Symbol('{c}_{1}'), 2 - Symbol('{c}_{2}'); x , y)+ Symbol('{C}_{4}')*(x)**(1 - Symbol('{c}_{1}'))* (y)**(1 - Symbol('{c}_{2}'))* Symbol('{F}_{2}')(a - Symbol('{c}_{1}')- Symbol('{c}_{2}')+ 2 , Symbol('{b}_{1}')- Symbol('{c}_{1}')+ 1 , Symbol('{b}_{2}')- Symbol('{c}_{2}')+ 1 , 2 - Symbol('{c}_{1}'), 2 - Symbol('{c}_{2}'); x , y)" ],
        "freeVariables" : [ "Symbol('{C}_{1}')", "Symbol('{C}_{2}')", "Symbol('{C}_{3}')", "Symbol('{C}_{4}')", "Symbol('{b}_{1}')", "Symbol('{b}_{2}')", "Symbol('{c}_{1}')", "Symbol('{c}_{2}')", "a", "x", "y" ],
        "tokenTranslations" : {
          "F" : "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" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "crashed" : false,
        "testCalculationsGroup" : [ ]
      }
    },
    "Maple" : {
      "translation" : "F[2](x , y) = C[1]*F[2](a , b[1], b[2], c[1], c[2]; x , y)+ C[2]*(x)^(1 - c[1])* F[2](a - c[1]+ 1 , b[1]- c[1]+ 1 , b[2], 2 - c[1], c[2]; x , y)+ C[3]*(y)^(1 - c[2])* F[2](a - c[2]+ 1 , b[1], b[2]- c[2]+ 1 , c[1], 2 - c[2]; x , y)+ C[4]*(x)^(1 - c[1])* (y)^(1 - c[2])* F[2](a - c[1]- c[2]+ 2 , b[1]- c[1]+ 1 , b[2]- c[2]+ 1 , 2 - c[1], 2 - c[2]; x , y)",
      "translationInformation" : {
        "subEquations" : [ "F[2](x , y) = C[1]*F[2](a , b[1], b[2], c[1], c[2]; x , y)+ C[2]*(x)^(1 - c[1])* F[2](a - c[1]+ 1 , b[1]- c[1]+ 1 , b[2], 2 - c[1], c[2]; x , y)+ C[3]*(y)^(1 - c[2])* F[2](a - c[2]+ 1 , b[1], b[2]- c[2]+ 1 , c[1], 2 - c[2]; x , y)+ C[4]*(x)^(1 - c[1])* (y)^(1 - c[2])* F[2](a - c[1]- c[2]+ 2 , b[1]- c[1]+ 1 , b[2]- c[2]+ 1 , 2 - c[1], 2 - c[2]; x , y)" ],
        "freeVariables" : [ "C[1]", "C[2]", "C[3]", "C[4]", "a", "b[1]", "b[2]", "c[1]", "c[2]", "x", "y" ],
        "tokenTranslations" : {
          "F" : "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" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "crashed" : false,
        "testCalculationsGroup" : [ ]
      }
    }
  },
  "positions" : [ {
    "section" : 3,
    "sentence" : 0,
    "word" : 55
  } ],
  "includes" : [ "F_{2}", "y", "x", "F" ],
  "isPartOf" : [ ],
  "definiens" : [ {
    "definition" : "solution",
    "score" : 0.8869384888466118
  }, {
    "definition" : "A system",
    "score" : 0.8426021531523621
  }, {
    "definition" : "Appell",
    "score" : 0.8426021531523621
  }, {
    "definition" : "definition",
    "score" : 0.8426021531523621
  }, {
    "definition" : "partial differential equation",
    "score" : 0.8426021531523621
  }, {
    "definition" : "system",
    "score" : 0.8426021531523621
  }, {
    "definition" : "derivative",
    "score" : 0.6687181434333315
  }, {
    "definition" : "derivative result from the definition",
    "score" : 0.6687181434333315
  }, {
    "definition" : "double series",
    "score" : 0.6687181434333315
  }, {
    "definition" : "system of differential equation",
    "score" : 0.6687181434333315
  }, {
    "definition" : "system of second-order differential equation",
    "score" : 0.6687181434333315
  } ]
}

Specify your own input