| // 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. |
| |
| package math |
| |
| /* |
| Floating-point hyperbolic tangent. |
| |
| Sinh and Cosh are called except for large arguments, which |
| would cause overflow improperly. |
| */ |
| |
| // Tanh computes the hyperbolic tangent of x. |
| // |
| // Special cases are: |
| // Tanh(±0) = ±0 |
| // Tanh(±Inf) = ±1 |
| // Tanh(NaN) = NaN |
| func Tanh(x float64) float64 { |
| if x < 0 { |
| x = -x |
| if x > 21 { |
| return -1 |
| } |
| return -Sinh(x) / Cosh(x) |
| } |
| if x > 21 { |
| return 1 |
| } |
| return Sinh(x) / Cosh(x) |
| } |