// 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. | |

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) | |

} |