private static unsafe void WriteFloatArray(FileStream fs, float[] vals)
{
int count = vals.Length;
WriteInt(fs, count);
byte[] data = new byte[count * sizeof(float)];
fixed (byte* pData = data) {
float* ptr = (float*)pData;
for (int i = 0; i < count; ++i) {
*ptr = vals[i];
ptr++;
}
}
fs.Write(data, 0, count * sizeof(float));
}