diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/README.md b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/README.md
new file mode 100644
index 000000000000..a00f29dd433e
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/README.md
@@ -0,0 +1,217 @@
+
+
+# geluQuick
+
+> Evaluate the [Gaussian error linear unit][activation-function] (GELU) using a quick 1.702 approximation.
+
+
+
+The [Gaussian error linear unit][activation-function] (GELU) using a quick 1.702 approximation is defined as:
+
+
+
+```math
+\mathrm{gelu}(x) \approx x \cdot \operatorname{expit}( 1.702 \, x )
+```
+
+
+
+where $\operatorname{expit}(x)$ is the [standard logistic function][logistic-function].
+
+
+
+
+
+
+
+## Usage
+
+```javascript
+var geluQuick = require( '@stdlib/math/base/special/fast/gelu-quick' );
+```
+
+#### geluQuick( x )
+
+Evaluates the Gaussian Error Linear Unit (GELU) activation function using a quick 1.702 approximation.
+
+```javascript
+var v = geluQuick( 0.0 );
+// returns 0.0
+
+v = geluQuick( 1.0 );
+// returns ~0.8458
+
+v = geluQuick( -Infinity );
+// returns -0.0
+
+v = geluQuick( Infinity );
+// returns Infinity
+
+v = geluQuick( NaN );
+// returns NaN
+```
+
+
+
+
+
+
+
+## Examples
+
+
+
+```javascript
+var uniform = require( '@stdlib/random/array/uniform' );
+var logEachMap = require( '@stdlib/console/log-each-map' );
+var geluQuick = require( '@stdlib/math/base/special/fast/gelu-quick' );
+
+var opts = {
+ 'dtype': 'float64'
+};
+var x = uniform( 100, -5.0, 5.0, opts );
+
+logEachMap( 'geluQuick(%0.4f) = %0.4f', x, geluQuick );
+```
+
+
+
+
+
+
+
+* * *
+
+
+
+## C APIs
+
+
+
+
+
+
+
+
+
+
+
+### Usage
+
+```c
+#include "stdlib/math/base/special/fast/gelu_quick.h"
+```
+
+#### stdlib_base_fast_gelu_quick( x )
+
+Evaluates the Gaussian Error Linear Unit (GELU) activation function using a quick 1.702 approximation.
+
+```c
+double y = stdlib_base_fast_gelu_quick( 1.0 );
+// returns ~0.8458
+```
+
+The function accepts the following arguments:
+
+- **x**: `[in] double` input value.
+
+```c
+double stdlib_base_fast_gelu_quick( const double x );
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### Examples
+
+```c
+#include "stdlib/math/base/special/fast/gelu_quick.h"
+#include
+
+int main( void ) {
+ const double x[] = { -5.0, -3.89, -2.78, -1.67, -0.56, 0.56, 1.67, 2.78, 3.89, 5.0 };
+
+ double v;
+ int i;
+ for ( i = 0; i < 10; i++ ) {
+ v = stdlib_base_fast_gelu_quick( x[ i ] );
+ printf( "gelu_quick(%lf) = %lf\n", x[ i ], v );
+ }
+}
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[activation-function]: https://en.wikipedia.org/wiki/Activation_function
+
+[logistic-function]: https://en.wikipedia.org/wiki/Logistic_function
+
+
+
+[@stdlib/math/base/special/expit]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/expit
+
+[@stdlib/math/base/special/fast/gelu-tanh]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/fast/gelu-tanh
+
+
+
+
+
+
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/benchmark/benchmark.js
new file mode 100644
index 000000000000..8a1175e3d783
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/benchmark/benchmark.js
@@ -0,0 +1,52 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 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/array/uniform' );
+var isnan = require( '@stdlib/math/base/assert/is-nan' );
+var pkg = require( './../package.json' ).name;
+var geluQuick = require( './../lib' );
+
+
+// MAIN //
+
+bench( pkg, function benchmark( b ) {
+ var x;
+ var y;
+ var i;
+
+ x = uniform( 100, -5.0, 5.0 );
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ y = geluQuick( x[ i % x.length ] );
+ if ( isnan( y ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ }
+ b.toc();
+ if ( isnan( y ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ b.pass( 'benchmark finished' );
+ b.end();
+});
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/benchmark/benchmark.native.js
new file mode 100644
index 000000000000..95ccc0c92e10
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/benchmark/benchmark.native.js
@@ -0,0 +1,62 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 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/array/uniform' );
+var isnan = require( '@stdlib/math/base/assert/is-nan' );
+var tryRequire = require( '@stdlib/utils/try-require' );
+var format = require( '@stdlib/string/format' );
+var pkg = require( './../package.json' ).name;
+
+
+// VARIABLES //
+
+var geluQuick = tryRequire( resolve( __dirname, './../lib/native.js' ) );
+var opts = {
+ 'skip': ( geluQuick instanceof Error )
+};
+
+
+// MAIN //
+
+bench( format( '%s::native', pkg ), opts, function benchmark( b ) {
+ var x;
+ var y;
+ var i;
+
+ x = uniform( 100, -5.0, 5.0 );
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ y = geluQuick( x[ i % x.length ] );
+ if ( isnan( y ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ }
+ b.toc();
+ if ( isnan( y ) ) {
+ b.fail( 'should not return NaN' );
+ }
+ b.pass( 'benchmark finished' );
+ b.end();
+});
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/benchmark/c/native/Makefile
new file mode 100644
index 000000000000..1e0103324ee3
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/benchmark/c/native/Makefile
@@ -0,0 +1,146 @@
+#/
+# @license Apache-2.0
+#
+# Copyright (c) 2026 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`)
+# @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/special/fast/gelu-quick/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/benchmark/c/native/benchmark.c
new file mode 100644
index 000000000000..0d68f409de3c
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/benchmark/c/native/benchmark.c
@@ -0,0 +1,136 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 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/special/fast/gelu_quick.h"
+#include
+#include
+#include
+#include
+#include
+
+#define NAME "gelu-quick"
+#define ITERATIONS 1000000
+#define REPEATS 3
+
+/**
+* Prints the TAP version.
+*/
+static void print_version( void ) {
+ printf( "TAP version 13\n" );
+}
+
+/**
+* Prints the TAP summary.
+*
+* @param total total number of tests
+* @param passing total number of passing tests
+*/
+static 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
+*/
+static 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
+*/
+static double tic( void ) {
+ 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
+*/
+static double rand_double( void ) {
+ int r = rand();
+ return (double)r / ( (double)RAND_MAX + 1.0 );
+}
+
+/**
+* Runs a benchmark.
+*
+* @return elapsed time in seconds
+*/
+static double benchmark( void ) {
+ double elapsed;
+ double x[ 100 ];
+ double y;
+ double t;
+ int i;
+
+ for ( i = 0; i < 100; i++ ) {
+ x[ i ] = ( rand_double()*20.0 ) - 10.0;
+ }
+
+ t = tic();
+ for ( i = 0; i < ITERATIONS; i++ ) {
+ y = stdlib_base_fast_gelu_quick( x[ i % 100 ] );
+ if ( y != y ) {
+ printf( "should not return NaN\n" );
+ break;
+ }
+ }
+ elapsed = tic() - t;
+ if ( y != y ) {
+ 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/special/fast/gelu-quick/binding.gyp b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/binding.gyp
new file mode 100644
index 000000000000..0d6508a12e99
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/binding.gyp
@@ -0,0 +1,170 @@
+# @license Apache-2.0
+#
+# Copyright (c) 2026 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/special/fast/gelu-quick/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/docs/repl.txt
new file mode 100644
index 000000000000..b0d510910207
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/docs/repl.txt
@@ -0,0 +1,31 @@
+
+{{alias}}( x )
+ Evaluates the Gaussian Error Linear Unit (GELU) activation function using a
+ quick 1.702 approximation.
+
+ Parameters
+ ----------
+ x: number
+ Input value.
+
+ Returns
+ -------
+ y: number
+ Function value.
+
+ Examples
+ --------
+ > var y = {{alias}}( 0.0 )
+ 0.0
+ > y = {{alias}}( 1.0 )
+ ~0.8458
+ > y = {{alias}}( -Infinity )
+ -0.0
+ > y = {{alias}}( Infinity )
+ Infinity
+ > y = {{alias}}( NaN )
+ NaN
+
+ See Also
+ --------
+
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/docs/types/index.d.ts
new file mode 100644
index 000000000000..28486a62dc4f
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/docs/types/index.d.ts
@@ -0,0 +1,52 @@
+/*
+* @license Apache-2.0
+*
+* Copyright (c) 2026 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
+
+/**
+* Evaluates the Gaussian Error Linear Unit (GELU) activation function using a quick 1.702 approximation.
+*
+* @param x - input value
+* @returns function value
+*
+* @example
+* var v = geluQuick( 0.0 );
+* // returns 0.0
+*
+* @example
+* var v = geluQuick( 1.0 );
+* // returns ~0.8458
+*
+* @example
+* var v = geluQuick( -Infinity );
+* // returns -0.0
+*
+* @example
+* var v = geluQuick( Infinity );
+* // returns Infinity
+*
+* @example
+* var v = geluQuick( NaN );
+* // returns NaN
+*/
+declare function geluQuick( x: number ): number;
+
+
+// EXPORTS //
+
+export = geluQuick;
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/docs/types/test.ts
new file mode 100644
index 000000000000..aa0830a97e35
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/docs/types/test.ts
@@ -0,0 +1,44 @@
+/*
+* @license Apache-2.0
+*
+* Copyright (c) 2026 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 geluQuick = require( './index' );
+
+
+// TESTS //
+
+// The function returns a number...
+{
+ geluQuick( 8 ); // $ExpectType number
+}
+
+// The compiler throws an error if the function is provided a value other than a number...
+{
+ geluQuick( true ); // $ExpectError
+ geluQuick( false ); // $ExpectError
+ geluQuick( null ); // $ExpectError
+ geluQuick( undefined ); // $ExpectError
+ geluQuick( '5' ); // $ExpectError
+ geluQuick( [] ); // $ExpectError
+ geluQuick( {} ); // $ExpectError
+ geluQuick( ( x: number ): number => x ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided insufficient arguments...
+{
+ geluQuick(); // $ExpectError
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/examples/c/Makefile
new file mode 100644
index 000000000000..5e0511731e6e
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/examples/c/Makefile
@@ -0,0 +1,146 @@
+#/
+# @license Apache-2.0
+#
+# Copyright (c) 2026 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`)
+# @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/special/fast/gelu-quick/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/examples/c/example.c
new file mode 100644
index 000000000000..611922843625
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/examples/c/example.c
@@ -0,0 +1,31 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 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/special/fast/gelu_quick.h"
+#include
+
+int main( void ) {
+ const double x[] = { -5.0, -3.89, -2.78, -1.67, -0.56, 0.56, 1.67, 2.78, 3.89, 5.0 };
+
+ double v;
+ int i;
+ for ( i = 0; i < 10; i++ ) {
+ v = stdlib_base_fast_gelu_quick( x[ i ] );
+ printf( "gelu_quick(%lf) = %lf\n", x[ i ], v );
+ }
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/examples/index.js b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/examples/index.js
new file mode 100644
index 000000000000..ba88e5021bb7
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/examples/index.js
@@ -0,0 +1,30 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 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 uniform = require( '@stdlib/random/array/uniform' );
+var logEachMap = require( '@stdlib/console/log-each-map' );
+var geluQuick = require( './../lib' );
+
+var opts = {
+ 'dtype': 'float64'
+};
+var x = uniform( 100, -5.0, 5.0, opts );
+
+logEachMap( 'geluQuick(%0.4f) = %0.4f', x, geluQuick );
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/include.gypi b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/include.gypi
new file mode 100644
index 000000000000..bee8d41a2caf
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/include.gypi
@@ -0,0 +1,53 @@
+# @license Apache-2.0
+#
+# Copyright (c) 2026 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': [
+ '=0.10.0",
+ "npm": ">2.7.0"
+ },
+ "os": [
+ "aix",
+ "darwin",
+ "freebsd",
+ "linux",
+ "macos",
+ "openbsd",
+ "sunos",
+ "win32",
+ "windows"
+ ],
+ "keywords": [
+ "stdlib",
+ "stdfastmath",
+ "mathematics",
+ "math",
+ "fastmath",
+ "fast",
+ "gelu",
+ "gelu-quick",
+ "activation",
+ "activation function",
+ "neural",
+ "neural network",
+ "deep learning",
+ "approximation",
+ "quick"
+ ]
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/src/Makefile b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/src/Makefile
new file mode 100644
index 000000000000..2caf905cedbe
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/src/Makefile
@@ -0,0 +1,70 @@
+#/
+# @license Apache-2.0
+#
+# Copyright (c) 2026 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/special/fast/gelu-quick/src/addon.c b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/src/addon.c
new file mode 100644
index 000000000000..3b5319c9d52b
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/src/addon.c
@@ -0,0 +1,22 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 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/special/fast/gelu_quick.h"
+#include "stdlib/math/base/napi/unary.h"
+
+STDLIB_MATH_BASE_NAPI_MODULE_D_D( stdlib_base_fast_gelu_quick )
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/src/main.c b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/src/main.c
new file mode 100644
index 000000000000..b16a05b2c5cc
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/src/main.c
@@ -0,0 +1,43 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 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/special/fast/gelu_quick.h"
+#include "stdlib/constants/float64/ninf.h"
+#include "stdlib/constants/float64/nan.h"
+#include "stdlib/math/base/assert/is_nan.h"
+#include "stdlib/math/base/special/expit.h"
+
+/**
+* Evaluates the Gaussian Error Linear Unit (GELU) activation function using a quick 1.702 approximation.
+*
+* @param x input value
+* @return function value
+*
+* @example
+* double v = stdlib_base_fast_gelu_quick( 0.0 );
+* // returns 0.0
+*/
+double stdlib_base_fast_gelu_quick( const double x ) {
+ if ( stdlib_base_is_nan( x ) ) {
+ return STDLIB_CONSTANT_FLOAT64_NAN;
+ }
+ if ( x == STDLIB_CONSTANT_FLOAT64_NINF ) {
+ return -0.0;
+ }
+ return x * stdlib_base_expit( 1.702 * x );
+}
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_large_negative.json b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_large_negative.json
new file mode 100644
index 000000000000..57259eaaf3ec
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_large_negative.json
@@ -0,0 +1 @@
+{"x": [-20.0, -19.88, -19.75, -19.62, -19.5, -19.38, -19.25, -19.12, -19.0, -18.88, -18.75, -18.62, -18.5, -18.38, -18.25, -18.12, -18.0, -17.88, -17.75, -17.62, -17.5, -17.38, -17.25, -17.12, -17.0, -16.88, -16.75, -16.62, -16.5, -16.38, -16.25, -16.12, -16.0, -15.88, -15.75, -15.62, -15.5, -15.38, -15.25, -15.12, -15.0, -14.88, -14.75, -14.62, -14.5, -14.38, -14.25, -14.12, -14.0, -13.88, -13.75, -13.62, -13.5, -13.38, -13.25, -13.12, -13.0, -12.88, -12.75, -12.62, -12.5, -12.38, -12.25, -12.12, -12.0, -11.88, -11.75, -11.62, -11.5, -11.38, -11.25, -11.12, -11.0, -10.88, -10.75, -10.62, -10.5, -10.38, -10.25, -10.12, -10.0, -9.88, -9.75, -9.62, -9.5, -9.38, -9.25, -9.12, -9.0, -8.88, -8.75, -8.62, -8.5, -8.38, -8.25, -8.12, -8.0, -7.88, -7.75, -7.62, -7.5, -7.38, -7.25, -7.12, -7.0, -6.88, -6.75, -6.62, -6.5, -6.38, -6.25, -6.12, -6.0, -5.88, -5.75, -5.62, -5.5, -5.38, -5.25, -5.12, -5.0], "expected": [-3.293410241399374e-14, -4.015434268805465e-14, -4.9770870653503784e-14, -6.168777955938944e-14, -7.52029801993006e-14, -9.167575975200234e-14, -1.1361180926077495e-13, -1.4079026525698654e-13, -1.7160844070077515e-13, -2.0916419292782918e-13, -2.591663535784425e-13, -3.2110644314939185e-13, -3.9132840854194365e-13, -4.768869743859649e-13, -5.9077868685021e-13, -7.318332558993801e-13, -8.917164071330856e-13, -1.0864808396974557e-12, -1.3456896490291734e-12, -1.6666501878656224e-12, -2.0303780289166543e-12, -2.473369115934904e-12, -3.0628114216585704e-12, -3.792511583834898e-12, -4.619259726909871e-12, -5.625954401614351e-12, -6.965151608578248e-12, -8.622610709527734e-12, -1.0500065516749593e-11, -1.2785633967735738e-11, -1.5825364876057918e-11, -1.9586525454521776e-11, -2.384584141945032e-11, -2.902976177235471e-11, -3.592241526167716e-11, -4.444859088520805e-11, -5.41014582309347e-11, -6.584668465531286e-11, -8.145906458034393e-11, -1.0076584779531697e-10, -1.2261769166197523e-10, -1.4919872547247194e-10, -1.8452116986276868e-10, -2.2818839240169162e-10, -2.77596817807071e-10, -3.3768025890736605e-10, -4.1749727720873133e-10, -5.161375748940865e-10, -6.277101061615071e-10, -7.633449842339002e-10, -9.434656337930427e-10, -1.1659837340098703e-09, -1.4175861379486692e-09, -1.7233445206731282e-09, -2.129236339156727e-09, -2.630472848311514e-09, -3.197007430106212e-09, -3.885227564717353e-09, -4.79846995716037e-09, -5.925758487464397e-09, -7.199376900491869e-09, -8.745926975627503e-09, -1.0797253249744091e-08, -1.3328209665262217e-08, -1.6186417835847626e-08, -1.9655597331456352e-08, -2.4254910105682887e-08, -2.992677563312179e-08, -3.632887462024032e-08, -4.409574364329395e-08, -5.438747893657368e-08, -6.707229850316783e-08, -8.138256837484064e-08, -9.873426697335611e-08, -1.2171370178213553e-07, -1.5001943293936247e-07, -1.8193347108907815e-07, -2.2060785054620236e-07, -2.717937525578133e-07, -3.348020520313807e-07, -4.057961294855312e-07, -4.917735267002435e-07, -6.054869799897995e-07, -7.453620132211193e-07, -9.028510056437016e-07, -1.093441655978963e-06, -1.3453227728108768e-06, -1.654899332329867e-06, -2.00317798655851e-06, -2.42432186494205e-06, -2.9804190687108127e-06, -3.663266433855826e-06, -4.430782478574473e-06, -5.358037838070568e-06, -6.581238572883603e-06, -8.081679556672038e-06, -9.766428865730381e-06, -1.1799733711616286e-05, -1.4479031988002204e-05, -1.7761702540353337e-05, -2.144326734469309e-05, -2.588129972588965e-05, -3.1721911334084535e-05, -3.886805963906318e-05, -4.687169668280189e-05, -5.650680066594907e-05, -6.916831040688716e-05, -8.463544436708441e-05, -0.00010193109573866565, -0.0001227192738091425, -0.0001499899096808192, -0.00018324108912082991, -0.00022035354978739243, -0.00026487612712798044, -0.00032316214981923167, -0.00039407139558324234, -0.00047303654130852993, -0.0005675526007035916, -0.0006909773268717626, -0.0008407217760259052, -0.0010070162673523693]}
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_large_positive.json b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_large_positive.json
new file mode 100644
index 000000000000..a003fe99e28c
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_large_positive.json
@@ -0,0 +1 @@
+{"x": [5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0, 10.5, 11.0, 11.5, 12.0, 12.5, 13.0, 13.5, 14.0, 14.5, 15.0, 15.5, 16.0, 16.5, 17.0, 17.5, 18.0, 18.5, 19.0, 19.5, 20.0, 20.5, 21.0, 21.5, 22.0, 22.5, 23.0, 23.5, 24.0, 24.5, 25.0, 25.5, 26.0, 26.5, 27.0, 27.5, 28.0, 28.5, 29.0, 29.5, 30.0, 30.5, 31.0, 31.5, 32.0, 32.5, 33.0, 33.5, 34.0, 34.5, 35.0, 35.5, 36.0, 36.5, 37.0, 37.5, 38.0, 38.5, 39.0, 39.5, 40.0, 40.5, 41.0, 41.5, 42.0, 42.5, 43.0, 43.5, 44.0, 44.5, 45.0, 45.5, 46.0, 46.5, 47.0, 47.5, 48.0, 48.5, 49.0, 49.5, 50.0], "expected": [4.998992983732648, 5.499526963458691, 5.999779646450213, 6.499898068904262, 6.999953128303318, 7.499978556732656, 7.999990233571134, 8.499995569217521, 8.999997996822012, 9.499999097148994, 9.99999959420387, 10.499999818066529, 10.99999991861743, 11.499999963671126, 11.999999983813582, 12.499999992800623, 12.999999996802991, 13.499999998582412, 13.99999999937229, 14.499999999722402, 14.999999999877382, 15.4999999999459, 15.999999999976154, 16.499999999989498, 16.99999999999538, 17.499999999997968, 17.99999999999911, 18.49999999999961, 18.999999999999826, 19.499999999999925, 19.999999999999968, 20.499999999999986, 20.999999999999996, 21.499999999999996, 22.0, 22.5, 23.0, 23.5, 24.0, 24.5, 25.0, 25.5, 26.0, 26.5, 27.0, 27.5, 28.0, 28.5, 29.0, 29.5, 30.0, 30.5, 31.0, 31.5, 32.0, 32.5, 33.0, 33.5, 34.0, 34.5, 35.0, 35.5, 36.0, 36.5, 37.0, 37.5, 38.0, 38.5, 39.0, 39.5, 40.0, 40.5, 41.0, 41.5, 42.0, 42.5, 43.0, 43.5, 44.0, 44.5, 45.0, 45.5, 46.0, 46.5, 47.0, 47.5, 48.0, 48.5, 49.0, 49.5, 50.0]}
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_medium.json b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_medium.json
new file mode 100644
index 000000000000..50be4ce955da
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_medium.json
@@ -0,0 +1 @@
+{"x": [-5.0, -4.95, -4.9, -4.85, -4.8, -4.75, -4.7, -4.65, -4.6, -4.55, -4.5, -4.45, -4.4, -4.35, -4.3, -4.25, -4.2, -4.15, -4.1, -4.05, -4.0, -3.95, -3.9, -3.85, -3.8, -3.75, -3.7, -3.65, -3.6, -3.55, -3.5, -3.45, -3.4, -3.35, -3.3, -3.25, -3.2, -3.15, -3.1, -3.05, -3.0, -2.95, -2.9, -2.85, -2.8, -2.75, -2.7, -2.65, -2.6, -2.55, -2.5, -2.45, -2.4, -2.35, -2.3, -2.25, -2.2, -2.15, -2.1, -2.05, -2.0, -1.95, -1.9, -1.85, -1.8, -1.75, -1.7, -1.65, -1.6, -1.55, -1.5, -1.45, -1.4, -1.35, -1.3, -1.25, -1.2, -1.15, -1.1, -1.05, -1.0, -0.95, -0.9, -0.85, -0.8, -0.75, -0.7, -0.65, -0.6, -0.55, -0.5, -0.45, -0.4, -0.35, -0.3, -0.25, -0.2, -0.15, -0.1, -0.05, 0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.05, 1.1, 1.15, 1.2, 1.25, 1.3, 1.35, 1.4, 1.45, 1.5, 1.55, 1.6, 1.65, 1.7, 1.75, 1.8, 1.85, 1.9, 1.95, 2.0, 2.05, 2.1, 2.15, 2.2, 2.25, 2.3, 2.35, 2.4, 2.45, 2.5, 2.55, 2.6, 2.65, 2.7, 2.75, 2.8, 2.85, 2.9, 2.95, 3.0, 3.05, 3.1, 3.15, 3.2, 3.25, 3.3, 3.35, 3.4, 3.45, 3.5, 3.55, 3.6, 3.65, 3.7, 3.75, 3.8, 3.85, 3.9, 3.95, 4.0, 4.05, 4.1, 4.15, 4.2, 4.25, 4.3, 4.35, 4.4, 4.45, 4.5, 4.55, 4.6, 4.65, 4.7, 4.75, 4.8, 4.85, 4.9, 4.95, 5.0], "expected": [-0.0010070162673523693, -0.001085481364311854, -0.0011699390957140671, -0.0012608347280666193, -0.0013586453072785666, -0.0014638817843601545, -0.0015770912669014479, -0.0016988594017233476, -0.0018298128940322032, -0.001970622168288852, -0.002122004175814449, -0.0022847253538866375, -0.002459604740717266, -0.0026475172502313958, -0.00284939710996929, -0.0030662414646888277, -0.0032991141473324445, -0.0035491496179154212, -0.0038175570695618186, -0.004105624699328628, -0.004414724139581062, -0.004746315043471028, -0.00510194981548118, -0.005483278474975869, -0.005892053637190607, -0.006330135592027772, -0.0067994974563366116, -0.0073022303699586694, -0.007840548699627222, -0.008416795207721064, -0.009033446134780122, -0.009693116135472435, -0.010398562997226512, -0.011152692058865812, -0.011958560233146452, -0.01281937952193459, -0.01373851989568585, -0.014719511389709505, -0.015766045248211787, -0.01688197392310152, -0.01807130970778597, -0.01933822175646669, -0.020687031206541653, -0.022122204085427033, -0.023648341643239576, -0.025270167709174066, -0.026992512621964643, -0.028820293233491653, -0.030758488429445233, -0.03281210955215405, -0.03498616504857008, -0.03728561860150524, -0.03971533993533245, -0.0422800474196033, -0.04498424152689113, -0.047832128136604604, -0.050827530617062425, -0.05397378956695573, -0.057273649058416316, -0.06072912820209615, -0.06434137685579186, -0.06811051432917234, -0.07203545000622728, -0.0761136849235601, -0.08034109351725834, -0.0847116849956529, -0.08921734412272815, -0.09384755162089388, -0.09858908493618052, -0.10342570076714071, -0.10833780155292341, -0.11330208905561716, -0.11829120926229263, -0.12327339407237639, -0.1282121066168159, -0.13306569855683067, -0.13778708929819183, -0.14232347868200354, -0.14661610630643146, -0.15060007210705767, -0.1542042340671787, -0.15735119981448173, -0.15995742924209627, -0.1619334650150535, -0.16318430673220133, -0.1636099424653622, -0.16310604827684988, -0.161564862054691, -0.15887623259908087, -0.15492883842490757, -0.1496115633936199, -0.14281500834035407, -0.13443310971183445, -0.1243648283622167, -0.11251586461840829, -0.09880035009980583, -0.08314246311111606, -0.06547791319023091, -0.04575524191638182, -0.02393689150943369, 0.0, 0.02606310849056631, 0.0542447580836182, 0.0845220868097691, 0.11685753688888395, 0.1511996499001942, 0.1874841353815917, 0.22563517163778332, 0.2655668902881656, 0.30718499165964597, 0.35038843660638014, 0.3950711615750925, 0.44112376740091913, 0.48843513794530896, 0.5368939517231501, 0.5863900575346379, 0.6368156932677986, 0.6880665349849464, 0.7400425707579037, 0.7926488001855182, 0.8457957659328212, 0.8993999278929423, 0.9533838936935686, 1.0076765213179966, 1.0622129107018083, 1.1169343014431692, 1.1717878933831842, 1.2267266059276236, 1.2817087907377072, 1.3366979109443828, 1.3916621984470765, 1.4465742992328594, 1.5014109150638195, 1.556152448379106, 1.6107826558772718, 1.665288315004347, 1.7196589064827414, 1.7738863150764401, 1.8279645499937727, 1.8818894856708277, 1.9356586231442083, 1.9892708717979037, 2.042726350941584, 2.0960262104330445, 2.149172469382938, 2.202167871863396, 2.2550157584731085, 2.307719952580397, 2.360284660064668, 2.412714381398495, 2.46501383495143, 2.5171878904478455, 2.569241511570555, 2.6211797067665086, 2.673007487378036, 2.724729832290826, 2.7763516583567602, 2.8278777959145733, 2.879312968793458, 2.9306617782435334, 2.981928690292214, 3.033118026076898, 3.084233954751788, 3.1352804886102903, 3.186261480104314, 3.2371806204780658, 3.2880414397668534, 3.3388473079411343, 3.3896014370027734, 3.440306883864528, 3.4909665538652197, 3.541583204792279, 3.592159451300373, 3.642697769630042, 3.6932005025436636, 3.743669864407972, 3.7941079463628093, 3.8445167215250238, 3.894898050184519, 3.945253684956529, 3.9955852758604187, 4.045894375300671, 4.096182442930437, 4.1464508503820845, 4.1967008858526675, 4.246933758535311, 4.297150602890031, 4.347352482749768, 4.397540395259283, 4.4477152746461135, 4.497877995824186, 4.5480293778317105, 4.598170187105968, 4.648301140598277, 4.698422908733098, 4.74853611821564, 4.798641354692721, 4.848739165271932, 4.898830060904287, 4.948914518635688, 4.998992983732648]}
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_near_zero.json b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_near_zero.json
new file mode 100644
index 000000000000..596f584b3b59
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_near_zero.json
@@ -0,0 +1 @@
+{"x": [-1.0, -0.98, -0.96, -0.94, -0.92, -0.9, -0.88, -0.86, -0.84, -0.82, -0.8, -0.78, -0.76, -0.74, -0.72, -0.7, -0.68, -0.66, -0.64, -0.62, -0.6, -0.58, -0.56, -0.54, -0.52, -0.5, -0.48, -0.46, -0.44, -0.42, -0.4, -0.38, -0.36, -0.34, -0.32, -0.3, -0.28, -0.26, -0.24, -0.22, -0.2, -0.18, -0.16, -0.14, -0.12, -0.1, -0.08, -0.06, -0.04, -0.02, 0.0, 0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.14, 0.16, 0.18, 0.2, 0.22, 0.24, 0.26, 0.28, 0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5, 0.52, 0.54, 0.56, 0.58, 0.6, 0.62, 0.64, 0.66, 0.68, 0.7, 0.72, 0.74, 0.76, 0.78, 0.8, 0.82, 0.84, 0.86, 0.88, 0.9, 0.92, 0.94, 0.96, 0.98, 1.0], "expected": [-0.1542042340671787, -0.15552242629368518, -0.1567623052141492, -0.15791848395797367, -0.15898542220635845, -0.15995742924209627, -0.16082866760174955, -0.16159315735353078, -0.1622447810224724, -0.16277728918243875, -0.16318430673220133, -0.1634593398701608, -0.16359578377935366, -0.16358693103112693, -0.16342598071230893, -0.16310604827684988, -0.1626201761187712, -0.1619613448588586, -0.16112248533288498, -0.16009649126427714, -0.15887623259908087, -0.15745456947585984, -0.15582436679782993, -0.1539785093691246, -0.1519099175516545, -0.1496115633936199, -0.1470764871754129, -0.14429781431346503, -0.1412687725576125, -0.13798270941283602, -0.13443310971183445, -0.13061361326088633, -0.12651803247789276, -0.12214036993844196, -0.11747483574324422, -0.11251586461840829, -0.10725813265881176, -0.10169657362429863, -0.09582639469865162, -0.08964309162225578, -0.08314246311111606, -0.07632062447741444, -0.06917402037009547, -0.061699436558035226, -0.0538940106831581, -0.04575524191638182, -0.037280999455453705, -0.028469529810535202, -0.019319462830736708, -0.009829816432630612, 0.0, 0.010170183567369389, 0.020680537169263293, 0.031530470189464796, 0.0427190005445463, 0.0542447580836182, 0.0661059893168419, 0.07830056344196477, 0.09082597962990453, 0.10367937552258555, 0.11685753688888395, 0.13035690837774422, 0.14417360530134835, 0.15830342637570138, 0.17274186734118827, 0.1874841353815917, 0.20252516425675576, 0.2178596300615581, 0.23348196752210723, 0.24938638673911373, 0.2655668902881656, 0.282017290587164, 0.2987312274423875, 0.3157021856865351, 0.33292351282458704, 0.35038843660638014, 0.36809008244834557, 0.3860214906308754, 0.4041756332021701, 0.4225454305241401, 0.44112376740091913, 0.4599035087357229, 0.4788775146671151, 0.4980386551411414, 0.5173798238812288, 0.5368939517231501, 0.556574019287691, 0.5764130689688731, 0.5964042162206463, 0.6165406601298392, 0.6368156932677986, 0.6572227108175612, 0.6777552189775276, 0.6984068426464692, 0.7191713323982505, 0.7400425707579037, 0.7610145777936417, 0.7820815160420262, 0.8032376947858508, 0.8244775737063148, 0.8457957659328212]}
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_special.json b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_special.json
new file mode 100644
index 000000000000..816606f7f691
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/gelu_quick_special.json
@@ -0,0 +1 @@
+{"x": [-50.0, -25.0, -22.0, -2.0, -1.0, 0.0, 1.0, 2.0, 10.0, 50.0], "expected": [-5.5018607500563635e-36, -8.292964450406412e-18, -1.2042040969612425e-15, -0.06434137685579186, -0.1542042340671787, 0.0, 0.8457957659328212, 1.9356586231442083, 9.99999959420387, 50.0]}
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/runner.py b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/runner.py
new file mode 100644
index 000000000000..4a23599108b7
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/fixtures/python/runner.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+#
+# @license Apache-2.0
+#
+# Copyright (c) 2026 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.
+
+"""Generate fixtures."""
+
+import os
+import json
+import numpy as np
+from scipy.special import expit
+
+# Get the file path:
+FILE = os.path.realpath(__file__)
+
+# Extract the directory in which this file resides:
+DIR = os.path.dirname(FILE)
+
+
+def eval_gelu_quick(x):
+ """Evaluate GELU quick approximation formula."""
+ return x * expit(1.702 * x)
+
+
+def gen(x, eval_fn, name):
+ """Generate fixture data and writes them to file.
+
+ # Arguments
+
+ * `x`: domain
+ * `eval_fn`: function to evaluate
+ * `name::str`: output filename
+ """
+ x_arr = np.array(x, dtype=np.float64)
+ y_arr = eval_fn(x_arr)
+ data = {
+ "x": x_arr.tolist(),
+ "expected": y_arr.tolist()
+ }
+ filepath = os.path.join(DIR, name)
+ with open(filepath, "w", encoding="utf-8", newline="\n") as outfile:
+ json.dump(data, outfile)
+ outfile.write("\n")
+
+
+def main():
+ """Generate fixture data."""
+ x = [round(float(v), 4) for v in np.linspace(-1.0, 1.0, 101)]
+ gen(x, eval_gelu_quick, "gelu_quick_near_zero.json")
+
+ x = [round(float(v), 4) for v in np.linspace(-5.0, 5.0, 201)]
+ gen(x, eval_gelu_quick, "gelu_quick_medium.json")
+
+ x = [round(float(v), 2) for v in np.linspace(5.0, 50.0, 91)]
+ gen(x, eval_gelu_quick, "gelu_quick_large_positive.json")
+
+ x = [round(float(v), 2) for v in np.linspace(-20.0, -5.0, 121)]
+ gen(x, eval_gelu_quick, "gelu_quick_large_negative.json")
+
+ x = [-50.0, -25.0, -22.0, -2.0, -1.0, 0.0, 1.0, 2.0, 10.0, 50.0]
+ gen(x, eval_gelu_quick, "gelu_quick_special.json")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/test.js b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/test.js
new file mode 100644
index 000000000000..70cc1b9a33eb
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/test.js
@@ -0,0 +1,171 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 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 isPositiveZero = require( '@stdlib/assert/is-positive-zero' );
+var isNegativeZero = require( '@stdlib/assert/is-negative-zero' );
+var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
+var PINF = require( '@stdlib/constants/float64/pinf' );
+var NINF = require( '@stdlib/constants/float64/ninf' );
+var geluQuick = require( './../lib' );
+
+
+// FIXTURES //
+
+var nearZero = require( './fixtures/python/gelu_quick_near_zero.json' );
+var medium = require( './fixtures/python/gelu_quick_medium.json' );
+var largePositive = require( './fixtures/python/gelu_quick_large_positive.json' );
+var largeNegative = require( './fixtures/python/gelu_quick_large_negative.json' );
+var special = require( './fixtures/python/gelu_quick_special.json' );
+
+
+// TESTS //
+
+tape( 'main export is a function', function test( t ) {
+ t.ok( true, __filename );
+ t.strictEqual( typeof geluQuick, 'function', 'main export is a function' );
+ t.end();
+});
+
+tape( 'the function returns `NaN` if provided `NaN`', function test( t ) {
+ var v = geluQuick( NaN );
+ t.strictEqual( isnan( v ), true, 'returns NaN' );
+ t.end();
+});
+
+tape( 'the function returns `+Infinity` when provided `+Infinity`', function test( t ) {
+ var v = geluQuick( PINF );
+ t.strictEqual( v, PINF, 'returns +Infinity' );
+ t.end();
+});
+
+tape( 'the function returns `-0.0` when provided `-Infinity`', function test( t ) {
+ var v = geluQuick( NINF );
+ t.strictEqual( isNegativeZero( v ), true, 'returns -0.0' );
+ t.end();
+});
+
+tape( 'the function preserves the sign of zero', function test( t ) {
+ var v = geluQuick( 0.0 );
+ t.strictEqual( isPositiveZero( v ), true, 'returns +0.0' );
+
+ v = geluQuick( -0.0 );
+ t.strictEqual( isNegativeZero( v ), true, 'returns -0.0' );
+ t.end();
+});
+
+tape( 'the function does not return `NaN` for large inputs', function test( t ) {
+ var v;
+
+ v = geluQuick( 1e200 );
+ t.strictEqual( isnan( v ), false, 'does not return NaN' );
+ t.strictEqual( v, 1e200, 'returns x for very large positive x' );
+
+ v = geluQuick( -1e200 );
+ t.strictEqual( isnan( v ), false, 'does not return NaN' );
+ t.strictEqual( isNegativeZero( v ), true, 'returns -0.0' );
+
+ v = geluQuick( 1e308 );
+ t.strictEqual( isnan( v ), false, 'does not return NaN' );
+ t.strictEqual( v, 1e308, 'returns x for very large positive x' );
+
+ v = geluQuick( -1e308 );
+ t.strictEqual( isnan( v ), false, 'does not return NaN' );
+ t.strictEqual( isNegativeZero( v ), true, 'returns -0.0' );
+ t.end();
+});
+
+tape( 'the function evaluates GELU quick approximation near zero', function test( t ) {
+ var expected;
+ var x;
+ var y;
+ var i;
+
+ x = nearZero.x;
+ expected = nearZero.expected;
+ for ( i = 0; i < x.length; i++ ) {
+ y = geluQuick( x[ i ] );
+ t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'the function evaluates GELU quick approximation for moderate inputs', function test( t ) {
+ var expected;
+ var x;
+ var y;
+ var i;
+
+ x = medium.x;
+ expected = medium.expected;
+ for ( i = 0; i < x.length; i++ ) {
+ y = geluQuick( x[ i ] );
+ t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'the function evaluates GELU quick approximation for large positive inputs', function test( t ) {
+ var expected;
+ var x;
+ var y;
+ var i;
+
+ x = largePositive.x;
+ expected = largePositive.expected;
+ for ( i = 0; i < x.length; i++ ) {
+ y = geluQuick( x[ i ] );
+ t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'the function evaluates GELU quick approximation for large negative tail inputs', function test( t ) {
+ var expected;
+ var x;
+ var y;
+ var i;
+
+ x = largeNegative.x;
+ expected = largeNegative.expected;
+ for ( i = 0; i < x.length; i++ ) {
+ y = geluQuick( x[ i ] );
+ t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'the function evaluates GELU quick approximation for special values', function test( t ) {
+ var expected;
+ var x;
+ var y;
+ var i;
+
+ x = special.x;
+ expected = special.expected;
+ for ( i = 0; i < x.length; i++ ) {
+ y = geluQuick( x[ i ] );
+ t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' );
+ }
+ t.end();
+});
diff --git a/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/test.native.js
new file mode 100644
index 000000000000..13c853474ea6
--- /dev/null
+++ b/lib/node_modules/@stdlib/math/base/special/fast/gelu-quick/test/test.native.js
@@ -0,0 +1,180 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 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 isPositiveZero = require( '@stdlib/assert/is-positive-zero' );
+var isNegativeZero = require( '@stdlib/assert/is-negative-zero' );
+var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
+var PINF = require( '@stdlib/constants/float64/pinf' );
+var NINF = require( '@stdlib/constants/float64/ninf' );
+var tryRequire = require( '@stdlib/utils/try-require' );
+
+
+// VARIABLES //
+
+var geluQuick = tryRequire( resolve( __dirname, './../lib/native.js' ) );
+var opts = {
+ 'skip': ( geluQuick instanceof Error )
+};
+
+
+// FIXTURES //
+
+var nearZero = require( './fixtures/python/gelu_quick_near_zero.json' );
+var medium = require( './fixtures/python/gelu_quick_medium.json' );
+var largePositive = require( './fixtures/python/gelu_quick_large_positive.json' );
+var largeNegative = require( './fixtures/python/gelu_quick_large_negative.json' );
+var special = require( './fixtures/python/gelu_quick_special.json' );
+
+
+// TESTS //
+
+tape( 'main export is a function', opts, function test( t ) {
+ t.ok( true, __filename );
+ t.strictEqual( typeof geluQuick, 'function', 'main export is a function' );
+ t.end();
+});
+
+tape( 'the function returns `NaN` if provided `NaN`', opts, function test( t ) {
+ var v = geluQuick( NaN );
+ t.strictEqual( isnan( v ), true, 'returns NaN' );
+ t.end();
+});
+
+tape( 'the function returns `+Infinity` when provided `+Infinity`', opts, function test( t ) {
+ var v = geluQuick( PINF );
+ t.strictEqual( v, PINF, 'returns +Infinity' );
+ t.end();
+});
+
+tape( 'the function returns `-0.0` when provided `-Infinity`', opts, function test( t ) {
+ var v = geluQuick( NINF );
+ t.strictEqual( isNegativeZero( v ), true, 'returns -0.0' );
+ t.end();
+});
+
+tape( 'the function preserves the sign of zero', opts, function test( t ) {
+ var v = geluQuick( 0.0 );
+ t.strictEqual( isPositiveZero( v ), true, 'returns +0.0' );
+
+ v = geluQuick( -0.0 );
+ t.strictEqual( isNegativeZero( v ), true, 'returns -0.0' );
+ t.end();
+});
+
+tape( 'the function does not return `NaN` for large inputs', opts, function test( t ) {
+ var v;
+
+ v = geluQuick( 1e200 );
+ t.strictEqual( isnan( v ), false, 'does not return NaN' );
+ t.strictEqual( v, 1e200, 'returns x for very large positive x' );
+
+ v = geluQuick( -1e200 );
+ t.strictEqual( isnan( v ), false, 'does not return NaN' );
+ t.strictEqual( isNegativeZero( v ), true, 'returns -0.0' );
+
+ v = geluQuick( 1e308 );
+ t.strictEqual( isnan( v ), false, 'does not return NaN' );
+ t.strictEqual( v, 1e308, 'returns x for very large positive x' );
+
+ v = geluQuick( -1e308 );
+ t.strictEqual( isnan( v ), false, 'does not return NaN' );
+ t.strictEqual( isNegativeZero( v ), true, 'returns -0.0' );
+ t.end();
+});
+
+tape( 'the function evaluates GELU quick approximation near zero', opts, function test( t ) {
+ var expected;
+ var x;
+ var y;
+ var i;
+
+ x = nearZero.x;
+ expected = nearZero.expected;
+ for ( i = 0; i < x.length; i++ ) {
+ y = geluQuick( x[ i ] );
+ t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'the function evaluates GELU quick approximation for moderate inputs', opts, function test( t ) {
+ var expected;
+ var x;
+ var y;
+ var i;
+
+ x = medium.x;
+ expected = medium.expected;
+ for ( i = 0; i < x.length; i++ ) {
+ y = geluQuick( x[ i ] );
+ t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'the function evaluates GELU quick approximation for large positive inputs', opts, function test( t ) {
+ var expected;
+ var x;
+ var y;
+ var i;
+
+ x = largePositive.x;
+ expected = largePositive.expected;
+ for ( i = 0; i < x.length; i++ ) {
+ y = geluQuick( x[ i ] );
+ t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'the function evaluates GELU quick approximation for large negative tail inputs', opts, function test( t ) {
+ var expected;
+ var x;
+ var y;
+ var i;
+
+ x = largeNegative.x;
+ expected = largeNegative.expected;
+ for ( i = 0; i < x.length; i++ ) {
+ y = geluQuick( x[ i ] );
+ t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' );
+ }
+ t.end();
+});
+
+tape( 'the function evaluates GELU quick approximation for special values', opts, function test( t ) {
+ var expected;
+ var x;
+ var y;
+ var i;
+
+ x = special.x;
+ expected = special.expected;
+ for ( i = 0; i < x.length; i++ ) {
+ y = geluQuick( x[ i ] );
+ t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' );
+ }
+ t.end();
+});