Welcome to Cadabra Q&A, where you can ask questions and receive answers from other members of the community.
+1 vote

It seems to me that unwrap (in Cadabra 2) fails to recognize properly the dependency of an additive combination of dependent quantities. Here's the simplest case,

\partial{#}::PartialDerivative.

{ A, B, C, D }::Depends(\partial{#}).

ex1 := \partial_{\alpha}{ A (B + r C) }.

ex2 := \partial_{\alpha}{ (A + r B) (C + r D) }.

unwrap(ex1); unwrap(ex2);

In the first case it treats $(B + r C)$ as a constant. In the second case it produces unrecognizable result. There's no syntax error and the result is wrong which, I suppose, is a problem.

Of course, if one distributes first and then unwraps, the result comes out right. The reason why I need to do the other way around is another problem, which I ask as a separate question.

in Bug reports by (300 points)

1 Answer

+1 vote

Well spotted. This was a silly mistake for the default properties of the \sum node. I have now pushed a fix to github, please try again.

by (76.4k points)

Sorry, I'm not very good at using github. I'm using Ubuntu. Will it be OK if I just install it again? Thanks.

If you build from github again, just install on top of the existing version.

I haven't yet had time to make new .deb packages.

I failed to build. Here're the outputs...

/Downloads/cadabra-master$ ./configure --prefix=/usr

checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking whether ln -s works... yes checking whether make sets $(MAKE)... yes checking for a BSD-compatible install... /usr/bin/install -c checking CFLAGS for maximum warnings... -Wall checking for lie... yes checking how to run the C++ preprocessor... g++ -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking pcre.h usability... yes checking pcre.h presence... yes checking for pcre.h... yes checking gmpxx.h usability... yes checking gmpxx.h presence... yes checking for gmpxx.h... yes checking pcrecpp.h usability... yes checking pcrecpp.h presence... yes checking for pcrecpp.h... yes checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for sigc... yes checking for modglue... yes checking for ptywrap... yes checking system type... Unix Checking whether to use -fnested-functions with g++... no checking whether to build the GUI... yes checking for sigc... yes checking for gtk... yes checking for pango... yes checking for GTKMM... yes checking for GLIBMM... yes checking for pangomm... yes checking for dvipng... yes checking for latex... yes checking for breqn package... yes configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating src/modules/Makefile config.status: creating tests/Makefile config.status: creating gui/Makefile config.status: creating doc/Makefile config.status: creating src/config.h config.status: src/config.h is unchanged

/Downloads/cadabra-master$ make

( cd src && make ); make[1]: Entering directory '/home/partha/Downloads/cadabra-master/src' g++ -g -O2 -Wall --std=c++11 -I. -I../src pkg-config modglue --cflags -D"RELEASE=\"1.45\"" -D"DATETIME=\"date | sed -e 's/ / /'\"" -DHOSTNAME=\"hostname\" -c -o display.o display.cc In file included from manipulator.hh:26:0, from display.cc:22: algorithm.hh:25:27: fatal error: modglue/pipe.hh: No such file or directory compilation terminated. Makefile:30: recipe for target 'display.o' failed make[1]: [display.o] Error 1 make[1]: Leaving directory '/home/partha/Downloads/cadabra-master/src' Makefile:21: recipe for target 'program' failed make: [program] Error 2

You downloaded Cadabra version 1. Try version 2 from

https://github.com/kpeeters/cadabra2/

Sorry for the confusion. unwrap is working fine now. Many thanks!

...