Thanks a lot!
I will try to install it and if I run into trouble I'll take the liberty to
contact you again.

Best regards,

Peter


On Sat 12. Apr 2025 at 13:27, Shahriar Iravanian <[email protected]>
wrote:

> That's right. This, or equivalently, `conda install -c conda-forge symjit`
> should work on Windows, Linux, and MacOS. Even `python -m pip install
> symjit` may work, but the conda route is preferable. However, there are
> always corner cases. Please let me know if you have any problems.
>
> It has three main exported functions: `compile_func` is similar to
> lambdify. `compile_ode` and `compile_jac` generate functions to pass to
> scipy ODE solvers.
>
> -- Shahriar
>
>
>
> On Sat, Apr 12, 2025 at 1:24 AM <[email protected]> wrote:
>
>> Dear Shahriar,
>>
>>
>>
>> If I understand correctly, symjit is similar to sympy.lambdify(….) but
>> faster?
>>
>>
>>
>> I found this on Anaconda’s website:
>>
>> So I could install like this and it will install the dependencies? I have
>> windows.
>>
>>
>>
>> Thanks a lot!
>>
>>
>>
>> Peter
>>
>> *From:* [email protected] <[email protected]> *On Behalf Of 
>> *Shahriar
>> Iravanian
>> *Sent:* Friday, April 11, 2025 9:49 PM
>> *To:* [email protected]
>> *Subject:* Re: [sympy] symjit
>>
>>
>>
>> The latest version of symjit (1.5.0) has just been published. By now, the
>> Rust backend is stabilized and generates code on Linus/Darwin/Windows and
>> x86-64 and arm64 machines.
>>
>>
>>
>> Symjit also has a new plain Python-based backend, which depends only on
>> the Python standard library and numpy (the numpy dependency is not strictly
>> necessary) but can generate and run machine code routines. Currently, the
>> Python backend is used as a backup in cases where the compiled Rust code is
>> unavailable. However, it already works very well with a minimum
>> performance drop compared to the Rust backend.
>>
>>
>>
>> I would like to have your suggestions and recommendations about the next
>> steps. I hope to add features that align with the maintainers' goals for
>> sympy. Some possibilities:
>>
>>
>>
>> 1. Expanding on the current focus on numerical computation and
>> numpy/scipy/matplotlib inter-operability, for example, adding other data
>> types besides double (single floats, complex numbers...).
>>
>>
>>
>> 2. Fast polynomial evaluation, not only for floating point types, but
>> also over Z, Zp, and Q. The Python-only backend can be tightly coupled to
>> the polynomial subsystem. However, I don't know how useful having such a
>> fast polynomial evaluation function is, but, for example, it may be useful
>> in the combinatorial phase of the Zassenhaus algorithm. On the other hand,
>> it seems that sympy pivots toward using Flint for many such computations.
>>
>>
>>
>> 3. A different area would be the Satisfiability module, where writing
>> fast SAT/SMT solver, with or without interfacing with Z3 or other solvers,
>> is possible.
>>
>>
>>
>> Thanks,
>>
>>
>>
>> Shahriar Iravanian
>>
>>
>>
>>
>>
>>
>>
>>
>> On Thu, Feb 20, 2025 at 10:54 PM Jason Moore <[email protected]>
>> wrote:
>>
>> Dear Shahrari,
>>
>>
>>
>> We have already debugged everything and merged the PR to conda forge:
>>
>>
>>
>> https://github.com/conda-forge/staged-recipes/pull/29211
>>
>>
>>
>> You can install symjit with:
>>
>>
>>
>> conda install -c conda-forge symjit
>>
>>
>>
>> Enjoy!
>>
>>
>>
>> Jason
>>
>> moorepants.info
>> +01 530-601-9791
>>
>>
>>
>>
>>
>> On Fri, Feb 21, 2025 at 1:24 AM Shahriar Iravanian <
>> [email protected]> wrote:
>>
>> Hi Jason,
>>
>>
>>
>> Thanks for your help. I got conda-forge working. You can install
>> symjit on Windows and Linux (Mac will be coming soon).
>>
>>
>>
>> Here is the meta.yaml that works:
>>
>>
>>
>> ```
>>
>> {% set name = "symjit" %}
>> {% set version = "1.2.1" %}
>>
>> package:
>>   name: {{ name|lower }}
>>   version: {{ version }}
>>
>> source:
>>   url: https://pypi.org/packages/source/{{ name[0] }}/{{ name
>> }}/symjit-{{ version }}.tar.gz
>>   sha256: 8398ceb11d557c5b5bdce4e7d358b741d2d5278d1e374588f5bd6bbb5a581ebd
>>
>> build:
>>   noarch: python
>>   script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation
>>   number: 0
>>
>> requirements:
>>   build:
>>     - {{ compiler('rust') }}
>>     - {{ compiler('c') }}
>>     - {{ stdlib('c') }}
>>   host:
>>     - python >=3.7
>>     - setuptools
>>     - setuptools-rust
>>     - pip
>>   run:
>>     - python >=3.7
>>     - numpy
>>     - sympy
>>     - libgcc
>>
>> test:
>>   imports:
>>     - symjit
>>   commands:
>>     - pip check
>>   requires:
>>     - pip
>>
>> about:
>>   home: https://github.com/siravan/symjit
>>   summary: a light-weight jit for sympy expressions
>>   license: MIT
>>   license_file: LICENSE
>>
>> extra:
>>   recipe-maintainers:
>>     - shahriariravanian
>>
>> ```
>>
>>
>>
>> On Thu, Feb 20, 2025 at 10:35 AM Jason Moore <[email protected]>
>> wrote:
>>
>> Hi,
>>
>>
>>
>> The way conda forge works is that it starts from a source distribution
>> and compiles the code using their toolchain (they have a rust toolchain).
>> This generates conda binaries, not wheels.
>>
>>
>>
>> So, to get it to build there on conda forge we have to debug any Rust
>> compilation or Rust->Setuptools/python issues. Right now, it is not
>> compiling for Linux or Mac and it does compile on Windows, but it doesn't
>> seem to run the test file. So something is not quite right. If you have
>> tips to fix the build issues, you can post to that PR and we can eventually
>> get it built for distribution on conda forge.
>>
>>
>>
>> Jason
>>
>> moorepants.info
>> +01 530-601-9791
>>
>>
>>
>>
>>
>> On Thu, Feb 20, 2025 at 3:21 PM Shahriar Iravanian <
>> [email protected]> wrote:
>>
>> Hi,
>>
>>
>>
>> I’m using setuptools. I should try conda next.
>>
>>
>>
>> Currently, it comes with binaries for Windows, linux x86-64 (built on
>> ubuntu), and raspbian linux (aarch64). No Mac yet. I will try to compile it
>> on a Mac.
>>
>>
>>
>> In the long run, it might be easier to rewrite it in pure python with
>> hardware dependencies confined to the mmap module.
>>
>>
>>
>> Shahriar
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Thu, Feb 20, 2025 at 7:50 AM Jason Moore <[email protected]> wrote:
>>
>> Dear Shahriar,
>>
>>
>>
>> I opened a PR to package symjit for conda here:
>> https://github.com/conda-forge/staged-recipes/pull/29211
>>
>>
>>
>> I've never tried building any rust packages. There are a couple issues,
>> but maybe it has to do with conda-forge. I'm not sure. If you have any tips
>> you can comment there.
>>
>>
>>
>> I much prefer the name "compile_func" over lambdify.
>>
>>
>>
>> Jason
>>
>> moorepants.info
>> +01 530-601-9791
>>
>>
>>
>>
>>
>> On Thu, Feb 20, 2025 at 12:48 PM Shahriar Iravanian <
>> [email protected]> wrote:
>>
>> Thanks a lot. Yes, I meant https://www.sympy.org/en/index.html. I will
>> send a PR.
>>
>>
>>
>> Regarding the name, I was thinking about a variation of lambdify but
>> couldn't come up with one, so I went with compile_func.
>>
>>
>>
>> -- Shahriar
>>
>>
>>
>> On Wed, Feb 19, 2025 at 11:05 PM Jason Moore <[email protected]>
>> wrote:
>>
>> Yes, this looks interesting, especially that you choose a sane function
>> name "compile_func". We should have named lambdify that.
>>
>>
>>
>> Jason
>>
>> moorepants.info
>> +01 530-601-9791
>>
>>
>>
>>
>>
>> On Wed, Feb 19, 2025 at 11:41 PM Oscar Benjamin <
>> [email protected]> wrote:
>>
>> Hi Shahriar,
>>
>> The symjit package sounds very interesting. I will have to take a look at
>> it.
>>
>> I'm not sure what the list of packages you are referring to is.
>> Presumably a PR to the website can add this?
>>
>> https://github.com/sympy/sympy.github.com
>>
>> Oscar
>>
>> On Wed, 19 Feb 2025 at 22:14, Shahriar Iravanian <[email protected]>
>> wrote:
>> >
>> > Could you please add symjit (https://github.com/siravan/symjit) to the
>> list of SymPy projects?
>> >
>> > Symjit is a lightweight just-in-time (JIT) compiler that directly
>> translates basic sympy expressions into x86-64 and aarch64 machine codes
>> (and, optionally, to WebAssembly). Currently, its main utility is to
>> generate fast numerical functions to feed into different numerical solvers
>> (quadrature, ode solvers...). It has minimum dependency on external
>> libraries and does not use a separate compiler, such as LLVM. It also works
>> very well in the REPL environment.
>> >
>> > In addition, if anyone is interested in collaborating to improve and
>> extend it, please contact me. There are many possibilities for future
>> works, such as adding modular arithmetic for fast polynomial computations,
>> adding complex numbers, SIMD instructions, and other instruction sets.
>> >
>> > Thanks,
>> >
>> > -- Shahriar
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups "sympy" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an email to [email protected].
>> > To view this discussion visit
>> https://groups.google.com/d/msgid/sympy/7468597d-a73a-4aa6-ae0c-c0dd04105cb5n%40googlegroups.com
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/sympy/CAHVvXxSYPmF-OkevB3Xz%2BqDYQ04XP9TcYiqdnxNBXguDJrxWMA%40mail.gmail.com
>> .
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "sympy" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/sympy/TBGpgEYtnWw/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/sympy/CAP7f1AgM_3x0yi0oc7EvXy0us5moRWHqV6L5T9jRiFTmAiPmVQ%40mail.gmail.com
>> <https://groups.google.com/d/msgid/sympy/CAP7f1AgM_3x0yi0oc7EvXy0us5moRWHqV6L5T9jRiFTmAiPmVQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>>
>> To view this discussion visit
>> https://groups.google.com/d/msgid/sympy/CABEBXTbWzaEK%3DfZHEvzMPxWUsWfjHpgJmu-zChv_F9KzEXSiWQ%40mail.gmail.com
>> <https://groups.google.com/d/msgid/sympy/CABEBXTbWzaEK%3DfZHEvzMPxWUsWfjHpgJmu-zChv_F9KzEXSiWQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "sympy" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/sympy/TBGpgEYtnWw/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/sympy/CAP7f1Aj%3DmVXjzsBgAmMYTxKtDhUnpsKFDrFBK%3DbbjWUQq81Szg%40mail.gmail.com
>> <https://groups.google.com/d/msgid/sympy/CAP7f1Aj%3DmVXjzsBgAmMYTxKtDhUnpsKFDrFBK%3DbbjWUQq81Szg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/sympy/CABEBXTYFckqvBhiNM-_7zzta5pesqRJVLgSUBTNTX57skCzw0A%40mail.gmail.com
>> <https://groups.google.com/d/msgid/sympy/CABEBXTYFckqvBhiNM-_7zzta5pesqRJVLgSUBTNTX57skCzw0A%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "sympy" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/sympy/TBGpgEYtnWw/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/sympy/CAP7f1AjVCwUV7jWwSLZW8NQr0uCPBrdDshDfMCtoT5e1wnYzDQ%40mail.gmail.com
>> <https://groups.google.com/d/msgid/sympy/CAP7f1AjVCwUV7jWwSLZW8NQr0uCPBrdDshDfMCtoT5e1wnYzDQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/sympy/CABEBXTZZeqR1Sm_8n2wQ-e_498ATUWdKOk%3DHveRCvf85wjkZhw%40mail.gmail.com
>> <https://groups.google.com/d/msgid/sympy/CABEBXTZZeqR1Sm_8n2wQ-e_498ATUWdKOk%3DHveRCvf85wjkZhw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "sympy" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/sympy/TBGpgEYtnWw/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/sympy/CAP7f1AgBRGPgGk%3DMQ57FE7MiPRmurH2zcCaVcry-72QrRDdbdA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/sympy/CAP7f1AgBRGPgGk%3DMQ57FE7MiPRmurH2zcCaVcry-72QrRDdbdA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/sympy/CABEBXTbrbNhHLM1ttQ31ighR4qdyOwYhAFbRX8s6Pm%3D%2BfPD%2Bew%40mail.gmail.com
>> <https://groups.google.com/d/msgid/sympy/CABEBXTbrbNhHLM1ttQ31ighR4qdyOwYhAFbRX8s6Pm%3D%2BfPD%2Bew%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "sympy" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/sympy/TBGpgEYtnWw/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>>
> To view this discussion visit
>> https://groups.google.com/d/msgid/sympy/000701dbab6b%241b293f60%24517bbe20%24%40gmail.com
>> <https://groups.google.com/d/msgid/sympy/000701dbab6b%241b293f60%24517bbe20%24%40gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion visit
> https://groups.google.com/d/msgid/sympy/CABEBXTaWt5xxnvLBPt-vR2Xz0KHyXF%3DLh%2BFrVZyyFLcCf2ihFw%40mail.gmail.com
> <https://groups.google.com/d/msgid/sympy/CABEBXTaWt5xxnvLBPt-vR2Xz0KHyXF%3DLh%2BFrVZyyFLcCf2ihFw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/sympy/CABKqA0bryc0vuJ32ez1pub0xCC4v82iY2FtxVUOKwxnm6JiObw%40mail.gmail.com.

Reply via email to