Source file src/pkg/math/tanh.go
1 // Copyright 2009 The Go 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 math
6
7 /*
8 Floating-point hyperbolic tangent.
9
10 Sinh and Cosh are called except for large arguments, which
11 would cause overflow improperly.
12 */
13
14 // Tanh computes the hyperbolic tangent of x.
15 //
16 // Special cases are:
17 // Tanh(±0) = ±0
18 // Tanh(±Inf) = ±1
19 // Tanh(NaN) = NaN
20 func Tanh(x float64) float64 {
21 if x < 0 {
22 x = -x
23 if x > 21 {
24 return -1
25 }
26 return -Sinh(x) / Cosh(x)
27 }
28 if x > 21 {
29 return 1
30 }
31 return Sinh(x) / Cosh(x)
32 }