github.com/gonum/lapack@v0.0.0-20181123203213-e4cdc5a0bff9/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 "math/rand" 10 "testing" 11 12 "github.com/gonum/floats" 13 ) 14 15 type Dlapy2er interface { 16 Dlapy2(float64, float64) float64 17 } 18 19 func Dlapy2Test(t *testing.T, impl Dlapy2er) { 20 rnd := rand.New(rand.NewSource(1)) 21 for i := 0; i < 10; i++ { 22 x := math.Abs(1e200 * rnd.NormFloat64()) 23 y := math.Abs(1e200 * rnd.NormFloat64()) 24 got := impl.Dlapy2(x, y) 25 want := math.Hypot(x, y) 26 if !floats.EqualWithinRel(got, want, 1e-16) { 27 t.Errorf("Dlapy2(%g, %g) = %g, want %g", x, y, got, want) 28 } 29 } 30 }