github.com/gopherd/gonum@v0.0.4/lapack/testlapack/dlapy2.go (about) 1 // Copyright ©2016 The Gonum Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package testlapack 6 7 import ( 8 "math" 9 "testing" 10 11 "math/rand" 12 13 "github.com/gopherd/gonum/floats/scalar" 14 ) 15 16 type Dlapy2er interface { 17 Dlapy2(float64, float64) float64 18 } 19 20 func Dlapy2Test(t *testing.T, impl Dlapy2er) { 21 rnd := rand.New(rand.NewSource(1)) 22 for i := 0; i < 10; i++ { 23 x := math.Abs(1e200 * rnd.NormFloat64()) 24 y := math.Abs(1e200 * rnd.NormFloat64()) 25 got := impl.Dlapy2(x, y) 26 want := math.Hypot(x, y) 27 if !scalar.EqualWithinRel(got, want, 1e-16) { 28 t.Errorf("Dlapy2(%g, %g) = %g, want %g", x, y, got, want) 29 } 30 } 31 }