Its a pointer because you don't need to pass V0. V0 is a guess and if you have a good guess the algorithm will converge quicker. So Its a pointer so I can test if it is NULL meaning it wasn't passed. There is probably a better way to do this. Have another look when I add the cpp file and it should make more sense.