# hypotf > Compute the [hypotenuse][hypotenuse] avoiding overflow and underflow (single-precision).
## Usage ```javascript var hypotf = require( '@stdlib/math/base/special/hypotf' ); ``` #### hypotf( x, y ) Computes the [hypotenuse][hypotenuse] avoiding overflow and underflow (single-precision). ```javascript var h = hypotf( -5.0, 12.0 ); // returns 13.0 h = hypotf( -0.0, -0.0 ); // returns +0.0 ``` If either argument is `NaN`, the function returns `NaN`. ```javascript var h = hypotf( NaN, 12.0 ); // returns NaN h = hypotf( 5.0, NaN ); // returns NaN ```
## Examples ```javascript var randu = require( '@stdlib/random/base/randu' ); var round = require( '@stdlib/math/base/special/round' ); var hypotf = require( '@stdlib/math/base/special/hypotf' ); var x; var y; var h; var i; for ( i = 0; i < 100; i++ ) { x = round( randu()*100.0 ) - 50.0; y = round( randu()*100.0 ) - 50.0; h = hypotf( x, y ); console.log( 'h(%d,%d) = %d', x, y, h ); } ```
* * *
## C APIs
### Usage ```c #include "stdlib/math/base/special/hypotf.h ``` #### stdlib_base_hypotf( x, y ) Computes the hypotenuse avoiding overflow and underflow (single-precision). ```c float h = stdlib_base_hypotf( 5.0f, 12.0f ); // returns 13.0f ``` The function accepts the following arguments: - **x**: `[in] float` input value. - **y**: `[in] float` input value. ```c float stdlib_base_hypotf( const float x, const float y ); ```
### Examples ```c #include "stdlib/math/base/special/hypotf.h" #include int main() { float x[] = { 3.0f, 4.0f, 5.0f, 12.0f }; float y; int i; for ( i = 0; i < 4; i += 2 ) { y = stdlib_base_hypotf( x[ i ], x[ i+1 ] ); printf( "hypot(%f, %f) = %f\n", x[ i ], x[ i+1 ], y ); } } ```