@stdlib/esm
Version:
ES module distribution for Stdlib, a standard library for JavaScript and Node.js.
3 lines • 2.53 kB
JavaScript
// This file is a part of stdlib. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0
import i from"./../../utils/define-nonenumerable-read-only-property.js";import t from"./../../symbol/iterator.js";import e from"./../../math/base/special/cospi.js";import r from"./../../assert/is-plain-object.js";import o from"./../../assert/has-own-property.js";import n from"./../../assert/is-positive-number.js";import a from"./../../assert/is-integer.js";import p from"./../../assert/is-positive-integer.js";import s from"./../../assert/is-nonnegative-integer.js";var u=r,d=o,m=n.isPrimitive,f=a.isPrimitive,l=p.isPrimitive,v=s.isPrimitive;function g(i,t){return u(t)?d(t,"duration")&&(i.duration=t.duration,!l(t.duration))?new TypeError("invalid option. `duration` option must be a positive integer. Option: `"+t.duration+"`."):d(t,"period")&&(i.period=t.period,!l(t.period))?new TypeError("invalid option. `period` option must be a positive integer. Option: `"+t.period+"`."):d(t,"amplitude")&&(i.amplitude=t.amplitude,!m(t.amplitude))?new TypeError("invalid option. `amplitude` option must be a positive number. Option: `"+t.amplitude+"`."):d(t,"offset")&&(i.offset=t.offset,!f(t.offset))?new TypeError("invalid option. `offset` option must be an integer. Option: `"+t.offset+"`."):d(t,"iter")&&(i.iter=t.iter,!v(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 b=i,w=t,j=e,c=g,h=.21557895,y=.41663158,E=.277263158,O=.083578947,T=.006947368;function P(i,t,e){var r=2/(e-1);return t*(h-y*j(r*i)+E*j(2*r*i)-O*j(3*r*i)+T*j(4*r*i))}function x(i){var t,e,r,o,n,a;if(t={duration:-1,period:100,amplitude:1,offset:0,iter:1e308},arguments.length&&(o=c(t,i)))throw o;if(-1===t.duration&&(t.duration=t.period),t.duration>t.period)throw new RangeError("invalid option. `duration` option must be less than or equal to the period. Option: `"+t.duration+"`.");if(t.duration<=2)throw new RangeError("invalid option. `duration` option must be greater than 2. Option: `"+t.duration+"`.");return(n=(t.period-t.offset)%t.period)<0&&(n+=t.period),n-=1,a=0,b(e={},"next",p),b(e,"return",s),w&&b(e,w,u),e;function p(){return a+=1,r||a>t.iter?{done:!0}:{value:(n=(n+1)%t.period)<t.duration?P(n,t.amplitude,t.duration):0,done:!1}}function s(i){return r=!0,arguments.length?{value:i,done:!0}:{done:!0}}function u(){return x(t)}}var R=x;export default R;
//# sourceMappingURL=flat-top-pulse.js.map