Browse Source

renamed TrimTrailingZeros to Trim

ridge-regression
Tobias Glaubach 8 years ago
parent
commit
5a2f969ec2
  1. 12
      src/Numerics.Tests/PolynomialTests.cs
  2. 23
      src/Numerics/Polynomial.cs

12
src/Numerics.Tests/PolynomialTests.cs

@ -124,8 +124,8 @@ namespace MathNet.Numerics.UnitTests
var p_res = Polynomial.Add(p1, p2); var p_res = Polynomial.Add(p1, p2);
var p_tar = new Polynomial(tgt); var p_tar = new Polynomial(tgt);
p_res.TrimTrailingZeros(); p_res.Trim();
p_tar.TrimTrailingZeros(); p_tar.Trim();
Assert.AreEqual(p_tar.Degree, p_res.Degree, "length mismatch"); Assert.AreEqual(p_tar.Degree, p_res.Degree, "length mismatch");
for (int k = 0; k < p_res.Degree; k++) for (int k = 0; k < p_res.Degree; k++)
@ -161,8 +161,8 @@ namespace MathNet.Numerics.UnitTests
var p_res = Polynomial.Substract(p1, p2); var p_res = Polynomial.Substract(p1, p2);
var p_tar = new Polynomial(tgt); var p_tar = new Polynomial(tgt);
p_res.TrimTrailingZeros(); p_res.Trim();
p_tar.TrimTrailingZeros(); p_tar.Trim();
Assert.AreEqual(p_tar.Degree, p_res.Degree, "length mismatch"); Assert.AreEqual(p_tar.Degree, p_res.Degree, "length mismatch");
for (int k = 0; k < p_res.Degree; k++) for (int k = 0; k < p_res.Degree; k++)
@ -197,8 +197,8 @@ namespace MathNet.Numerics.UnitTests
var p_res = p1 * p2; var p_res = p1 * p2;
var p_tar = new Polynomial(tgt); var p_tar = new Polynomial(tgt);
p_res.TrimTrailingZeros(); p_res.Trim();
p_tar.TrimTrailingZeros(); p_tar.Trim();
Assert.AreEqual(p_tar.Degree, p_res.Degree, "length mismatch"); Assert.AreEqual(p_tar.Degree, p_res.Degree, "length mismatch");
for (int k = 0; k < p_res.Degree; k++) for (int k = 0; k < p_res.Degree; k++)

23
src/Numerics/Polynomial.cs

@ -118,7 +118,7 @@ namespace MathNet.Numerics
/// <summary> /// <summary>
/// remove all trailing zeros, e.G before: "0.00 x^2 + 1.0 x^1 + 1.00" after: "1.0 x^1 + 1.00" /// remove all trailing zeros, e.G before: "0.00 x^2 + 1.0 x^1 + 1.00" after: "1.0 x^1 + 1.00"
/// </summary> /// </summary>
public void TrimTrailingZeros() public void Trim()
{ {
int count = 0; int count = 0;
for (int ii = Degree - 1; ii >= 0; ii--) for (int ii = Degree - 1; ii >= 0; ii--)
@ -138,6 +138,7 @@ namespace MathNet.Numerics
} }
} }
} }
#region Data Interaction #region Data Interaction
@ -185,28 +186,28 @@ namespace MathNet.Numerics
} }
var t = this.Clone() as Polynomial; var t = this.Clone() as Polynomial;
t.TrimTrailingZeros(); t.Trim();
var cNew = new double[t.Coeffs.Length - 1]; var cNew = new double[t.Coeffs.Length - 1];
for (int i = 1; i < t.Coeffs.Length; i++) for (int i = 1; i < t.Coeffs.Length; i++)
{ {
cNew[i-1] = t.Coeffs[i] * i; cNew[i-1] = t.Coeffs[i] * i;
} }
var p = new Polynomial(cNew, isFlip: IsFlipped); var p = new Polynomial(cNew, isFlip: IsFlipped);
p.TrimTrailingZeros(); p.Trim();
return p; return p;
} }
public Polynomial Integrate() public Polynomial Integrate()
{ {
var t = this.Clone() as Polynomial; var t = this.Clone() as Polynomial;
t.TrimTrailingZeros(); t.Trim();
var cNew = new double[t.Coeffs.Length + 1]; var cNew = new double[t.Coeffs.Length + 1];
for (int i = 1; i < cNew.Length; i++) for (int i = 1; i < cNew.Length; i++)
{ {
cNew[i] = t.Coeffs[i-1] / i; cNew[i] = t.Coeffs[i-1] / i;
} }
var p = new Polynomial(cNew, isFlip: IsFlipped); var p = new Polynomial(cNew, isFlip: IsFlipped);
p.TrimTrailingZeros(); p.Trim();
return p; return p;
} }
@ -224,13 +225,13 @@ namespace MathNet.Numerics
public static Polynomial operator *( Polynomial a, Polynomial b) public static Polynomial operator *( Polynomial a, Polynomial b)
{ {
// do not cut trailing zeros, since it may corrupt the outcom, if the array is of form 1 + x^-1 + x^-2 + x^-3 // do not cut trailing zeros, since it may corrupt the outcom, if the array is of form 1 + x^-1 + x^-2 + x^-3
//a.TrimTrailingZeros(); //a.Trim();
//b.TrimTrailingZeros(); //b.Trim();
double[] ret = conv(a.Coeffs, b.Coeffs); double[] ret = conv(a.Coeffs, b.Coeffs);
Polynomial ret_p = new Polynomial(ret); Polynomial ret_p = new Polynomial(ret);
//ret_p.TrimTrailingZeros(); //ret_p.Trim();
return (ret_p); return (ret_p);
@ -346,7 +347,7 @@ namespace MathNet.Numerics
public DenseMatrix GetEigValMatrix() public DenseMatrix GetEigValMatrix()
{ {
Polynomial pLoc = new Polynomial(this.Coeffs); Polynomial pLoc = new Polynomial(this.Coeffs);
pLoc.TrimTrailingZeros(); pLoc.Trim();
int n = pLoc.Coeffs.Length - 1; int n = pLoc.Coeffs.Length - 1;
if (n < 2) if (n < 2)
@ -549,8 +550,8 @@ namespace MathNet.Numerics
// output mapping // output mapping
var pQuo = new Polynomial(quo); var pQuo = new Polynomial(quo);
var pRem = new Polynomial(rem); var pRem = new Polynomial(rem);
pQuo.TrimTrailingZeros(); pQuo.Trim();
pQuo.TrimTrailingZeros(); pQuo.Trim();
return new Tuple<Polynomial, Polynomial>(pQuo, pRem); return new Tuple<Polynomial, Polynomial>(pQuo, pRem);
} }

Loading…
Cancel
Save