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 \begin{Bmatrix} j_1 & j_2 & j_3\\ j_4 & j_5 & j_6 \end{Bmatrix} = \sum_{m_1, \dots, m_6} (-1)^{\sum_{k = 1}^6 (j_k - m_k)} \begin{pmatrix} j_1 & j_2 & j_3\\ -m_1 & -m_2 & -m_3 \end{pmatrix} \begin{pmatrix} j_1 & j_5 & j_6\\ m_1 & -m_5 & m_6 \end{pmatrix} \begin{pmatrix} j_4 & j_2 & j_6\\ m_4 & m_2 & -m_6 \end{pmatrix} \begin{pmatrix} j_4 & j_5 & j_3\\ -m_4 & m_5 & m_3 \end{pmatrix} . }

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

Semantic latex: \Wignersixjsym{j_1}{j_2}{j_3}{j_4}{j_5}{j_6} = \sum_{m_1, \dots, m_6}(- 1)^{\sum_{k = 1}^6 (j_k - m_k)} \Wignerthreejsym{j_1}{j_2}{j_3}{-m_1}{-m_2}{-m_3} \Wignerthreejsym{j_1}{j_5}{j_6}{m_1}{-m_5}{m_6} \Wignerthreejsym{j_4}{j_2}{j_6}{m_4}{m_2}{-m_6} \Wignerthreejsym{j_4}{j_5}{j_3}{-m_4}{m_5}{m_3}

Confidence: 0.69221833953206

Mathematica

Translation: SixJSymbol[{Subscript[j, 1], Subscript[j, 2], Subscript[j, 3]}, {Subscript[j, 4], Subscript[j, 5], Subscript[j, 6]}] == Sum[Sum[Sum[(- 1)^(Sum[Subscript[j, k]- Subscript[m, k], {k, 1, 6}, GenerateConditions->None])* ThreeJSymbol[{Subscript[j, 1], - Subscript[m, 1]}, {Subscript[j, 2], - Subscript[m, 2]}, {- Subscript[m, 1], - Subscript[m, 3]}]*ThreeJSymbol[{Subscript[j, 1], Subscript[m, 1]}, {Subscript[j, 5], - Subscript[m, 5]}, {Subscript[m, 1], Subscript[m, 6]}]*ThreeJSymbol[{Subscript[j, 4], Subscript[m, 4]}, {Subscript[j, 2], Subscript[m, 2]}, {Subscript[m, 4], - Subscript[m, 6]}]*ThreeJSymbol[{Subscript[j, 4], - Subscript[m, 4]}, {Subscript[j, 5], Subscript[m, 5]}, {- Subscript[m, 4], Subscript[m, 3]}], {Subscript[m, 6], - Infinity, Infinity}, GenerateConditions->None], {\[Ellipsis], - Infinity, Infinity}, GenerateConditions->None], {Subscript[m, 1], - Infinity, Infinity}, GenerateConditions->None]

Information

Sub Equations

  • SixJSymbol[{Subscript[j, 1], Subscript[j, 2], Subscript[j, 3]}, {Subscript[j, 4], Subscript[j, 5], Subscript[j, 6]}] = Sum[Sum[Sum[(- 1)^(Sum[Subscript[j, k]- Subscript[m, k], {k, 1, 6}, GenerateConditions->None])* ThreeJSymbol[{Subscript[j, 1], - Subscript[m, 1]}, {Subscript[j, 2], - Subscript[m, 2]}, {- Subscript[m, 1], - Subscript[m, 3]}]*ThreeJSymbol[{Subscript[j, 1], Subscript[m, 1]}, {Subscript[j, 5], - Subscript[m, 5]}, {Subscript[m, 1], Subscript[m, 6]}]*ThreeJSymbol[{Subscript[j, 4], Subscript[m, 4]}, {Subscript[j, 2], Subscript[m, 2]}, {Subscript[m, 4], - Subscript[m, 6]}]*ThreeJSymbol[{Subscript[j, 4], - Subscript[m, 4]}, {Subscript[j, 5], Subscript[m, 5]}, {- Subscript[m, 4], Subscript[m, 3]}], {Subscript[m, 6], - Infinity, Infinity}, GenerateConditions->None], {\[Ellipsis], - Infinity, Infinity}, GenerateConditions->None], {Subscript[m, 1], - Infinity, Infinity}, GenerateConditions->None]

Free variables

  • Subscript[j, 1]
  • Subscript[j, 2]
  • Subscript[j, 3]
  • Subscript[j, 4]
  • Subscript[j, 5]
  • Subscript[j, 6]
  • Subscript[j, k]
  • Subscript[m, 2]
  • Subscript[m, 3]
  • Subscript[m, 4]
  • Subscript[m, 5]
  • Subscript[m, k]

Symbol info

  • 3j symbol; Example: \Wignerthreejsym@@{j_1}{j_2}{j_3}{m_1}{m_2}{m_3}

Will be translated to: ThreeJSymbol[{$0, $3}, {$1, $4}, {$3, $5}] Relevant links to definitions: DLMF: http://dlmf.nist.gov/34.2#E4 Mathematica: https://reference.wolfram.com/language/ref/ThreeJSymbol.html

  • 6j symbol; Example: \Wignersixjsym@@{j_{1}}{j_{2}}{j_{3}}{l_{1}}{l_{2}}{l_{3}}

Will be translated to: SixJSymbol[{$0, $1, $2}, {$3, $4, $5}] Relevant links to definitions: DLMF: http://dlmf.nist.gov/34.4#E1 Mathematica: https://reference.wolfram.com/language/ref/SixJSymbol.html

Tests

Symbolic
Numeric

SymPy

Translation:

Information

Symbol info

  • (LaTeX -> SymPy) No translation possible for given token: Cannot extract information from feature set: \Wignersixjsym [\Wignersixjsym]

Tests

Symbolic
Numeric

Maple

Translation:

Information

Symbol info

  • (LaTeX -> Maple) No translation possible for given token: Cannot extract information from feature set: \Wignersixjsym [\Wignersixjsym]

Tests

Symbolic
Numeric

Dependency Graph Information

Includes

Is part of

Complete translation information:

{
  "id" : "FORMULA_975c2917d41f4d76c5d5555af3cf26aa",
  "formula" : "\\begin{Bmatrix}\n    j_1 & j_2 & j_3\\\\\n    j_4 & j_5 & j_6\n  \\end{Bmatrix}\n   = \\sum_{m_1, \\dots, m_6} (-1)^{\\sum_{k = 1}^6 (j_k - m_k)}\n  \\begin{pmatrix}\n    j_1 & j_2 & j_3\\\\\n    -m_1 & -m_2 & -m_3\n  \\end{pmatrix}\n  \\begin{pmatrix}\n    j_1 & j_5 & j_6\\\\\n    m_1 & -m_5 & m_6\n  \\end{pmatrix}\n  \\begin{pmatrix}\n    j_4 & j_2 & j_6\\\\\n    m_4 & m_2 & -m_6\n  \\end{pmatrix}\n  \\begin{pmatrix}\n    j_4 & j_5 & j_3\\\\\n    -m_4 & m_5 & m_3\n  \\end{pmatrix}",
  "semanticFormula" : "\\Wignersixjsym{j_1}{j_2}{j_3}{j_4}{j_5}{j_6} = \\sum_{m_1, \\dots, m_6}(- 1)^{\\sum_{k = 1}^6 (j_k - m_k)} \\Wignerthreejsym{j_1}{j_2}{j_3}{-m_1}{-m_2}{-m_3} \\Wignerthreejsym{j_1}{j_5}{j_6}{m_1}{-m_5}{m_6} \\Wignerthreejsym{j_4}{j_2}{j_6}{m_4}{m_2}{-m_6} \\Wignerthreejsym{j_4}{j_5}{j_3}{-m_4}{m_5}{m_3}",
  "confidence" : 0.6922183395320636,
  "translations" : {
    "Mathematica" : {
      "translation" : "SixJSymbol[{Subscript[j, 1], Subscript[j, 2], Subscript[j, 3]}, {Subscript[j, 4], Subscript[j, 5], Subscript[j, 6]}] == Sum[Sum[Sum[(- 1)^(Sum[Subscript[j, k]- Subscript[m, k], {k, 1, 6}, GenerateConditions->None])* ThreeJSymbol[{Subscript[j, 1], - Subscript[m, 1]}, {Subscript[j, 2], - Subscript[m, 2]}, {- Subscript[m, 1], - Subscript[m, 3]}]*ThreeJSymbol[{Subscript[j, 1], Subscript[m, 1]}, {Subscript[j, 5], - Subscript[m, 5]}, {Subscript[m, 1], Subscript[m, 6]}]*ThreeJSymbol[{Subscript[j, 4], Subscript[m, 4]}, {Subscript[j, 2], Subscript[m, 2]}, {Subscript[m, 4], - Subscript[m, 6]}]*ThreeJSymbol[{Subscript[j, 4], - Subscript[m, 4]}, {Subscript[j, 5], Subscript[m, 5]}, {- Subscript[m, 4], Subscript[m, 3]}], {Subscript[m, 6], - Infinity, Infinity}, GenerateConditions->None], {\\[Ellipsis], - Infinity, Infinity}, GenerateConditions->None], {Subscript[m, 1], - Infinity, Infinity}, GenerateConditions->None]",
      "translationInformation" : {
        "subEquations" : [ "SixJSymbol[{Subscript[j, 1], Subscript[j, 2], Subscript[j, 3]}, {Subscript[j, 4], Subscript[j, 5], Subscript[j, 6]}] = Sum[Sum[Sum[(- 1)^(Sum[Subscript[j, k]- Subscript[m, k], {k, 1, 6}, GenerateConditions->None])* ThreeJSymbol[{Subscript[j, 1], - Subscript[m, 1]}, {Subscript[j, 2], - Subscript[m, 2]}, {- Subscript[m, 1], - Subscript[m, 3]}]*ThreeJSymbol[{Subscript[j, 1], Subscript[m, 1]}, {Subscript[j, 5], - Subscript[m, 5]}, {Subscript[m, 1], Subscript[m, 6]}]*ThreeJSymbol[{Subscript[j, 4], Subscript[m, 4]}, {Subscript[j, 2], Subscript[m, 2]}, {Subscript[m, 4], - Subscript[m, 6]}]*ThreeJSymbol[{Subscript[j, 4], - Subscript[m, 4]}, {Subscript[j, 5], Subscript[m, 5]}, {- Subscript[m, 4], Subscript[m, 3]}], {Subscript[m, 6], - Infinity, Infinity}, GenerateConditions->None], {\\[Ellipsis], - Infinity, Infinity}, GenerateConditions->None], {Subscript[m, 1], - Infinity, Infinity}, GenerateConditions->None]" ],
        "freeVariables" : [ "Subscript[j, 1]", "Subscript[j, 2]", "Subscript[j, 3]", "Subscript[j, 4]", "Subscript[j, 5]", "Subscript[j, 6]", "Subscript[j, k]", "Subscript[m, 2]", "Subscript[m, 3]", "Subscript[m, 4]", "Subscript[m, 5]", "Subscript[m, k]" ],
        "tokenTranslations" : {
          "\\Wignerthreejsym" : "3j symbol; Example: \\Wignerthreejsym@@{j_1}{j_2}{j_3}{m_1}{m_2}{m_3}\nWill be translated to: ThreeJSymbol[{$0, $3}, {$1, $4}, {$3, $5}]\nRelevant links to definitions:\nDLMF:         http://dlmf.nist.gov/34.2#E4\nMathematica:  https://reference.wolfram.com/language/ref/ThreeJSymbol.html",
          "\\Wignersixjsym" : "6j symbol; Example: \\Wignersixjsym@@{j_{1}}{j_{2}}{j_{3}}{l_{1}}{l_{2}}{l_{3}}\nWill be translated to: SixJSymbol[{$0, $1, $2}, {$3, $4, $5}]\nRelevant links to definitions:\nDLMF:         http://dlmf.nist.gov/34.4#E1\nMathematica:  https://reference.wolfram.com/language/ref/SixJSymbol.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: \\Wignersixjsym [\\Wignersixjsym]"
        }
      },
      "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: \\Wignersixjsym [\\Wignersixjsym]"
        }
      },
      "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" : [ "j_{3}", "\\begin{Bmatrix}    j_1 & j_2 & j_3\\\\    j_4 & j_5 & j_6  \\end{Bmatrix}   = \\sum_{m_1, \\dots, m_6} (-1)^{\\sum_{k = 1}^6 (j_k - m_k)}  \\begin{pmatrix}    j_1 & j_2 & j_3\\\\    -m_1 & -m_2 & -m_3  \\end{pmatrix}  \\begin{pmatrix}    j_1 & j_5 & j_6\\\\    m_1 & -m_5 & m_6  \\end{pmatrix}  \\begin{pmatrix}    j_4 & j_2 & j_6\\\\    m_4 & m_2 & -m_6  \\end{pmatrix}  \\begin{pmatrix}    j_4 & j_5 & j_3\\\\    -m_4 & m_5 & m_3  \\end{pmatrix}", "m_{i}", "j", "\\begin{Bmatrix}    j_1 & j_2 & j_3\\\\    j_4 & j_5 & j_6 \\end{Bmatrix}" ],
  "isPartOf" : [ "\\begin{Bmatrix}    j_1 & j_2 & j_3\\\\    j_4 & j_5 & j_6  \\end{Bmatrix}   = \\sum_{m_1, \\dots, m_6} (-1)^{\\sum_{k = 1}^6 (j_k - m_k)}  \\begin{pmatrix}    j_1 & j_2 & j_3\\\\    -m_1 & -m_2 & -m_3  \\end{pmatrix}  \\begin{pmatrix}    j_1 & j_5 & j_6\\\\    m_1 & -m_5 & m_6  \\end{pmatrix}  \\begin{pmatrix}    j_4 & j_2 & j_6\\\\    m_4 & m_2 & -m_6  \\end{pmatrix}  \\begin{pmatrix}    j_4 & j_5 & j_3\\\\    -m_4 & m_5 & m_3  \\end{pmatrix}" ],
  "definiens" : [ ]
}

Specify your own input