UNPKG

@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.57 kB
"use strict";var x=function(i,r){return function(){return r||i((r={exports:{}}).exports,r),r.exports}};var q=x(function(C,c){ var l=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/ndarray-base-assert-is-row-major-string/dist'),E=require('@stdlib/assert-is-collection/dist'),T=require('@stdlib/assert-is-nonnegative-integer/dist').isPrimitive,F=require('@stdlib/assert-has-own-property/dist'),m=require('@stdlib/symbol-iterator/dist'),I=require('@stdlib/array-base-zeros/dist'),N=require('@stdlib/ndarray-base-numel/dist'),P=require('@stdlib/ndarray-base-next-cartesian-index/dist').assign,s=require('@stdlib/error-tools-fmtprodmsg/dist');function g(i){var r,u,n,t,v,a,d,o,f,e;if(!E(i))throw new TypeError(s('1jtF5',i));if(n={order:"row-major"},arguments.length>1){if(r=arguments[1],!O(r))throw new TypeError(s('1jt2V',r));if(F(r,"order")){if(!h(r.order))throw new TypeError(s('1jt5C',"order",r.order));n.order=r.order}}for(u=i.length,o=[],e=0;e<u;e++){if(!T(i[e]))throw new TypeError(s('1jtF5',i));o.push(i[e])}return f=N(o),f===0&&(v=!0),j(n.order)?d=u-1:d=0,e=-1,a=I(u),t={},l(t,"next",w),l(t,"return",p),m&&l(t,m,y),t;function w(){return e+=1,v||e>=f?{done:!0}:(e>0&&(a=P(o,n.order,a,d,a)),{value:a.slice(),done:!1})}function p(b){return v=!0,arguments.length?{value:b,done:!0}:{done:!0}}function y(){return g(o,n)}}c.exports=g });var V=q();module.exports=V; /** @license Apache-2.0 */ //# sourceMappingURL=index.js.map