1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
## "Computer Algebra Systems" section of wpi.edu History of Calculus
This is the clearest short overview of CAS implementation I have seen. It is a
bit out of date, and doesn't go very deep, but mentions what appear to be the
fundamentals: multiple representations (eg, expressions vs. polynomials),
canonical forms, and term re-writing.
References "Computer Algebra: Systems and Algorithms for Algebraic
Computations" (1988) by Davenport several times.
Didn't learn anything new, but good reference and resource.
## SciML Julia Project
<https://sciml.ai/>
Bunch of folks doing things around ML and modeling using Julia. Julia Computing
(the company) has a "JuliaSim" product; bunch of pharma folks using these
tools; etc.
Related stuff:
- https://juliasymbolics.org/ and Symbolics.jl
- https://github.com/SciML/DataDrivenDiffEq.jl
- https://discourse.julialang.org/c/domain/models/21
- https://www.reddit.com/r/SciML/
- https://sebastiancallh.github.io/post/neural-ode-weather-forecast/
- https://sciml.ai/news/2021/08/16/juliacon2021/
- https://juliacomputing.com/products/juliasim/
- https://sciml.ai/news/2021/08/26/expansion/
- https://sciml.ai/roadmap/
- https://sciml.ai/showcase/
- https://github.com/ModiaSim/Modia.jl
## "Computer Algebra" (1988) by Davenport
"Computer Algebra: Systems and Algorithms for Algebraic Computations"
Copy on IA: <https://archive.org/details/computeralgebras0000dave>
A bit old at this point, but from the table of contents seems to go reasonably
deep. I think this is basically an overview of how to implement a system like
Macsyma; not sure how Macsyma-specific it is. Maybe goes a bit deeper and more
implementation specific than the Cohn books? Eg, more specifics about
canonicalization and term sorting.
## Cohn Book
Continues to be pretty good. Will probably want to flip/skim through the paired
book as well.
## Other Notes
### Sage Math Symbolics
Sage used to use Maxima, but the external call overhead was too high. Ended up
switching to GiNaC, which is a C++ library CAS implementation. They actually
forked as Pynac, a bit confusingly; they want to keep numeric execution
internal to Sage/python.
### Optimization Model Languages (eg, AMPL)
In the world of optimization problems (eg, in business modeling), there are
langages like AMPL ("A Mathematical Programming Language") to describe models.
Not too disimilar from Modelica etc.
The term for these seems to be "Algebraic modeling language", for use in
mathematical optimization.
<https://en.wikipedia.org/wiki/AMPL#A_sample_model>
### NineML Modeling Languages
For neuroscience: <http://incf.github.io/nineml-spec/>
### Macsyma / Maxima Stuff
"Macsyma’s General Simplifier: Philosophy and Operation" (1979, Richard Fateman)
Maxima can output Fortran, LaTeX, and MathML. The fortan output is very crude
though, just single expressions, and supports very little.
### insect.sh
Web-based scientific calculator. Syntax/grammar might be interesting to study.
|