# CAS benchmarks (Symbolics.jl and Maxima)

**URL:** <https://discourse.julialang.org/t/cas-benchmarks-symbolics-jl-and-maxima/58359>\
**Category:** Performance\
**Tags:** symbolic\
**Created:** [April 1, 2021, 12:24am UTC](https://discourse.julialang.org/t/cas-benchmarks-symbolics-jl-and-maxima/58359 "2021-04-01T00:24:24Z")\
**Posts on this page:** 1\
**Showing post:** 17

<div class="post-metadata">

**Author:** ![jeff.bezanson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeff.bezanson/32/48_2.png) [@jeff.bezanson](https://discourse.julialang.org/u/jeff.bezanson)\
**Post date:** [April 2, 2021, 5:03pm UTC](https://discourse.julialang.org/t/cas-benchmarks-symbolics-jl-and-maxima/58359/17 "2021-04-02T17:03:42Z")

</div>

> [@rfateman](#):
>
> ```julia
> (setf q `(+ ,(coerce i 'double-float) (* ,x ,q))))
> 
> ```

This is cool to see because it reminds me of a moment that was probably a key influence on julia. I learned the lisp lore that you could, say, write a macro to add type declarations to every subexpression, and then a good lisp implementation would generate fast code. I immediately thought two things:

1. Why not just declare the types of variables? You can, but common lisp is generally too “type-unstable” (as we would call it) to be sure you’ll get the intended code. (May not be true for floats but could happen with other types.)
2. Why not automate it completely?

Maybe julia stands for “Jeff’s uncommon lisp is automated”?

---

_[View the full topic](https://discourse.julialang.org/t/cas-benchmarks-symbolics-jl-and-maxima/58359)._
