| // Copyright 2026 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. | |
| package printer | |
| import "math" | |
| // log2ish returns a crude approximation to logâ‚‚(x). | |
| // The result is only used for heuristic alignment decisions and should | |
| // not be used where precision matters. | |
| // The approximation is guaranteed to produce identical results | |
| // across all architectures. | |
| func log2ish(x float64) float64 { | |
| f, e := math.Frexp(x) | |
| return float64(e) + 2*(f-1) | |
| } | |
| // exp2ish returns a crude approximation to 2**x. | |
| // The result is only used for heuristic alignment decisions and should | |
| // not be used where precision matters. | |
| // The approximation is guaranteed to produce identical results | |
| // across all architectures. | |
| func exp2ish(x float64) float64 { | |
| n := math.Floor(x) | |
| f := x - n | |
| return math.Ldexp(1+f, int(n)) | |
| } |