https://github.com/c42f/simplesymbolic.jl
https://github.com/c42f/simplesymbolic.jl
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/c42f/simplesymbolic.jl
- Owner: c42f
- License: other
- Created: 2017-07-10T10:57:39.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-07-10T10:58:14.000Z (almost 9 years ago)
- Last Synced: 2025-06-19T19:53:07.502Z (12 months ago)
- Language: Julia
- Size: 3.91 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# SimpleSymbolic
A tiny package for symbolic manipulation of julia expressions, aimed at code
generation tasks. Example:
```julia
julia> using SimpleSymbolic
julia> m = [S(:(m[$i,$j])) for i=1:3, j=1:3]
3×3 Array{SimpleSymbolic.S,2}:
S(m[1, 1]) S(m[1, 2]) S(m[1, 3])
S(m[2, 1]) S(m[2, 2]) S(m[2, 3])
S(m[3, 1]) S(m[3, 2]) S(m[3, 3])
julia> v = [S(:(v[$i])) for i=1:3]
3-element Array{SimpleSymbolic.S,1}:
S(v[1])
S(v[2])
S(v[3])
julia> m*v
3-element Array{SimpleSymbolic.S,1}:
S((m[1, 1] * v[1] + m[1, 2] * v[2]) + m[1, 3] * v[3])
S((m[2, 1] * v[1] + m[2, 2] * v[2]) + m[2, 3] * v[3])
S((m[3, 1] * v[1] + m[3, 2] * v[2]) + m[3, 3] * v[3])
julia> LowerTriangular(m)*v
3-element Array{SimpleSymbolic.S,1}:
S(m[1, 1] * v[1])
S(m[2, 2] * v[2] + m[2, 1] * v[1])
S((m[3, 3] * v[3] + m[3, 1] * v[1]) + m[3, 2] * v[2])
```