I think I was able to get Eric's program to compute resplits properly. It always was correct for a single split. I just left the resplit option alone so the computation remains for either a single split or up to 3 splits. It wouldn't be hard to add the option to compute 1, 2, or 3 splits. The version I changed was 5.0.
This is what I did:
rewrote computeSplit to call new function getSplitEV
getSplitEV is a recursive function which calls new function computeEV1_0
computeEV1_0 computes EV for a single pair card that is not resplit
when splits remain, getSplitEV uses what is computed in computeEV1_0
getSplitEV returns when another resplit isn't possible
I declared my own shoe object to deal cards in order to weight the cards dealt so I could be sure of what to expect.
The only thing I changed was from when the program first calls computeSplit to when it returns from computeSplit. Assuming it's OK with Eric, if anyone is interested in viewing the new code, contact me by PM.