I have been struggling with remove() for a few weeks. The original C code from ODE is very difficult to understand. I finally gave up writing efficient code yesterday by only supplementing with some naive code. So now this class LDLTDecomposition is temporarily finished until somehow I learned a more efficient implementation. Function remove() is called by transfer_i_from_C_to_N() in class FastLCP. I compared FastLCP and SlowLCP, and found the test results match precisely. Nice. I finally got it working. I was even happier to find out that FastLCP did run faster than SlowLCP. Now I can move on to finish step() in class World with some confidence.
Update: the complete source code can be viewed from SourceForge directly.