I don't know this particular algorithm, but iterating over the whole vertexList in smoothCurve() doesn't feel right. It looks like you should only iterate over the Particles between p0 and p1.
Also, vector<>.resize() accepts a default value, so you can use outPut.resize( vertexList.size(), NULL ) and get rid of the initialization loop.
thanks for the input.
Do you know any popular line/polygon simplification algorithms?
It looks like you should only iterate over the Particles between p0 and p1.
I changed it so that I only iterate through p0 and p1 and now it works completely.
Now I feel really,REALLY stupid.