2008-03-28 14:56:47 -06:00
|
|
|
// Copyright 2009 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.
|
|
|
|
|
2008-06-27 18:06:23 -06:00
|
|
|
package math
|
2008-03-28 14:56:47 -06:00
|
|
|
|
2008-11-19 17:14:31 -07:00
|
|
|
import "math"
|
2008-03-28 14:56:47 -06:00
|
|
|
|
|
|
|
/*
|
2008-07-08 21:48:41 -06:00
|
|
|
* tanh(arg) computes the hyperbolic tangent of its floating
|
|
|
|
* point argument.
|
|
|
|
*
|
|
|
|
* sinh and cosh are called except for large arguments, which
|
|
|
|
* would cause overflow improperly.
|
2008-03-28 14:56:47 -06:00
|
|
|
*/
|
|
|
|
|
2008-11-19 17:14:31 -07:00
|
|
|
export func Tanh(arg float64) float64 {
|
2008-03-28 14:56:47 -06:00
|
|
|
if arg < 0 {
|
|
|
|
arg = -arg;
|
|
|
|
if arg > 21 {
|
|
|
|
return -1;
|
|
|
|
}
|
2008-11-19 17:14:31 -07:00
|
|
|
return -Sinh(arg)/Cosh(arg);
|
2008-03-28 14:56:47 -06:00
|
|
|
}
|
|
|
|
if arg > 21 {
|
|
|
|
return 1;
|
|
|
|
}
|
2008-11-19 17:14:31 -07:00
|
|
|
return Sinh(arg)/Cosh(arg);
|
2008-03-28 14:56:47 -06:00
|
|
|
}
|