|
From: | Robert T. Short |
Subject: | Re: Requesting an Octave mentor |
Date: | Fri, 14 Aug 2009 10:49:18 -0700 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.22) Gecko/20090606 SeaMonkey/1.1.17 |
Jordi Gutiérrez Hermos wrote:
I am wondering exactly how to start. We also had a request (attached at the end) from another potential contributor to whom this thread might be useful.I hope it's ok if I respond to several people at once. 2009/8/13 Ben Abbott <address@hidden>:I'll be of little help understanding the c++ sources, but regarding something to work on, the listeners for the backend would be nice to have. In particular having one to convert between the various units would be great! If you're not familiar with what I'm referring to, I can explain.Alright, this sounds interesting. I really want Octave's plotting to shine. This is likely to attract more people to the project. Yes, please, I'd like more explanations. I'll contact you privately momentarily to see if you have an IM account I can use for chatting about this. Or if IRC is convenient, maybe #octave in Freenode? 2009/8/13 Robert T. Short <address@hidden>:In my case it is a case of the blind leading the blind, but I would be happy to give this a try myself. Nothing teaches like teaching!I agree. Perhaps you'd be more comfortable thinking of yourself as my study buddy?Also, if there is anything I can do to help if you like the stuff Ben is looking at, that would be fine.Let's do that. Let's work together with Ben. 2009/8/14 John W. Eaton <address@hidden>:On 14-Aug-2009, Jaroslav Hajek wrote: | That's easy - the whole lot of Octave sources is a horrible mess of | ill-designed classes, random hacks, gotchas and incomprehensible | blocks of unreadable code that you just hope are never actually | executed. Thanks.I consider it a well-established theorem of software development that everyone's code sucks. Jaroslav's, mine, yours, everyone's. ;-) Proof: either you stick to a rigid design methodology or you adapt loose and flexible coding standard. In the former case, you will eventually come upon a situation where your original design isn't flexible enough, in which case it sucks, and in the latter situation your design is a horrible mess of ad-hoc hacks, which also sucks. QED. No, but seriously, Octave's code is messy because it's trying to solve many complicated problems, but despite that, to quote the bard, I know that there is method in the madness, because I've seen you guys talk about it, and because I've glimpsed it myself. I have also worked with very messy source trees, but with a little dedication, I've seen the patterns emerging. All I'm asking for is a little help in seeing those patterns in Octave sources. :-) Hopefully Ben and Robert above can help me get started. - Jordi G. H. It took me a while to figure out enough of the interpreter to make changes myself. I tend to be the "dig in all by myself and do it" sort of person, but I didn't find octave all that hard to figure out. There is certainly some cruft, but that is the inevitable result of a project that has grown beyond the original design goals. It would be nice to include the tutorial value of this thread somehow into formal documentation. Comments? Bob P.S. It is unlikely that I will use IM or other immediate response mechanism just because of the nature of my octave interaction. Сергей Бочканов wrote: Hello! I want to help with improvement of the Octave. I am author of the ALGLIB - open source project. ALGLIB is a numerical analysis library, which use automatic translation from specially designed language to represent each algorithm in multiple programming languages. C++, C#, Pascal, VBA are supported, and one more translation mode - C++ with multiple precision floating point arithmetics (GNU MP/MPFR). I could help with integration of ALGLIB functionality in Octave. In my opinion, you could use: * improved hybrid Levenberg-Marquardt algorithm (several times less Hessian calculations due to quadratic model reuse) * interpolation algorithms - barycentric polynomial (better than standard Neville algorithm), barycentric rational without poles and with O(N) complexity * classification and regression algorithms - linear and logit models, neural networks, neural network ensembles, random decision forests * data analysis algorithms - LDA, PCA, k-means clustering * upcoming release (algorithms are ready, I am working on docs) will contain improved Gauss/Gauss-Kronrod quadrature generation subroutines, FFT, fast convolution/correlation These are the most important algorithms. ALGLIB contains ever more algorithms (special functions, linear algebra, ...) but this functionality is already implemented in Octave. One more interesting improvement is implementing multiple precision calculations in Octave using GNU MP / MPFR libraries. Almost all ALGLIB algorithms support multiple precision arithmetics. In particular - linear algebra algorithms; I've ported part of LAPACK, small part, but it is enough for daily work. As far as I know, MATLAB does not support multiple precision arithmetics nor it have multiple precision linear algebra/interpolation/integration/... Octave could leave MATLAB far behind :) I want to find someone interested in creating ALGLIB/Octave interface. I don't know Octave internals, so I can't do it alone, but I can help to someone who knows what to do. Anyone interested? With best regards, Sergey Bochkanov. |
[Prev in Thread] | Current Thread | [Next in Thread] |