Hi there.
I am reviving some 10-years old software that is based on
GiNaC. When I started the work I was pessimistic, given
so much time has passed. But now the thing compiles again.
The problem is that I cannot parse the test-suite that was
used for validation. I get:
on line 392: parse error: GiNaC: parse error at line 0, column 0: expected ')' or ',' in argument list, got: "!"
[GiNaC::ex GiNaC::parser::parse_identifier_expr()(parser/parser.cpp:88)]
I guess something has changed in the parser, or maybe
my reviving effort introduced a bug. Line 392 is the last
one in this block:
y (n+3)!
factorial(3+n)
factorial(3+n)
factorial(n)*(3+n)*(1+n)*(2+n)
factorial(3+n)
factorial(3+n)
This is the first block that contains an "!".
This and all the subsequent blocks of tests
that contain an "!" symbol fail in the same
way. None of the blocks before fails.
Any hint?
Thanks,
Roberto
--
Prof. Roberto Bagnara
Applied Formal Methods Laboratory
Department of Mathematical, Physical and Computer Sciences
University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara@cs.unipr.it
Dear Roberto,
Yes, normalisation methods in GiNaC undergone some modification
over that period as well. Thus particular form of the expression can
be different now.
Best wishes,
Vladimir
--
Vladimir V. Kisil http://www.maths.leeds.ac.uk/~kisilv/
Book: Geometry of Mobius Maps https://doi.org/10.1142/p835
Soft: Geometry of cycles http://moebinv.sourceforge.net/
Jupyter notebooks: https://github.com/vvkisil/MoebInv-notebooks
>>>>> On Fri, 14 May 2021 22:36:13 +0200, Roberto Bagnara <bagnara(a)cs.unipr.it> said:
RB> On 5/14/21 3:33 PM, Vladimir V. Kisil wrote:
>>>>>>> On Fri, 14 May 2021 15:08:09 +0200, Roberto Bagnara
>>>>>>> <bagnara(a)cs.unipr.it> said:
RB> On 5/14/21 9:52 AM, Vladimir V. Kisil wrote:
>> >> Dear Roberto! It seems that Ginsh and parser in GiNaC are >>
>> implemented differently. Ginsh understands postfix factorial >>
>> notation like "3!" but GiNaC parser is not. GiNaC parser is >>
>> still happy with "factorial(3)". Best wishes, Vladimir
>> >>
RB> Thanks Vladimir! But please help me understand: I did not
RB> change anything in the part of the code invoking the GiNaC
RB> parser, and I did not change the tests. So the situation you
RB> are describing, i.e., GiNaC parser not understanding postfix
RB> factorial notation, is something that changed from, say, 10
RB> years ago. In other words, do you agree that, say, 10 years
RB> ago, the GiNaC parser was accepting that notation?
>> It seems that before 2008-08-21 GiNaC and Ginsh had used the same
>> parser, which Ginsh is using till now. After a patch they
>> diverged in this respect. So it is quite well possible that your
>> code was running with the old version of GiNaC but cannot do this
>> now without some alteration.
RB> Dear Vladimir,
RB> This explains everything. Now I am investigating failures in
RB> the regression test-suite. One of the most promising examples
RB> for my diagnosis efforts is this:
RB> simplification for output of
RB> -1+1/12*sqrt(sqrt(3)*sqrt(12))*sqrt(12)+1/12*sqrt(-sqrt(3)*sqrt(12))*sqrt(12)
RB> was expected to be -1+(1/2+1/2*I)*sqrt(2) but resulted in
RB> -1+(1/2+1/2*I)*4^(1/4)
RB> From what you write I gather that back in 2008, or even before,
RB> we obtained sqrt(2) where we now obtain 4^(1/4).
RB> Thanks,
RB> Roberto
RB> -- Prof. Roberto Bagnara Applied Formal Methods Laboratory
RB> Department of Mathematical, Physical and Computer Sciences
RB> University of Parma, Italy http://www.cs.unipr.it/~bagnara/
RB> mailto:bagnara@cs.unipr.it