[GiNaC-list] table and exhashmap

Jerome BENOIT jgmbenoit at mailsnare.net
Sun Feb 18 18:58:10 CET 2007


Hello,

thanks for the quick reply.

I am afraid I have to specify my request:
by function I meant GiNaC function
(the one declared with DECLARE_FUNCTION_<N>P).

As the object exmap (or exhashmap<T>) is no an ex object,
it cannot be returned by such a function.
If I would like to return list,
there would be no trouble as lst are well defined (are ex object).

My question is rather a GiNaC question than a C++ question.

Jerome

Sheplyakov Alexei wrote:
> Hi,
> 
> On Mon, Feb 19, 2007 at 12:29:55AM +0800, Jerome BENOIT wrote:
> 
>> I am new in GiNaC and in C++ (but very familiar with another CAS and C).
>>
>> I would like to implement a function which returns table.
>> Unless I missed something, there is no ready to use table object
>> in GiNaC.
> 
> I guess you want to use GiNaC::exmap (and [re-]read your favourite C++
> textbook, at least the chapter which describes STL containers, in
> particular associative arrays).
> 
> For example,
> 
> #include <iostream>
> #include <ginac/ginac.h>
> using namespace std;
> using namespace GiNaC;
> 
> exmap foo(const ex& x, const ex& y)
> {
>   exmap something;
> 	something[x] = x + y/2;
> 	something[y] = cos(x);
> 	return something;
> }
> 
> int main(int argc, char** argv)
> {
> 	symbol x("x"), y("y");
> 	exmap tbl;
> 	tbl = foo(x-y, 2*y);
> 	for (exmap::const_iterator i=tbl.begin(); i!=tbl.end(); ++i)
> 	 cout << i->first << " => " << i->second << endl;
> 	// will print something like:
> 	// 2*y => cos(-y+x)
> 	// -y+x => x 
>   
> 	return 0;
> }
> 
> Best regards,
>  Alexei
> 

-- 
Jerome BENOIT
jgmbenoit_at_mailsnare_dot_net


More information about the GiNaC-list mailing list