Hi Sameer,
I managed to hack in a simple way, and the program is running great now, producing the expected results!
You might like to consider including this option in future releases, as it really helps (at least, I often encounter problems like these), and it's just a couple of lines.
In the file corrector.xx ,I replaced:
CHECK_GT(rho[1], 0.0);
sqrt_rho1_ = sqrt(rho[1]);
.
.
residual_scaling_ = sqrt_rho1_;
By:
bool isScalingNegative = (rho[1] < 0) ? true : false;
if (isScalingNegative) {sqrt_rho1_ = sqrt(-rho[1]);}
else {sqrt_rho1_ = sqrt(rho[1]);}
.
.
residual_scaling_ = (isScalingNegative) ? -sqrt_rho1_ : sqrt_rho1_;
Note that in my case, where rho is just a sign change, I just have rho[1] = -1, rho[2] = 0.
Thanks!
Toni