1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #include "cmPrefix.h"
- #include "cmGlobal.h"
- #include "cmFloatTypes.h"
- #include "cmOp.h"
-
- void vs_Zero( cmSample_t v[], unsigned vn)
- { memset(v,0,sizeof(v[0])*vn); }
-
-
- cmReal_t vs_Sine( cmSample_t v[], unsigned vn, cmReal_t hzRad, cmReal_t initPhs )
- {
- const cmSample_t* ep = v + vn;
- double phs = initPhs;
-
- while(v<ep)
- {
- *v++ = (cmSample_t)sin( phs );
- phs += hzRad;
- }
-
- return (cmReal_t)phs;
- }
-
- void vs_Rand( cmSample_t v[], unsigned vn, cmSample_t min, cmSample_t max )
- {
- const cmSample_t* ep = v + vn;
- while(v<ep)
- *v++ = ((cmSample_t)rand()/RAND_MAX) * (max-min) + min;
-
- }
-
- void vs_MultVVS( cmSample_t d[], const cmSample_t s[], unsigned n, cmReal_t mult )
- {
- const cmSample_t* ep = d + n;
- while(d<ep)
- *d++ = *s++ * mult;
- }
-
- void vs_SumMultVVS( cmSample_t d[], const cmSample_t s[], unsigned n, cmReal_t mult )
- {
- const cmSample_t* ep = d + n;
- while(d<ep)
- *d++ += *s++ * mult;
- }
-
-
- void vs_Copy( cmSample_t d[], const cmSample_t s[], unsigned n )
- {
- memcpy(d,s,n*sizeof(d[0]));
- }
-
- cmSample_t vs_SquaredSum( const cmSample_t s[], unsigned n )
- {
- cmSample_t sum = 0;
- const cmSample_t* ep = s + n;
-
- for(;s<ep;++s)
- sum += *s * *s;
- return sum;
- }
-
-
- /*
- unsigned vs_Interp2( cmSample_t v[], unsigned vn, const cmSample_t[] xx, const cmSample_t y[], unsigned yn )
- {
-
- unsigned i = 0;
- for(; i<vn; ++i)
- {
- double x = fmod(*xx++,yn);
- unsigned x0 = floor(x);
- unsigned x1 = x0 + 1;
- double d = x - x0;
-
- if( x1>=yn || x0>=yn)
- break;
-
- *v++ = y[x0] + (y[x1] - y[x0]) * d;
- }
-
- return i;
- }
- */
|