Source File
sinh.go
Belonging Package
math
// 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 sine and cosine.
The exponential func is called for arguments
greater in magnitude than 0.5.
A series is used for arguments smaller in magnitude than 0.5.
Cosh(x) is computed from the exponential func for
all arguments.
*/
// Sinh returns the hyperbolic sine of x.
//
// Special cases are:
//
// Sinh(±0) = ±0
// Sinh(±Inf) = ±Inf
// Sinh(NaN) = NaN
func ( float64) float64 {
if haveArchSinh {
return archSinh()
}
return sinh()
}
func sinh( float64) float64 {
// The coefficients are #2029 from Hart & Cheney. (20.36D)
const (
= -0.6307673640497716991184787251e+6
= -0.8991272022039509355398013511e+5
= -0.2894211355989563807284660366e+4
= -0.2630563213397497062819489e+2
= -0.6307673640497716991212077277e+6
= 0.1521517378790019070696485176e+5
= -0.173678953558233699533450911e+3
)
:= false
if < 0 {
= -
= true
}
var float64
switch {
case > 21:
= Exp() * 0.5
case > 0.5:
:= Exp()
= ( - 1/) * 0.5
default:
:= *
= (((*+)*+)* + ) *
= / (((+)*+)* + )
}
if {
= -
}
return
}
// Cosh returns the hyperbolic cosine of x.
//
// Special cases are:
//
// Cosh(±0) = 1
// Cosh(±Inf) = +Inf
// Cosh(NaN) = NaN
func ( float64) float64 {
if haveArchCosh {
return archCosh()
}
return cosh()
}
func cosh( float64) float64 {
= Abs()
if > 21 {
return Exp() * 0.5
}
:= Exp()
return ( + 1/) * 0.5
}
![]() |
The pages are generated with Golds v0.6.9-preview. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |