# Bessel Functions: _j0, _j1, _jn, _y0, _y1, _yn

Visual Studio 2015

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at Bessel Functions: _j0, _j1, _jn, _y0, _y1, _yn.

Computes the Bessel function of the first or second kind, of orders 0, 1, or n. The Bessel functions are commonly used in the mathematics of electromagnetic wave theory.

## Syntax

```double _j0(
double x
);
double _j1(
double x
);
double _jn(
int n,
double x
);
double _y0(
double x
);
double _y1(
double x
);
double _yn(
int n,
double x
);

```

#### Parameters

`x`
Floating-point value.

`n`
Integer order of Bessel function.

## Return Value

Each of these routines returns a Bessel function of `x`. If `x` is negative in the `_y0`, `_y1`, or `_yn` functions, the routine sets `errno` to `EDOM`, prints a `_DOMAIN` error message to `stderr`, and returns `_HUGE_VAL`. You can modify error handling by using `_matherr`.

## Remarks

The `_j0`, `_j1`, and `_jn` routines return Bessel functions of the first kind: orders 0, 1, and n, respectively.

InputSEH ExceptionMatherr Exception
± `QNAN`,`IND``INVALID``_DOMAIN`

The `_y0`, `_y1`, and `_yn` routines return Bessel functions of the second kind: orders 0, 1, and n, respectively.

InputSEH ExceptionMatherr Exception
± `QNAN`,`IND``INVALID``_DOMAIN`
± 0`ZERODIVIDE``_SING`
|x|<0.0`INVALID``_DOMAIN`

## Requirements

`_j0`, `_j1`, `_jn`, `_y0`, `_y1`, `_yn`<cmath> (C++), <math.h> (C, C++)

For additional compatibility information, see Compatibility in the Introduction.

## Example

```// crt_bessel1.c
#include <math.h>
#include <stdio.h>

int main( void )
{
double x = 2.387;
int n = 3, c;

printf( "Bessel functions for x = %f:\n", x );
printf( " Kind   Order  Function     Result\n\n" );
printf( " First  0      _j0( x )     %f\n", _j0( x ) );
printf( " First  1      _j1( x )     %f\n", _j1( x ) );
for( c = 2; c < 5; c++ )
printf( " First  %d      _jn( %d, x )  %f\n", c, c, _jn( c, x ) );
printf( " Second 0      _y0( x )     %f\n", _y0( x ) );
printf( " Second 1      _y1( x )     %f\n", _y1( x ) );
for( c = 2; c < 5; c++ )
printf( " Second %d      _yn( %d, x )  %f\n", c, c, _yn( c, x ) );
}

```
```Bessel functions for x = 2.387000:
Kind   Order  Function     Result

First  0      _j0( x )     0.009288
First  1      _j1( x )     0.522941
First  2      _jn( 2, x )  0.428870
First  3      _jn( 3, x )  0.195734
First  4      _jn( 4, x )  0.063131
Second 0      _y0( x )     0.511681
Second 1      _y1( x )     0.094374
Second 2      _yn( 2, x )  -0.432608
Second 3      _yn( 3, x )  -0.819314
Second 4      _yn( 4, x )  -1.626833

```