Opened 2 years ago

Last modified 19 months ago

#29497 closed enhancement

package symengine and its Python interface — at Version 18

Reported by: Vincent Delecroix Owned by:
Priority: major Milestone: sage-9.3
Component: symbolics Keywords: thursdaysbdx, sd109
Cc: Isuru Fernando, Matthias Köppe, Eric Gourgoulhon Merged in:
Authors: Vincent Delecroix, Isuru Fernando Reviewers: Matthias Koeppe
Report Upstream: N/A Work issues:
Branch: u/isuruf/29497 (Commits, GitHub, GitLab) Commit: 42d49e164f7ee43678ce3ec393bd37d429f9b29a
Dependencies: Stopgaps:

Status badges

Description (last modified by Vincent Delecroix)

Symengine is a C++ symbolic engine

  • that can be used as a backend in sympy (and makes it much faster)
  • that implements "fast callable" for floats, GMP types, flint types, arb types, ... and accepts numpy arrays as arguments (the function is applied entrywise)

It is very strong candidate for replacing some of the symbolic we have in Sage, in particular all the fast callable.

tarballs

Change History (18)

comment:1 Changed 2 years ago by Isuru Fernando

Let me know if you run into any trouble.

Here are some of the options I use in conda. https://github.com/conda-forge/symengine-feedstock/blob/master/recipe/build.sh#L6-L19. They should work fine for sage (except for WITH_LLVM=yes)

Dependencies: CMake, GMP/MPIR, MPFR, MPC, FLINT2, ARB

comment:2 Changed 2 years ago by Vincent Delecroix

Branch: public/29497
Commit: 69e3c029a3eb60f7dc8b4559dcdb2b4811ddb060

New commits:

69e3c0229497: package symengine

comment:3 Changed 2 years ago by git

Commit: 69e3c029a3eb60f7dc8b4559dcdb2b4811ddb060b5304c1531c5c8ede1cd32d792951f6eedf24393

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

b5304c129497: package symengine

comment:4 Changed 2 years ago by Vincent Delecroix

Cc: Matthias Köppe added
Description: modified (diff)
Milestone: sage-9.2sage-9.1
Status: newneeds_review

comment:5 Changed 2 years ago by Matthias Köppe

Please add upstream_url to checksums.ini and distros/ Information

comment:6 Changed 2 years ago by Vincent Delecroix

I intentionally did write upstream_url because the tarballs are from github with their tags as names.

comment:7 Changed 2 years ago by git

Commit: b5304c1531c5c8ede1cd32d792951f6eedf24393a008f333c08881f762067c436c046bc361ad9fa0

Branch pushed to git repo; I updated commit sha1. New commits:

a008f33distros/conda.txt file

comment:8 Changed 2 years ago by Vincent Delecroix

(I wanted instead to use the tarball from PyPI for symengine.py but its name is symengine-0.6.1.tar.gz which collides with symengine tarballs)

comment:9 Changed 2 years ago by Isuru Fernando

symengine.py needs cmake as well.

comment:10 Changed 2 years ago by git

Commit: a008f333c08881f762067c436c046bc361ad9fa01a0b08631acd3c22a1dac32d4522f143d8bb4970

Branch pushed to git repo; I updated commit sha1. New commits:

1a0b086symengine.py also depends on cmake

comment:11 Changed 2 years ago by Isuru Fernando

Description: modified (diff)

comment:12 in reply to:  8 ; Changed 2 years ago by Matthias Köppe

Replying to vdelecroix:

(I wanted instead to use the tarball from PyPI for symengine.py but its name is symengine-0.6.1.tar.gz which collides with symengine tarballs)

The upstream_url code handles renaming just fine

  • build/pkgs/symengine.py/checksums.ini

    diff --git a/build/pkgs/symengine.py/checksums.ini b/build/pkgs/symengine.py/checksums.ini
    index ea4c44b468..489d040bcc 100644
    a b tarball=symengine.py-VERSION.tar.gz 
    22sha1=40df2b8f406b6ac4a86c83a82d31593b5738a470
    33md5=52b035da7851414d74f3bde83b6c2976
    44cksum=2829876300
     5upstream_url=https://github.com/symengine/symengine.py/archive/vVERSION.tar.gz
  • build/pkgs/symengine/checksums.ini

    diff --git a/build/pkgs/symengine/checksums.ini b/build/pkgs/symengine/checksums.ini
    index 8143c8eae5..b2651f694c 100644
    a b tarball=symengine-VERSION.tar.gz 
    22sha1=abd7d39b1b724f47bcdc5b1d811cf33f2c413aea
    33md5=3c0df2b14310467c6d45bc26a557324b
    44cksum=100973134
     5upstream_url=https://github.com/symengine/symengine/archive/vVERSION.tar.gz

comment:13 in reply to:  12 Changed 2 years ago by Vincent Delecroix

Replying to mkoeppe:

Replying to vdelecroix:

(I wanted instead to use the tarball from PyPI for symengine.py but its name is symengine-0.6.1.tar.gz which collides with symengine tarballs)

The upstream_url code handles renaming just fine

Wunderbar!

comment:14 Changed 2 years ago by git

Commit: 1a0b08631acd3c22a1dac32d4522f143d8bb4970fdf87a00b447ec768de7b8b6db1709588701bd3c

Branch pushed to git repo; I updated commit sha1. New commits:

fdf87a0upstream_url

comment:15 Changed 2 years ago by Matthias Köppe

Reviewers: Matthias Koeppe
Status: needs_reviewpositive_review

Builds and tests OK on macOS with python3. Could you add a little bit to the ticket description please - what is it intended to be used for in Sage

comment:16 Changed 2 years ago by Isuru Fernando

Authors: Vincent DelecroixVincent Delecroix, Isuru Fernando
Branch: public/29497u/isuruf/29497
Commit: fdf87a00b447ec768de7b8b6db1709588701bd3c42d49e164f7ee43678ce3ec393bd37d429f9b29a
Status: positive_reviewneeds_review

New commits:

dcf980aMake sure symengine finds dependencies from SAGE_LOCAL
42d49e1Fix testing

comment:17 Changed 2 years ago by Isuru Fernando

'import symengine; symengine.test()' uses pytest. Switched to nose

comment:18 Changed 2 years ago by Vincent Delecroix

Description: modified (diff)
Note: See TracTickets for help on using tickets.