@stdlib/math-base-special-cinvf
v0.1.1
Published
Compute the inverse of a single-precision complex floating-point number.
Readme
cinvf
Compute the inverse of a single-precision complex floating-point number.
The inverse (or reciprocal) of a non-zero complex number z = a + bi is defined as
Installation
npm install @stdlib/math-base-special-cinvfUsage
var cinvf = require( '@stdlib/math-base-special-cinvf' );cinvf( z )
Computes the inverse of a single-precision complex floating-point number.
var Complex64 = require( '@stdlib/complex-float32-ctor' );
var v = cinvf( new Complex64( 2.0, 4.0 ) );
// returns <Complex64>[ ~0.1, ~-0.2 ]Examples
var Complex64Array = require( '@stdlib/array-complex64' );
var uniform = require( '@stdlib/random-array-uniform' );
var logEachMap = require( '@stdlib/console-log-each-map' );
var cinvf = require( '@stdlib/math-base-special-cinvf' );
// Create an array of random numbers:
var arr = new Complex64Array( uniform( 200, -100.0, 100.0 ) );
// Compute the inverse of each number in the array:
logEachMap( '1.0 / (%s) = %s', arr, cinvf );C APIs
Usage
#include "stdlib/math/base/special/cinvf.h"stdlib_base_cinvf( z )
Computes the inverse of a single-precision complex floating-point number.
#include "stdlib/complex/float32/ctor.h"
#include "stdlib/complex/float32/real.h"
#include "stdlib/complex/float32/imag.h"
stdlib_complex64_t z = stdlib_complex64( 2.0f, 4.0f );
stdlib_complex64_t out = stdlib_base_cinvf( z );
float re = stdlib_complex64_real( out );
// returns 0.1f
float im = stdlib_complex64_imag( out );
// returns -0.2fThe function accepts the following arguments:
- z:
[in] stdlib_complex64_tinput value.
stdlib_complex64_t stdlib_base_cinvf( const stdlib_complex64_t z );Examples
#include "stdlib/math/base/special/cinvf.h"
#include "stdlib/complex/float32/ctor.h"
#include "stdlib/complex/float32/reim.h"
#include <stdio.h>
int main( void ) {
const stdlib_complex64_t x[] = {
stdlib_complex64( 3.14f, 1.5f ),
stdlib_complex64( -3.14f, -1.5f ),
stdlib_complex64( 0.0f, 0.0f ),
stdlib_complex64( 0.0f/0.0f, 0.0f/0.0f )
};
stdlib_complex64_t v;
stdlib_complex64_t y;
float re1;
float im1;
float re2;
float im2;
int i;
for ( i = 0; i < 4; i++ ) {
v = x[ i ];
y = stdlib_base_cinvf( v );
stdlib_complex64_reim( v, &re1, &im1 );
stdlib_complex64_reim( y, &re2, &im2 );
printf( "cinvf(%f + %fi) = %f + %fi\n", re1, im1, re2, im2 );
}
}References
- Smith, Robert L. 1962. "Algorithm 116: Complex Division." Commun. ACM 5 (8). New York, NY, USA: ACM: 435. doi:10.1145/368637.368661.
- Stewart, G. W. 1985. "A Note on Complex Division." ACM Trans. Math. Softw. 11 (3). New York, NY, USA: ACM: 238–41. doi:10.1145/214408.214414.
- Priest, Douglas M. 2004. "Efficient Scaling for Complex Division." ACM Trans. Math. Softw. 30 (4). New York, NY, USA: ACM: 389–401. doi:10.1145/1039813.1039814.
- Baudin, Michael, and Robert L. Smith. 2012. "A Robust Complex Division in Scilab." arXiv abs/1210.4539 [cs.MS] (October): 1–25. <https://arxiv.org/abs/1210.4539>.
See Also
@stdlib/math-base/special/cinv: compute the inverse of a double-precision complex floating-point number.
Notice
This package is part of stdlib, a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.
For more information on the project, filing bug reports and feature requests, and guidance on how to develop stdlib, see the main project repository.
Community
License
See LICENSE.
Copyright
Copyright © 2016-2026. The Stdlib Authors.
