UNPKG

@stdlib/esm

Version:

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

3 lines 1.89 kB
// This file is a part of stdlib. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 import e from"./../../utils/define-nonenumerable-read-only-property.js";import i from"./../../symbol/iterator.js";import t from"./../../math/base/special/sinpi.js";import r from"./../../assert/is-plain-object.js";import o from"./../../assert/has-own-property.js";import n from"./../../assert/is-integer.js";import p from"./../../assert/is-positive-integer.js";import s from"./../../assert/is-nonnegative-integer.js";import a from"./../../assert/is-nonnegative-number.js";var m=r,u=o,f=n.isPrimitive,d=p.isPrimitive,l=s.isPrimitive,v=a.isPrimitive;function g(e,i){return m(i)?u(i,"period")&&(e.period=i.period,!d(i.period))?new TypeError("invalid option. `period` option must be an positive integer. Option: `"+i.period+"`."):u(i,"amplitude")&&(e.amplitude=i.amplitude,!v(i.amplitude))?new TypeError("invalid option. `amplitude` option must be a nonnegative number. Option: `"+i.amplitude+"`."):u(i,"offset")&&(e.offset=i.offset,!f(i.offset))?new TypeError("invalid option. `offset` option must be an integer. Option: `"+i.offset+"`."):u(i,"iter")&&(e.iter=i.iter,!l(i.iter))?new TypeError("invalid option. `iter` option must be a nonnegative integer. Option: `"+i.iter+"`."):null:new TypeError("invalid argument. Options argument must be an object. Value: `"+i+"`.")}var b=e,j=i,y=t,c=g;function w(e){var i,t,r,o,n,p,s;if(i={period:10,amplitude:1,offset:0,iter:1e308},arguments.length&&(o=c(i,e)))throw o;return(n=(i.period-i.offset)%i.period)<0&&(n+=i.period),n-=1,p=2/i.period,s=0,b(t={},"next",a),b(t,"return",m),j&&b(t,j,u),t;function a(){return s+=1,r||s>i.iter?{done:!0}:(n+=1,n%=i.period,{value:i.amplitude*y(p*n),done:!1})}function m(e){return r=!0,arguments.length?{value:e,done:!0}:{done:!0}}function u(){return w(i)}}var h=w;export default h; //# sourceMappingURL=sine-wave.js.map