modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue17005.go (about) 1 // compile 2 3 // Copyright 2016 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 // This tickles (a version of) the PPC64 back end to 8 // emit a BVS instruction. 9 10 package foo 11 12 type Flag int 13 14 const ( 15 Identity Flag = iota - 2 // H is the identity matrix; no rotation is needed. 16 Rescaling // H specifies rescaling. 17 ) 18 19 type DrotmParams struct { 20 Flag 21 } 22 23 func Drotmg(d1, d2, x1, y1 float64) (p DrotmParams, rd1, rd2, rx1 float64) { 24 25 const ( 26 gam = 4.0 27 gamsq = 16.0 28 rgamsq = 5e-8 29 ) 30 31 if d1 < 0 { 32 p.Flag = Rescaling 33 return 34 } 35 36 for rd1 <= rgamsq || rd1 >= gamsq { 37 if rd1 <= rgamsq { 38 rd1 *= gam * gam 39 rx1 /= gam 40 } else { 41 rd1 /= gam * gam 42 rx1 *= gam 43 } 44 } 45 return 46 }