|
|
||
|---|---|---|
| .. | ||
| docs | ||
| lib | ||
| package.json | ||
| README.md | ||
Copysign
Return a double-precision floating-point number with the magnitude of
xand the sign ofy.
Usage
var copysign = require( '@stdlib/math/base/special/copysign' );
copysign( x, y )
Returns a double-precision floating-point number with the magnitude of x and the sign of y.
var z = copysign( -3.14, 10.0 );
// returns 3.14
z = copysign( 3.14, -1.0 );
// returns -3.14
z = copysign( 1.0, -0.0 );
// returns -1.0
z = copysign( -3.14, -0.0 );
// returns -3.14
z = copysign( -0.0, 1.0 );
// returns 0.0
Notes
- According to the IEEE754 standard, a
NaNhas a biased exponent equal to2047, a significand greater than0, and a sign bit equal to either1or0. In which case,NaNmay not correspond to just one but many binary representations. Accordingly, care should be taken to ensure thatyis notNaN, else behavior may be indeterminate.
Examples
var randu = require( '@stdlib/random/base/randu' );
var copysign = require( '@stdlib/math/base/special/copysign' );
var x;
var y;
var z;
var i;
// Generate random double-precision floating-point numbers `x` and `y` and copy the sign of `y` to `x`...
for ( i = 0; i < 100; i++ ) {
x = (randu()*100.0) - 50.0;
y = (randu()*10.0) - 5.0;
z = copysign( x, y );
console.log( 'x: %d, y: %d => %d', x, y, z );
}