diff --git a/src/Numerics/RootFinding/ZeroCrossingBracketing.cs b/src/Numerics/RootFinding/ZeroCrossingBracketing.cs
index 8af802e5..126df806 100644
--- a/src/Numerics/RootFinding/ZeroCrossingBracketing.cs
+++ b/src/Numerics/RootFinding/ZeroCrossingBracketing.cs
@@ -82,6 +82,9 @@ namespace MathNet.Numerics.RootFinding
/// This iterative methods stops when two values with opposite signs are found.
public static bool Expand(Func f, ref double lowerBound, ref double upperBound, double factor = 1.6, int maxIterations = 50)
{
+ double originalLowerBound = lowerBound;
+ double originalUpperBound = upperBound;
+
if (lowerBound >= upperBound)
{
throw new ArgumentOutOfRangeException("upperBound", string.Format(Resources.ArgumentOutOfRangeGreater, "xmax", "xmin"));
@@ -109,6 +112,8 @@ namespace MathNet.Numerics.RootFinding
}
}
+ lowerBound = originalLowerBound;
+ upperBound = originalUpperBound;
return false;
}
}