Open In App

# math.Lgamma() Function in Golang with Examples

Go language provides inbuilt support for basic constants and mathematical functions to perform operations on the numbers with the help of the math package. This package provides Lgamma() function which is used to find the natural logarithm and sign (either -1 or +1) of Gamma(a). So, you need to add a math package in your program with the help of the import keyword to access the Lgamma() function.

Syntax:

`func Lgamma(a float64) (lgamma float64, sign int)`
• If Lgamma(+Inf), then this function will return +Inf.
• If Lgamma(0), then this function will return +Inf.
• If Lgamma(-integer), then this function will return +Inf.
• If Lgamma(-Inf), then this function will return -Inf.
• If Lgamma(NaN), then this function will return NaN.

Example 1:

 `// Golang program to illustrate``// math.Lgamma() Function``package main`` ` `import (``    ``"fmt"``    ``"math"``)`` ` `// Main function``func main() {`` ` `    ``// Finding the natural logarithm of Gamma()``    ``// Using Lgamma() function``    ``res_1, s1 := math.Lgamma(0)``    ``res_2, s2 := math.Lgamma(-2.3)``    ``res_3, s3 := math.Lgamma(math.Inf(-2))``    ``res_4, s4 := math.Lgamma(-2)``    ``res_5, s5 := math.Lgamma(math.NaN())`` ` `    ``// Displaying the result``    ``fmt.Printf(``"\nResult 1: %f and sign: %d"``, res_1, s1)``    ``fmt.Printf(``"\nResult 2: %f and sign: %d"``, res_2, s2)``    ``fmt.Printf(``"\nResult 3: %f and sign: %d"``, res_3, s3)``    ``fmt.Printf(``"\nResult 4: %f and sign: %d"``, res_4, s4)``    ``fmt.Printf(``"\nResult 5: %f and sign: %d"``, res_5, s5)``}`

Output:

```Result 1: +Inf and sign: 1
Result 2: 0.369567 and sign: -1
Result 3: -Inf and sign: 1
Result 4: +Inf and sign: 1
Result 5: NaN and sign: 1
```

Example 2:

 `// Golang program to illustrate``// math.Lgamma() Function`` ` `package main`` ` `import (``    ``"fmt"``    ``"math"``)`` ` `// Main function``func main() {`` ` `    ``// Finding the natural logarithm of Gamma()``    ``// Using Lgamma() function``    ``nvalue_1, sign_1 := math.Lgamma(1.5)``    ``nvalue_2, sign_2 := math.Lgamma(3.45)`` ` `    ``// Finding the sum of the ``    ``// natural logarithm of Gamma()``    ``res := nvalue_1 + nvalue_2``    ``fmt.Printf(``"Result 1: %f and sign: %d"``, nvalue_1, sign_1)``    ``fmt.Printf(``"\nResult 2: %f and sign: %d \n"``, nvalue_2, sign_2)``    ``fmt.Println(``"Sum of Result 1 and Result 2: "``, res)`` ` `}`

Output:

```Result 1: -0.120782 and sign: 1
Result 2: 1.146231 and sign: 1
Sum of Result 1 and Result 2:  1.0254487526135667
```