X7ROOT File Manager
Current Path:
/opt/golang/1.19.4/src/math/bits
opt
/
golang
/
1.19.4
/
src
/
math
/
bits
/
📁
..
📄
bits.go
(17.49 KB)
📄
bits_errors.go
(398 B)
📄
bits_errors_bootstrap.go
(621 B)
📄
bits_tables.go
(4.68 KB)
📄
bits_test.go
(32.48 KB)
📄
example_math_test.go
(6.26 KB)
📄
example_test.go
(5.27 KB)
📄
export_test.go
(204 B)
📄
make_examples.go
(3.06 KB)
📄
make_tables.go
(1.55 KB)
Editing: make_tables.go
// Copyright 2017 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build ignore // +build ignore // This program generates bits_tables.go. package main import ( "bytes" "fmt" "go/format" "io" "log" "os" ) var header = []byte(`// Copyright 2017 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated by go run make_tables.go. DO NOT EDIT. package bits `) func main() { buf := bytes.NewBuffer(header) gen(buf, "ntz8tab", ntz8) gen(buf, "pop8tab", pop8) gen(buf, "rev8tab", rev8) gen(buf, "len8tab", len8) out, err := format.Source(buf.Bytes()) if err != nil { log.Fatal(err) } err = os.WriteFile("bits_tables.go", out, 0666) if err != nil { log.Fatal(err) } } func gen(w io.Writer, name string, f func(uint8) uint8) { // Use a const string to allow the compiler to constant-evaluate lookups at constant index. fmt.Fprintf(w, "const %s = \"\"+\n\"", name) for i := 0; i < 256; i++ { fmt.Fprintf(w, "\\x%02x", f(uint8(i))) if i%16 == 15 && i != 255 { fmt.Fprint(w, "\"+\n\"") } } fmt.Fprint(w, "\"\n\n") } func ntz8(x uint8) (n uint8) { for x&1 == 0 && n < 8 { x >>= 1 n++ } return } func pop8(x uint8) (n uint8) { for x != 0 { x &= x - 1 n++ } return } func rev8(x uint8) (r uint8) { for i := 8; i > 0; i-- { r = r<<1 | x&1 x >>= 1 } return } func len8(x uint8) (n uint8) { for x != 0 { x >>= 1 n++ } return }
Upload File
Create Folder