Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Jan 20 09:08
    lkeegan closed #1680
  • Jan 20 09:08
    lkeegan commented #1680
  • Jan 20 09:07

    lkeegan on master

    Add LambdaRealDoubleVisitor cse… Delete copy constructor of Lamb… Capture a pointer to cse_interm… and 1 more (compare)

  • Jan 20 09:07
    lkeegan closed #1722
  • Jan 20 09:07
    lkeegan closed #1674
  • Jan 19 19:04
    HaoZeke opened #1724
  • Jan 18 15:51
    das-projects starred symengine/symengine
  • Jan 18 03:42
    milkway124 opened #1723
  • Jan 16 14:06
    isuruf-bot commented #1722
  • Jan 16 14:06
    lkeegan synchronize #1722
  • Jan 16 13:55
    isuruf-bot commented #1722
  • Jan 16 13:54
    lkeegan opened #1722
  • Jan 15 16:03
    ShikharJ commented #1337
  • Jan 15 09:35
    NathanWeasley starred symengine/symengine
  • Jan 14 12:15
    sudoWin closed #1721
  • Jan 14 11:39
    sudoWin commented #1337
  • Jan 14 11:22
    isuruf-bot commented #1721
  • Jan 14 11:21
    sudoWin opened #1721
  • Jan 14 10:39
    sudoWin commented #1716
  • Jan 14 10:38
    sudoWin commented #1716
@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?
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