Ejemplo n.º 1
0
        // 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]);
                }
            }
        }