cmulf

Multiply two single-precision complex floating-point numbers.

Usage

var cmulf = require( '@stdlib/math/base/ops/cmulf' );

cmulf( z1, z2 )

Multiples two single-precision complex floating-point numbers.

var Complex64 = require( '@stdlib/complex/float32' );
var real = require( '@stdlib/complex/real' );
var imag = require( '@stdlib/complex/imag' );

var z1 = new Complex64( 5.0, 3.0 );
var z2 = new Complex64( -2.0, 1.0 );

var v = cmulf( z1, z2 );
// returns <Complex64>

var re = real( v );
// returns -13.0

var im = imag( v );
// returns -1.0

Examples

var Complex64 = require( '@stdlib/complex/float32' );
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
var cmulf = require( '@stdlib/math/base/ops/cmulf' );

var rand;
var z1;
var z2;
var z3;
var i;

rand = discreteUniform( -50, 50 );
for ( i = 0; i < 100; i++ ) {
    z1 = new Complex64( rand(), rand() );
    z2 = new Complex64( rand(), rand() );
    z3 = cmulf( z1, z2 );
    console.log( '(%s) * (%s) = %s', z1.toString(), z2.toString(), z3.toString() );
}

C APIs

Usage

#include "stdlib/math/base/ops/cmulf.h"

stdlib_base_cmulf( z1, z2 )

Multiplies two single-precision complex floating-point numbers.

#include <complex.h>

float complex z1 = 5.0f + 3.0f*I;
float complex z2 = -2.0f + 1.0f*I;

float complex out = stdlib_base_cmulf( z1, z2 );
// returns -13.0f-1.0f*I

The function accepts the following arguments:

  • z1: [in] float complex input value.
  • z2: [in] float complex input value.
float complex stdlib_base_cmulf( const float complex z1, const float complex z2 );

Examples

#include "stdlib/math/base/ops/cmulf.h"
#include <stdio.h>
#include <complex.h>

int main() {
    float complex x[] = { 3.14f+1.5f*I, -3.14f-1.5f*I, 0.0f+0.0f*I, 0.0f/0.0f+0.0f/0.0f*I };

    float complex v;
    float complex y;
    int i;
    for ( i = 0; i < 4; i++ ) {
        v = x[ i ];
        y = stdlib_base_cmulf( v, v );
        printf( "z = %f + %fi\ncmulf(z, z) = %f + %fi\n", crealf( v ), cimagf( v ), crealf( y ), cimagf( y ) );
    }
}
Did you find this page helpful?