23 #if (AE_COMPILER==AE_MSVC) 24 #pragma warning(disable:4100) 25 #pragma warning(disable:4127) 26 #pragma warning(disable:4702) 27 #pragma warning(disable:4996) 433 alglib_impl::convc1d(const_cast<alglib_impl::ae_vector*>(a.
c_ptr()), m, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(r.
c_ptr()), &_alglib_env_state);
475 alglib_impl::convc1dinv(const_cast<alglib_impl::ae_vector*>(a.
c_ptr()), m, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(r.
c_ptr()), &_alglib_env_state);
599 alglib_impl::convr1d(const_cast<alglib_impl::ae_vector*>(a.
c_ptr()), m, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(r.
c_ptr()), &_alglib_env_state);
641 alglib_impl::convr1dinv(const_cast<alglib_impl::ae_vector*>(a.
c_ptr()), m, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(r.
c_ptr()), &_alglib_env_state);
773 alglib_impl::corrc1d(const_cast<alglib_impl::ae_vector*>(signal.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(pattern.
c_ptr()), m, const_cast<alglib_impl::ae_vector*>(r.
c_ptr()), &_alglib_env_state);
868 alglib_impl::corrr1d(const_cast<alglib_impl::ae_vector*>(signal.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(pattern.
c_ptr()), m, const_cast<alglib_impl::ae_vector*>(r.
c_ptr()), &_alglib_env_state);
1045 ae_assert(n>0,
"FFTC1D: incorrect N!", _state);
1063 for(i=0; i<=n-1; i++)
1082 for(i=0; i<=n-1; i++)
1116 ae_assert(n>0,
"FFTC1DInv: incorrect N!", _state);
1117 ae_assert(a->
cnt>=n,
"FFTC1DInv: Length(A)<N!", _state);
1127 for(i=0; i<=n-1; i++)
1132 for(i=0; i<=n-1; i++)
1183 ae_assert(n>0,
"FFTR1D: incorrect N!", _state);
1227 for(i=0; i<=n2; i++)
1232 idx = 2*((n2-
i)%n2);
1241 for(i=n2+1; i<=n-1; i++)
1253 for(i=0; i<=n-1; i++)
1313 ae_assert(n>0,
"FFTR1DInv: incorrect N!", _state);
1314 ae_assert(f->
cnt>=
ae_ifloor((
double)n/(
double)2, _state)+1,
"FFTR1DInv: Length(F)<Floor(N/2)+1!", _state);
1316 for(i=1; i<=
ae_ifloor((
double)n/(
double)2, _state)-1; i++)
1348 for(i=1; i<=
ae_ifloor((
double)n/(
double)2, _state)-1; i++)
1362 fftr1d(&h, n, &fh, _state);
1363 for(i=0; i<=n-1; i++)
1394 ae_assert(n>0&&n%2==0,
"FFTR1DEvenInplace: incorrect N!", _state);
1418 for(i=1; i<=n2-1; i++)
1456 ae_assert(n>0&&n%2==0,
"FFTR1DInvInternalEven: incorrect N!", _state);
1482 for(i=1; i<=n2-1; i++)
1492 t = (double)1/(
double)
n;
1493 for(i=1; i<=n2-1; i++)
1545 ae_assert(n>0&&m>0,
"ConvC1D: incorrect N or M!", _state);
1553 convc1d(b, n, a, m, r, _state);
1610 ae_assert((n>0&&m>0)&&n<=m,
"ConvC1DInv: incorrect N or M!", _state);
1614 for(i=0; i<=m-1; i++)
1619 for(i=m; i<=p-1; i++)
1625 for(i=0; i<=n-1; i++)
1630 for(i=n; i<=p-1; i++)
1637 for(i=0; i<=p-1; i++)
1648 t = (double)1/(
double)p;
1650 for(i=0; i<=m-
n; i++)
1704 ae_assert(n>0&&m>0,
"ConvC1DCircular: incorrect N or M!", _state);
1713 for(i1=0; i1<=m-1; i1++)
1788 ae_assert(n>0&&m>0,
"ConvC1DCircularInv: incorrect N or M!", _state);
1797 for(i=0; i<=m-1; i++)
1819 for(i=0; i<=m-1; i++)
1825 for(i=0; i<=n-1; i++)
1830 for(i=n; i<=m-1; i++)
1837 for(i=0; i<=m-1; i++)
1848 t = (double)1/(
double)
m;
1850 for(i=0; i<=m-1; i++)
1891 ae_assert(n>0&&m>0,
"ConvR1D: incorrect N or M!", _state);
1899 convr1d(b, n, a, m, r, _state);
1957 ae_assert((n>0&&m>0)&&n<=m,
"ConvR1DInv: incorrect N or M!", _state);
1961 for(i=m; i<=p-1; i++)
1967 for(i=n; i<=p-1; i++)
1977 for(i=1; i<=p/2-1; i++)
2033 ae_assert(n>0&&m>0,
"ConvC1DCircular: incorrect N or M!", _state);
2042 for(i1=0; i1<=m-1; i1++)
2124 ae_assert(n>0&&m>0,
"ConvR1DCircularInv: incorrect N or M!", _state);
2133 for(i=0; i<=m-1; i++)
2163 for(i=n; i<=m-1; i++)
2173 for(i=1; i<=m/2-1; i++)
2193 fftr1d(a, m, &cbuf, _state);
2196 for(i=n; i<=m-1; i++)
2200 fftr1d(&buf2, m, &cbuf2, _state);
2201 for(i=0; i<=
ae_ifloor((
double)m/(
double)2, _state); i++)
2278 ae_assert(n>0&&m>0,
"ConvC1DX: incorrect N or M!", _state);
2279 ae_assert(n<=m,
"ConvC1DX: N<M assumption is false!", _state);
2284 if( alg==-1||alg==-2 )
2319 flopbest = flopcand;
2333 flopbest = flopcand;
2347 while(ptotal<=m+n-1)
2353 flopbest = flopcand;
2360 convc1dx(a, m, b, n, circular, alg, q, r, _state);
2398 for(i=1; i<=n-1; i++)
2420 for(i=0; i<=m+n-2; i++)
2424 for(i=0; i<=n-1; i++)
2454 for(i=0; i<=m-1; i++)
2460 for(i=0; i<=n-1; i++)
2465 for(i=n; i<=m-1; i++)
2472 for(i=0; i<=m-1; i++)
2484 t = (double)1/(
double)
m;
2486 for(i=0; i<=m-1; i++)
2506 for(i=0; i<=m-1; i++)
2511 for(i=m; i<=p-1; i++)
2517 for(i=0; i<=n-1; i++)
2522 for(i=n; i<=p-1; i++)
2529 for(i=0; i<=p-1; i++)
2541 t = (double)1/(
double)p;
2549 for(i=0; i<=m-1; i++)
2554 for(i=m; i<=m+n-2; i++)
2567 for(i=0; i<=m+n-2; i++)
2598 for(i=0; i<=m-1; i++)
2606 for(i=0; i<=m+n-2; i++)
2617 for(j=n; j<=q+n-2; j++)
2621 fftc1d(&bbuf, q+n-1, _state);
2635 for(j=0; j<=p-1; j++)
2640 for(j=p; j<=q+n-2; j++)
2646 for(j=0; j<=q+n-2; j++)
2658 t = (double)1/(
double)(q+n-1);
2669 for(j=0; j<=j1; j++)
2674 for(j=j2; j<=p+n-2; j++)
2754 ae_assert(n>0&&m>0,
"ConvC1DX: incorrect N or M!", _state);
2755 ae_assert(n<=m,
"ConvC1DX: N<M assumption is false!", _state);
2781 flopbest = 0.15*m*
n;
2803 flopbest = flopcand;
2817 flopbest = flopcand;
2831 while(ptotal<=m+n-1)
2837 flopbest = flopcand;
2844 convr1dx(a, m, b, n, circular, alg, q, r, _state);
2882 for(i=1; i<=n-1; i++)
2904 for(i=0; i<=m+n-2; i++)
2908 for(i=0; i<=n-1; i++)
2932 ae_assert(m+n-1>2,
"ConvR1DX: internal error!", _state);
2943 for(i=n; i<=m-1; i++)
2953 for(i=1; i<=m/2-1; i++)
2982 for(i=m; i<=p-1; i++)
2988 for(i=n; i<=p-1; i++)
2998 for(i=1; i<=p/2-1; i++)
3042 ae_assert((q+n-1)%2==0,
"ConvR1DX: internal error!", _state);
3054 for(i=0; i<=m-1; i++)
3062 for(i=0; i<=m+n-2; i++)
3072 for(j=n; j<=q+n-2; j++)
3086 for(j=p; j<=q+n-2; j++)
3093 for(j=1; j<=(q+n-1)/2-1; j++)
3184 ae_assert(n>0&&m>0,
"CorrC1D: incorrect N or M!", _state);
3186 for(i=0; i<=m-1; i++)
3190 convc1d(&p, m, signal, n, &b, _state);
3248 ae_assert(n>0&&m>0,
"ConvC1DCircular: incorrect N or M!", _state);
3257 for(i1=0; i1<=m-1; i1++)
3278 for(i=0; i<=n-1; i++)
3346 ae_assert(n>0&&m>0,
"CorrR1D: incorrect N or M!", _state);
3348 for(i=0; i<=m-1; i++)
3352 convr1d(&p, m, signal, n, &b, _state);
3410 ae_assert(n>0&&m>0,
"ConvC1DCircular: incorrect N or M!", _state);
3419 for(i1=0; i1<=m-1; i1++)
3440 for(i=0; i<=n-1; i++)
3483 ae_assert(n>0,
"FHTR1D: incorrect N!", _state);
3498 fftr1d(a, n, &fa, _state);
3499 for(i=0; i<=n-1; i++)
3528 ae_assert(n>0,
"FHTR1DInv: incorrect N!", _state);
3545 for(i=0; i<=n-1; i++)
void ae_v_cmove(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n)
void ftapplyplan(fasttransformplan *plan, ae_vector *a, ae_int_t offsa, ae_int_t repcnt, ae_state *_state)
void ae_v_moved(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n, double alpha)
double ae_sin(double x, ae_state *state)
void fhtr1dinv(ae_vector *a, ae_int_t n, ae_state *_state)
void convc1d(ae_vector *a, ae_int_t m, ae_vector *b, ae_int_t n, ae_vector *r, ae_state *_state)
void ae_frame_make(ae_state *state, ae_frame *tmp)
ae_complex ae_c_conj(ae_complex lhs, ae_state *state)
ae_complex ae_complex_from_d(double v)
ae_int_t ftbasefindsmootheven(ae_int_t n, ae_state *_state)
void convr1dcircular(ae_vector *s, ae_int_t m, ae_vector *r, ae_int_t n, ae_vector *c, ae_state *_state)
void ae_state_clear(ae_state *state)
ae_bool _fasttransformplan_init(void *_p, ae_state *_state, ae_bool make_automatic)
void corrc1dcircular(ae_vector *signal, ae_int_t m, ae_vector *pattern, ae_int_t n, ae_vector *c, ae_state *_state)
ae_int_t ftbasefindsmooth(ae_int_t n, ae_state *_state)
double ae_cos(double x, ae_state *state)
void ae_v_add(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n)
void convr1d(ae_vector *a, ae_int_t m, ae_vector *b, ae_int_t n, ae_vector *r, ae_state *_state)
void convc1dcircularinv(ae_vector *a, ae_int_t m, ae_vector *b, ae_int_t n, ae_vector *r, ae_state *_state)
ae_int_t ae_v_len(ae_int_t a, ae_int_t b)
void ae_v_move(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n)
void convc1dcircular(ae_vector *s, ae_int_t m, ae_vector *r, ae_int_t n, ae_vector *c, ae_state *_state)
ae_complex ae_c_div(ae_complex lhs, ae_complex rhs)
ae_complex ae_c_add(ae_complex lhs, ae_complex rhs)
void ae_vector_clear(ae_vector *dst)
void fftc1dinv(ae_vector *a, ae_int_t n, ae_state *_state)
ae_bool ae_fp_less(double v1, double v2)
void corrc1d(ae_vector *signal, ae_int_t n, ae_vector *pattern, ae_int_t m, ae_vector *r, ae_state *_state)
ae_int_t ae_iceil(double x, ae_state *state)
ae_bool ftbaseissmooth(ae_int_t n, ae_state *_state)
void ae_v_caddc(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, ae_complex alpha)
ae_complex ae_c_sub(ae_complex lhs, ae_complex rhs)
ae_bool isfinitevector(ae_vector *x, ae_int_t n, ae_state *_state)
void corrr1d(ae_vector *signal, ae_int_t n, ae_vector *pattern, ae_int_t m, ae_vector *r, ae_state *_state)
void ae_v_cadd(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n)
void fftr1dinvinternaleven(ae_vector *a, ae_int_t n, ae_vector *buf, fasttransformplan *plan, ae_state *_state)
ae_bool ae_vector_set_length(ae_vector *dst, ae_int_t newsize, ae_state *state)
void convc1dx(ae_vector *a, ae_int_t m, ae_vector *b, ae_int_t n, ae_bool circular, ae_int_t alg, ae_int_t q, ae_vector *r, ae_state *_state)
const alglib_impl::ae_vector * c_ptr() const
ae_bool isfinitecvector(ae_vector *z, ae_int_t n, ae_state *_state)
void fftr1dinternaleven(ae_vector *a, ae_int_t n, ae_vector *buf, fasttransformplan *plan, ae_state *_state)
void convc1dinv(ae_vector *a, ae_int_t m, ae_vector *b, ae_int_t n, ae_vector *r, ae_state *_state)
ae_int_t ae_ifloor(double x, ae_state *state)
void ae_state_init(ae_state *state)
void ae_assert(ae_bool cond, const char *msg, ae_state *state)
union alglib_impl::ae_vector::@11 ptr
const char *volatile error_msg
double ftbasegetflopestimate(ae_int_t n, ae_state *_state)
void ftcomplexfftplan(ae_int_t n, ae_int_t k, fasttransformplan *plan, ae_state *_state)
void convr1dcircularinv(ae_vector *a, ae_int_t m, ae_vector *b, ae_int_t n, ae_vector *r, ae_state *_state)
ae_complex ae_c_mul(ae_complex lhs, ae_complex rhs)
ae_bool ae_vector_init(ae_vector *dst, ae_int_t size, ae_datatype datatype, ae_state *state, ae_bool make_automatic)
void fftr1d(ae_vector *a, ae_int_t n, ae_vector *f, ae_state *_state)
ae_bool ae_isfinite(double x, ae_state *state)
void corrr1dcircular(ae_vector *signal, ae_int_t m, ae_vector *pattern, ae_int_t n, ae_vector *c, ae_state *_state)
void ae_v_addd(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n, double alpha)
void convr1dx(ae_vector *a, ae_int_t m, ae_vector *b, ae_int_t n, ae_bool circular, ae_int_t alg, ae_int_t q, ae_vector *r, ae_state *_state)
alglib_impl::ae_int_t ae_int_t
void convr1dinv(ae_vector *a, ae_int_t m, ae_vector *b, ae_int_t n, ae_vector *r, ae_state *_state)
void ae_frame_leave(ae_state *state)
void fftc1d(ae_vector *a, ae_int_t n, ae_state *_state)
void fhtr1d(ae_vector *a, ae_int_t n, ae_state *_state)
ae_int_t ae_minint(ae_int_t m1, ae_int_t m2, ae_state *state)
void fftr1dinv(ae_vector *f, ae_int_t n, ae_vector *a, ae_state *_state)
void ae_v_cmovec(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, ae_complex alpha)