Sha256: cbe4525f377204f1c492b44ec3b8a0f7d704b6ed4beafc1518d863b60845781e

Contents?: true

Size: 1.26 KB

Versions: 16

Compression:

Stored size: 1.26 KB

Contents

package brotli

/* Copyright 2013 Google Inc. All Rights Reserved.

   Distributed under MIT license.
   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
*/

/* Functions for encoding of integers into prefix codes the amount of extra
   bits, and the actual values of the extra bits. */

/* Here distance_code is an intermediate code, i.e. one of the special codes or
   the actual distance increased by BROTLI_NUM_DISTANCE_SHORT_CODES - 1. */
func prefixEncodeCopyDistance(distance_code uint, num_direct_codes uint, postfix_bits uint, code *uint16, extra_bits *uint32) {
	if distance_code < numDistanceShortCodes+num_direct_codes {
		*code = uint16(distance_code)
		*extra_bits = 0
		return
	} else {
		var dist uint = (uint(1) << (postfix_bits + 2)) + (distance_code - numDistanceShortCodes - num_direct_codes)
		var bucket uint = uint(log2FloorNonZero(dist) - 1)
		var postfix_mask uint = (1 << postfix_bits) - 1
		var postfix uint = dist & postfix_mask
		var prefix uint = (dist >> bucket) & 1
		var offset uint = (2 + prefix) << bucket
		var nbits uint = bucket - postfix_bits
		*code = uint16(nbits<<10 | (numDistanceShortCodes + num_direct_codes + ((2*(nbits-1) + prefix) << postfix_bits) + postfix))
		*extra_bits = uint32((dist - offset) >> postfix_bits)
	}
}

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
ruby_snowflake_client-1.3.7 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.3.6 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.3.5 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.3.4 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.3.4.pre.debug ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.3.3.pre.debug ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.3.2 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.3.1 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.3.0 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.2.1 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.2.0 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.1.1 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.1.0 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.0.2 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.0.1 ext/vendor/github.com/andybalholm/brotli/prefix.go
ruby_snowflake_client-1.0.0 ext/vendor/github.com/andybalholm/brotli/prefix.go