forked from Shiloh/githaven
684b7a999f
* Dump: Use mholt/archive/v3 to support tar including many compressions Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Dump: Allow dump output to stdout Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Dump: Fixed bug present since #6677 where SessionConfig.Provider is never "file" Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Dump: never pack RepoRootPath, LFS.ContentPath and LogRootPath when they are below AppDataPath Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Dump: also dump LFS (fixes #10058) Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Dump: never dump CustomPath if CustomPath is a subdir of or equal to AppDataPath (fixes #10365) Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Use log.Info instead of fmt.Fprintf Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * import ordering * make fmt Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: Matti R <matti@mdranta.net>
31 lines
839 B
Go
Vendored
31 lines
839 B
Go
Vendored
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 clustering similar histograms together. */
|
|
|
|
type histogramPair struct {
|
|
idx1 uint32
|
|
idx2 uint32
|
|
cost_combo float64
|
|
cost_diff float64
|
|
}
|
|
|
|
func histogramPairIsLess(p1 *histogramPair, p2 *histogramPair) bool {
|
|
if p1.cost_diff != p2.cost_diff {
|
|
return p1.cost_diff > p2.cost_diff
|
|
}
|
|
|
|
return (p1.idx2 - p1.idx1) > (p2.idx2 - p2.idx1)
|
|
}
|
|
|
|
/* Returns entropy reduction of the context map when we combine two clusters. */
|
|
func clusterCostDiff(size_a uint, size_b uint) float64 {
|
|
var size_c uint = size_a + size_b
|
|
return float64(size_a)*fastLog2(size_a) + float64(size_b)*fastLog2(size_b) - float64(size_c)*fastLog2(size_c)
|
|
}
|