Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Feb 25 08:30
    HaoZeke review_requested #1726
  • Feb 25 08:13
    isuruf-bot commented #1726
  • Feb 25 08:12
    HaoZeke synchronize #1726
  • Feb 25 08:08
    HaoZeke converted_to_draft #1726
  • Feb 25 08:07
    isuruf-bot commented #1726
  • Feb 25 08:07
    HaoZeke labeled #1726
  • Feb 25 08:07
    HaoZeke labeled #1726
  • Feb 25 08:07
    HaoZeke opened #1726
  • Feb 24 23:42
    HaoZeke closed #1724
  • Feb 24 23:40
    Brynyard starred symengine/symengine
  • Feb 21 02:48
    HsuanTingLu starred symengine/symengine
  • Feb 18 20:11
    oksure starred symengine/symengine
  • Feb 17 12:01
    dimpase starred symengine/symengine
  • Feb 17 10:21
    costika1234 starred symengine/symengine
  • Feb 16 14:33
    HaoZeke commented #1725
  • Feb 16 08:50
    Polyacene commented #1725
  • Feb 14 18:37
    HaoZeke commented #1725
  • Feb 14 18:37
    HaoZeke commented #1725
  • Feb 12 20:41
    isuruf commented #1725
  • Feb 12 20:36
    certik commented #1725
Isuru Fernando
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?
Naveen Sai
Yes, compiling without debug works fine. I'll open an issue on Github
Naveen Sai

I compiled without these options and the build was successful. Even ctest works. However, I have a question. Can I actually use the library directly in C++? I tried to compile this piece of code, but I get an error again.

#include <symengine/basic.h>
#include <symengine/symbol.h>

using SymEngine::Basic;
using SymEngine::Symbol;
using SymEngine::RCP;
using SymEngine::symbol;

int main()
    RCP<const Basic> x = symbol("x");

This is the error I get.

(base) naveen@naveen-Legion-Y545:~/dev/projects$ g++ symengine.cpp
/usr/bin/ld: /tmp/ccSCjgXA.o: in function `SymEngine::RCP<SymEngine::Symbol const> SymEngine::make_rcp<SymEngine::Symbol const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
symengine.cpp:(.text._ZN9SymEngine8make_rcpIKNS_6SymbolEJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_3RCPIT_EEDpOT0_[_ZN9SymEngine8make_rcpIKNS_6SymbolEJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_3RCPIT_EEDpOT0_]+0x48): undefined reference to `SymEngine::Symbol::Symbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
@naveensaigit you can write a CMakeLists.txt and have cmake generate your compile commands, see e.g. https://gist.github.com/bjodah/85fbf793da29a405e71ee382746db94d
or you can call cmake on the command-line and have it provide compile & link flags (CXXFLAGS & LDFLAGS typically), see e.g. https://github.com/symengine/symengine/wiki/Using-SymEngine-from-a-Cpp-project
Naveen Sai
@bjodah Thank you for the response. Using compile and link flags compiles the code. I have another question. Is there a way to set the compile links by default? I am right now defining the flags each time I open a new shell
Naveen Sai
@bjodah I went through your gist and using a build.sh is a good way to do it. Thank you, I understood it now :)
@naveensaigit glad I could help!
Daniel Shapero
Hi all! I was curious about how expressions are represented internally in symengine so I started browsing the source code. It looks like every expression is always canonicalized before it's stored in, say an Add or a Mul object. So for example (a + b) * (c + d) wouldn't be represented that way internally, it would first be expanded to a * c + ...etc. Is that impression correct or is there something I've missed?
Sorry if this is documented somewhere obvious, I didn't see anything on the sympy website
Isuru Fernando
@danshapero, no it's not expanded
x + x is canonicalized to 2*x
Devesh Sawant
Hi, I am trying to build symengine on windows on my MSYS shell. I ran the cmake command successfully with -DGMP_LIBRARY="c:/.../lib -DGMP_INCLUDE_DIR="c:/.../lib" -DCMAKE_BUILD_TYPE="Debug" where it was able to find the directory of the manually built gmp library.
On running make it fails, throwing cannot find C:/gmp/lib: Permission denied, which is weird since it exists & is accessible .
Any ideas on what it could be?
Isuru Fernando
@dsaw, use -DGMP_LIBRARY_DIR instead of -DGMP_LIBRARY