From b82c6f020ef6fe6b045fc71ccf773bb18c451303 Mon Sep 17 00:00:00 2001 From: Athan Reines Date: Wed, 17 Jul 2024 20:35:03 -0700 Subject: [PATCH] remove: remove `math/base/ops/cmul` This commit removes `@stdlib/math/base/ops/cmul` in favor of `@stdlib/complex/float64/base/mul`. BREAKING CHANGE: remove `math/base/ops/cmul` To migrate, users should update their require/import paths to use `@stdlib/complex/float64/base/mul` which provides the same API and implementation. Ref: https://github.com/stdlib-js/stdlib/issues/2260 --- .../@stdlib/math/base/ops/cmul/README.md | 240 ------------------ .../math/base/ops/cmul/benchmark/benchmark.js | 60 ----- .../ops/cmul/benchmark/benchmark.native.js | 69 ----- .../math/base/ops/cmul/benchmark/c/Makefile | 126 --------- .../base/ops/cmul/benchmark/c/benchmark.c | 148 ----------- .../base/ops/cmul/benchmark/c/native/Makefile | 146 ----------- .../ops/cmul/benchmark/c/native/benchmark.c | 150 ----------- .../base/ops/cmul/benchmark/julia/REQUIRE | 2 - .../ops/cmul/benchmark/julia/benchmark.jl | 144 ----------- .../@stdlib/math/base/ops/cmul/binding.gyp | 170 ------------- .../@stdlib/math/base/ops/cmul/docs/repl.txt | 33 --- .../math/base/ops/cmul/docs/types/index.d.ts | 57 ----- .../math/base/ops/cmul/docs/types/test.ts | 67 ----- .../math/base/ops/cmul/examples/c/Makefile | 146 ----------- .../math/base/ops/cmul/examples/c/example.c | 46 ---- .../math/base/ops/cmul/examples/index.js | 37 --- .../@stdlib/math/base/ops/cmul/include.gypi | 53 ---- .../cmul/include/stdlib/math/base/ops/cmul.h | 40 --- .../@stdlib/math/base/ops/cmul/lib/index.js | 55 ---- .../@stdlib/math/base/ops/cmul/lib/main.js | 70 ----- .../@stdlib/math/base/ops/cmul/lib/native.js | 65 ----- .../@stdlib/math/base/ops/cmul/manifest.json | 75 ------ .../@stdlib/math/base/ops/cmul/package.json | 69 ----- .../@stdlib/math/base/ops/cmul/src/Makefile | 70 ----- .../@stdlib/math/base/ops/cmul/src/addon.c | 23 -- .../@stdlib/math/base/ops/cmul/src/main.c | 61 ----- .../@stdlib/math/base/ops/cmul/test/test.js | 110 -------- .../math/base/ops/cmul/test/test.native.js | 119 --------- 28 files changed, 2451 deletions(-) delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/README.md delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/benchmark.js delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/benchmark.native.js delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/Makefile delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/benchmark.c delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/native/Makefile delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/native/benchmark.c delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/julia/REQUIRE delete mode 100755 lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/julia/benchmark.jl delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/binding.gyp delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/docs/repl.txt delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/docs/types/index.d.ts delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/docs/types/test.ts delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/examples/c/Makefile delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/examples/c/example.c delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/examples/index.js delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/include.gypi delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/include/stdlib/math/base/ops/cmul.h delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/lib/index.js delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/lib/main.js delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/lib/native.js delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/manifest.json delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/package.json delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/src/Makefile delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/src/addon.c delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/src/main.c delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/test/test.js delete mode 100644 lib/node_modules/@stdlib/math/base/ops/cmul/test/test.native.js diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/README.md b/lib/node_modules/@stdlib/math/base/ops/cmul/README.md deleted file mode 100644 index 8173f4f4271..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/README.md +++ /dev/null @@ -1,240 +0,0 @@ - - -# cmul - -> Multiply two double-precision complex floating-point numbers. - -
- -
- - - -
- -## Usage - -```javascript -var cmul = require( '@stdlib/math/base/ops/cmul' ); -``` - -#### cmul( z1, z2 ) - -Multiplies two double-precision complex floating-point numbers. - -```javascript -var Complex128 = require( '@stdlib/complex/float64/ctor' ); -var real = require( '@stdlib/complex/float64/real' ); -var imag = require( '@stdlib/complex/float64/imag' ); - -var z1 = new Complex128( 5.0, 3.0 ); -var z2 = new Complex128( -2.0, 1.0 ); - -var v = cmul( z1, z2 ); -// returns - -var re = real( v ); -// returns -13.0 - -var im = imag( v ); -// returns -1.0 -``` - -
- - - -
- -## Examples - - - -```javascript -var Complex128 = require( '@stdlib/complex/float64/ctor' ); -var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; -var cmul = require( '@stdlib/math/base/ops/cmul' ); - -var rand; -var z1; -var z2; -var z3; -var i; - -rand = discreteUniform( -50, 50 ); -for ( i = 0; i < 100; i++ ) { - z1 = new Complex128( rand(), rand() ); - z2 = new Complex128( rand(), rand() ); - z3 = cmul( z1, z2 ); - console.log( '(%s) * (%s) = %s', z1.toString(), z2.toString(), z3.toString() ); -} -``` - -
- - - - - -* * * - -
- -## C APIs - - - -
- -
- - - - - -
- -### Usage - -```c -#include "stdlib/math/base/ops/cmul.h" -``` - -#### stdlib_base_cmul( z1, z2 ) - -Multiplies two double-precision complex floating-point numbers. - -```c -#include "stdlib/complex/float64/ctor.h" -#include "stdlib/complex/float64/real.h" -#include "stdlib/complex/float64/imag.h" - -stdlib_complex128_t z1 = stdlib_complex128( 5.0, 3.0 ); -stdlib_complex128_t z2 = stdlib_complex128( -2.0, 1.0 ); - -stdlib_complex128_t out = stdlib_base_cmul( z1, z2 ); - -double re = stdlib_complex128_real( out ); -// returns -13.0 - -double im = stdlib_complex128_imag( out ); -// returns -1.0 -``` - -The function accepts the following arguments: - -- **z1**: `[in] stdlib_complex128_t` input value. -- **z2**: `[in] stdlib_complex128_t` input value. - -```c -stdlib_complex128_t stdlib_base_cmul( const stdlib_complex128_t z1, const stdlib_complex128_t z2 ); -``` - -
- - - - - -
- -
- - - - - -
- -### Examples - -```c -#include "stdlib/math/base/ops/cmul.h" -#include "stdlib/complex/float64/ctor.h" -#include "stdlib/complex/float64/reim.h" -#include - -int main( void ) { - const stdlib_complex128_t x[] = { - stdlib_complex128( 3.14, 1.5 ), - stdlib_complex128( -3.14, 1.5 ), - stdlib_complex128( 0.0, -0.0 ), - stdlib_complex128( 0.0/0.0, 0.0/0.0 ) - }; - - stdlib_complex128_t v; - stdlib_complex128_t y; - double re; - double im; - int i; - for ( i = 0; i < 4; i++ ) { - v = x[ i ]; - stdlib_complex128_reim( v, &re, &im ); - printf( "z = %lf + %lfi\n", re, im ); - - y = stdlib_base_cmul( v, v ); - stdlib_complex128_reim( y, &re, &im ); - printf( "cmul(z, z) = %lf + %lfi\n", re, im ); - } -} -``` - -
- - - -
- - - - - - - - - - - - - - diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/benchmark.js deleted file mode 100644 index 9e61c02fbf8..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/benchmark.js +++ /dev/null @@ -1,60 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var uniform = require( '@stdlib/random/base/uniform' ); -var isnan = require( '@stdlib/math/base/assert/is-nan' ); -var Complex128 = require( '@stdlib/complex/float64/ctor' ); -var real = require( '@stdlib/complex/float64/real' ); -var imag = require( '@stdlib/complex/float64/imag' ); -var pkg = require( './../package.json' ).name; -var cmul = require( './../lib' ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var values; - var out; - var z; - var i; - - values = [ - new Complex128( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ), - new Complex128( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ) - ]; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - z = values[ i%values.length ]; - out = cmul( z, z ); - if ( typeof out !== 'object' ) { - b.fail( 'should return an object' ); - } - } - b.toc(); - if ( isnan( real( out ) ) || isnan( imag( out ) ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/benchmark.native.js deleted file mode 100644 index 846edc62e11..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/benchmark.native.js +++ /dev/null @@ -1,69 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolve = require( 'path' ).resolve; -var bench = require( '@stdlib/bench' ); -var uniform = require( '@stdlib/random/base/uniform' ); -var isnan = require( '@stdlib/math/base/assert/is-nan' ); -var Complex128 = require( '@stdlib/complex/float64/ctor' ); -var real = require( '@stdlib/complex/float64/real' ); -var imag = require( '@stdlib/complex/float64/imag' ); -var tryRequire = require( '@stdlib/utils/try-require' ); -var pkg = require( './../package.json' ).name; - - -// VARIABLES // - -var cmul = tryRequire( resolve( __dirname, './../lib/native.js' ) ); -var opts = { - 'skip': ( cmul instanceof Error ) -}; - - -// MAIN // - -bench( pkg+'::native', opts, function benchmark( b ) { - var values; - var out; - var z; - var i; - - values = [ - new Complex128( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ), - new Complex128( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ) - ]; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - z = values[ i%values.length ]; - out = cmul( z, z ); - if ( typeof out !== 'object' ) { - b.fail( 'should return an object' ); - } - } - b.toc(); - if ( isnan( real( out ) ) || isnan( imag( out ) ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/Makefile b/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/Makefile deleted file mode 100644 index d7adc1ad067..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/Makefile +++ /dev/null @@ -1,126 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# VARIABLES # - -ifndef VERBOSE - QUIET := @ -else - QUIET := -endif - -# Determine the OS ([1][1], [2][2]). -# -# [1]: https://en.wikipedia.org/wiki/Uname#Examples -# [2]: http://stackoverflow.com/a/27776822/2225624 -OS ?= $(shell uname) -ifneq (, $(findstring MINGW,$(OS))) - OS := WINNT -else -ifneq (, $(findstring MSYS,$(OS))) - OS := WINNT -else -ifneq (, $(findstring CYGWIN,$(OS))) - OS := WINNT -else -ifneq (, $(findstring Windows_NT,$(OS))) - OS := WINNT -endif -endif -endif -endif - -# Define the program used for compiling C source files: -ifdef C_COMPILER - CC := $(C_COMPILER) -else - CC := gcc -endif - -# Define the command-line options when compiling C files: -CFLAGS ?= \ - -std=c99 \ - -O3 \ - -Wall \ - -pedantic - -# Determine whether to generate position independent code ([1][1], [2][2]). -# -# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options -# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option -ifeq ($(OS), WINNT) - fPIC ?= -else - fPIC ?= -fPIC -endif - -# List of C targets: -c_targets := benchmark.out - - -# RULES # - -#/ -# Compiles C source files. -# -# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) -# @param {string} [CFLAGS] - C compiler options -# @param {(string|void)} [fPIC] - compiler flag indicating whether to generate position independent code (e.g., `-fPIC`) -# -# @example -# make -# -# @example -# make all -#/ -all: $(c_targets) - -.PHONY: all - -#/ -# Compiles C source files. -# -# @private -# @param {string} CC - C compiler -# @param {string} CFLAGS - C compiler flags -# @param {(string|void)} fPIC - compiler flag indicating whether to generate position independent code -#/ -$(c_targets): %.out: %.c - $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $< -lm - -#/ -# Runs compiled benchmarks. -# -# @example -# make run -#/ -run: $(c_targets) - $(QUIET) ./$< - -.PHONY: run - -#/ -# Removes generated files. -# -# @example -# make clean -#/ -clean: - $(QUIET) -rm -f *.o *.out - -.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/benchmark.c deleted file mode 100644 index 973b2659282..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/benchmark.c +++ /dev/null @@ -1,148 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -/** -* Benchmark `cmul`. -*/ -#include -#include -#include -#include -#include - -#define NAME "cmul" -#define ITERATIONS 1000000 -#define REPEATS 3 - -/** -* Prints the TAP version. -*/ -void print_version() { - printf( "TAP version 13\n" ); -} - -/** -* Prints the TAP summary. -* -* @param total total number of tests -* @param passing total number of passing tests -*/ -void print_summary( int total, int passing ) { - printf( "#\n" ); - printf( "1..%d\n", total ); // TAP plan - printf( "# total %d\n", total ); - printf( "# pass %d\n", passing ); - printf( "#\n" ); - printf( "# ok\n" ); -} - -/** -* Prints benchmarks results. -* -* @param elapsed elapsed time in seconds -*/ -void print_results( double elapsed ) { - double rate = (double)ITERATIONS / elapsed; - printf( " ---\n" ); - printf( " iterations: %d\n", ITERATIONS ); - printf( " elapsed: %0.9f\n", elapsed ); - printf( " rate: %0.9f\n", rate ); - printf( " ...\n" ); -} - -/** -* Returns a clock time. -* -* @return clock time -*/ -double tic() { - struct timeval now; - gettimeofday( &now, NULL ); - return (double)now.tv_sec + (double)now.tv_usec/1.0e6; -} - -/** -* Generates a random number on the interval [0,1]. -* -* @return random number -*/ -double rand_double() { - int r = rand(); - return (double)r / ( (double)RAND_MAX + 1.0 ); -} - -/** -* Runs a benchmark. -* -* @return elapsed time in seconds -*/ -double benchmark() { - double elapsed; - double re; - double im; - double t; - int i; - - double complex z1; - double complex z2; - double complex z3; - - t = tic(); - for ( i = 0; i < ITERATIONS; i++ ) { - re = ( 1000.0*rand_double() ) - 500.0; - im = ( 1000.0*rand_double() ) - 500.0; - z1 = re + im*I; - - re = ( 1000.0*rand_double() ) - 500.0; - im = ( 1000.0*rand_double() ) - 500.0; - z2 = re + im*I; - - re = ( creal(z1)*creal(z2) ) - ( cimag(z1)*cimag(z2) ); - im = ( creal(z1)*cimag(z2) ) + ( cimag(z1)*creal(z2) ); - z3 = re + im*I; - if ( z3 != z3 ) { - printf( "should not return NaN\n" ); - break; - } - } - elapsed = tic() - t; - if ( z3 != z3 ) { - printf( "should not return NaN\n" ); - } - return elapsed; -} - -/** -* Main execution sequence. -*/ -int main( void ) { - double elapsed; - int i; - - // Use the current time to seed the random number generator: - srand( time( NULL ) ); - - print_version(); - for ( i = 0; i < REPEATS; i++ ) { - printf( "# c::%s\n", NAME ); - elapsed = benchmark(); - print_results( elapsed ); - printf( "ok %d benchmark finished\n", i+1 ); - } - print_summary( REPEATS, REPEATS ); -} diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/native/Makefile deleted file mode 100644 index 7f6bbc4c205..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/native/Makefile +++ /dev/null @@ -1,146 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# VARIABLES # - -ifndef VERBOSE - QUIET := @ -else - QUIET := -endif - -# Determine the OS ([1][1], [2][2]). -# -# [1]: https://en.wikipedia.org/wiki/Uname#Examples -# [2]: http://stackoverflow.com/a/27776822/2225624 -OS ?= $(shell uname) -ifneq (, $(findstring MINGW,$(OS))) - OS := WINNT -else -ifneq (, $(findstring MSYS,$(OS))) - OS := WINNT -else -ifneq (, $(findstring CYGWIN,$(OS))) - OS := WINNT -else -ifneq (, $(findstring Windows_NT,$(OS))) - OS := WINNT -endif -endif -endif -endif - -# Define the program used for compiling C source files: -ifdef C_COMPILER - CC := $(C_COMPILER) -else - CC := gcc -endif - -# Define the command-line options when compiling C files: -CFLAGS ?= \ - -std=c99 \ - -O3 \ - -Wall \ - -pedantic - -# Determine whether to generate position independent code ([1][1], [2][2]). -# -# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options -# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option -ifeq ($(OS), WINNT) - fPIC ?= -else - fPIC ?= -fPIC -endif - -# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): -INCLUDE ?= - -# List of source files: -SOURCE_FILES ?= - -# List of libraries (e.g., `-lopenblas -lpthread`): -LIBRARIES ?= - -# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): -LIBPATH ?= - -# List of C targets: -c_targets := benchmark.out - - -# RULES # - -#/ -# Compiles source files. -# -# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) -# @param {string} [CFLAGS] - C compiler options -# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) -# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) -# @param {string} [SOURCE_FILES] - list of source files -# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) -# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) -# -# @example -# make -# -# @example -# make all -#/ -all: $(c_targets) - -.PHONY: all - -#/ -# Compiles C source files. -# -# @private -# @param {string} CC - C compiler (e.g., `gcc`) -# @param {string} CFLAGS - C compiler options -# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) -# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) -# @param {string} SOURCE_FILES - list of source files -# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) -# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) -#/ -$(c_targets): %.out: %.c - $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) - -#/ -# Runs compiled benchmarks. -# -# @example -# make run -#/ -run: $(c_targets) - $(QUIET) ./$< - -.PHONY: run - -#/ -# Removes generated files. -# -# @example -# make clean -#/ -clean: - $(QUIET) -rm -f *.o *.out - -.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/native/benchmark.c deleted file mode 100644 index c2f888819a4..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/c/native/benchmark.c +++ /dev/null @@ -1,150 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2021 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -/** -* Benchmark `cmul`. -*/ -#include "stdlib/math/base/ops/cmul.h" -#include "stdlib/complex/float64/ctor.h" -#include "stdlib/complex/float64/reim.h" -#include -#include -#include -#include -#include - -#define NAME "cmul" -#define ITERATIONS 1000000 -#define REPEATS 3 - -/** -* Prints the TAP version. -*/ -void print_version() { - printf( "TAP version 13\n" ); -} - -/** -* Prints the TAP summary. -* -* @param total total number of tests -* @param passing total number of passing tests -*/ -void print_summary( int total, int passing ) { - printf( "#\n" ); - printf( "1..%d\n", total ); // TAP plan - printf( "# total %d\n", total ); - printf( "# pass %d\n", passing ); - printf( "#\n" ); - printf( "# ok\n" ); -} - -/** -* Prints benchmarks results. -* -* @param elapsed elapsed time in seconds -*/ -void print_results( double elapsed ) { - double rate = (double)ITERATIONS / elapsed; - printf( " ---\n" ); - printf( " iterations: %d\n", ITERATIONS ); - printf( " elapsed: %0.9f\n", elapsed ); - printf( " rate: %0.9f\n", rate ); - printf( " ...\n" ); -} - -/** -* Returns a clock time. -* -* @return clock time -*/ -double tic() { - struct timeval now; - gettimeofday( &now, NULL ); - return (double)now.tv_sec + (double)now.tv_usec/1.0e6; -} - -/** -* Generates a random number on the interval [0,1]. -* -* @return random number -*/ -double rand_double() { - int r = rand(); - return (double)r / ( (double)RAND_MAX + 1.0 ); -} - -/** -* Runs a benchmark. -* -* @return elapsed time in seconds -*/ -double benchmark() { - double elapsed; - double re; - double im; - double t; - int i; - - stdlib_complex128_t z1; - stdlib_complex128_t z2; - stdlib_complex128_t z3; - - t = tic(); - for ( i = 0; i < ITERATIONS; i++ ) { - re = ( 1000.0*rand_double() ) - 500.0; - im = ( 1000.0*rand_double() ) - 500.0; - z1 =stdlib_complex128( re, im ); - - re = ( 1000.0*rand_double() ) - 500.0; - im = ( 1000.0*rand_double() ) - 500.0; - z2 = stdlib_complex128( re, im ); - - z3 = stdlib_base_cmul( z1, z2 ); - stdlib_complex128_reim( z3, &re, &im ); - if ( re != re ) { - printf( "should not return NaN\n" ); - break; - } - } - elapsed = tic() - t; - if ( im != im ) { - printf( "should not return NaN\n" ); - } - return elapsed; -} - -/** -* Main execution sequence. -*/ -int main( void ) { - double elapsed; - int i; - - // Use the current time to seed the random number generator: - srand( time( NULL ) ); - - print_version(); - for ( i = 0; i < REPEATS; i++ ) { - printf( "# c::native::%s\n", NAME ); - elapsed = benchmark(); - print_results( elapsed ); - printf( "ok %d benchmark finished\n", i+1 ); - } - print_summary( REPEATS, REPEATS ); -} diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/julia/REQUIRE deleted file mode 100644 index 98645e192e4..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/julia/REQUIRE +++ /dev/null @@ -1,2 +0,0 @@ -julia 1.5 -BenchmarkTools 0.5.0 diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/julia/benchmark.jl b/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/julia/benchmark.jl deleted file mode 100755 index 024e64d0d0f..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/benchmark/julia/benchmark.jl +++ /dev/null @@ -1,144 +0,0 @@ -#!/usr/bin/env julia -# -# @license Apache-2.0 -# -# Copyright (c) 2018 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import BenchmarkTools -using Printf - -# Benchmark variables: -name = "cmul"; -repeats = 3; - -""" - print_version() - -Prints the TAP version. - -# Examples - -``` julia -julia> print_version() -``` -""" -function print_version() - @printf( "TAP version 13\n" ); -end - -""" - print_summary( total, passing ) - -Print the benchmark summary. - -# Arguments - -* `total`: total number of tests -* `passing`: number of passing tests - -# Examples - -``` julia -julia> print_summary( 3, 3 ) -``` -""" -function print_summary( total, passing ) - @printf( "#\n" ); - @printf( "1..%d\n", total ); # TAP plan - @printf( "# total %d\n", total ); - @printf( "# pass %d\n", passing ); - @printf( "#\n" ); - @printf( "# ok\n" ); -end - -""" - print_results( iterations, elapsed ) - -Print benchmark results. - -# Arguments - -* `iterations`: number of iterations -* `elapsed`: elapsed time (in seconds) - -# Examples - -``` julia -julia> print_results( 1000000, 0.131009101868 ) -``` -""" -function print_results( iterations, elapsed ) - rate = iterations / elapsed - - @printf( " ---\n" ); - @printf( " iterations: %d\n", iterations ); - @printf( " elapsed: %0.9f\n", elapsed ); - @printf( " rate: %0.9f\n", rate ); - @printf( " ...\n" ); -end - -""" - benchmark() - -Run a benchmark. - -# Notes - -* Benchmark results are returned as a two-element array: [ iterations, elapsed ]. -* The number of iterations is not the true number of iterations. Instead, an 'iteration' is defined as a 'sample', which is a computed estimate for a single evaluation. -* The elapsed time is in seconds. - -# Examples - -``` julia -julia> out = benchmark(); -``` -""" -function benchmark() - t = BenchmarkTools.@benchmark ComplexF64( (rand()*1000.0)-500.0, (rand()*1000.0)-500.0 ) * ComplexF64( (rand()*1000.0)-500.0, (rand()*1000.0)-500.0 ) samples=1e6 - - # Compute the total "elapsed" time and convert from nanoseconds to seconds: - s = sum( t.times ) / 1.0e9; - - # Determine the number of "iterations": - iter = length( t.times ); - - # Return the results: - [ iter, s ]; -end - -""" - main() - -Run benchmarks. - -# Examples - -``` julia -julia> main(); -``` -""" -function main() - print_version(); - for i in 1:repeats - @printf( "# julia::%s\n", name ); - results = benchmark(); - print_results( results[ 1 ], results[ 2 ] ); - @printf( "ok %d benchmark finished\n", i ); - end - print_summary( repeats, repeats ); -end - -main(); diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/binding.gyp b/lib/node_modules/@stdlib/math/base/ops/cmul/binding.gyp deleted file mode 100644 index 1058b57bab1..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/binding.gyp +++ /dev/null @@ -1,170 +0,0 @@ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# A `.gyp` file for building a Node.js native add-on. -# -# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md -# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md -{ - # List of files to include in this file: - 'includes': [ - './include.gypi', - ], - - # Define variables to be used throughout the configuration for all targets: - 'variables': { - # Target name should match the add-on export name: - 'addon_target_name%': 'addon', - - # Set variables based on the host OS: - 'conditions': [ - [ - 'OS=="win"', - { - # Define the object file suffix: - 'obj': 'obj', - }, - { - # Define the object file suffix: - 'obj': 'o', - } - ], # end condition (OS=="win") - ], # end conditions - }, # end variables - - # Define compile targets: - 'targets': [ - - # Target to generate an add-on: - { - # The target name should match the add-on export name: - 'target_name': '<(addon_target_name)', - - # Define dependencies: - 'dependencies': [], - - # Define directories which contain relevant include headers: - 'include_dirs': [ - # Local include directory: - '<@(include_dirs)', - ], - - # List of source files: - 'sources': [ - '<@(src_files)', - ], - - # Settings which should be applied when a target's object files are used as linker input: - 'link_settings': { - # Define libraries: - 'libraries': [ - '<@(libraries)', - ], - - # Define library directories: - 'library_dirs': [ - '<@(library_dirs)', - ], - }, - - # C/C++ compiler flags: - 'cflags': [ - # Enable commonly used warning options: - '-Wall', - - # Aggressive optimization: - '-O3', - ], - - # C specific compiler flags: - 'cflags_c': [ - # Specify the C standard to which a program is expected to conform: - '-std=c99', - ], - - # C++ specific compiler flags: - 'cflags_cpp': [ - # Specify the C++ standard to which a program is expected to conform: - '-std=c++11', - ], - - # Linker flags: - 'ldflags': [], - - # Apply conditions based on the host OS: - 'conditions': [ - [ - 'OS=="mac"', - { - # Linker flags: - 'ldflags': [ - '-undefined dynamic_lookup', - '-Wl,-no-pie', - '-Wl,-search_paths_first', - ], - }, - ], # end condition (OS=="mac") - [ - 'OS!="win"', - { - # C/C++ flags: - 'cflags': [ - # Generate platform-independent code: - '-fPIC', - ], - }, - ], # end condition (OS!="win") - ], # end conditions - }, # end target <(addon_target_name) - - # Target to copy a generated add-on to a standard location: - { - 'target_name': 'copy_addon', - - # Declare that the output of this target is not linked: - 'type': 'none', - - # Define dependencies: - 'dependencies': [ - # Require that the add-on be generated before building this target: - '<(addon_target_name)', - ], - - # Define a list of actions: - 'actions': [ - { - 'action_name': 'copy_addon', - 'message': 'Copying addon...', - - # Explicitly list the inputs in the command-line invocation below: - 'inputs': [], - - # Declare the expected outputs: - 'outputs': [ - '<(addon_output_dir)/<(addon_target_name).node', - ], - - # Define the command-line invocation: - 'action': [ - 'cp', - '<(PRODUCT_DIR)/<(addon_target_name).node', - '<(addon_output_dir)/<(addon_target_name).node', - ], - }, - ], # end actions - }, # end target copy_addon - ], # end targets -} diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/docs/repl.txt b/lib/node_modules/@stdlib/math/base/ops/cmul/docs/repl.txt deleted file mode 100644 index 971b2550117..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/docs/repl.txt +++ /dev/null @@ -1,33 +0,0 @@ - -{{alias}}( z1, z2 ) - Multiplies two double-precision complex floating-point numbers. - - Parameters - ---------- - z1: Complex128 - Complex number. - - z2: Complex128 - Complex number. - - Returns - ------- - out: Complex128 - Result. - - Examples - -------- - > var z1 = new {{alias:@stdlib/complex/float64/ctor}}( 5.0, 3.0 ) - - > var z2 = new {{alias:@stdlib/complex/float64/ctor}}( -2.0, 1.0 ) - - > var out = {{alias}}( z1, z2 ) - - > var re = {{alias:@stdlib/complex/float64/real}}( out ) - -13.0 - > var im = {{alias:@stdlib/complex/float64/imag}}( out ) - -1.0 - - See Also - -------- - diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/ops/cmul/docs/types/index.d.ts deleted file mode 100644 index 696bc4a0630..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/docs/types/index.d.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2019 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Complex128 } from '@stdlib/types/complex'; - -/** -* Multiplies two double-precision complex floating-point numbers. -* -* @param z1 - complex number -* @param z2 - complex number -* @returns result -* -* @example -* var Complex128 = require( '@stdlib/complex/float64/ctor' ); -* var real = require( '@stdlib/complex/float64/real' ); -* var imag = require( '@stdlib/complex/float64/imag' ); -* -* var z1 = new Complex128( 5.0, 3.0 ); -* // returns -* -* var z2 = new Complex128( -2.0, 1.0 ); -* // returns -* -* var out = cmul( z1, z2 ); -* // returns -* -* var re = real( out ); -* // returns -13.0 -* -* var im = imag( out ); -* // returns -1.0 -*/ -declare function cmul( z1: Complex128, z2: Complex128 ): Complex128; - - -// EXPORTS // - -export = cmul; diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/ops/cmul/docs/types/test.ts deleted file mode 100644 index 9133c8a1bc9..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/docs/types/test.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2019 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import Complex128 = require( '@stdlib/complex/float64/ctor' ); -import cmul = require( './index' ); - - -// TESTS // - -// The function returns a complex number... -{ - const z = new Complex128( 1.0, 1.0 ); - - cmul( z, z ); // $ExpectType Complex128 -} - -// The compiler throws an error if the function is provided a first argument which is not a complex number... -{ - const z = new Complex128( 1.0, 1.0 ); - - cmul( true, z ); // $ExpectError - cmul( false, z ); // $ExpectError - cmul( null, z ); // $ExpectError - cmul( undefined, z ); // $ExpectError - cmul( '5', z ); // $ExpectError - cmul( [], z ); // $ExpectError - cmul( {}, z ); // $ExpectError - cmul( ( x: number ): number => x, z ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not a complex number... -{ - const z = new Complex128( 1.0, 1.0 ); - - cmul( z, true ); // $ExpectError - cmul( z, false ); // $ExpectError - cmul( z, null ); // $ExpectError - cmul( z, undefined ); // $ExpectError - cmul( z, '5' ); // $ExpectError - cmul( z, [] ); // $ExpectError - cmul( z, {} ); // $ExpectError - cmul( z, ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const z = new Complex128( 1.0, 1.0 ); - - cmul(); // $ExpectError - cmul( z ); // $ExpectError - cmul( z, z, z ); // $ExpectError -} diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/ops/cmul/examples/c/Makefile deleted file mode 100644 index 70c91f4e131..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/examples/c/Makefile +++ /dev/null @@ -1,146 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# VARIABLES # - -ifndef VERBOSE - QUIET := @ -else - QUIET := -endif - -# Determine the OS ([1][1], [2][2]). -# -# [1]: https://en.wikipedia.org/wiki/Uname#Examples -# [2]: http://stackoverflow.com/a/27776822/2225624 -OS ?= $(shell uname) -ifneq (, $(findstring MINGW,$(OS))) - OS := WINNT -else -ifneq (, $(findstring MSYS,$(OS))) - OS := WINNT -else -ifneq (, $(findstring CYGWIN,$(OS))) - OS := WINNT -else -ifneq (, $(findstring Windows_NT,$(OS))) - OS := WINNT -endif -endif -endif -endif - -# Define the program used for compiling C source files: -ifdef C_COMPILER - CC := $(C_COMPILER) -else - CC := gcc -endif - -# Define the command-line options when compiling C files: -CFLAGS ?= \ - -std=c99 \ - -O3 \ - -Wall \ - -pedantic - -# Determine whether to generate position independent code ([1][1], [2][2]). -# -# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options -# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option -ifeq ($(OS), WINNT) - fPIC ?= -else - fPIC ?= -fPIC -endif - -# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): -INCLUDE ?= - -# List of source files: -SOURCE_FILES ?= - -# List of libraries (e.g., `-lopenblas -lpthread`): -LIBRARIES ?= - -# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): -LIBPATH ?= - -# List of C targets: -c_targets := example.out - - -# RULES # - -#/ -# Compiles source files. -# -# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) -# @param {string} [CFLAGS] - C compiler options -# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) -# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) -# @param {string} [SOURCE_FILES] - list of source files -# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) -# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) -# -# @example -# make -# -# @example -# make all -#/ -all: $(c_targets) - -.PHONY: all - -#/ -# Compiles C source files. -# -# @private -# @param {string} CC - C compiler (e.g., `gcc`) -# @param {string} CFLAGS - C compiler options -# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) -# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) -# @param {string} SOURCE_FILES - list of source files -# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) -# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) -#/ -$(c_targets): %.out: %.c - $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) - -#/ -# Runs compiled examples. -# -# @example -# make run -#/ -run: $(c_targets) - $(QUIET) ./$< - -.PHONY: run - -#/ -# Removes generated files. -# -# @example -# make clean -#/ -clean: - $(QUIET) -rm -f *.o *.out - -.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/examples/c/example.c b/lib/node_modules/@stdlib/math/base/ops/cmul/examples/c/example.c deleted file mode 100644 index fd8b0c14cfb..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/examples/c/example.c +++ /dev/null @@ -1,46 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2021 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -#include "stdlib/math/base/ops/cmul.h" -#include "stdlib/complex/float64/ctor.h" -#include "stdlib/complex/float64/reim.h" -#include - -int main( void ) { - const stdlib_complex128_t x[] = { - stdlib_complex128( 3.14, 1.5 ), - stdlib_complex128( -3.14, 1.5 ), - stdlib_complex128( 0.0, -0.0 ), - stdlib_complex128( 0.0/0.0, 0.0/0.0 ) - }; - - stdlib_complex128_t v; - stdlib_complex128_t y; - double re; - double im; - int i; - for ( i = 0; i < 4; i++ ) { - v = x[ i ]; - stdlib_complex128_reim( v, &re, &im ); - printf( "z = %lf + %lfi\n", re, im ); - - y = stdlib_base_cmul( v, v ); - stdlib_complex128_reim( y, &re, &im ); - printf( "cmul(z, z) = %lf + %lfi\n", re, im ); - } -} diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/examples/index.js b/lib/node_modules/@stdlib/math/base/ops/cmul/examples/index.js deleted file mode 100644 index 7d93f8be7ba..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/examples/index.js +++ /dev/null @@ -1,37 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var Complex128 = require( '@stdlib/complex/float64/ctor' ); -var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; -var cmul = require( './../lib' ); - -var rand; -var z1; -var z2; -var z3; -var i; - -rand = discreteUniform( -50, 50 ); -for ( i = 0; i < 100; i++ ) { - z1 = new Complex128( rand(), rand() ); - z2 = new Complex128( rand(), rand() ); - z3 = cmul( z1, z2 ); - console.log( '(%s) * (%s) = %s', z1.toString(), z2.toString(), z3.toString() ); -} diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/include.gypi b/lib/node_modules/@stdlib/math/base/ops/cmul/include.gypi deleted file mode 100644 index 3b437d52479..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/include.gypi +++ /dev/null @@ -1,53 +0,0 @@ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# A GYP include file for building a Node.js native add-on. -# -# Main documentation: -# -# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md -# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md -{ - # Define variables to be used throughout the configuration for all targets: - 'variables': { - # Source directory: - 'src_dir': './src', - - # Include directories: - 'include_dirs': [ - ' -* -* var z2 = new Complex128( -2.0, 1.0 ); -* // returns -* -* var out = cmul( z1, z2 ); -* // returns -* -* var re = real( out ); -* // returns -13.0 -* -* var im = imag( out ); -* // returns -1.0 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/lib/main.js b/lib/node_modules/@stdlib/math/base/ops/cmul/lib/main.js deleted file mode 100644 index 7f81e3b58ca..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/lib/main.js +++ /dev/null @@ -1,70 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var Complex128 = require( '@stdlib/complex/float64/ctor' ); -var real = require( '@stdlib/complex/float64/real' ); -var imag = require( '@stdlib/complex/float64/imag' ); - - -// MAIN // - -/** -* Multiplies two double-precision complex floating-point numbers. -* -* @param {Complex128} z1 - complex number -* @param {Complex128} z2 - complex number -* @returns {Complex128} result -* -* @example -* var Complex128 = require( '@stdlib/complex/float64/ctor' ); -* var real = require( '@stdlib/complex/float64/real' ); -* var imag = require( '@stdlib/complex/float64/imag' ); -* -* var z1 = new Complex128( 5.0, 3.0 ); -* // returns -* -* var z2 = new Complex128( -2.0, 1.0 ); -* // returns -* -* var out = cmul( z1, z2 ); -* // returns -* -* var re = real( out ); -* // returns -13.0 -* -* var im = imag( out ); -* // returns -1.0 -*/ -function cmul( z1, z2 ) { - var re1 = real( z1 ); - var re2 = real( z2 ); - var im1 = imag( z1 ); - var im2 = imag( z2 ); - var re = (re1*re2) - (im1*im2); - var im = (re1*im2) + (im1*re2); - return new Complex128( re, im ); -} - - -// EXPORTS // - -module.exports = cmul; diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/lib/native.js b/lib/node_modules/@stdlib/math/base/ops/cmul/lib/native.js deleted file mode 100644 index 0f9facc1b2b..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/lib/native.js +++ /dev/null @@ -1,65 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var Complex128 = require( '@stdlib/complex/float64/ctor' ); -var addon = require( './../src/addon.node' ); - - -// MAIN // - -/** -* Multiplies two double-precision complex floating-point numbers. -* -* @private -* @param {Complex128} z1 - complex number -* @param {Complex128} z2 - complex number -* @returns {Complex128} result -* -* @example -* var Complex128 = require( '@stdlib/complex/float64/ctor' ); -* var real = require( '@stdlib/complex/float64/real' ); -* var imag = require( '@stdlib/complex/float64/imag' ); -* -* var z1 = new Complex128( 5.0, 3.0 ); -* // returns -* -* var z2 = new Complex128( -2.0, 1.0 ); -* // returns -* -* var out = cmul( z1, z2 ); -* // returns -* -* var re = real( out ); -* // returns -13.0 -* -* var im = imag( out ); -* // returns -1.0 -*/ -function cmul( z1, z2 ) { - var v = addon( z1, z2 ); - return new Complex128( v.re, v.im ); -} - - -// EXPORTS // - -module.exports = cmul; diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/manifest.json b/lib/node_modules/@stdlib/math/base/ops/cmul/manifest.json deleted file mode 100644 index 48efffba21d..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/manifest.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "options": { - "task": "build" - }, - "fields": [ - { - "field": "src", - "resolve": true, - "relative": true - }, - { - "field": "include", - "resolve": true, - "relative": true - }, - { - "field": "libraries", - "resolve": false, - "relative": false - }, - { - "field": "libpath", - "resolve": true, - "relative": false - } - ], - "confs": [ - { - "task": "build", - "src": [ - "./src/main.c" - ], - "include": [ - "./include" - ], - "libraries": [], - "libpath": [], - "dependencies": [ - "@stdlib/math/base/napi/binary", - "@stdlib/complex/float64/ctor", - "@stdlib/complex/float64/reim" - ] - }, - { - "task": "benchmark", - "src": [ - "./src/main.c" - ], - "include": [ - "./include" - ], - "libraries": [], - "libpath": [], - "dependencies": [ - "@stdlib/complex/float64/ctor", - "@stdlib/complex/float64/reim" - ] - }, - { - "task": "examples", - "src": [ - "./src/main.c" - ], - "include": [ - "./include" - ], - "libraries": [], - "libpath": [], - "dependencies": [ - "@stdlib/complex/float64/ctor", - "@stdlib/complex/float64/reim" - ] - } - ] -} diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/package.json b/lib/node_modules/@stdlib/math/base/ops/cmul/package.json deleted file mode 100644 index 99f202b6db7..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "@stdlib/math/base/ops/cmul", - "version": "0.0.0", - "description": "Multiply two double-precision complex floating-point numbers.", - "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "gypfile": true, - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "include": "./include", - "lib": "./lib", - "src": "./src", - "test": "./test" - }, - "types": "./docs/types", - "scripts": {}, - "homepage": "https://github.com/stdlib-js/stdlib", - "repository": { - "type": "git", - "url": "git://github.com/stdlib-js/stdlib.git" - }, - "bugs": { - "url": "https://github.com/stdlib-js/stdlib/issues" - }, - "dependencies": {}, - "devDependencies": {}, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], - "keywords": [ - "stdlib", - "stdmath", - "mathematics", - "math", - "cmul", - "mul", - "mult", - "multiply", - "multiplication", - "arithmetic", - "complex", - "cmplx", - "number" - ] -} diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/src/Makefile b/lib/node_modules/@stdlib/math/base/ops/cmul/src/Makefile deleted file mode 100644 index f79b8723871..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/src/Makefile +++ /dev/null @@ -1,70 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# VARIABLES # - -ifndef VERBOSE - QUIET := @ -else - QUIET := -endif - -# Determine the OS ([1][1], [2][2]). -# -# [1]: https://en.wikipedia.org/wiki/Uname#Examples -# [2]: http://stackoverflow.com/a/27776822/2225624 -OS ?= $(shell uname) -ifneq (, $(findstring MINGW,$(OS))) - OS := WINNT -else -ifneq (, $(findstring MSYS,$(OS))) - OS := WINNT -else -ifneq (, $(findstring CYGWIN,$(OS))) - OS := WINNT -else -ifneq (, $(findstring Windows_NT,$(OS))) - OS := WINNT -endif -endif -endif -endif - - -# RULES # - -#/ -# Removes generated files for building an add-on. -# -# @example -# make clean-addon -#/ -clean-addon: - $(QUIET) -rm -f *.o *.node - -.PHONY: clean-addon - -#/ -# Removes generated files. -# -# @example -# make clean -#/ -clean: clean-addon - -.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/src/addon.c b/lib/node_modules/@stdlib/math/base/ops/cmul/src/addon.c deleted file mode 100644 index 9563d788d0d..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/src/addon.c +++ /dev/null @@ -1,23 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -#include "stdlib/math/base/ops/cmul.h" -#include "stdlib/math/base/napi/binary.h" - -// cppcheck-suppress shadowFunction -STDLIB_MATH_BASE_NAPI_MODULE_ZZ_Z( stdlib_base_cmul ) diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/src/main.c b/lib/node_modules/@stdlib/math/base/ops/cmul/src/main.c deleted file mode 100644 index ca57f64ff98..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/src/main.c +++ /dev/null @@ -1,61 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2021 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -#include "stdlib/math/base/ops/cmul.h" -#include "stdlib/complex/float64/ctor.h" -#include "stdlib/complex/float64/reim.h" - -/** -* Multiplies two double-precision complex floating-point numbers. -* -* @param z1 input value -* @param z2 input value -* @return result -* -* @example -* #include "stdlib/complex/float64/ctor.h" -* #include "stdlib/complex/float64/real.h" -* #include "stdlib/complex/float64/imag.h" -* -* stdlib_complex128_t z1 = stdlib_complex128( 5.0, 3.0 ); -* stdlib_complex128_t z2 = stdlib_complex128( -2.0, 1.0 ); -* -* stdlib_complex128_t out = stdlib_base_cmul( z1, z2 ); -* -* double re = stdlib_complex128_real( out ); -* // returns -13.0 -* -* double im = stdlib_complex128_imag( out ); -* // returns -1.0 -*/ -stdlib_complex128_t stdlib_base_cmul( const stdlib_complex128_t z1, const stdlib_complex128_t z2 ) { - double re1; - double re2; - double im1; - double im2; - double re; - double im; - - stdlib_complex128_reim( z1, &re1, &im1 ); - stdlib_complex128_reim( z2, &re2, &im2 ); - - re = (re1*re2) - (im1*im2); - im = (re1*im2) + (im1*re2); - - return stdlib_complex128( re, im ); -} diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/test/test.js b/lib/node_modules/@stdlib/math/base/ops/cmul/test/test.js deleted file mode 100644 index 2714a0e7bc3..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/test/test.js +++ /dev/null @@ -1,110 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var isnan = require( '@stdlib/math/base/assert/is-nan' ); -var Complex128 = require( '@stdlib/complex/float64/ctor' ); -var real = require( '@stdlib/complex/float64/real' ); -var imag = require( '@stdlib/complex/float64/imag' ); -var cmul = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof cmul, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function multiplies two complex numbers', function test( t ) { - var z1; - var z2; - var v; - - z1 = new Complex128( 5.0, 3.0 ); - z2 = new Complex128( -2.0, 1.0 ); - - v = cmul( z1, z2 ); - - t.strictEqual( real( v ), -13.0, 'returns expected value' ); - t.strictEqual( imag( v ), -1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'if a real or imaginary component is `NaN`, all components are `NaN`', function test( t ) { - var z1; - var z2; - var v; - - z1 = new Complex128( NaN, 3.0 ); - z2 = new Complex128( -2.0, 1.0 ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( 5.0, 3.0 ); - z2 = new Complex128( NaN, 1.0 ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( NaN, 3.0 ); - z2 = new Complex128( NaN, 1.0 ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( 5.0, NaN ); - z2 = new Complex128( -2.0, 1.0 ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( 5.0, 3.0 ); - z2 = new Complex128( -2.0, NaN ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( 5.0, NaN ); - z2 = new Complex128( -2.0, NaN ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( NaN, NaN ); - z2 = new Complex128( NaN, NaN ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - t.end(); -}); diff --git a/lib/node_modules/@stdlib/math/base/ops/cmul/test/test.native.js b/lib/node_modules/@stdlib/math/base/ops/cmul/test/test.native.js deleted file mode 100644 index a48dd9a9c4e..00000000000 --- a/lib/node_modules/@stdlib/math/base/ops/cmul/test/test.native.js +++ /dev/null @@ -1,119 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolve = require( 'path' ).resolve; -var tape = require( 'tape' ); -var isnan = require( '@stdlib/math/base/assert/is-nan' ); -var Complex128 = require( '@stdlib/complex/float64/ctor' ); -var real = require( '@stdlib/complex/float64/real' ); -var imag = require( '@stdlib/complex/float64/imag' ); -var tryRequire = require( '@stdlib/utils/try-require' ); - - -// VARIABLES // - -var cmul = tryRequire( resolve( __dirname, './../lib/native.js' ) ); -var opts = { - 'skip': ( cmul instanceof Error ) -}; - - -// TESTS // - -tape( 'main export is a function', opts, function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof cmul, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function multiplies two complex numbers', opts, function test( t ) { - var z1; - var z2; - var v; - - z1 = new Complex128( 5.0, 3.0 ); - z2 = new Complex128( -2.0, 1.0 ); - - v = cmul( z1, z2 ); - - t.strictEqual( real( v ), -13.0, 'returns expected value' ); - t.strictEqual( imag( v ), -1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'if a real or imaginary component is `NaN`, all components are `NaN`', opts, function test( t ) { - var z1; - var z2; - var v; - - z1 = new Complex128( NaN, 3.0 ); - z2 = new Complex128( -2.0, 1.0 ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( 5.0, 3.0 ); - z2 = new Complex128( NaN, 1.0 ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( NaN, 3.0 ); - z2 = new Complex128( NaN, 1.0 ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( 5.0, NaN ); - z2 = new Complex128( -2.0, 1.0 ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( 5.0, 3.0 ); - z2 = new Complex128( -2.0, NaN ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( 5.0, NaN ); - z2 = new Complex128( -2.0, NaN ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - z1 = new Complex128( NaN, NaN ); - z2 = new Complex128( NaN, NaN ); - - v = cmul( z1, z2 ); - t.strictEqual( isnan( real( v ) ), true, 'returns expected value' ); - t.strictEqual( isnan( imag( v ) ), true, 'returns expected value' ); - - t.end(); -});