Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 14 03:49
    zhl8223 starred symengine/symengine
  • Aug 13 10:35
    JohnDTill starred symengine/symengine
  • Aug 12 11:40
    bjodah commented #1926
  • Aug 12 11:39
    bjodah commented #1926
  • Aug 12 11:33
    bjodah synchronize #1926
  • Aug 12 11:27
    bjodah synchronize #1926
  • Aug 11 23:35
    isuruf commented #1926
  • Aug 11 23:34
    isuruf commented #1926
  • Aug 11 19:44
    bjodah opened #1926
  • Aug 11 18:29
    isuruf commented #1918
  • Aug 08 10:24
    rikardn opened #1925
  • Aug 08 09:21

    github-actions[bot] on gh-pages

    deploy: fd031ff65db5c885fcd11c8… (compare)

  • Aug 08 09:16

    rikardn on master

    Support Mul and Pow in is_real … Merge pull request #1923 from r… (compare)

  • Aug 08 09:16
    rikardn closed #1922
  • Aug 08 09:16
    rikardn closed #1923
  • Aug 08 00:49
    kursatyurt starred symengine/symengine
  • Aug 07 19:27
    rikardn synchronize #1918
  • Aug 07 19:24
    rikardn synchronize #1923
  • Aug 07 18:10

    github-actions[bot] on gh-pages

    deploy: d21d3b513404c48071ea96d… (compare)

  • Aug 07 18:06

    rikardn on master

    Use override for overriding fun… Merge pull request #1919 from r… (compare)

Naveen Sai
@naveensaigit

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
Bjorn
@bjodah
@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
@naveensaigit
@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
@naveensaigit
@bjodah I went through your gist and using a build.sh is a good way to do it. Thank you, I understood it now :)
Bjorn
@bjodah
@naveensaigit glad I could help!
Daniel Shapero
@danshapero
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
@isuruf
@danshapero, no it's not expanded
x + x is canonicalized to 2*x
Devesh Sawant
@dsaw
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
@isuruf
@dsaw, use -DGMP_LIBRARY_DIR instead of -DGMP_LIBRARY
Sayandip Halder
@sayandip18
Hi! Is there any update to symengine/symengine#1719? I would love to take it up as my GSoC Project!
Brandjpf
@Brandjpf
Hi i'm totally new to c++ and Symengine and i just managed to use it with VS 2019. I'm struggling with printing anything else than symbols. For example i try to print: RCP<const Basic>x= integer(1);
with the command cout << *x << endl; it triggers a breakpoint in basic-inl.h in line 97
and throws the exception: Unhandled exception at 0x00007FFC1F796AFB (ntdll.dll) in Test-symengine.exe: 0xC0000005: Access violation reading location 0x0000000000000009.
Siddharth
@bollu
Hey! I enjoy mathematics and programming, and I wish to learn more computational algebra --- in particular, computational group theory and ring theory. Is there an interest for Symengine to have algorithms to compute with permutation groups? How about ring algorithms? (eg. grobner basis computation and the like)?
Joseph Donato
@jsdonato
Hello everyone, I am trying to build the example provided on symengine.org and I get the following error when running make after running cmake .
-- Could NOT find SymEngine (missing: SymEngine_DIR)
This is what my CMakeLists.txt contains
cmake_minimum_required(VERSION 3.15.5)
find_package(SymEngine 0.8.1 CONFIG PATHS ~/.conan/data/symengine/0.8.1)
set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} "-std=c++0x")

include_directories(${SYMENGINE_INCLUDE_DIRS})
add_executable(example main_example.cpp)
target_link_libraries(example ${SYMENGINE_LIBRARIES})
Am I missing something in order for cmake to find symengine? I used conan to install symengine
zhangfq-chemistry
@zhangfq-chemistry
Hey! How to define a symbol/integer matrix? Just like this: DenseMatrix A = DenseMatrix(3, 3,
{integer(1), symbol("b"), symbol("c"),
symbol("d"), symbol("e"), symbol("f"),
symbol("g"), symbol("h"), symbol("i")});
Isuru Fernando
@isuruf
Does it not work?
zhangfq-chemistry
@zhangfq-chemistry
It does not work
Isuru Fernando
@isuruf
What's the error?
You can also do
vec_basic vec;
vec.push_back(integer(1));
vec.push_back(symbol("b"));
vec.push_back(symbol("c"));
DenseMatrix A = DenseMatrix(3, 3, vec);
zhangfq-chemistry
@zhangfq-chemistry
/home/zhangfq/work/HMO/symengine/test/main.cpp:28:72: error: no matching function for call to ‘SymEngine::DenseMatrix::DenseMatrix(int, int, <brace-enclosed initializer list>)’
28 | symbol("g"), symbol("h"), symbol("i")});
| ^
zhangfq-chemistry
@zhangfq-chemistry
@isuruf Thanks! How to determinant a symbol matrix?
Rafael de Conde
@Rafael-Conde
Hello everyone! can we ask for help setting up symengine here?
Isuru Fernando
@isuruf
@Rafael-Conde, sure.
Rafael de Conde
@Rafael-Conde

Ok, so I installed miniconda and installed the symengine successfully(all following the instructions from github and the install page). but when I try to run the command conda env create -f symedocs.ymlit returns what I think it's an error message, the following:

EnvironmentFileNotFound: 'C:\Users\me\miniconda3\symedocs.yml' file not found

I tried creating the file manually and searching for solutions online but wasn't successfull

I think my problem is with anaconda but as I said, I couldn't find a solution so far
I think you can see by the file path but I'm using windows, I think this might be relevant
Isuru Fernando
@isuruf
@Rafael-Conde, that file is at https://raw.githubusercontent.com/symengine/symengine.github.io/sources/symedocs.yml, but that is needed only if you want to build the docs
you can just do conda install python-symengine if you don't want to build the docs yourself
Or even pip install symengine
what language do you want use symengine from?
Rafael de Conde
@Rafael-Conde
I would like to use symengine in C++
Isuru Fernando
@isuruf
Ah okay, then conda install symengine is all you need
Rafael de Conde
@Rafael-Conde
hum... and then I statically link the symengine.lib to my project and leave the .dll file in the same directory of the final executable?
Isuru Fernando
@isuruf
yes
Rafael de Conde
@Rafael-Conde
Awesome! I thought there were extra steps haha
but one last question
Isuru Fernando
@isuruf
you also need mpir.dll, mpfr.dll, mpc.dll, pthreadsVC2.dll, flint-8.dll
1 reply
Rafael de Conde
@Rafael-Conde

but one last question

I saw the binder version that can run C++ code in a notebook and I was wondering if that's possible to be done locally. as far as I know C++ is compiled but somehow that was working like python in a notebook haha

is it possible to do that locally?

Isuru Fernando
@isuruf
Yes, it's possible
conda install xeus-cling notebook