Browse Source

Clean up codes.

uap-experimental
diluculo 7 years ago
parent
commit
8b449c76d8
  1. 2
      .paket/Paket.Restore.targets
  2. 20
      src/Numerics/Integration/GaussRule/GaussKronrodPoint.cs

2
.paket/Paket.Restore.targets

@ -203,7 +203,7 @@
<PackageName>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0])</PackageName>
<PackageVersion>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1])</PackageVersion>
<AllPrivateAssets>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4])</AllPrivateAssets>
<CopyLocal Condition="'$(Splits)' == '6'">$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5])</CopyLocal>
<CopyLocal Condition="'%(PaketReferencesFileLinesInfo.Splits)' == '6'">$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5])</CopyLocal>
</PaketReferencesFileLinesInfo>
<PackageReference Include="%(PaketReferencesFileLinesInfo.PackageName)">
<Version>%(PaketReferencesFileLinesInfo.PackageVersion)</Version>

20
src/Numerics/Integration/GaussRule/GaussKronrodPoint.cs

@ -414,7 +414,7 @@ namespace MathNet.Numerics.Integration.GaussRule
kronrodAbscissas[(k - 1) / 2] = x0;
}
// Concatenate two abscissas
var abscissas = new double[gaussAbscissas.Length + kronrodAbscissas.Length];
@ -504,26 +504,14 @@ namespace MathNet.Numerics.Integration.GaussRule
a[r] = 1.0;
for (int k = 1; k < r; k++)
{
double ratio = 1d;
BigInteger num = 1;
BigInteger den = 1;
double rat = 1d;
a[r - k] = 0d;
double ratio = 1.0;
a[r - k] = 0.0;
for (int i = r + 1 - k; i <= r; i++)
{
num = num * (n - q + 2 * (i + k - 1)) * (n + q + 2 * (k - i + 1)) * (n - 1 - q + 2 * (i - k)) * (2 * (k + i - 1) - 1 - q - n);
den = den * (n - q + 2 * (i - k)) * (2 * (k + i - 1) - q - n) * (n + 1 + q + 2 * (k - i)) * (n - 1 - q + 2 * (i + k));
var gcd = Euclid.GreatestCommonDivisor(num, den);
num = num / gcd;
den = den / gcd;
rat = (double)num / (double)den;
double numerator = (n - q + 2 * (i + k - 1)) * (n + q + 2 * (k - i + 1)) * (n - 1 - q + 2 * (i - k)) * (2 * (k + i - 1) - 1 - q - n);
double denominator = (n - q + 2 * (i - k)) * (2 * (k + i - 1) - q - n) * (n + 1 + q + 2 * (k - i)) * (n - 1 - q + 2 * (i + k));
ratio = ratio * numerator / denominator;
a[r - k] -= a[i] * rat; // ratio;
a[r - k] -= a[i] * ratio;
}
}

Loading…
Cancel
Save