Boost logo

Boost Users :

Subject: Re: [Boost-users] [phoenix][lambda] lambda to phoenix translation: get sig (signature) from actor
From: Eric Niebler (eric_at_[hidden])
Date: 2010-05-30 23:35:37


On 5/30/2010 10:50 PM, alfC wrote:
<snip>
> Sure, glad you are interested. Let me know if you need more details,
> what I am doing now is an experimental code to
> interface GSL routines from C++ that uses lambda expression.
> Experimental in the sense that I want to see how far I can get with
> Phoenix in terms of building a natural (mathematical) language
> interface to numerical routines.
> In this experimental code
> I am trying to make the functions smart enough to recognize *simple*
> patterns in the expression.
> In this example, it recognizes the singularity (at 3.) in the integral
>
> integral( f( _1 )/(_1 - 3.) , interval(2., 4.));
>
> other simple expressions are
>
> solve( f(_1) == 2.);
>
> just to give you an idea. I am not sure if am repeating someone else's
> work but when I see expression templates in C++ I see numerical and
> symbolic mathematics converge into the perfect language to do
> scientific computing. Of course the patterns do not need to be
> necessarily *simple* in the future, once we master Phoenix we can go
> beyond to write transformation rules for expression, in order to do
> that I must gain complete access to the internal subexpressions and
> subexpression types.

In that case, I think your best bet is to build your own DSEL using
Proto. Proto will let you define placeholders and will build expressions
for you. It will *also* give you the tools to access, analyze and
transform subexpressions in the ways you describe. In essence, you'll
need to implement your own mini-Phoenix. That's the bad news.

The good news is: in the (near!) future, Phoenix will be built on top of
Proto so that you'll be able to use Proto to access, analyze and
transform Phoenix expressions.

Incidentally, your message is very timely. Joel and I have just been
discussing off-list the possibilities opened up by giving users access
to Phoenix expressions at this level. It's really very exciting.

-- 
Eric Niebler
BoostPro Computing
http://www.boostpro.com

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net