> > Since I am not a programmer and nobody in my team is a mathematician (so my developers don't know Sage), I kindly ask on this list for any hints how we could proceed?
> Sage mainly uses other open source C libraries to carry out these factorizations, so you would need to be able to port these to wasm as well.
To be clear, porting parts of Sage or the underlying C libraries to
WASM/pyodide is a formidable task even for a mathematical programmer.
That is why I suggested SymPy instead since it already works in
WASM/pyodide.
SymPy does not provide factorisation over as many different rings as
Sage does but is easy to install and use in WASM via pyodide:
https://pyodide.org/en/stable/
You can just micropip.install('sympy') and add a short snippet of
Python code to use SymPy from JS:
https://pyodide.org/en/stable/usage/loading-packages.html
The next release of SymPy (1.13) can make use of python-flint for
factorisation of some polynomials using the underlying Flint C
library. Also python-flint has been ported to pyodide so it should be
possible to use SymPy backed by Flint in WASM:
https://pyodide.org/en/latest/usage/packages-in-pyodide.html
In future if Sage becomes more usable from WASM/pyodide then I assume
that you would be able to use it in the same way via pyodide. As I
understand it though it is not possible right now to install enough
pieces of Sage in pyodide to be able to factorise a polynomial. I
imagine that making that work using Sage would require some
significant porting work that is likely out of scope for a team of
non-mathematicians who do not know Sage or its dependencies.
--
Oscar