I am a second year open university BS mathematics student taking a course on numerical methods. I thought it would be good idea to implement some of these algorithms in C++ - to learn how numerical algorithms are implemented from first principles programatically, as opposed to doing it by hand. I also want to refresh my C++ knowledge and become a proficient programmer. Of course, I am aware that there are sophisticated numerical libraries to solve algebraic problems, but I have decided to defer that for a while.
I have a copy of Numerical recipes using C++ and I implemented the algorithm for Gaussian elimination using full pivoting (page 42). I cannot claim, that I have completely grasped the entire program; the use of few vectors $ipiv$, $idxr[n]$, $idxc[n]$ is unintuitive to me. I am not able to relate it, to the way full pivoting is done by hand.
I will not post the source code (nrgauss.cpp) here, since it's licensed. If anyone has worked through this book and has any tips and suggestion, that would be very insightful. If there's any other book, which lists C++ routines, that helps as well.
Thanks so much in advance,