mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[poincare] Avoid infinite loop in binomial/permute coefficients
Change-Id: I528bf2a4fcfb269511aa9128990807524e9c3945
This commit is contained in:
@@ -100,7 +100,7 @@ Expression * BinomialCoefficient::templatedApproximate(Context& context, AngleUn
|
||||
T result = 1;
|
||||
for (int i = 0; i < k; i++) {
|
||||
result *= (n-(T)i)/(k-(T)i);
|
||||
if (std::isinf(result)) {
|
||||
if (std::isinf(result) || std::isnan(result)) {
|
||||
return new Complex<T>(Complex<T>::Float(result));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ Complex<T> * PermuteCoefficient::templatedApproximate(Context& context, AngleUni
|
||||
T result = 1;
|
||||
for (int i = (int)n-(int)k+1; i <= (int)n; i++) {
|
||||
result *= i;
|
||||
if (std::isinf(result)) {
|
||||
if (std::isinf(result) || std::isnan(result)) {
|
||||
return new Complex<T>(Complex<T>::Float(result));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user