public override void Write(double value) { ulong value64 = BitConverterExtensions.ToUInt64(value); FillInnerBuffer(value64); Write(m_buffer, 0, sizeof(double)); }
public override void Write(float value) { uint value32 = BitConverterExtensions.ToUInt32(value); FillInnerBuffer(value32); Write(m_buffer, 0, sizeof(float)); }
public void WriteArray(double[] buffer, int index, int count) { FillInnerBuffer(count); Write(m_buffer, 0, sizeof(int)); int byteIndex = 0; int byteCount = count * sizeof(double); int last = index + count; while (index < last) { int left = byteCount - byteIndex; int toWrite = left < BufferSize ? left : BufferSize; for (int i = 0; i < toWrite; i += sizeof(double), index++) { FillInnerBuffer(BitConverterExtensions.ToUInt64(buffer[index]), i); } Write(m_buffer, 0, toWrite); byteIndex += toWrite; } if (IsAlignArray) { AlignStream(); } }
public void WriteArray(float[] buffer, int index, int count) { FillInnerBuffer(buffer.Length); Write(m_buffer, 0, sizeof(int)); int byteIndex = 0; int byteCount = buffer.Length * sizeof(float); int last = index + count; while (index < last) { int left = byteCount - byteIndex; int toWrite = left < BufferSize ? left : BufferSize; for (int i = 0; i < toWrite; i += sizeof(float), index++) { FillInnerBuffer(BitConverterExtensions.ToUInt32(buffer[index]), i); } Write(m_buffer, 0, toWrite); byteIndex += toWrite; } }
public int Read(double[] buffer, int index, int count) { int byteIndex = 0; int byteCount = count * sizeof(double); int first = index; int last = index + count; while (index < last) { int left = byteCount - byteIndex; int toRead = left < BufferSize ? left : BufferSize; int read = Read(m_buffer, 0, toRead); for (int i = 0; i < read; i += sizeof(double), index++) { buffer[index] = BitConverterExtensions.ToDouble(BufferToUInt64(i)); } byteIndex += read; if (read < toRead) { return(index - first); } } return(count); }
public override double ReadDouble() { FillInnerBuffer(sizeof(double)); return(BitConverterExtensions.ToDouble(BufferToUInt64())); }
public override float ReadSingle() { FillInnerBuffer(sizeof(float)); return(BitConverterExtensions.ToSingle(BufferToUInt32())); }
public static StringBuilder AppendHex(this StringBuilder _this, double value) { return(AppendHex(_this, BitConverterExtensions.ToUInt64(value))); }