User:Dspies: Difference between revisions

Jump to navigation Jump to search
230 bytes added ,  29 March 2014
 
(2 intermediate revisions by the same user not shown)
Line 30: Line 30:
'''C++'''<br />
'''C++'''<br />
I've programmed somewhat on and off in C++, but I've never worked on a project with a group or intended for public consumption.  A couple years ago I wrote a Quadratic Number Field Sieve using gmp and that was the first significant piece of code I wrote in C++.  A couple months ago I wrote a preprocessor for grounded Answer Set Programs that does something analogous to forward-checking to infer binary constraints. During this project I read "Effective C++" and some of "C++ Templates: The Complete Guide". I did extensive online browsing to understand C++-11 rvalue references and perfect forwarding (although I realize Octave doesn't use C++-11 so those won't be available). I also posted a lot of questions on Stack Overflow.<br />
I've programmed somewhat on and off in C++, but I've never worked on a project with a group or intended for public consumption.  A couple years ago I wrote a Quadratic Number Field Sieve using gmp and that was the first significant piece of code I wrote in C++.  A couple months ago I wrote a preprocessor for grounded Answer Set Programs that does something analogous to forward-checking to infer binary constraints. During this project I read "Effective C++" and some of "C++ Templates: The Complete Guide". I did extensive online browsing to understand C++-11 rvalue references and perfect forwarding (although I realize Octave doesn't use C++-11 so those won't be available). I also posted a lot of questions on Stack Overflow.<br />
Here's a recent C++ project of mine:
https://sourceforge.net/projects/aspmutexpreprocessor/files/?source=navbar <br />
'''Octave m-scripts'''<br />
'''Octave m-scripts'''<br />
I use Octave a lot for minor tasks that come up in research.  It's a wonderful tool and I love coming up with sneaky ways to vectorize bits of code.  Sometimes I go on StackOverflow to look for "how do you vectorize x" questions just so I can answer them.  Most of them are for Matlab though.  I don't know why Octave isn't a more popular alternative.<br />
I use Octave a lot for minor tasks that come up in research.  It's a wonderful tool and I love coming up with sneaky ways to vectorize bits of code.  Sometimes I go on StackOverflow to look for "how do you vectorize x" questions just so I can answer them.  Most of them are for Matlab though.  I don't know why Octave isn't a more popular alternative.<br />
Line 131: Line 133:
This fails with an OOM because it wasn't considered when writing max <br />
This fails with an OOM because it wasn't considered when writing max <br />
This sort of aggregate function (over the rows) can be done in O(min(h+nnz, nnz*log(w))) time, but one would have to implement the algorithm for each of the above-mentioned 7 functions.  By consolidating these into one templated function, it'll make it worth the effort to implement.</p>
This sort of aggregate function (over the rows) can be done in O(min(h+nnz, nnz*log(w))) time, but one would have to implement the algorithm for each of the above-mentioned 7 functions.  By consolidating these into one templated function, it'll make it worth the effort to implement.</p>
* The changes I made in https://savannah.gnu.org/patch/?8417 need to be added and need to be modified to accomodate diagonal matrices as well.  The fact that the original implementer of find neglected to handle diagonal matrices should be evidence enough that the ad-hoc approach doesn't work.
* There has to be a standard way to take an octave_value argument and call the proper template instantiation of a function based on its type. I started doing this with https://savannah.gnu.org/patch/?8417 , but diagonoal matrices still need to be added.  The fact that the original implementer of find neglected to handle diagonal matrices should be evidence enough that the ad-hoc approach doesn't work.
14

edits

Navigation menu