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> <PackageName>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0])</PackageName>
<PackageVersion>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1])</PackageVersion> <PackageVersion>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1])</PackageVersion>
<AllPrivateAssets>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4])</AllPrivateAssets> <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> </PaketReferencesFileLinesInfo>
<PackageReference Include="%(PaketReferencesFileLinesInfo.PackageName)"> <PackageReference Include="%(PaketReferencesFileLinesInfo.PackageName)">
<Version>%(PaketReferencesFileLinesInfo.PackageVersion)</Version> <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; kronrodAbscissas[(k - 1) / 2] = x0;
} }
// Concatenate two abscissas // Concatenate two abscissas
var abscissas = new double[gaussAbscissas.Length + kronrodAbscissas.Length]; var abscissas = new double[gaussAbscissas.Length + kronrodAbscissas.Length];
@ -504,26 +504,14 @@ namespace MathNet.Numerics.Integration.GaussRule
a[r] = 1.0; a[r] = 1.0;
for (int k = 1; k < r; k++) for (int k = 1; k < r; k++)
{ {
double ratio = 1d; double ratio = 1.0;
BigInteger num = 1; a[r - k] = 0.0;
BigInteger den = 1;
double rat = 1d;
a[r - k] = 0d;
for (int i = r + 1 - k; i <= r; i++) 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 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)); 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; ratio = ratio * numerator / denominator;
a[r - k] -= a[i] * ratio;
a[r - k] -= a[i] * rat; // ratio;
} }
} }

Loading…
Cancel
Save