// Serialization /// <summary> /// Serialize the message. /// </summary> /// <param name="cout">Cout.</param> public override void Serialize(IBinaryWriter cout) { base.Serialize(cout); var rindices = MatrixUtils.RowIndicesOf(Value); var cindices = MatrixUtils.ColIndicesOf(Value); if (rindices != null) { var indices = rindices.NameList; cout.WriteInt32(indices.Length); for (int i = 0; i < indices.Length; i++) { cout.WriteString(indices[i], Encoding.ASCII); } } else { cout.WriteInt32(0); } if (cindices != null) { var indices = cindices.NameList; cout.WriteInt32(indices.Length); for (int i = 0; i < indices.Length; i++) { cout.WriteString(indices[i], Encoding.ASCII); } } else { cout.WriteInt32(0); } cout.WriteInt32(Value.RowCount); cout.WriteInt32(Value.ColumnCount); for (int ci = 0; ci < Value.ColumnCount; ci++) { for (int ri = 0; ri < Value.RowCount; ri++) { cout.WriteDouble(Value[ri, ci]); } } }