UNPKG

@stdlib/esm

Version:

ES module distribution for Stdlib, a standard library for JavaScript and Node.js.

3 lines 1.59 kB
// This file is a part of stdlib. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 import t from"./../assert/is-ndarray-like.js";import a from"./../assert/is-array-like-object.js";import e from"./../assert/is-float64array.js";import r from"./../assert/is-float32array.js";import s from"./base/dswap.js";import n from"./base/sswap.js";import i from"./base/gswap.js";var o=t,d=a,f=e,l=r,m=s.ndarray,g=n.ndarray,h=i.ndarray;function u(t,a){var e,r,s,n,i,u,y,p;if(i=o(t),y=o(a),u=i&&1===t.ndims&&1===t.strides.length,p=y&&1===a.ndims&&1===a.strides.length,u)r=!(e=f(t.data))&&l(t.data);else{if(!1!==i||!d(t))throw new TypeError("invalid argument. First argument must be either an array-like object or a 1-dimensional ndarray. Value: `"+t+"`.");r=!(e=f(t))&&l(t)}if(p)n=!(s=f(a.data))&&l(a.data);else{if(!1!==y||!d(a))throw new TypeError("invalid argument. Second argument must be either an array-like object or a 1-dimensional ndarray. Value: `"+a+"`.");n=!(s=f(a))&&l(a)}if(t.length!==a.length)throw new RangeError("invalid argument. Arrays must be the same length. First argument length: "+t.length+". Second argument length: "+a.length+".");return u&&p?e&&s?(m(t.length,t.data,t.strides[0],t.offset,a.data,a.strides[0],a.offset),a):r&&n?(g(t.length,t.data,t.strides[0],t.offset,a.data,a.strides[0],a.offset),a):(h(t.length,t.data,t.strides[0],t.offset,a.data,a.strides[0],a.offset),a):u?(h(t.length,t.data,t.strides[0],t.offset,a,1,0),a):p?(h(t.length,t,1,0,a.data,a.strides[0],a.offset),a):(h(t.length,t,1,0,a,1,0),a)}export default u; //# sourceMappingURL=gswap.js.map