Compilable Markdown for Linear Algebra
Yong Li, Shoaib Kamil, Alec Jacobson, Yotam Gingold
Mathematical notation has developed over centuries to effectively talk technical ideas such because the sparse graph Laplacian building within the high left.
In the meantime, programming languages talk with a machine usually with a decreased character set and syntax inflicting handwritten translation of arithmetic to visually stray removed from the “chalkboard math” and from one another.
I❤️LA is a novel area particular language for linear algebra. The I❤️LA
code written with wealthy Unicode symbols visually resembles chalkboard math,
whereas nonetheless being a semantically well-defined programming language compilable
to varied goal languages: LaTeX, MATLAB, Python, C++.
Summary:
Speaking linear algebra in written kind is difficult: mathematicians should select between writing in languages that produce well-formatted however semantically-underdefined representations comparable to LaTeX; or languages with well-defined semantics however notation in contrast to standard math, comparable to C++/Eigen. In each instances, the underlying linear algebra is obfuscated by the necessities of esoteric language syntax (as in LaTeX) or awkward APIs because of language semantics (as in C++). The hole between representations leads to communication challenges, together with underspecified and irreproducible analysis outcomes, issue instructing math ideas underlying complicated numerical code, in addition to repeated, redundant, and error-prone translations from communicated linear algebra to executable code. We introduce I❤️LA, a language with syntax designed to intently mimic conventionally-written linear algebra, whereas nonetheless guaranteeing an unambiguous, compilable interpretation. Impressed by Markdown, a language for writing naturally-structured plain textual content information that translate into legitimate HTML, I❤️LA permits customers to jot down linear algebra in textual content kind and compile the identical supply into LaTeX, C++/Eigen, Python/NumPy/SciPy, and MATLAB, with simple extension to additional math programming environments. We define the ideas of our language design and spotlight design choices that steadiness between readability and exact semantics, and reveal by way of case research the power for I❤️LA to bridge the semantic hole between conventionally-written linear algebra and unambiguous interpretation in math programming environments.
Quick Ahead [SIGGRAPH Asia 2021]
Obtain as: MP4 [27 MB]
5-minute Presentation [SIGGRAPH Asia 2021]
Obtain as: MP4 [30 MB]
20-minute Presentation [SIGGRAPH Asia 2021]
Obtain as:
MP4 [60 MB]
| Keynote [250 MB]
| PDF [60 MB]
| PDF with notes [20 MB]
BibTeX (approximate):
@article{li2021iheartla, creator = {Li, Yong and Kamil, Shoaib and Jacobson, Alec and Gingold, Yotam}, title = {I Coronary heart LA: Compilable Markdown for Linear Algebra}, journal = {ACM Transactions on Graphics (TOG)}, quantity = {40}, quantity = {6}, 12 months = {2021}, month = dec, key phrases = {linear algebra, mathematical enter, domain-specific language, compiler, scientific computing} }