Fixed several numerical instability issues when TC gets big. TC gets very large when there are many near duplicates in the data. 1. Refactored calculation of Qi - Si^2 to avoid overflows 2. Fixed the epsilon update so that numerical rounding didn't lead to invalid solutions (m['uj'] >=1) after changing epsilon 3. Detect when no further increases in the objective are possible due to numeric instability and halt gracefully with a warning.
Fixed several numerical instability issues when TC gets big. TC gets very large when there are many near duplicates in the data.
1. Refactored calculation of Qi - Si^2 to avoid overflows
2. Fixed the epsilon update so that numerical rounding didn't lead to invalid solutions (m['uj'] >=1) after changing epsilon
3. Detect when no further increases in the objective are possible due to numeric instability and halt gracefully with a warning.

gregversteeg/LinearCorex