Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • 03:33
    jevinskie starred symengine/symengine
  • Nov 30 22:00
    rikardn commented #1710
  • Nov 30 21:58
    rikardn synchronize #1710
  • Nov 30 21:02
    rikardn closed #1675
  • Nov 30 21:02
    rikardn commented #1675
  • Nov 30 16:59
    lkeegan edited #1717
  • Nov 30 16:57
    lkeegan commented #1715
  • Nov 30 16:36
    naveensaigit commented #1716
  • Nov 30 16:35
    isuruf commented #1715
  • Nov 30 16:09
    lkeegan synchronize #1717
  • Nov 30 15:59
    certik commented #1715
  • Nov 30 10:58
    lkeegan commented #1715
  • Nov 30 10:24
    lkeegan synchronize #1717
  • Nov 30 09:34
    isuruf-bot commented #1716
  • Nov 30 09:33
    naveensaigit synchronize #1716
  • Nov 30 08:01
    lkeegan opened #1717
  • Nov 30 07:25
    isuruf-bot commented #1716
  • Nov 30 07:24
    naveensaigit opened #1716
  • Nov 30 03:17
    prydt starred symengine/symengine
  • Nov 29 18:33
    isuruf commented #1714
thanks again @isuruf
Isuru Fernando
@richardotis, @bocklund, I've released 0.4.1 of symengine. With conda you can use python-symengine 0.4.0 and symengine 0.4.1
I could use some help in fixing the tests of symengine.py at symengine/symengine.py#289
Steven Lee
Is there versioning compatibility requirement between symengine and python-symengine?
Isuru Fernando
@stevenleeS0ht, yes, we usually only support one version of symengine recorded at https://github.com/symengine/symengine.py/blob/master/symengine_version.txt
Carl Poppa

@isuruf Hi Isuru, long time no see! Was wondering if the following behavior is expected. Thanks!! (master, ed7479baf59a36636061acc35b676bcf9073a932)

int main() {
  RCP<const Basic> a = symbol("a"), b = symbol("b"), c = symbol("c");
  map_basic_basic d {{mul(a,b), c}};
  RCP<const Basic> r1 = mul(SymEngine::integer(2), mul(a, b)),
  r2 = add(SymEngine::integer(1), r1);
  std::cout << *r1 << " -> " << *r1->subs(d) << std::endl;
  std::cout << *r2 << " -> " << *r2->subs(d) << std::endl;
  return 0;


2*a*b -> 2*a*b
1 + 2*a*b -> 1 + 2*c
Isuru Fernando
@tgn3000, looks like an oversight
Note that, we have
2*a*b*c -> 2*a*b*c
1 + 2*a*b*c -> 1+2*a*b*c
Richard Otis
Hi @isuruf , do you have a sense what the blockers are for the next release of symengine.py? The new as_ctypes API enables some really nice solver accuracy improvements for us downstream, and also lets pycalphad resolve an install-time bug related to finding libsymengine.
Isuru Fernando
@richardotis, I'd like to get #1596, #1582, #1592 done

The new as_ctypes API enables some really nice solver accuracy improvements for us downstream

What's the difference between this and the cython one?

Richard Otis
Two things: it supports the lambda backend with nogil calling (current release doesn't), and it eliminates symengine as a build-time dependency
Richard Otis
@isuruf Thanks for your hard work getting the new release out there. Our downstream CI picked it up without skipping a beat.
Sylvain Corlay
Jogi Miglani
Can anybody please guide me on this symengine/symengine#1617?
Ondřej Čertík
@jmig5776 I just replied there.
Jogi Miglani
Yaa I am on it.Thanks
Dario Izzo
Is there a user documentation for symengine? I am struggling to find one ...
Isuru Fernando
@darioizzo, it's at https://symengine.github.io/classSymEngine_1_1Add.html , but it has close to zero documentation
@darioizzo even though it's not a 1:1 mapping, SymPy's documentation is a good place to look since many functions are essentially a reimplementation in C++. Also, I find the tests in SymEngine to be quite approachable for examples of usage.
Jogi Miglani
Btw can anyone tell me that what's the plan for documentation for symengine, because I myself facing very much problems while implementing cancel for apart ....if there is predefined plan then I would like to help in that
How to install symengine for python 3 using macports? I tried using sudo port install symengine and I was not able to use in python3
Isuru Fernando
@ronald00773, install pip and then do python3 -m pip install symengine
thanks @isuruf
Ammar Alam Malik
Hey, everyone.
This is Ammar and I am new to open source. Can anyone get me started?
Hello, everyone .
I am new to opensource ,so i want help on how to get started. I am good in c++,still learning though trying to make my coding skills more better.
can anyone guide me on open source,it will really helpfull to me.
Arpan Chattopadhyay
Hello, everyone. My name is Arpan. I have been active in the main SymPy room and Github page. Among the proposed projects, I am interested in SymEngine- SymPy integration, could someone please tell me what all is expected in the proposal?
@isuruf Respected Sir, could you please help me out?
Isuru Fernando
@Arpan612, the linked issues give some details
Here's an example PR that was closed that can be resurrected. sympy/sympy#13214
There's also symengine-sage integration project https://wiki.sagemath.org/GSoC/2020#Fast_evaluation_of_symbolic_expressions
Arpan Chattopadhyay
Thank you sir, will definitely look into it.
Sir, could you please tell me who are the potential mentors for this project along with you?
Arpan Chattopadhyay
@isuruf Sir, after Shikhar's work in GSoC 17, did anyone else in latter GSoC years work on symengine?
Also, I found the symengine-sage project interesting. Is this part of immediate attention to the symengine project? Actually, I am looking to work on a part of symengine project which is of immediate attention to this GSoC.
Anubhav Gupta
@isuruf Sir, I have been contributing to Sympy for over 2 months and I have gone through the codebase of Symengine. I have even opened a PR in symengine similar to an issue in Sympy, can you please review it.
Arpan Chattopadhyay
Hello All, i just posted my application on the github wiki for some reviews and comments, could you please look at it? Would very much appreciate it. Thanks!
Arpan Chattopadhyay
@aktech @isuruf Could you please suggest me any python wrappers which can be worked on for SymEngine?
Arpan Chattopadhyay
@Sumith1896 Sir, please help me with the question above. Also, I request everyone to give your suggestions on my application above.
how to mod of two polynomials in SymEngine?Like this
from sympy.abc import x
from sympy import ZZ, Poly

a_list = [1,2,3,4,5]
b_list = [3,4,5,6,7]

a = Poly(a_list, x).set_domain(ZZ)
b = Poly(b_list, x).set_domain(ZZ)
Hello, I'm new to cpp and symengine. what does "sub(mul(A.m[i col + i], b.m[j bcol + k]),
mul(A.m[j col + i], b.m[i bcol + k]));" do? especially the sub part
is it just subtract?
@Kayzee805 yes
Guys, as of now, are there modules for multibody dynamics in symengine that I can use in python IDE?
Naveen Sai

I'm trying to build symengine and I am running into some errors when I set the -DCMAKE_BUILD_TYPE=Debug and -DWITH_BFD=yes.

/home/naveen/dev/symengine/symengine/utilities/teuchos/Teuchos_stacktrace.cpp: In function ‘void {anonymous}::process_section(bfd*, asection*, void*)’:
/home/naveen/dev/symengine/symengine/utilities/teuchos/Teuchos_stacktrace.cpp:193:8: error: ‘bfd_get_section_flags’ was not declared in this scope; did you mean ‘bfd_set_section_flags’?
  193 |   if ((bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0) {
      |        ^~~~~~~~~~~~~~~~~~~~~
      |        bfd_set_section_flags
/home/naveen/dev/symengine/symengine/utilities/teuchos/Teuchos_stacktrace.cpp:197:25: error: ‘bfd_get_section_vma’ was not declared in this scope; did you mean ‘bfd_set_section_vma’?
  197 |   bfd_vma section_vma = bfd_get_section_vma(abfd, section);
      |                         ^~~~~~~~~~~~~~~~~~~
      |                         bfd_set_section_vma
/home/naveen/dev/symengine/symengine/utilities/teuchos/Teuchos_stacktrace.cpp:203:49: error: cannot convert ‘bfd*’ to ‘const asection*’ {aka ‘const bfd_section*’}
  203 |   bfd_size_type section_size = bfd_section_size(abfd, section);
      |                                                 ^~~~
      |                                                 |
      |                                                 bfd*
In file included from /home/naveen/dev/symengine/symengine/utilities/teuchos/Teuchos_stacktrace.cpp:73:
/usr/include/bfd.h:1206:35: note:   initializing argument 1 of ‘bfd_size_type bfd_section_size(const asection*)’
 1206 | bfd_section_size (const asection *sec)
      |                   ~~~~~~~~~~~~~~~~^~~
make[2]: *** [symengine/utilities/teuchos/CMakeFiles/teuchos.dir/build.make:128: symengine/utilities/teuchos/CMakeFiles/teuchos.dir/Teuchos_stacktrace.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:784: symengine/utilities/teuchos/CMakeFiles/teuchos.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

I did search a little and found out that binutils-dev>2.34 has a change in its API. Can anyone help me out in fixing this?

Ondřej Čertík
Hi @naveensaigit, we'll have to figure out how to fix it. In the mean time, can you compile with WITH_BFD=no?
Can you open up an issue for this at github please?