Hi,
I am looking for a Common Lisp library that provides some essential mathematical matrix/vector operations. There seem to be a couple of offerings, but it seems hard to determine in what kind of state they are (without essentially trying them all one by one).
If anybody could share his/her experience, I would be very grateful.
Some (soft) requirements: - It should be implemented in "pure" Common Lisp. Preferably no wrappers for libraries implemented in other languages. - Preferably sequential, but parallel implementations may also be fine. - Focus on performance (incl. low-level type declarations, for example). - Preferred platform is LispWorks, but other Common Lisp implementations are also fine. Portability is not a high priority.
Thanks a lot in advance, Pascal
-- Pascal Costanza, ExaScience Lab, Intel Belgium
Pascal,
I have a library that is essentially a common lisp implementation of the BLAS. So, it is just the low level routines, nothing that you would find in the LAPACK. It is sequential. It works in any lisp implementation. I originally developed it using SBCL, but there is nothing SBCL specific in the code. I've compiled it using LispWorks and all of the unit tests pass. All of my development is now in LispWorks, so that is the platform that any further development will occur on.
There is no focus on performance whatsoever. In fact, I can almost guarantee that the performance is not good. My intent at this stage of development was to focus on correctness and the API, then focus on performance. I'd be happy to work with you on this.
I have a working draft of the documentation that I can send you. If you are interested in the code, I think the best way to share it would be through github.
Please let me know if you are interested and I will email you the documentation directly.
Best regards,
~ Tom ---------------------------------------------------------------- Thomas M. Hermann Odonata Research LLC http://www.odonata-research.com/ http://www.linkedin.com/in/thomasmhermann
On Fri, Mar 25, 2011 at 4:25 AM, Pascal Costanza pc@p-cos.net wrote:
Hi,
I am looking for a Common Lisp library that provides some essential mathematical matrix/vector operations. There seem to be a couple of offerings, but it seems hard to determine in what kind of state they are (without essentially trying them all one by one).
If anybody could share his/her experience, I would be very grateful.
Some (soft) requirements:
- It should be implemented in "pure" Common Lisp. Preferably no wrappers
for libraries implemented in other languages.
- Preferably sequential, but parallel implementations may also be fine.
- Focus on performance (incl. low-level type declarations, for example).
- Preferred platform is LispWorks, but other Common Lisp implementations
are also fine. Portability is not a high priority.
Thanks a lot in advance, Pascal
-- Pascal Costanza, ExaScience Lab, Intel Belgium
pro mailing list pro@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/pro
On Fri, Mar 25, 2011 at 2:57 PM, Thomas M. Hermann thomas.m.hermann@odonata-research.com wrote:
Pascal, I have a library that is essentially a common lisp implementation of the BLAS. So, it is just the low level routines, nothing that you would find in the LAPACK. It is sequential. It works in any lisp implementation. I originally developed it using SBCL, but there is nothing SBCL specific in the code. I've compiled it using LispWorks and all of the unit tests pass. All of my development is now in LispWorks, so that is the platform that any further development will occur on. There is no focus on performance whatsoever. In fact, I can almost guarantee that the performance is not good. My intent at this stage of development was to focus on correctness and the API, then focus on performance. I'd be happy to work with you on this. I have a working draft of the documentation that I can send you. If you are interested in the code, I think the best way to share it would be through github. Please let me know if you are interested and I will email you the documentation directly. Best regards,
I'd be very interested in seeing it (and easy if on github)!
(advertising - I work on lisp-matrix in my spare time, and would love to have a stronger lisp-only solution to leverage for in the backend (which handles, to a limited extent, lisp-based arrays as well as foreign-stored arrays and computations which are "mixed storage"-mode).
best, -tony
blindglobe@gmail.com Muttenz, Switzerland. "Commit early,commit often, and commit in a repository from which we can easily roll-back your mistakes" (AJR, 4Jan05).
Drink Coffee: Do stupid things faster with more energy!
Hi,
Thanks a lot for the fast response. Yes, I'm interested in taking a look at the document! Thanks for the offer...
Pascal
On 25 Mar 2011, at 14:57, Thomas M. Hermann wrote:
Pascal,
I have a library that is essentially a common lisp implementation of the BLAS. So, it is just the low level routines, nothing that you would find in the LAPACK. It is sequential. It works in any lisp implementation. I originally developed it using SBCL, but there is nothing SBCL specific in the code. I've compiled it using LispWorks and all of the unit tests pass. All of my development is now in LispWorks, so that is the platform that any further development will occur on.
There is no focus on performance whatsoever. In fact, I can almost guarantee that the performance is not good. My intent at this stage of development was to focus on correctness and the API, then focus on performance. I'd be happy to work with you on this.
I have a working draft of the documentation that I can send you. If you are interested in the code, I think the best way to share it would be through github.
Please let me know if you are interested and I will email you the documentation directly.
Best regards,
~ Tom
Thomas M. Hermann Odonata Research LLC http://www.odonata-research.com/ http://www.linkedin.com/in/thomasmhermann
On Fri, Mar 25, 2011 at 4:25 AM, Pascal Costanza pc@p-cos.net wrote: Hi,
I am looking for a Common Lisp library that provides some essential mathematical matrix/vector operations. There seem to be a couple of offerings, but it seems hard to determine in what kind of state they are (without essentially trying them all one by one).
If anybody could share his/her experience, I would be very grateful.
Some (soft) requirements:
- It should be implemented in "pure" Common Lisp. Preferably no wrappers for libraries implemented in other languages.
- Preferably sequential, but parallel implementations may also be fine.
- Focus on performance (incl. low-level type declarations, for example).
- Preferred platform is LispWorks, but other Common Lisp implementations are also fine. Portability is not a high priority.
Thanks a lot in advance, Pascal
-- Pascal Costanza, ExaScience Lab, Intel Belgium
pro mailing list pro@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/pro
-- Pascal Costanza, ExaScience Lab, Intel
I started a clean repository and put it up on Github.
https://github.com/OdonataResearchLLC/linear-algebra
https://github.com/OdonataResearchLLC/linear-algebraThe library relies on a floating point routine library I've been developing.
https://github.com/OdonataResearchLLC/floating-point
https://github.com/OdonataResearchLLC/floating-pointFinally, if you want to run the unit tests, you'll need lisp-unit.
https://github.com/OdonataResearchLLC/lisp-unit
https://github.com/OdonataResearchLLC/lisp-unitThe library was originally written using literate programming, specifically the noweb dialect. Since moving to Windows, I've not had the best of luck with noweb executables. So, the literate source is very slightly out of sync with the lisp source. I've been slowly working on writing a lisp replacement for noweb because I'd like to continue developing the library using literate programming. If any of you want to use it and have patches, just submit them as patches on the lisp files and I'll worry about the literate source.
One last thing, I noticed that a unit test failed while preparing this. It appears that LispWorks does not have a (COMPLEX SINGLE-FLOAT) array type, it upgrades to T. SBCL does have that type. That failure can safely be ignored.
Please contact me with any questions or suggestions.
Thank you,
~ Tom ---------------------------------------------------------------- Thomas M. Hermann Odonata Research LLC http://www.odonata-research.com/ http://www.linkedin.com/in/thomasmhermann
On Fri, Mar 25, 2011 at 3:54 PM, Pascal Costanza pc@p-cos.net wrote:
Hi,
Thanks a lot for the fast response. Yes, I'm interested in taking a look at the document! Thanks for the offer...
Pascal
On 25 Mar 2011, at 14:57, Thomas M. Hermann wrote:
Pascal,
I have a library that is essentially a common lisp implementation of the BLAS. So, it is just the low level routines, nothing that you would find in the LAPACK. It is sequential. It works in any lisp implementation. I originally developed it using SBCL, but there is nothing SBCL specific in the code. I've compiled it using LispWorks and all of the unit tests pass. All of my development is now in LispWorks, so that is the platform that any further development will occur on.
There is no focus on performance whatsoever. In fact, I can almost guarantee that the performance is not good. My intent at this stage of development was to focus on correctness and the API, then focus on performance. I'd be happy to work with you on this.
I have a working draft of the documentation that I can send you. If you are interested in the code, I think the best way to share it would be through github.
Please let me know if you are interested and I will email you the documentation directly.
Best regards,
~ Tom
Thomas M. Hermann Odonata Research LLC http://www.odonata-research.com/ http://www.linkedin.com/in/thomasmhermann
On Fri, Mar 25, 2011 at 4:25 AM, Pascal Costanza pc@p-cos.net wrote:
Hi,
I am looking for a Common Lisp library that provides some essential mathematical matrix/vector operations. There seem to be a couple of offerings, but it seems hard to determine in what kind of state they are (without essentially trying them all one by one).
If anybody could share his/her experience, I would be very grateful.
Some (soft) requirements:
- It should be implemented in "pure" Common Lisp. Preferably no wrappers
for libraries implemented in other languages.
- Preferably sequential, but parallel implementations may also be fine.
- Focus on performance (incl. low-level type declarations, for example).
- Preferred platform is LispWorks, but other Common Lisp implementations
are also fine. Portability is not a high priority.
Thanks a lot in advance, Pascal
-- Pascal Costanza, ExaScience Lab, Intel Belgium
pro mailing list pro@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/pro
-- Pascal Costanza, ExaScience Lab, Intel
On Fri, Mar 25, 2011 at 10:25 AM, Pascal Costanza pc@p-cos.net wrote:
Hi,
I am looking for a Common Lisp library that provides some essential mathematical matrix/vector operations. There seem to be a couple of offerings, but it seems hard to determine in what kind of state they are (without essentially trying them all one by one).
If anybody could share his/her experience, I would be very grateful.
Some (soft) requirements:
- It should be implemented in "pure" Common Lisp. Preferably no wrappers for libraries implemented in other languages.
- Preferably sequential, but parallel implementations may also be fine.
- Focus on performance (incl. low-level type declarations, for example).
- Preferred platform is LispWorks, but other Common Lisp implementations are also fine. Portability is not a high priority.
I know that Tamas has some work in this area, and Cyrus Harmon's CLEM meets some of the requirements.
Do you allow for F2CL'd LAPACK as an option?
The key question you havn't asked is what level of matrix operations do you need? BLAS1, 2, or 3? (intuition: vectors/matrices, operations combining vectors with a matrix, matrix ops).