[GiNaC-list] comparing ex

John Pye john.pye at student.unsw.edu.au
Mon Aug 22 17:16:18 CEST 2005


Hi Vera

Just noticing your lines:

> ex A = symbolic_matrix(1,2, "a");
> ex B = symbolic_matrix(1,2, "a"); 

Are delibarately creating two different sets of symbols here with the
same name? I don't know why you'd want to do that. This means that A and
B will *look* the same but will not be treated by GiNaC as the same
thing - different symbols, just happening to have the same labels.

Is that any help?

JP

Vera Louise Hauge wrote:

> Hi,
>
> Thank you for your suggestion!
>
> It is almost what I want to do. However, in my case also the symbols
> a0 and a1 are different objects with the same text:
>
> int main(){
>
> ex A = symbolic_matrix(1,2, "a");
> ex B = symbolic_matrix(1,2, "a");
> symbol x("x");
>
> ex a, b;
> int n=0;
> for (const_iterator i = A.begin(); i != A.end(); ++i) {
> a += (*i)*pow(x,n);
> n++;
> }
> n=0;
> for (const_iterator i = B.begin(); i != B.end(); ++i) {
> b += (*i)*pow(x,n);
> n++;
> }
> cout << "a-b=" << (a-b).expand() << endl;
> return 0;
> }
>
> Any suggestions when the expressions "a0+a1*x" are produced this way?
>
> Maybe string comparison of the texts in the coefficient objects is a
> way to do it?
>
>
> -- 
> Vera Louise Hauge
>
>
> On Thu, 18 Aug 2005, Markus Knodel wrote:
>
>> Hi,
>>
>> #include <ginac/ginac.h>
>> #include <iostream>
>>
>> using namespace std;
>> using namespace GiNaC;
>>
>> int main()
>> {
>>
>> symbol a0("a0"), x("x"), a1("a1");
>>
>> ex a = a0 + x*a1;
>> ex b = a0 + a1*x;
>>
>> ex diff = a - b;
>>
>> ex diff_expd = diff.expand();
>>
>> cout << "a-b = " << diff_expd << endl;
>>
>> // should give: a-b = 0
>>
>> return 0;
>> }
>>
>>
>>>
>>> I want to compare (or test the equality of) two ex objects which
>>> contain
>>> symbols.
>>> a = a0 + x*a1;
>>> b = a0 + a1*x;
>>>
>>> If the ex objects are evaluated (symbolically), such that
>>> a-b becomes 0, then the test would be finished.
>>>
>>> However, how do I evaluate such a expression as a-b symbolically?
>>>
>>
>> is this what you wanted?
>>
>> Cheers
>> Markus
>>
>>
>>
>> _______________________________________________
>> GiNaC-list mailing list
>> GiNaC-list at ginac.de
>> http://thep.physik.uni-mainz.de/mailman/listinfo/ginac-list
>>
>
> _______________________________________________
> GiNaC-list mailing list
> GiNaC-list at ginac.de
> http://thep.physik.uni-mainz.de/mailman/listinfo/ginac-list
>




More information about the GiNaC-list mailing list