Live data from Hacker News

Symbolica Computer Algebra System

symbolica.io

81–90 of 126 posts

Re: Symbolica Computer Algebra System

#81

Cool stuff! One comment on the landing page: the slideshow view thingy of examples is fast, and when I click one to read it, it moves to the next one so fast again, so I can’t really look at the demos. I also can’t quickly find any details about what field/algebra/whatever these cover. If I make a Expression.var, what structure is it assumed to have? Great job on this project :)

Thanks for the feedback! I will see if I can slow down the slideshow. You can see more demos in the docs and the live notebook.

An expression is very general. Each variable and function is commutative and should hold for the complex numbers. For functions you can set if they are symmetric, linear or antisymmetric. Non-commutativity can be emulated by adding an extra argument that determines the ordering or by giving them different names.

If you use the Polynomial class instead of Expression, you can choose the field yourself. This is especially the clear in Rust where most structures are generic over the field. For example:

MultivariatePolynomial>

or

    UnivariatePolynomial>

Re: Symbolica Computer Algebra System

#82

Earlier quoted context omitted.

Sage also seems to cover way more subject matter.

Symbolica is only a year old, however most features are already in there. What is a Sage feature you'd like to see in Symbolica? Note that there are also features in Symbolica that are not in Sage, such as numerical integration, pattern matching and term streaming.

while i do not believe you have any obligation to license it under an open-source license, i think people who use it under a proprietary license are being foolish. a cas is an essential tool for day-to-day work, and becoming dependent on a proprietary software vendor for that usually ends badly

so in a sense that's a 'sage feature i'd like to see'

Re: Symbolica Computer Algebra System

#83

I feel like this is missing some comparisons to Sympy and Mathematica. Probably it's more polished than Sympy, but if I'm going to closed-software software why would I pick this over MMA?

The most obvious comparison is in syntax. Easier syntax means less user time spent. In Symbolica, an example from the documentation

    from symbolica import Expression
    x = Expression.var('x')
    f = Expression.fun('f')
    e = x + f(x) + 5
    e = e.replace_all(x, 6)
    print(e)
In Mathematica, the same thing is

    e = x + f[x] + 5
    e /. x -> 6

What I find striking is that, we know that Python is the most popular language because you don't have to declare your variables or your function headers, and can just start writing the logic of your computation. Then, people keep inventing these mathematics programs in Python, that need you to declare your variables before using them.

Re: Symbolica Computer Algebra System

#84

Earlier quoted context omitted.

Despite Symbolica being licensed, its source code is still available which clearly shows the author's intent. It may be important in various contexts, e.g. security or satisfying certain grant requirements in academia, or whenever custom minor modifications are necessary.

What intent do you infer from the fact that it's source-available instead of being FOSS?

cynically, one possibility is the intent to be able to sue open-source cas authors and distributors who had access to it and then wrote substantially similar code. charitably, it's intended to allow users to resolve whatever problems they have with the system, by debugging and, if necessary, patching it

Re: Symbolica Computer Algebra System

#85

Cool stuff! One comment on the landing page: the slideshow view thingy of examples is fast, and when I click one to read it, it moves to the next one so fast again, so I can’t really look at the demos. I also can’t quickly find any details about what field/algebra/whatever these cover. If I make a Expression.var, what structure is it assumed to have? Great job on this project :)

Thanks for the feedback! I will see if I can slow down the slideshow. You can see more demos in the docs and the live notebook. An expression is very general. Each variable and function is commutative and should hold for the complex numbers. For functions you can set if they are symmetric, linear or antisymmetric. Non-commutativity can be emulated by adding an extra argument that determines the ordering or by giving…

Thanks for the quick answer! I had only looked at the python API docs, so I missed that. I’ve just been wrapping up learning a bunch of Lie theory and will keep symbolica in mind next time I want to play with some big nasty expressions!

> Non-commutativity can be emulated by adding an extra argument that determines the ordering or by giving them different names.

Would you mind giving an example? (or just tell me it’s in the docs and i’ll look deeper)

Re: Symbolica Computer Algebra System

#86

It is an interesting combination of open source yet paid. But the price is "Contact us for a quote" Can't they at least give a ballpark number of what the price is? Matlab and Mathematica are about $1000-3000 per year for commercial license, they aren't hiding their price.

it's not open source

Re: Symbolica Computer Algebra System

#87

Cool stuff! One comment on the landing page: the slideshow view thingy of examples is fast, and when I click one to read it, it moves to the next one so fast again, so I can’t really look at the demos. I also can’t quickly find any details about what field/algebra/whatever these cover. If I make a Expression.var, what structure is it assumed to have? Great job on this project :)

Yes, that is super annoying. I was trying to read the examples and they kept changing out from under me. To the developer: don't slow down the animation of the gallery. Make the examples static.

Re: Symbolica Computer Algebra System

#88

Earlier quoted context omitted.

Author of Symbolica here: for your personal projects the cost is 0, as you'd be a hobbyist. Symbolica is developed by only one person, so forgive me if I can't get every aspect of the project right on the first try (especially the non-technical part) :) I will see about removing the online on start-up part. It's essentially the only anti-piracy step that I have. At the moment there is no fixed cost for use in industr…

I don't mean to belittle your great achievement with license annoyances so forgive me if this sounds harsh, but I won't look twice at any software with an online requirement, if internet connectivity is not an integral part of the software itself. I do realise open source can be a dark, unthankful place that will not pay bills for most developers so this is not about the cost itself. Unfortunately, pirates almost alw…

He's already said the fee for you is 0. It seems he's mostly going for the university side wide licenses, I don't think issues such as yours are very important for him.

Most people at a university who want to run a computation for a few days will do it on a computer that's permanently connected to the net, I think. Not their laptop.

Re: Symbolica Computer Algebra System

#90

I feel like this is missing some comparisons to Sympy and Mathematica. Probably it's more polished than Sympy, but if I'm going to closed-software software why would I pick this over MMA?

The most obvious comparison is in syntax. Easier syntax means less user time spent. In Symbolica, an example from the documentation from symbolica import Expression x = Expression.var('x') f = Expression.fun('f') e = x + f(x) + 5 e = e.replace_all(x, 6) print(e) In Mathematica, the same thing is e = x + f[x] + 5 e /. x -> 6 What I find striking is that, we know that Python is the most popular language because you don…

Should note the `/.` is syntactic sugar (or special syntax) for `ReplaceAll[]` function. And basically anything can be written as M-expressions. For any expression this form can be retrieved with `FullForm[expr]` (may have to use `Hold[expr]`). So for your example with no special syntax:

    Set[e,Plus[5,x,f[x]]]
    ReplaceAll[e,Rule[x,6]]
Post reply on HN