diff --git a/lib/node_modules/@stdlib/ndarray/base/kernels/generic/quaternary/dispatch/README.md b/lib/node_modules/@stdlib/ndarray/base/kernels/generic/quaternary/dispatch/README.md
new file mode 100644
index 000000000000..73761f0ff957
--- /dev/null
+++ b/lib/node_modules/@stdlib/ndarray/base/kernels/generic/quaternary/dispatch/README.md
@@ -0,0 +1,182 @@
+
+
+# dispatch
+
+> Apply a quaternary callback to elements in four input ndarrays and assign results to elements in an output ndarray.
+
+
+
+
+
+
+
+## Usage
+
+```javascript
+var dispatch = require( '@stdlib/ndarray/base/kernels/generic/quaternary/dispatch' );
+```
+
+#### dispatch( arrays, fcn )
+
+Applies a quaternary callback to elements in four input ndarrays and assigns results to elements in an output ndarray.
+
+
+
+```javascript
+var Float64Array = require( '@stdlib/array/float64' );
+var ndarray = require( '@stdlib/ndarray/ctor' );
+var ndarray2array = require( '@stdlib/ndarray/base/to-array' );
+var getData = require( '@stdlib/ndarray/data-buffer' );
+var getShape = require( '@stdlib/ndarray/shape' );
+var getStrides = require( '@stdlib/ndarray/strides' );
+var getOffset = require( '@stdlib/ndarray/offset' );
+var getOrder = require( '@stdlib/ndarray/order' );
+var add4 = require( '@stdlib/number/float64/base/add4' );
+
+// Create data buffers:
+var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
+var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
+var zbuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );
+var wbuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );
+var ubuf = new Float64Array( 6 );
+
+// Define the shape of the input and output arrays:
+var shape = [ 3, 1, 2 ];
+
+// Define the array strides:
+var sx = [ 2, 2, 1 ];
+var sy = [ 2, 2, 1 ];
+var sz = [ 2, 2, 1 ];
+var sw = [ 2, 2, 1 ];
+var su = [ 2, 2, 1 ];
+
+// Create the input and output ndarrays:
+var x = ndarray( 'float64', xbuf, shape, sx, 0, 'row-major' );
+var y = ndarray( 'float64', ybuf, shape, sy, 0, 'row-major' );
+var z = ndarray( 'float64', zbuf, shape, sz, 0, 'row-major' );
+var w = ndarray( 'float64', wbuf, shape, sw, 0, 'row-major' );
+var u = ndarray( 'float64', ubuf, shape, su, 0, 'row-major' );
+
+// Apply the quaternary callback:
+dispatch( [ x, y, z, w, u ], add4 );
+
+var arr = ndarray2array( getData( u ), getShape( u ), getStrides( u ), getOffset( u ), getOrder( u ) );
+// returns [ [ [ 4.0, 6.0 ] ], [ [ 8.0, 10.0 ] ], [ [ 12.0, 14.0 ] ] ]
+```
+
+The function accepts the following arguments:
+
+- **arrays**: array-like object containing four input ndarrays and one output ndarray.
+- **fcn**: quaternary callback accepting four scalar values and returning one scalar value.
+
+
+
+
+
+
+
+## Notes
+
+- Each provided ndarray should be an object with the following properties:
+
+ - **dtype**: data type.
+ - **data**: data buffer.
+ - **shape**: dimensions.
+ - **strides**: stride lengths.
+ - **offset**: index offset.
+ - **order**: specifies whether an ndarray is row-major (C-style) or column-major (Fortran-style).
+
+- The function dispatches to the most efficient kernel based on array contiguity, memory layout, and dimensionality.
+
+
+
+
+
+
+
+## Examples
+
+
+
+
+
+```javascript
+var Float64Array = require( '@stdlib/array/float64' );
+var ndarray = require( '@stdlib/ndarray/ctor' );
+var ndarray2array = require( '@stdlib/ndarray/base/to-array' );
+var getData = require( '@stdlib/ndarray/data-buffer' );
+var getShape = require( '@stdlib/ndarray/shape' );
+var getStrides = require( '@stdlib/ndarray/strides' );
+var getOffset = require( '@stdlib/ndarray/offset' );
+var getOrder = require( '@stdlib/ndarray/order' );
+var add4 = require( '@stdlib/number/float64/base/add4' );
+var dispatch = require( '@stdlib/ndarray/base/kernels/generic/quaternary/dispatch' );
+
+// Create data buffers:
+var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
+var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
+var zbuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );
+var wbuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );
+var ubuf = new Float64Array( 6 );
+
+// Define the shape of the input and output arrays:
+var shape = [ 3, 1, 2 ];
+
+// Define the array strides:
+var sx = [ 2, 2, 1 ];
+var sy = [ 2, 2, 1 ];
+var sz = [ 2, 2, 1 ];
+var sw = [ 2, 2, 1 ];
+var su = [ 2, 2, 1 ];
+
+// Create the input and output ndarrays:
+var x = ndarray( 'float64', xbuf, shape, sx, 0, 'row-major' );
+var y = ndarray( 'float64', ybuf, shape, sy, 0, 'row-major' );
+var z = ndarray( 'float64', zbuf, shape, sz, 0, 'row-major' );
+var w = ndarray( 'float64', wbuf, shape, sw, 0, 'row-major' );
+var u = ndarray( 'float64', ubuf, shape, su, 0, 'row-major' );
+
+// Apply the quaternary callback:
+dispatch( [ x, y, z, w, u ], add4 );
+
+console.log( ndarray2array( getData( u ), getShape( u ), getStrides( u ), getOffset( u ), getOrder( u ) ) );
+// => [ [ [ 4.0, 6.0 ] ], [ [ 8.0, 10.0 ] ], [ [ 12.0, 14.0 ] ] ]
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/node_modules/@stdlib/ndarray/base/kernels/generic/quaternary/dispatch/docs/repl.txt b/lib/node_modules/@stdlib/ndarray/base/kernels/generic/quaternary/dispatch/docs/repl.txt
new file mode 100644
index 000000000000..9741077d9999
--- /dev/null
+++ b/lib/node_modules/@stdlib/ndarray/base/kernels/generic/quaternary/dispatch/docs/repl.txt
@@ -0,0 +1,104 @@
+
+{{alias}}( arrays, fcn )
+ Applies a quaternary callback to elements in four input ndarrays and assigns
+ results to elements in an output ndarray.
+
+ Each provided ndarray should be an object with the following properties:
+
+ - dtype: data type.
+ - data: data buffer.
+ - shape: dimensions.
+ - strides: stride lengths.
+ - offset: index offset.
+ - order: specifies whether an ndarray is row-major (C-style) or column-major
+ (Fortran-style).
+
+ Parameters
+ ----------
+ arrays: ArrayLikeObject