Hi Harvey!
These are all experiments at this point.
One proposal - would you have time for a Skype or google hangouts discussion (later preferred, former possible)? Live might be faster to convey how I think about it.
Lisp matrix tries to do things "right" in that heavy optimization is possible (not yet implemented) due to the dispatch design. But does not fully work.
Antik just "works". But it is a bit old fashioned (which is NOT a flaw) and not as elegant as I would like (perhaps an issue with me, not with it).
So I am caught in general between wanting things that work now, and a vision for how I think data analysis programming, with results providing optimal context-based decision support, should be done.
Had I been 9 years older I could have taken earlier retirement last year and made this my second career :(. And based on bad past predictions, current workload and family load, am hesitant for when I will again be making massive progress on the whole thing (currently trying to get R style model.matrix behavior for rho and lispmatrix working, to experiment with general data analysis modeling specifications - infrastructure, but not terribly useful in the next few months for " getting it done").
If you can work in the examples directory or a sub directory with experiments, I would love to pull the work you are willing to share and take a look at anything that could be brought into core code/systems.
Best,
-tony
--
You received this message because you are subscribed to the Google Groups "Common Lisp Statistics" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lisp-stat+...@googlegroups.com.
To post to this group, send email to lisp...@googlegroups.com.
Visit this group at http://groups.google.com/group/lisp-stat.
For more options, visit https://groups.google.com/d/optout.
28 May 2015 4:59 pm
Hi Harvey!
These are all experiments at this point.
One proposal - would you have time for a Skype or google hangouts discussion (later preferred, former possible)? Live might be faster to convey how I think about it.
Lisp matrix tries to do things "right" in that heavy optimization is possible (not yet implemented) due to the dispatch design. But does not fully work.
Antik just "works". But it is a bit old fashioned (which is NOT a flaw) and not as elegant as I would like (perhaps an issue with me, not with it).
So I am caught in general between wanting things that work now, and a vision for how I think data analysis programming, with results providing optimal context-based decision support, should be done.
Had I been 9 years older I could have taken earlier retirement last year and made this my second career :(. And based on bad past predictions, current workload and family load, am hesitant for when I will again be making massive progress on the whole thing (currently trying to get R style model.matrix behavior for rho and lispmatrix working, to experiment with general data analysis modeling specifications - infrastructure, but not terribly useful in the next few months for " getting it done").
If you can work in the examples directory or a sub directory with experiments, I would love to pull the work you are willing to share and take a look at anything that could be brought into core code/systems.
Best,
-tony
--
You received this message because you are subscribed to the Google Groups "Common Lisp Statistics" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lisp-stat+...@googlegroups.com.
To post to this group, send email to lisp...@googlegroups.com.
Visit this group at http://groups.google.com/group/lisp-stat.
For more options, visit https://groups.google.com/d/optout.
28 May 2015 4:26 pm
To unsubscribe from this group and stop receiving emails from it, send an email to lisp-stat+unsubscribe@googlegroups.com.
To post to this group, send email to lisp...@googlegroups.com.
Visit this group at http://groups.google.com/group/lisp-stat.
For more options, visit https://groups.google.com/d/optout.
28 May 2015 4:26 pm
I'm going through code I want to run in common-lisp-statistics and collecting & implementing the bits & pieces that were in xlispstat & aren't yet in cls. Before I start trying to stick these things into cls, I'm hoping someone can fill me in a little on the architecture of the package. In particular, cls has matrix handling from lisp-matrix & implements vectorized arithmetic internally. However, it also uses antik, and antik also implements this functionality. So what's the rationale for not just pulling this functionality from antik? Is it just because it started pulling in antik at a later date, or is there another reason? In any case, is there any reason not to replace all of that with the corresponding functionality from antik?--
Thanks,
harvey
You received this message because you are subscribed to the Google Groups "Common Lisp Statistics" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lisp-stat+unsubscribe@googlegroups.com.
To post to this group, send email to lisp...@googlegroups.com.
Visit this group at http://groups.google.com/group/lisp-stat.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Common Lisp Statistics" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lisp-stat+unsubscribe@googlegroups.com.
To post to this group, send email to lisp...@googlegroups.com.
Visit this group at http://groups.google.com/group/lisp-stat.
For more options, visit https://groups.google.com/d/optout.
My primary goal for CLS is to have, with minimal effort, a replacement for xlispstat. As such, I'm inclined to use whatever exists and is working (Antik, GSLL, ...) to put together such a replacement. My close second goal is for it to perform as well as xlispstat, and with a little effort (careful use of typed arrays, etc), to perform much better - say close to machine speed. By machine speed, I mean like optimized C except possibly for poor GC performance (which seems to occur in SBCL's conservative GC when creating and throwing away a lot of large arrays). A third goal would be to include the semantics necessary to minimize the creation of such garbage (optional arguments for scratch space, etc).
I've demonstrated (at least in the case of repeatedly multiplying arrays using vectorized arithmetic), that SBCL is capable of producing code that performs like optimized C code except for the GC, and I can even achieve that just by using typed arrays and making a small tweak to antik:*. I also have been able to run some numerical code under untweaked CLS which, by adding declarations and replacing unnecessarily generic cls operations with the cl version, performs almost 30x faster than xlispstat, although that's for unvectorized xlispstat code (vectorizing it would speed it up for xlispstat, but not for CLS). Note though that this is with SBCL. CCL was about 2x slower, although on the plus side, unlike SBCL, CCL doesn't crash with an out of memory error when creating lots of large garbage arrays.
I don't care so much about different paradigms for data analysis. My opinion is that if after the above goals are achieved, it'd be easy to start investigating such things, and that without the above foundation, it'd be hard.
As for trying things out in the examples subdirectory, I think that approach would be reasonable for adding bits and pieces in an attempt to fill out compatibility if we currently had a reasonably solid working foundation. But given the current state of the project, I don't get the impression that this would be an efficient way to build out the code. My inclination would be to prune everything that's in existing packages, and then work towards filing in the remaining xlispstat compatibility. The existing experiments/features/ approaches can always be brought back if desired.