UNPKG

@stdlib/esm

Version:

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

3 lines 2.07 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 t from"./../../symbol/iterator.js";import i from"./../../math/base/special/tan.js";import r from"./../../math/base/special/atan.js";import o from"./../../constants/math/float64-half-pi.js";import n from"./../../constants/math/float64-pi.js";import p from"./../../assert/is-plain-object.js";import s from"./../../assert/has-own-property.js";import a from"./../../assert/is-integer.js";import m from"./../../assert/is-positive-integer.js";import f from"./../../assert/is-nonnegative-integer.js";import u from"./../../assert/is-nonnegative-number.js";var d=p,l=s,v=a.isPrimitive,g=m.isPrimitive,j=f.isPrimitive,b=u.isPrimitive;function c(e,t){return d(t)?l(t,"period")&&(e.period=t.period,!g(t.period))?new TypeError("invalid option. `period` option must be an positive integer. Option: `"+t.period+"`."):l(t,"amplitude")&&(e.amplitude=t.amplitude,!b(t.amplitude))?new TypeError("invalid option. `amplitude` option must be a nonnegative number. Option: `"+t.amplitude+"`."):l(t,"offset")&&(e.offset=t.offset,!v(t.offset))?new TypeError("invalid option. `offset` option must be an integer. Option: `"+t.offset+"`."):l(t,"iter")&&(e.iter=t.iter,!j(t.iter))?new TypeError("invalid option. `iter` option must be a nonnegative integer. Option: `"+t.iter+"`."):null:new TypeError("invalid argument. Options argument must be an object. Value: `"+t+"`.")}var h=e,y=t,w=i,E=r,O=o,T=n,P=c;function x(e){var t,i,r,o,n,p,s,a;if(t={period:10,amplitude:1,offset:0,iter:1e308},arguments.length&&(o=P(t,e)))throw o;return(n=(t.period-t.offset)%t.period)<0&&(n+=t.period),n-=1,p=T/t.period,s=t.amplitude/O,a=0,h(i={},"next",m),h(i,"return",f),y&&h(i,y,u),i;function m(){return a+=1,r||a>t.iter?{done:!0}:(n+=1,n%=t.period,{value:s*E(w(p*n)),done:!1})}function f(e){return r=!0,arguments.length?{value:e,done:!0}:{done:!0}}function u(){return x(t)}}var V=x;export default V; //# sourceMappingURL=sawtooth-wave.js.map