ES version is available. Content is displayed in original English for accuracy.
Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
74% Positive
Analyzed from 1109 words in the discussion.
Trending Topics
#symbolica#https#license#using#com#hyperreal#rust#precision#symbolic#mathematica

Discussion (29 Comments)Read Original on HackerNews
This software does symbolic maths, and it's commercially licensed. The site still seems to be lacking comparisons to other computer algebra systems.
The project is unrelated to this other Symbolica that does symbolic code execution, despite the similar sounding brief descriptions: https://news.ycombinator.com/item?id=28443587
If you want to use Symbolica for some of these features, feel free to reach out!
Integrating Symbolica would be awesome, but our licenses are incompatible at the moment. If you're willing to relicense parts for Woxi, I'd be happy to work on this together!
Does Woxi also show intermediate steps ? That to me is a killer feature of Mathematica.
No support for intermediate steps yet, but if there is interest in it, I'd be happy to prioritize it.
Builder patterns for constructing replacement rules (and now evaluators!), macros for namespacing symbols, and now the call trait to fill in for callables in rust.
Not to mention the broad implementation of arithmetic on Atoms (the expression type of symbolica) with other std types and with symbols.
Benchmarks against Symbolica and numerica here: https://github.com/timschmidt/hyperlattice/blob/main/benchma...
For simple numerical operations, using an entire Symbolica Atom will introduce a large amount of overhead. It should only be used if the expression contains symbols as well. But perhaps I misunderstood the point of the benchmark?
Hyperreal gets performance back through caching observed facts about the numbers it's representing at creation, and through operations, and specializing dispatch for predicates and geometric operations. Using this approach throughout the stack allows us to avoid computing on the full representation or collapsing it into an approximation. Instead asking questions like "do we know if it's definitely zero, definitely not, or unknown?" or "is it rational?" or "does it have a known sign, or unknown?" and so on. Each question specializes dispatch further, and some eliminate the need for it entirely.
Asking questions using the cached facts is approximately as fast as computing with f64s. So we do that whenever possible throughout the stack. But then when you actually need to do the exact computation, hyperreal does that too, and can approximate it out to whatever precision you'd like. f32 and f64 being common, but others being supported as well. The downside is that calculating quickly with them requires this sort specialization, but the work's been done for the geometry functions.
I'll look into DoubleFloat and ErrorPropagatingFloat for benches. I should mention that numerica@128bit beat the other pure rust bignum crates I tested. The benchmarks are mostly just to give me an understanding of the performance shapes of the implementation choices of high precision numeric libraries alongside hyperreal.
But then I saw the absolutely awful license. A license like that at a time like this is no small miscalculation.
Additionaly what was one of the reasons why I looked at Symbolica because I would have liked to implement it in for the backend in a FOSS (non Profit) project that I wanted to start back when I was still in Academia. My plans shifted though so Its unlikely I am gonna do it in the short term. But what I originaly wanted is a FOSS alternative to Mathcad. I needed a Symbolic Calculation tool that does the heavy lifting.