コード例 #1
0
ファイル: ZigZag.cs プロジェクト: l0nley/integer-compression
        /// <summary>
        /// Encode an array of signed longs into a ZigZag encoded array of unsigned longs.
        /// </summary>
        /// <param name="values"></param>
        /// <returns></returns>
        public static UInt64[] Encode(Int64[] values)
        {
            var output = new UInt64[values.Length];

            for (var i = 0; i < values.Length; i++)
            {
                output[i] = ZigZag.Encode(values[i]);
            }
            return(output);
        }
コード例 #2
0
        public void CompressSigned(Stream output, params Int64[] values)
        {
#if DEBUG
            if (null == output)
            {
                throw new ArgumentNullException(nameof(output));
            }
            if (null == values)
            {
                throw new ArgumentNullException(nameof(values));
            }
#endif

            CompressUnsigned(output, values.Select(symbol => ZigZag.Encode(symbol)).ToArray());
        }
コード例 #3
0
 /// <summary>
 /// Append value to stream.
 /// </summary>
 /// <param name="value"></param>
 public void Write(Int64 value)
 {
     Underlying.Write(ZigZag.Encode(value));
 }