private vector CountV(vector b, int firstToCount) { var e = vector.IdentityVector(firstToCount, b.Length); var v = new vector(Enumerable.Repeat(0.0, firstToCount).ToList()); b.Elements = b.Skip(firstToCount).ToList(); v.Elements.AddRange(b); return(v + e * Sign(b[0]) * b.Rate2()); }
private Matrix GetHouseholderMatrix(vector v) { var E = Matrix.IdentityMatrix(v.Length); return(E + (v.Transpose() * v * (-2.0 / vector.ScalarMultiply(v, v)))); }