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

/* | |

* tanh(x) computes the hyperbolic tangent of its floating | |

* point argument. | |

* | |

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

} |