UNPKG

@stdlib/blas-ext-base-gsort2hp

Version:

Simultaneously sort two strided arrays based on the sort order of the first array using heapsort.

11 lines (10 loc) 2.03 kB
"use strict";var A=function(l,g){return function(){return g||l((g={exports:{}}).exports,g),g.exports}};var F=A(function(t,E){ var C=require('@stdlib/math-base-assert-is-positive-zero/dist'),D=require('@stdlib/math-base-assert-is-nan/dist'),S=require('@stdlib/math-base-special-floor/dist');function T(l,g,u,r,a,e,i,n){var h,c,v,k,p,w,P,j,q,Z,b,y,m,R,O,o,z;for(v=u.data,k=e.data,p=u.accessors[0],P=u.accessors[1],w=e.accessors[0],j=e.accessors[1],g<0&&(r*=-1,i*=-1,a-=(l-1)*r,n-=(l-1)*i),O=l,h=S(l/2);;){if(h>0)h-=1,b=p(v,a+h*r),y=w(k,n+h*i);else{if(O-=1,O===0)return u;m=a+O*r,b=p(v,m),R=n+O*i,y=w(k,R),P(v,m,p(v,a)),j(k,R,w(k,n))}for(o=h,c=o*2+1;c<O&&(z=c+1,z<O&&(q=p(v,a+z*r),Z=p(v,a+c*r),(q>Z||D(q)||q===Z&&C(q))&&(c+=1)),q=p(v,a+c*r),q>b||D(q)||q===b&&C(q));)P(v,a+o*r,q),j(k,n+o*i,w(k,n+c*i)),o=c,c=o*2+1;P(v,a+o*r,b),j(k,n+o*i,y)}}E.exports=T });var B=A(function(d,J){ var G=require('@stdlib/array-base-arraylike2object/dist'),H=require('@stdlib/math-base-assert-is-positive-zero/dist'),I=require('@stdlib/math-base-assert-is-nan/dist'),U=require('@stdlib/math-base-special-floor/dist'),V=F();function W(l,g,u,r,a,e,i,n){var h,c,v,k,p,w,P,j,q,Z,b,y,m;if(l<=0||g===0)return u;if(q=G(u),Z=G(e),q.accessorProtocol||Z.accessorProtocol)return V(l,g,q,r,a,Z,i,n),u;for(g<0&&(r*=-1,i*=-1,a-=(l-1)*r,n-=(l-1)*i),b=l,h=U(l/2);;){if(h>0)h-=1,p=u[a+h*r],w=e[n+h*i];else{if(b-=1,b===0)return u;P=a+b*r,p=u[P],j=n+b*i,w=e[j],u[P]=u[a],e[j]=e[n]}for(y=h,c=y*2+1;c<b&&(m=c+1,m<b&&(v=u[a+m*r],k=u[a+c*r],(v>k||I(v)||v===k&&H(v))&&(c+=1)),v=u[a+c*r],v>p||I(v)||v===p&&H(v));)u[a+y*r]=v,e[n+y*i]=e[n+c*i],y=c,c=y*2+1;u[a+y*r]=p,e[n+y*i]=w}}J.exports=W });var M=A(function(Y,L){ var K=require('@stdlib/strided-base-stride2offset/dist'),_=B();function $(l,g,u,r,a,e){var i=K(l,r),n=K(l,e);return _(l,g,u,r,i,a,e,n)}L.exports=$ });var x=require('@stdlib/utils-define-nonenumerable-read-only-property/dist'),Q=M(),N=B();x(Q,"ndarray",N);module.exports=Q; /** @license Apache-2.0 */ /** @license Apache-2.0 */ //# sourceMappingURL=index.js.map