Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

golang
communitycreator

What is the Yn function in Golang?

Faraz Karim

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

The programming language Go uses the Yn function to find the order-n Bessel function of the second kind for the passed argument.

To use this function, you must import the math package in your file and access the Yn function within it using the . notation (math.Yn). Here, Yn is the actual function, while math is the Go package that stores the definition of this function.

The Bessel functions

The Bessel functions are canonical solutions to Bessel’s differential equation. These solutions are in the form below:

y=AJv(x)+BYv(x)y= AJ_{v}(x) + BY_{v}(x)

In the equation above, subscript vv determines the order of the functions (the Bessel functions are defined for all real values of vv). So, for v=1v = 1, the solutions produced will be of order-one. For v=2v = 2, it’ll be order-two, and so on.

In the equation above, YY represents the second solution to the Bessel equation, also known as the Bessel function of the second kind.

Function definition

The definition of the Yn function inside the math package is as follows:

Parameters

The Yn function takes two arguments:

  • n: An argument of type int that represents the order of the second kind Bessel function you need to find.

  • a: An argument of type float64 that represents the number you want to find the second kind order-n Bessel function of.

Return value

The Yn function returns a single value of type float64 that represents the second kind order-n Bessel function of the argument a.

Some special cases are:

  • If the value of a is +Inf, then 0 is returned.

  • If a is 0 and n is greater than 0, then -Inf is returned.

  • If n is negative, then the returned value is:

    • +Inf if n is odd.
    • -Inf if n is even .
  • If the argument is NAN or is negative, then the returned value is NAN.

Examples

Below is a simple example where we use the Yn function to we find out the order-0 Bessel function of the second kind for 5.35 and compare it to the return value of the Y0 function.

package main
import(
"fmt"
"math"
)
func main() {
var x float64 = 5.35
y := math.Yn(0, x)
y0 := math.Y0(x)
fmt.Print("Y0(",x,") = ", y0,"\n")
fmt.Print("Yn(0, ",x,") = ", y)
}

The example below shows how the Yn function handles the special cases.

package main
import(
"fmt"
"math"
)
func main() {
n := 2
a:=math.Yn(1, math.Inf(1))
b:=math.Yn(n , 0)
c:=math.Yn((-1*n) , 0)
d:=math.Yn(n, -1)
e:=math.Yn(n, math.NaN())
fmt.Println("Yn(0, +Inf), =" , a)
fmt.Println("Yn(0, 0) = ", b)
fmt.Println("Yn(0, 0) = ", c)
fmt.Println("Yn(0, -1) = ", d)
fmt.Println("Yn(0, NaN) = ", e)
}

Here, we use the NaN function present in the math package to generate a NAN value.

To generate an infinite value, we use the Inf function in the math package, which generates an infinite value with the same sign as the argument passed to it.

RELATED TAGS

golang
communitycreator

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Keep Exploring