@stdlib/ndarray-iter-indices
Version:
Create an iterator which returns indices for use indexing into an ndarray having a specified shape.
6 lines (5 loc) • 1.51 kB
JavaScript
;var x=function(e,r){return function(){return r||e((r={exports:{}}).exports,r),r.exports}};var q=x(function(z,c){
var m=require('@stdlib/utils-define-nonenumerable-read-only-property/dist'),O=require('@stdlib/assert-is-plain-object/dist'),h=require('@stdlib/ndarray-base-assert-is-order/dist'),j=require('@stdlib/assert-is-collection/dist'),E=require('@stdlib/assert-is-nonnegative-integer/dist').isPrimitive,T=require('@stdlib/assert-has-own-property/dist'),l=require('@stdlib/symbol-iterator/dist'),F=require('@stdlib/array-base-zeros/dist'),I=require('@stdlib/ndarray-base-numel/dist'),N=require('@stdlib/ndarray-base-next-cartesian-index/dist').assign,s=require('@stdlib/error-tools-fmtprodmsg/dist');function g(e){var r,o,i,t,v,a,d,u,f,n;if(!j(e))throw new TypeError(s('1jtF5',e));if(i={order:"row-major"},arguments.length>1){if(r=arguments[1],!O(r))throw new TypeError(s('1jt2V',r));if(T(r,"order")){if(!h(r.order))throw new TypeError(s('1jt5C',"order",r.order));i.order=r.order}}for(o=e.length,u=[],n=0;n<o;n++){if(!E(e[n]))throw new TypeError(s('1jtF5',e));u.push(e[n])}return f=I(u),f===0&&(v=!0),i.order==="row-major"?d=o-1:d=0,n=-1,a=F(o),t={},m(t,"next",w),m(t,"return",y),l&&m(t,l,p),t;function w(){return n+=1,v||n>=f?{done:!0}:(n>0&&(a=N(e,i.order,a,d,a)),{value:a.slice(),done:!1})}function y(b){return v=!0,arguments.length?{value:b,done:!0}:{done:!0}}function p(){return g(u,i)}}c.exports=g
});var P=q();module.exports=P;
/** @license Apache-2.0 */
//# sourceMappingURL=index.js.map