[GiNaC-list] a counterintuitive case with subs
Feng Feng
f.feng at outlook.com
Sun Mar 20 10:44:26 CET 2022
Dear all,
I got a problem with the function subs, and I am not sure it is a possible bug or not,
but it seems counterintuitive.
Here is the code to reproduce the case:
//------------------------------------------------
#include "ginac/ginac.h"
using namespace std;
using namespace GiNaC;
int main() {
symbol s("s");
ex t = subs(1/s,s==1/s, subs_options::no_pattern);
cout << t << endl;
return 0;
}
//------------------------------------------------
The output is 1/s instead of s.
PS: if I remove the subs_options::no_pattern, the output is s as expected.
and I have a look at the source code of basic::subs, it seems it comes from the following code:
that is, the final substitutions on the new object as a whole,
//------------------------------------------------
// Perform substitutions on the new object as a whole
return copy->subs_one_level(m, options);
//------------------------------------------------
Thanks very much in advance.
Best regards!
Feng
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ginac.de/pipermail/ginac-list/attachments/20220320/05c98a32/attachment.htm>
More information about the GiNaC-list
mailing list