|Re: [eigen] overriding scalar_X_op for auto-dif?|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
I'm glad to hear that a solution is possible.
Is there any way I could help?
It's important to us because it's holding up
the efficient use of matrices in multivariate
distributions like the normal, and we do a lot
of hierarchical regression modeling.
We can code around this by promoting everything to
an auto-dif variable, but it's hugely wasteful
in both time and space. Eventually, we plan to
override the matrix arithmetic ops for auto-dif
to save even more space and time, but we want
to get everything working before worrying about
On 5/19/11 5:42 PM, Gael Guennebaud wrote:
ok, actually it seems this is something we have to solve in Eigen
itself. Nothing difficult though.
On Thu, May 19, 2011 at 10:48 PM, Bob Carpenter<carp@xxxxxxxxxxx> wrote:
Thanks so much for getting back to me so quickly
on this. I tried overloading scalar_product_traits
and NumTraits, but still no luck getting multiplication
of an auto-dif matrix times a double matrix to compile.
I'd MUCH rather just overload the basic ops for now.
Later, I can optimize with expressions and hand-coded
gradients for some cases without disturbing the API.
I'm afraid your auto-dif scalar code's a bit beyond
my current understanding of Eigen and C++ templates.
I've attached a small tar.gz ball. Check out the
README.txt, which shows how to run our reverse-mode
auto-dif, has an example using Eigen auto-dif var
multiplication which works fine, and then a demo that
doesn't compile using double * auto-dif variables.
I include the specialization of scalar_product_traits
you suggested (with both orders), as well as NumTraits,
but still no luck.
- Bob Carpenter
Columbia Uni, Dept of Statistics