I've been reading up on the metaobject protocol to see if it's something that applies to a problem I'm working on. I have AMOP sitting on the bookshelf, but it would be nice to have a summary. Of course, the ALU wiki has a nice page:
On Dec 5, 4:54 am, "Thomas M. Hermann" <tmh.pub...@gmail.com> wrote:
> I've been reading up on the metaobject protocol to see if it's > something that applies to a problem I'm working on. I have AMOP > sitting on the bookshelf, but it would be nice to have a summary.
On Dec 5, 3:16 am, Pascal Costanza <p...@p-cos.net> wrote:
> Thomas M. Hermann wrote: > > I've been reading up on the metaobject protocol to see if it's > > something that applies to a problem I'm working on.
> What's that problem?
It's a linear algebra problem. In the past, I've looked over CLEM, but it wasn't organized the way I was organizing my solution. The recent update of CLEM made me think that it deserved another review now that I have a little more lisp and CLOS experience under my belt. I also wanted to get a better handle on MOP so that I'd know when to use it.
On Fri, 05 Dec 2008 08:05:55 -0800, Thomas M. Hermann wrote: > On Dec 5, 3:16 am, Pascal Costanza <p...@p-cos.net> wrote: >> Thomas M. Hermann wrote: >> > I've been reading up on the metaobject protocol to see if it's >> > something that applies to a problem I'm working on.
>> What's that problem?
> It's a linear algebra problem. In the past, I've looked over CLEM, but > it wasn't organized the way I was organizing my solution. The recent > update of CLEM made me think that it deserved another review now that I > have a little more lisp and CLOS experience under my belt. I also wanted > to get a better handle on MOP so that I'd know when to use it.
Hi Tom,
If CLEM works for you, that is great, but I am not sure it is as reliable in terms of numerical stability as LAPACK. I usually use the latter via CFFI. I have some rudimentary BLAS/LAPACK CFFI bindings, which I plan to make public once I clean them up. Contact me if you need them.
> On Fri, 05 Dec 2008 08:05:55 -0800, Thomas M. Hermann wrote: > > On Dec 5, 3:16 am, Pascal Costanza <p...@p-cos.net> wrote: > >> Thomas M. Hermann wrote: > >> > I've been reading up on the metaobject protocol to see if it's > >> > something that applies to a problem I'm working on.
> >> What's that problem?
> > It's a linear algebra problem. In the past, I've looked over CLEM, but > > it wasn't organized the way I was organizing my solution. The recent > > update of CLEM made me think that it deserved another review now that I > > have a little more lisp and CLOS experience under my belt. I also wanted > > to get a better handle on MOP so that I'd know when to use it.
> Hi Tom,
> If CLEM works for you, that is great, but I am not sure it is as reliable > in terms of numerical stability as LAPACK. I usually use the latter via > CFFI. I have some rudimentary BLAS/LAPACK CFFI bindings, which I plan to > make public once I clean them up. Contact me if you need them.
> Tamas
Tamas,
Thanks for the offer. I've not been using CLEM, just looking through it to see how it is using MOP. I've actually been working on a linear algebra package fully implemented in common lisp loosely based on the BLAST specification.
I'm using CLOS classes for the matrix definitions. I'm have no interest in performance at the moment, I'm more interested in (1) implementing correct algorithms and (2) developing the interface. As I develop the fundamental operations, I directly reference the BLAS code, "Applied Numerical Linear Algebra" by J. W. Demmel, LAPACK Working Notes:
and various other references that I've scrubbed off of the internet.
At this point, it is the interface that is causing me problems. It is totally an aesthetic issue, but it is something that I believe is critical. That was my motivation for digging into the metaobject protocol. I'm getting close to an interface that I find acceptable, but it's just not quite right.
I'd appreciate if you kept me updated on your CFFI bindings to BLAS/ LAPACK. Once the interface to my package is correct and documented, it would be useful to have the option of using different backends, such as the a common lisp backend or a CFFI backend to BLAS/LAPACK.