{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,11]],"date-time":"2026-07-11T19:53:13Z","timestamp":1783799593993,"version":"3.55.0"},"reference-count":10,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2021,9,1]],"date-time":"2021-09-01T00:00:00Z","timestamp":1630454400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Commun. Comput. Algebra"],"published-print":{"date-parts":[[2021,9]]},"abstract":"<jats:p>As mathematical computing becomes more democratized in high-level languages, high-performance symbolic-numeric systems are necessary for domain scientists and engineers to get the best performance out of their machine without deep knowledge of code optimization. Naturally, users need different term types either to have different algebraic properties for them, or to use efficient data structures. To this end, we developed Symbolics.jl, an extendable symbolic system which uses dynamic multiple dispatch to change behavior depending on the domain needs. In this work we detail an underlying abstract term interface which allows for speed without sacrificing generality. We show that by formalizing a generic API on actions independent of implementation, we can retroactively add optimized data structures to our system without changing the pre-existing term rewriters. We showcase how this can be used to optimize term construction and give a 113x acceleration on general symbolic transformations. Further, we show that such a generic API allows for complementary term-rewriting implementations. Exploiting this feature, we demonstrate the ability to swap between classical term-rewriting simplifiers and e-graph-based term-rewriting simplifiers. We illustrate how this symbolic system improves numerical computing tasks by showcasing an e-graph ruleset which minimizes the number of CPU cycles during expression evaluation, and demonstrate how it simplifies a real-world reaction-network simulation to halve the runtime. Additionally, we show a reaction-diffusion partial differential equation solver which is able to be automatically converted into symbolic expressions via multiple dispatch tracing, which is subsequently accelerated and parallelized to give a 157x simulation speedup. Together, this presents Symbolics.jl as a next-generation symbolic-numeric computing environment geared towards modeling and simulation.<\/jats:p>","DOI":"10.1145\/3511528.3511535","type":"journal-article","created":{"date-parts":[[2022,1,12]],"date-time":"2022-01-12T17:07:13Z","timestamp":1642007233000},"page":"92-96","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":54,"title":["High-performance symbolic-numerics via multiple dispatch"],"prefix":"10.1145","volume":"55","author":[{"given":"Shashi","family":"Gowda","sequence":"first","affiliation":[{"name":"Massachusetts Institute of Technology"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Yingbo","family":"Ma","sequence":"additional","affiliation":[{"name":"Julia Computing"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Alessandro","family":"Cheli","sequence":"additional","affiliation":[{"name":"University of Pisa, Pisa, Italy"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Maja","family":"Gw\u00f3\u017azd\u017a","sequence":"additional","affiliation":[{"name":"Julia Computing"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Viral B.","family":"Shah","sequence":"additional","affiliation":[{"name":"Julia Computing"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Alan","family":"Edelman","sequence":"additional","affiliation":[{"name":"Massachusetts Institute of Technology"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Christopher","family":"Rackauckas","sequence":"additional","affiliation":[{"name":"Massachusetts Institute of Technology and Julia Computing"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2022,1,12]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2004.840301"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2813885.2737959"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.5555\/646155.679709"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1137\/141000671"},{"key":"e_1_2_1_5_1","volume-title":"Software Design for Flexibility: How to Avoid Programming Yourself into a Corner","author":"Hanson Chris","year":"2021","unstructured":"Chris Hanson and Gerald Jay Sussman . Software Design for Flexibility: How to Avoid Programming Yourself into a Corner . MIT Press , 2021 . Chris Hanson and Gerald Jay Sussman. Software Design for Flexibility: How to Avoid Programming Yourself into a Corner. MIT Press, 2021."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.5555\/647021.711473"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.21105\/joss.03078"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3434304"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.4049\/jimmunol.1102003"},{"key":"e_1_2_1_10_1","volume-title":"Modelingtoolkit: A Composable Graph Transformation System For Equation-Based Modeling","author":"Ma Yingbo","year":"2021","unstructured":"Yingbo Ma , Shashi Gowda , Ranjan Anantharaman , Chris Laughman , Viral Shah , and Chris Rackauckas . Modelingtoolkit: A Composable Graph Transformation System For Equation-Based Modeling , 2021 . Yingbo Ma, Shashi Gowda, Ranjan Anantharaman, Chris Laughman, Viral Shah, and Chris Rackauckas. Modelingtoolkit: A Composable Graph Transformation System For Equation-Based Modeling, 2021."}],"container-title":["ACM Communications in Computer Algebra"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3511528.3511535","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3511528.3511535","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T17:51:04Z","timestamp":1750182664000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3511528.3511535"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,9]]},"references-count":10,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2021,9]]}},"alternative-id":["10.1145\/3511528.3511535"],"URL":"https:\/\/doi.org\/10.1145\/3511528.3511535","relation":{},"ISSN":["1932-2240"],"issn-type":[{"value":"1932-2240","type":"print"}],"subject":[],"published":{"date-parts":[[2021,9]]},"assertion":[{"value":"2022-01-12","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}