public override void writeToXml(XmlTextWriter writer) { JamaMatrix jamaMatrix = IPolyPointTransformer.PolyExps(this.polynomialDegree); string[] array = new string[] { "x", "y" }; for (int i = 0; i < 2; i++) { writer.WriteStartElement("Sum"); writer.WriteAttributeString("Name", array[i]); for (int j = 0; j < jamaMatrix.RowDimension; j++) { writer.WriteStartElement("Term"); writer.WriteAttributeString("Coefficient", this.transformCoefficients.GetElement(i * jamaMatrix.RowDimension + j, 0).ToString(CultureInfo.InvariantCulture)); for (int k = 0; k < 2; k++) { writer.WriteAttributeString(array[k] + "_power", jamaMatrix.GetElement(j, k).ToString(CultureInfo.InvariantCulture)); } writer.WriteEndElement(); } writer.WriteEndElement(); } }
public static JamaMatrix Polynomialize(JamaMatrix values, int degree) { JamaMatrix jamaMatrix = IPolyPointTransformer.PolyExps(degree); JamaMatrix jamaMatrix2 = new JamaMatrix(values.RowDimension, jamaMatrix.RowDimension); for (int i = 0; i < jamaMatrix.RowDimension; i++) { for (int j = 0; j < values.RowDimension; j++) { jamaMatrix2.SetElement(j, i, Math.Pow(values.GetElement(j, 0), jamaMatrix.GetElement(i, 0)) * Math.Pow(values.GetElement(j, 1), jamaMatrix.GetElement(i, 1))); } } JamaMatrix jamaMatrix3 = new JamaMatrix(jamaMatrix2.RowDimension * 2, jamaMatrix2.ColumnDimension * 2); jamaMatrix3.setMatrix(0, jamaMatrix2.RowDimension - 1, 0, jamaMatrix2.ColumnDimension - 1, jamaMatrix2); jamaMatrix3.setMatrix(jamaMatrix2.RowDimension, 2 * jamaMatrix2.RowDimension - 1, jamaMatrix2.ColumnDimension, 2 * jamaMatrix2.ColumnDimension - 1, jamaMatrix2); return(jamaMatrix3); }