00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "dsp/dspop.h"
00024 #include "dsp/DSPOp.hh"
00025 #include "dsp/IIRCascade.hh"
00026 #include "dsp/FFTDecimator.hh"
00027 #include "dsp/FIRDecimator.hh"
00028 #include "dsp/IIRDecimator.hh"
00029 #include "dsp/RecDecimator.hh"
00030 #include "dsp/FFTInterpolator.hh"
00031 #include "dsp/FIRInterpolator.hh"
00032 #include "dsp/IIRInterpolator.hh"
00033 #include "dsp/RecInterpolator.hh"
00034 #include "dsp/Filter.hh"
00035 #include "dsp/FlipBand.hh"
00036 #include "dsp/ReBuffer.hh"
00037
00038
00039 #ifdef DSP_X86
00040 #include "dsp/X86.h"
00041
00042 extern bool bHave3DNow;
00043 extern bool bHaveSSE;
00044 #endif
00045
00046
00047 extern "C"
00048 {
00049
00050
00051
00052
00053 void dsp_init ()
00054 {
00055 #ifdef DSP_X86
00056 bHave3DNow = (dsp_x86_have_e3dnow()) ? true : false;
00057 bHaveSSE = (dsp_x86_have_sse2()) ? true : false;
00058 #endif
00059 }
00060
00061
00062 signed long dsp_roundf (float fSrc)
00063 {
00064 return clDSPOp::Round(fSrc);
00065 }
00066
00067
00068 signed long dsp_round (double dSrc)
00069 {
00070 return clDSPOp::Round(dSrc);
00071 }
00072
00073
00074 void dsp_addf (float *fpDest, float fSrc, long lCount)
00075 {
00076 clDSPOp::Add(fpDest, fSrc, lCount);
00077 }
00078
00079
00080 void dsp_add (double *dpDest, double dSrc, long lCount)
00081 {
00082 clDSPOp::Add(dpDest, dSrc, lCount);
00083 }
00084
00085
00086 void dsp_caddf (stpSCplx spDest, stSCplx sSrc, long lCount)
00087 {
00088 clDSPOp::Add(spDest, sSrc, lCount);
00089 }
00090
00091
00092 void dsp_cadd (stpDCplx spDest, stDCplx sSrc, long lCount)
00093 {
00094 clDSPOp::Add(spDest, sSrc, lCount);
00095 }
00096
00097
00098 void dsp_add2f (float *fpDest, const float *fpSrc, long lCount)
00099 {
00100 clDSPOp::Add(fpDest, fpSrc, lCount);
00101 }
00102
00103
00104 void dsp_add2 (double *dpDest, const double *dpSrc, long lCount)
00105 {
00106 clDSPOp::Add(dpDest, dpSrc, lCount);
00107 }
00108
00109
00110 void dsp_cadd2f (stpSCplx spDest, const stpSCplx spSrc, long lCount)
00111 {
00112 clDSPOp::Add(spDest, spSrc, lCount);
00113 }
00114
00115
00116 void dsp_cadd2 (stpDCplx spDest, const stpDCplx spSrc, long lCount)
00117 {
00118 clDSPOp::Add(spDest, spSrc, lCount);
00119 }
00120
00121
00122 void dsp_add3f (float *fpDest, const float *fpSrc1, const float *fpSrc2,
00123 long lCount)
00124 {
00125 clDSPOp::Add(fpDest, fpSrc1, fpSrc2, lCount);
00126 }
00127
00128
00129 void dsp_add3 (double *dpDest, const double *dpSrc1, const double *dpSrc2,
00130 long lCount)
00131 {
00132 clDSPOp::Add(dpDest, dpSrc1, dpSrc2, lCount);
00133 }
00134
00135
00136 void dsp_cadd3f (stpSCplx spDest, const stpSCplx spSrc1, const stpSCplx spSrc2,
00137 long lCount)
00138 {
00139 clDSPOp::Add(spDest, spSrc1, spSrc2, lCount);
00140 }
00141
00142
00143 void dsp_cadd3 (stpDCplx spDest, const stpDCplx spSrc1, const stpDCplx spSrc2,
00144 long lCount)
00145 {
00146 clDSPOp::Add(spDest, spSrc1, spSrc2, lCount);
00147 }
00148
00149
00150 void dsp_subf (float *fpDest, float fSrc, long lCount)
00151 {
00152 clDSPOp::Sub(fpDest, fSrc, lCount);
00153 }
00154
00155
00156 void dsp_sub (double *dpDest, double dSrc, long lCount)
00157 {
00158 clDSPOp::Sub(dpDest, dSrc, lCount);
00159 }
00160
00161
00162 void dsp_csubf (stpSCplx spDest, stSCplx sSrc, long lCount)
00163 {
00164 clDSPOp::Sub(spDest, sSrc, lCount);
00165 }
00166
00167
00168 void dsp_csub (stpDCplx spDest, stDCplx sSrc, long lCount)
00169 {
00170 clDSPOp::Sub(spDest, sSrc, lCount);
00171 }
00172
00173
00174 void dsp_sub2f (float *fpDest, const float *fpSrc, long lCount)
00175 {
00176 clDSPOp::Sub(fpDest, fpSrc, lCount);
00177 }
00178
00179
00180 void dsp_sub2 (double *dpDest, const double *dpSrc, long lCount)
00181 {
00182 clDSPOp::Sub(dpDest, dpSrc, lCount);
00183 }
00184
00185
00186 void dsp_csub2f (stpSCplx spDest, const stpSCplx spSrc, long lCount)
00187 {
00188 clDSPOp::Sub(spDest, spSrc, lCount);
00189 }
00190
00191
00192 void dsp_csub2 (stpDCplx spDest, const stpDCplx spSrc, long lCount)
00193 {
00194 clDSPOp::Sub(spDest, spSrc, lCount);
00195 }
00196
00197
00198 void dsp_sub3f (float *fpDest, const float *fpSrc1, const float *fpSrc2,
00199 long lCount)
00200 {
00201 clDSPOp::Sub(fpDest, fpSrc1, fpSrc2, lCount);
00202 }
00203
00204
00205 void dsp_sub3 (double *dpDest, const double *dpSrc1, const double *dpSrc2,
00206 long lCount)
00207 {
00208 clDSPOp::Sub(dpDest, dpSrc1, dpSrc2, lCount);
00209 }
00210
00211
00212 void dsp_csub3f (stpSCplx spDest, const stpSCplx spSrc1, const stpSCplx spSrc2,
00213 long lCount)
00214 {
00215 clDSPOp::Sub(spDest, spSrc1, spSrc2, lCount);
00216 }
00217
00218
00219 void dsp_csub3 (stpDCplx spDest, const stpDCplx spSrc1, const stpDCplx spSrc2,
00220 long lCount)
00221 {
00222 clDSPOp::Sub(spDest, spSrc1, spSrc2, lCount);
00223 }
00224
00225
00226 void dsp_mulf (float *fpDest, float fSrc, long lCount)
00227 {
00228 clDSPOp::Mul(fpDest, fSrc, lCount);
00229 }
00230
00231
00232 void dsp_mul (double *dpDest, double dSrc, long lCount)
00233 {
00234 clDSPOp::Mul(dpDest, dSrc, lCount);
00235 }
00236
00237
00238 void dsp_chmulf (stpSCplx spDest, float fSrc, long lCount)
00239 {
00240 clDSPOp::Mul(spDest, fSrc, lCount);
00241 }
00242
00243
00244 void dsp_chmul (stpDCplx spDest, double dSrc, long lCount)
00245 {
00246 clDSPOp::Mul(spDest, dSrc, lCount);
00247 }
00248
00249
00250 void dsp_cmulf (stpSCplx spDest, stSCplx sSrc, long lCount)
00251 {
00252 clDSPOp::Mul(spDest, sSrc, lCount);
00253 }
00254
00255
00256 void dsp_cmul (stpDCplx spDest, stDCplx sSrc, long lCount)
00257 {
00258 clDSPOp::Mul(spDest, sSrc, lCount);
00259 }
00260
00261
00262 void dsp_mulf_nip (float *fpDest, const float *fpSrc1, float fSrc2,
00263 long lCount)
00264 {
00265 clDSPOp::Mul(fpDest, fpSrc1, fSrc2, lCount);
00266 }
00267
00268
00269 void dsp_mul_nip (double *dpDest, const double *dpSrc1, double dSrc2,
00270 long lCount)
00271 {
00272 clDSPOp::Mul(dpDest, dpSrc1, dSrc2, lCount);
00273 }
00274
00275
00276 void dsp_mul2f (float *fpDest, const float *fpSrc, long lCount)
00277 {
00278 clDSPOp::Mul(fpDest, fpSrc, lCount);
00279 }
00280
00281
00282 void dsp_mul2 (double *dpDest, const double *dpSrc, long lCount)
00283 {
00284 clDSPOp::Mul(dpDest, dpSrc, lCount);
00285 }
00286
00287
00288 void dsp_chmul2f (stpSCplx spDest, const float *fpSrc, long lCount)
00289 {
00290 clDSPOp::Mul(spDest, fpSrc, lCount);
00291 }
00292
00293
00294 void dsp_chmul2 (stpDCplx spDest, const double *dpSrc, long lCount)
00295 {
00296 clDSPOp::Mul(spDest, dpSrc, lCount);
00297 }
00298
00299
00300 void dsp_cmul2f (stpSCplx spDest, const stpSCplx spSrc, long lCount)
00301 {
00302 clDSPOp::Mul(spDest, spSrc, lCount);
00303 }
00304
00305
00306 void dsp_cmul2 (stpDCplx spDest, const stpDCplx spSrc, long lCount)
00307 {
00308 clDSPOp::Mul(spDest, spSrc, lCount);
00309 }
00310
00311
00312 void dsp_mul3f (float *fpDest, const float *fpSrc1, const float *fpSrc2,
00313 long lCount)
00314 {
00315 clDSPOp::Mul(fpDest, fpSrc1, fpSrc2, lCount);
00316 }
00317
00318
00319 void dsp_mul3 (double *dpDest, const double *dpSrc1, const double *dpSrc2,
00320 long lCount)
00321 {
00322 clDSPOp::Mul(dpDest, dpSrc1, dpSrc2, lCount);
00323 }
00324
00325
00326 void dsp_cmul3f (stpSCplx spDest, const stpSCplx spSrc1, const stpSCplx spSrc2,
00327 long lCount)
00328 {
00329 clDSPOp::Mul(spDest, spSrc1, spSrc2, lCount);
00330 }
00331
00332
00333 void dsp_cmul3 (stpDCplx spDest, const stpDCplx spSrc1, const stpDCplx spSrc2,
00334 long lCount)
00335 {
00336 clDSPOp::Mul(spDest, spSrc1, spSrc2, lCount);
00337 }
00338
00339
00340 void dsp_ccmulf (stpSCplx spDest, const stpSCplx spSrc, long lCount)
00341 {
00342 clDSPOp::MulC(spDest, spSrc, lCount);
00343 }
00344
00345
00346 void dsp_ccmul (stpDCplx spDest, const stpDCplx spSrc, long lCount)
00347 {
00348 clDSPOp::MulC(spDest, spSrc, lCount);
00349 }
00350
00351
00352 void dsp_ccmulf_nip (stpSCplx spDest, const stpSCplx spSrc1,
00353 const stpSCplx spSrc2, long lCount)
00354 {
00355 clDSPOp::MulC(spDest, spSrc1, spSrc2, lCount);
00356 }
00357
00358
00359 void dsp_ccmul_nip (stpDCplx spDest, const stpDCplx spSrc1,
00360 const stpDCplx spSrc2, long lCount)
00361 {
00362 clDSPOp::MulC(spDest, spSrc1, spSrc2, lCount);
00363 }
00364
00365
00366 void dsp_divf (float *fpDest, float fSrc, long lCount)
00367 {
00368 clDSPOp::Div(fpDest, fSrc, lCount);
00369 }
00370
00371
00372 void dsp_div (double *dpDest, double dSrc, long lCount)
00373 {
00374 clDSPOp::Div(dpDest, dSrc, lCount);
00375 }
00376
00377
00378 void dsp_cdivf (stpSCplx spDest, stSCplx sSrc, long lCount)
00379 {
00380 clDSPOp::Div(spDest, sSrc, lCount);
00381 }
00382
00383
00384 void dsp_cdiv (stpDCplx spDest, stDCplx sSrc, long lCount)
00385 {
00386 clDSPOp::Div(spDest, sSrc, lCount);
00387 }
00388
00389
00390 void dsp_div2f (float *fpDest, const float *fpSrc, long lCount)
00391 {
00392 clDSPOp::Div(fpDest, fpSrc, lCount);
00393 }
00394
00395
00396 void dsp_div2 (double *dpDest, const double *dpSrc, long lCount)
00397 {
00398 clDSPOp::Div(dpDest, dpSrc, lCount);
00399 }
00400
00401
00402 void dsp_cdiv2f (stpSCplx spDest, const stpSCplx spSrc, long lCount)
00403 {
00404 clDSPOp::Div(spDest, spSrc, lCount);
00405 }
00406
00407
00408 void dsp_cdiv2 (stpDCplx spDest, const stpDCplx spSrc, long lCount)
00409 {
00410 clDSPOp::Div(spDest, spSrc, lCount);
00411 }
00412
00413
00414 void dsp_div3f (float *fpDest, const float *fpSrc1, const float *fpSrc2,
00415 long lCount)
00416 {
00417 clDSPOp::Div(fpDest, fpSrc1, fpSrc2, lCount);
00418 }
00419
00420
00421 void dsp_div3 (double *dpDest, const double *dpSrc1, const double *dpSrc2,
00422 long lCount)
00423 {
00424 clDSPOp::Div(dpDest, dpSrc1, dpSrc2, lCount);
00425 }
00426
00427
00428 void dsp_cdiv3f (stpSCplx spDest, const stpSCplx spSrc1, const stpSCplx spSrc2,
00429 long lCount)
00430 {
00431 clDSPOp::Div(spDest, spSrc1, spSrc2, lCount);
00432 }
00433
00434
00435 void dsp_cdiv3 (stpDCplx spDest, const stpDCplx spSrc1, const stpDCplx spSrc2,
00436 long lCount)
00437 {
00438 clDSPOp::Div(spDest, spSrc1, spSrc2, lCount);
00439 }
00440
00441
00442 void dsp_div1xf (float *fpVect, long lCount)
00443 {
00444 clDSPOp::Div1x(fpVect, lCount);
00445 }
00446
00447
00448 void dsp_div1x (double *dpVect, long lCount)
00449 {
00450 clDSPOp::Div1x(dpVect, lCount);
00451 }
00452
00453
00454 void dsp_div1xf_nip (float *fpDest, const float *fpSrc, long lCount)
00455 {
00456 clDSPOp::Div1x(fpDest, fpSrc, lCount);
00457 }
00458
00459
00460 void dsp_div1x_nip (double *dpDest, const double *dpSrc, long lCount)
00461 {
00462 clDSPOp::Div1x(dpDest, dpSrc, lCount);
00463 }
00464
00465
00466 void dsp_muladdf (float *fpVect, float fMul, float fAdd, long lCount)
00467 {
00468 clDSPOp::MulAdd(fpVect, fMul, fAdd, lCount);
00469 }
00470
00471
00472 void dsp_muladd (double *dpVect, double dMul, double dAdd, long lCount)
00473 {
00474 clDSPOp::MulAdd(dpVect, dMul, dAdd, lCount);
00475 }
00476
00477
00478 void dsp_muladdf_nip (float *fpDest, const float *fpSrc,
00479 float fMul, float fAdd, long lCount)
00480 {
00481 clDSPOp::MulAdd(fpDest, fpSrc, fMul, fAdd, lCount);
00482 }
00483
00484
00485 void dsp_muladd_nip (double *dpDest, const double *dpSrc,
00486 double dMul, double dAdd, long lCount)
00487 {
00488 clDSPOp::MulAdd(dpDest, dpSrc, dMul, dAdd, lCount);
00489 }
00490
00491
00492 void dsp_absf (float *fpVect, long lCount)
00493 {
00494 clDSPOp::Abs(fpVect, lCount);
00495 }
00496
00497
00498 void dsp_abs (double *dpVect, long lCount)
00499 {
00500 clDSPOp::Abs(dpVect, lCount);
00501 }
00502
00503
00504 void dsp_absf_nip (float *fpDest, const float *fpSrc, long lCount)
00505 {
00506 clDSPOp::Abs(fpDest, fpSrc, lCount);
00507 }
00508
00509
00510 void dsp_abs_nip (double *dpDest, const double *dpSrc, long lCount)
00511 {
00512 clDSPOp::Abs(dpDest, dpSrc, lCount);
00513 }
00514
00515
00516 void dsp_sqrtf (float *fpVect, long lCount)
00517 {
00518 clDSPOp::Sqrt(fpVect, lCount);
00519 }
00520
00521
00522 void dsp_sqrt (double *dpVect, long lCount)
00523 {
00524 clDSPOp::Sqrt(dpVect, lCount);
00525 }
00526
00527
00528 void dsp_sqrtf_nip (float *fpDest, const float *fpSrc, long lCount)
00529 {
00530 clDSPOp::Sqrt(fpDest, fpSrc, lCount);
00531 }
00532
00533
00534 void dsp_sqrt_nip (double *dpDest, const double *dpSrc, long lCount)
00535 {
00536 clDSPOp::Sqrt(dpDest, dpSrc, lCount);
00537 }
00538
00539
00540 void dsp_zerof (float *fpVect, long lCount)
00541 {
00542 clDSPOp::Zero(fpVect, lCount);
00543 }
00544
00545
00546 void dsp_zero (double *dpVect, long lCount)
00547 {
00548 clDSPOp::Zero(dpVect, lCount);
00549 }
00550
00551
00552 void dsp_czerof (stpSCplx spVect, long lCount)
00553 {
00554 clDSPOp::Zero(spVect, lCount);
00555 }
00556
00557
00558 void dsp_czero (stpDCplx spVect, long lCount)
00559 {
00560 clDSPOp::Zero(spVect, lCount);
00561 }
00562
00563
00564 void dsp_setf (float *fpDest, float fSrc, long lCount)
00565 {
00566 clDSPOp::Set(fpDest, fSrc, lCount);
00567 }
00568
00569
00570 void dsp_set (double *dpDest, double dSrc, long lCount)
00571 {
00572 clDSPOp::Set(dpDest, dSrc, lCount);
00573 }
00574
00575
00576 void dsp_csetf (stpSCplx spDest, stSCplx sSrc, long lCount)
00577 {
00578 clDSPOp::Set(spDest, sSrc, lCount);
00579 }
00580
00581
00582 void dsp_cset (stpDCplx spDest, stDCplx sSrc, long lCount)
00583 {
00584 clDSPOp::Set(spDest, sSrc, lCount);
00585 }
00586
00587
00588 void dsp_set2f (float *fpDest, float fSrc, long lStart, long lCount,
00589 long lLength)
00590 {
00591 clDSPOp::Set(fpDest, fSrc, lStart, lCount, lLength);
00592 }
00593
00594
00595 void dsp_set2 (double *dpDest, double dSrc, long lStart, long lCount,
00596 long lLength)
00597 {
00598 clDSPOp::Set(dpDest, dSrc, lStart, lCount, lLength);
00599 }
00600
00601
00602 void dsp_cset2f (stpSCplx spDest, stSCplx sSrc, long lStart, long lCount,
00603 long lLength)
00604 {
00605 clDSPOp::Set(spDest, sSrc, lStart, lCount, lLength);
00606 }
00607
00608
00609 void dsp_cset2 (stpDCplx spDest, stDCplx sSrc, long lStart, long lCount,
00610 long lLength)
00611 {
00612 clDSPOp::Set(spDest, sSrc, lStart, lCount, lLength);
00613 }
00614
00615
00616 void dsp_clipf (float *fpVect, float fValue, long lCount)
00617 {
00618 clDSPOp::Clip(fpVect, fValue, lCount);
00619 }
00620
00621
00622 void dsp_clip (double *dpVect, double dValue, long lCount)
00623 {
00624 clDSPOp::Clip(dpVect, dValue, lCount);
00625 }
00626
00627
00628 void dsp_clipf_nip (float *fpDest, const float *fpSrc, float fValue,
00629 long lCount)
00630 {
00631 clDSPOp::Clip(fpDest, fpSrc, fValue, lCount);
00632 }
00633
00634
00635 void dsp_clip_nip (double *dpDest, const double *dpSrc, double dValue,
00636 long lCount)
00637 {
00638 clDSPOp::Clip(dpDest, dpSrc, dValue, lCount);
00639 }
00640
00641
00642 void dsp_clip2f (float *fpVect, float fMin, float fMax, long lCount)
00643 {
00644 clDSPOp::Clip(fpVect, fMin, fMax, lCount);
00645 }
00646
00647
00648 void dsp_clip2 (double *dpVect, double dMin, double dMax, long lCount)
00649 {
00650 clDSPOp::Clip(dpVect, dMin, dMax, lCount);
00651 }
00652
00653
00654 void dsp_clip2f_nip (float *fpDest, const float *fpSrc,
00655 float fMin, float fMax, long lCount)
00656 {
00657 clDSPOp::Clip(fpDest, fpSrc, fMin, fMax, lCount);
00658 }
00659
00660
00661 void dsp_clip2_nip (double *dpDest, const double *dpSrc,
00662 double dMin, double dMax, long lCount)
00663 {
00664 clDSPOp::Clip(dpDest, dpSrc, dMin, dMax, lCount);
00665 }
00666
00667
00668 void dsp_clipzerof (float *fpVect, long lCount)
00669 {
00670 clDSPOp::ClipZero(fpVect, lCount);
00671 }
00672
00673
00674 void dsp_clipzero (double *dpVect, long lCount)
00675 {
00676 clDSPOp::ClipZero(dpVect, lCount);
00677 }
00678
00679
00680 void dsp_clipzerof_nip (float *fpDest, const float *fpSrc, long lCount)
00681 {
00682 clDSPOp::ClipZero(fpDest, fpSrc, lCount);
00683 }
00684
00685
00686 void dsp_clipzero_nip (double *dpDest, const double *dpSrc, long lCount)
00687 {
00688 clDSPOp::ClipZero(dpDest, dpSrc, lCount);
00689 }
00690
00691
00692 void dsp_copyf (float *fpDest, const float *fpSrc, long lCount)
00693 {
00694 clDSPOp::Copy(fpDest, fpSrc, lCount);
00695 }
00696
00697
00698 void dsp_copy (double *dpDest, const double *dpSrc, long lCount)
00699 {
00700 clDSPOp::Copy(dpDest, dpSrc, lCount);
00701 }
00702
00703
00704 void dsp_ccopyf (stpSCplx spDest, const stpSCplx spSrc, long lCount)
00705 {
00706 clDSPOp::Copy(spDest, spSrc, lCount);
00707 }
00708
00709
00710 void dsp_ccopy (stpDCplx spDest, const stpDCplx spSrc, long lCount)
00711 {
00712 clDSPOp::Copy(spDest, spSrc, lCount);
00713 }
00714
00715
00716 float dsp_convolvef (const float *fpSrc1, const float *fpSrc2, long lCount)
00717 {
00718 return clDSPOp::Convolve(fpSrc1, fpSrc2, lCount);
00719 }
00720
00721
00722 double dsp_convolve (const double *dpSrc1, const double *dpSrc2, long lCount)
00723 {
00724 return clDSPOp::Convolve(dpSrc1, dpSrc2, lCount);
00725 }
00726
00727
00728 void dsp_convolve2f (float *fpDest, const float *fpSrc1, const float *fpSrc2,
00729 long lCount)
00730 {
00731 clDSPOp::Convolve(fpDest, fpSrc1, fpSrc2, lCount);
00732 }
00733
00734
00735 void dsp_convolve2 (double *dpDest, const double *dpSrc1, const double *dpSrc2,
00736 long lCount)
00737 {
00738 clDSPOp::Convolve(dpDest, dpSrc1, dpSrc2, lCount);
00739 }
00740
00741
00742 float dsp_correlatef (const float *fpSrc1, const float *fpSrc2, long lCount)
00743 {
00744 return clDSPOp::Correlate(fpSrc1, fpSrc2, lCount);
00745 }
00746
00747
00748 double dsp_correlate (const double *dpSrc1, const double *dpSrc2, long lCount)
00749 {
00750 return clDSPOp::Correlate(dpSrc1, dpSrc2, lCount);
00751 }
00752
00753
00754 void dsp_correlate2f (float *fpDest, const float *fpSrc1, const float *fpSrc2,
00755 long lCount)
00756 {
00757 clDSPOp::Correlate(fpDest, fpSrc1, fpSrc2, lCount);
00758 }
00759
00760
00761 void dsp_correlate2 (double *dpDest, const double *dpSrc1, const double *dpSrc2,
00762 long lCount)
00763 {
00764 clDSPOp::Correlate(dpDest, dpSrc1, dpSrc2, lCount);
00765 }
00766
00767
00768 float dsp_autocorrf (const float *fpSrc, long lCount)
00769 {
00770 return clDSPOp::AutoCorrelate(fpSrc, lCount);
00771 }
00772
00773
00774 double dsp_autocorr (const double *dpSrc, long lCount)
00775 {
00776 return clDSPOp::AutoCorrelate(dpSrc, lCount);
00777 }
00778
00779
00780 void dsp_autocorr2f (float *fpDest, const float *fpSrc, long lCount)
00781 {
00782 clDSPOp::AutoCorrelate(fpDest, fpSrc, lCount);
00783 }
00784
00785
00786 void dsp_autocorr2 (double *dpDest, const double *dpSrc, long lCount)
00787 {
00788 clDSPOp::AutoCorrelate(dpDest, dpSrc, lCount);
00789 }
00790
00791
00792 float dsp_dotproductf (const float *fpSrc1, const float *fpSrc2, long lCount)
00793 {
00794 return clDSPOp::DotProduct(fpSrc1, fpSrc2, lCount);
00795 }
00796
00797
00798 double dsp_dotproduct (const double *dpSrc1, const double *dpSrc2, long lCount)
00799 {
00800 return clDSPOp::DotProduct(dpSrc1, dpSrc2, lCount);
00801 }
00802
00803
00804 void dsp_minmaxf (float *fpMin, float *fpMax, const float *fpSrc, long lCount)
00805 {
00806 clDSPOp::MinMax(fpMin, fpMax, fpSrc, lCount);
00807 }
00808
00809
00810 void dsp_minmax (double *dpMin, double *dpMax, const double *dpSrc, long lCount)
00811 {
00812 clDSPOp::MinMax(dpMin, dpMax, dpSrc, lCount);
00813 }
00814
00815
00816 float dsp_meanf (const float *fpSrc, long lCount)
00817 {
00818 return clDSPOp::Mean(fpSrc, lCount);
00819 }
00820
00821
00822 double dsp_mean (const double *dpSrc, long lCount)
00823 {
00824 return clDSPOp::Mean(dpSrc, lCount);
00825 }
00826
00827
00828 float dsp_medianf (const float *fpSrc, long lCount)
00829 {
00830 return clDSPOp::Median(fpSrc, lCount);
00831 }
00832
00833
00834 double dsp_median (const double *dpSrc, long lCount)
00835 {
00836 return clDSPOp::Median(dpSrc, lCount);
00837 }
00838
00839
00840 void dsp_negatef (float *fpVect, long lCount)
00841 {
00842 clDSPOp::Negate(fpVect, lCount);
00843 }
00844
00845
00846 void dsp_negate (double *dpVect, long lCount)
00847 {
00848 clDSPOp::Negate(dpVect, lCount);
00849 }
00850
00851
00852 void dsp_negatef_nip (float *fpDest, const float *fpSrc, long lCount)
00853 {
00854 clDSPOp::Negate(fpDest, fpSrc, lCount);
00855 }
00856
00857
00858 void dsp_negate_nip (double *dpDest, const double *dpSrc, long lCount)
00859 {
00860 clDSPOp::Negate(dpDest, dpSrc, lCount);
00861 }
00862
00863
00864 void dsp_normalizef (float *fpVect, long lCount)
00865 {
00866 clDSPOp::Normalize(fpVect, lCount);
00867 }
00868
00869
00870 void dsp_normalize (double *dpVect, long lCount)
00871 {
00872 clDSPOp::Normalize(dpVect, lCount);
00873 }
00874
00875
00876 void dsp_normalizef_nip (float *fpDest, const float *fpSrc, long lCount)
00877 {
00878 clDSPOp::Normalize(fpDest, fpSrc, lCount);
00879 }
00880
00881
00882 void dsp_normalize_nip (double *dpDest, const double *dpSrc, long lCount)
00883 {
00884 clDSPOp::Normalize(dpDest, dpSrc, lCount);
00885 }
00886
00887
00888 float dsp_productf (const float *fpSrc, long lCount)
00889 {
00890 return clDSPOp::Product(fpSrc, lCount);
00891 }
00892
00893
00894 double dsp_product (const double *dpSrc, long lCount)
00895 {
00896 return clDSPOp::Product(dpSrc, lCount);
00897 }
00898
00899
00900 void dsp_reversef (float *fpVect, long lCount)
00901 {
00902 clDSPOp::Reverse(fpVect, lCount);
00903 }
00904
00905
00906 void dsp_reverse (double *dpVect, long lCount)
00907 {
00908 clDSPOp::Reverse(dpVect, lCount);
00909 }
00910
00911
00912 void dsp_reversef_nip (float *fpDest, const float *fpSrc, long lCount)
00913 {
00914 clDSPOp::Reverse(fpDest, fpSrc, lCount);
00915 }
00916
00917
00918 void dsp_reverse_nip (double *dpDest, const double *dpSrc, long lCount)
00919 {
00920 clDSPOp::Reverse(dpDest, dpSrc, lCount);
00921 }
00922
00923
00924 void dsp_scalef (float *fpVect, long lCount)
00925 {
00926 clDSPOp::Scale(fpVect, lCount);
00927 }
00928
00929
00930 void dsp_scale (double *dpVect, long lCount)
00931 {
00932 clDSPOp::Scale(dpVect, lCount);
00933 }
00934
00935
00936 void dsp_scalef_nip (float *fpDest, const float *fpSrc, long lCount)
00937 {
00938 clDSPOp::Scale(fpDest, fpSrc, lCount);
00939 }
00940
00941
00942 void dsp_scale_nip (double *dpDest, const double *dpSrc, long lCount)
00943 {
00944 clDSPOp::Scale(dpDest, dpSrc, lCount);
00945 }
00946
00947
00948 void dsp_scale01f (float *fpVect, long lCount)
00949 {
00950 clDSPOp::Scale01(fpVect, lCount);
00951 }
00952
00953
00954 void dsp_scale01 (double *dpVect, long lCount)
00955 {
00956 clDSPOp::Scale01(dpVect, lCount);
00957 }
00958
00959
00960 void dsp_scale01f_nip (float *fpDest, const float *fpSrc, long lCount)
00961 {
00962 clDSPOp::Scale01(fpDest, fpSrc, lCount);
00963 }
00964
00965
00966 void dsp_scale01_nip (double *dpDest, const double *dpSrc, long lCount)
00967 {
00968 clDSPOp::Scale01(dpDest, dpSrc, lCount);
00969 }
00970
00971
00972 void dsp_sortf (float *fpVect, long lCount)
00973 {
00974 clDSPOp::Sort(fpVect, lCount);
00975 }
00976
00977
00978 void dsp_sort (double *dpVect, long lCount)
00979 {
00980 clDSPOp::Sort(dpVect, lCount);
00981 }
00982
00983
00984 void dsp_sortl (long *lpVect, long lCount)
00985 {
00986 clDSPOp::Sort(lpVect, lCount);
00987 }
00988
00989
00990 void dsp_stddevf (float *fpStdDev, float *fpMean, const float *fpSrc,
00991 long lCount)
00992 {
00993 clDSPOp::StdDev(fpStdDev, fpMean, fpSrc, lCount);
00994 }
00995
00996
00997 void dsp_stddev (double *dpStdDev, double *dpMean, const double *dpSrc,
00998 long lCount)
00999 {
01000 clDSPOp::StdDev(dpStdDev, dpMean, dpSrc, lCount);
01001 }
01002
01003
01004 float dsp_sumf (const float *fpSrc, long lCount)
01005 {
01006 return clDSPOp::Sum(fpSrc, lCount);
01007 }
01008
01009
01010 double dsp_sum (const double *dpSrc, long lCount)
01011 {
01012 return clDSPOp::Sum(dpSrc, lCount);
01013 }
01014
01015
01016 void dsp_squaref (float *fpVect, long lCount)
01017 {
01018 clDSPOp::Square(fpVect, lCount);
01019 }
01020
01021
01022 void dsp_square (double *dpVect, long lCount)
01023 {
01024 clDSPOp::Square(dpVect, lCount);
01025 }
01026
01027
01028 void dsp_squaref_nip (float *fpDest, const float *fpSrc, long lCount)
01029 {
01030 clDSPOp::Square(fpDest, fpSrc, lCount);
01031 }
01032
01033
01034 void dsp_square_nip (double *dpDest, const double *dpSrc, long lCount)
01035 {
01036 clDSPOp::Square(dpDest, dpSrc, lCount);
01037 }
01038
01039
01040 void dsp_convertu8f (float *fpDest, const unsigned char *ucpSrc, long lCount)
01041 {
01042 clDSPOp::Convert(fpDest, ucpSrc, lCount);
01043 }
01044
01045
01046 void dsp_convertu8 (double *dpDest, const unsigned char *ucpSrc, long lCount)
01047 {
01048 clDSPOp::Convert(dpDest, ucpSrc, lCount);
01049 }
01050
01051
01052 void dsp_converts16f (float *fpDest, const signed short *ipSrc, long lCount,
01053 int i12bit)
01054 {
01055 clDSPOp::Convert(fpDest, ipSrc, lCount, (i12bit) ? true : false);
01056 }
01057
01058
01059 void dsp_converts16 (double *dpDest, const signed short *ipSrc, long lCount,
01060 int i12bit)
01061 {
01062 clDSPOp::Convert(dpDest, ipSrc, lCount, (i12bit) ? true : false);
01063 }
01064
01065
01066 void dsp_converts32f (float *fpDest, const signed int *ipSrc, long lCount,
01067 int i24bit)
01068 {
01069 clDSPOp::Convert(fpDest, ipSrc, lCount, (i24bit) ? true : false);
01070 }
01071
01072
01073 void dsp_converts32 (double *dpDest, const signed int *ipSrc, long lCount,
01074 int i24bit)
01075 {
01076 clDSPOp::Convert(dpDest, ipSrc, lCount, (i24bit) ? true : false);
01077 }
01078
01079
01080 void dsp_convertd64f (float *fpDest, const double *dpSrc, long lCount)
01081 {
01082 clDSPOp::Convert(fpDest, dpSrc, lCount);
01083 }
01084
01085
01086 void dsp_convertf32 (double *dpDest, const float *fpSrc, long lCount)
01087 {
01088 clDSPOp::Convert(dpDest, fpSrc, lCount);
01089 }
01090
01091
01092 void dsp_convertf32c (unsigned char *ucpDest, const float *fpSrc, long lCount)
01093 {
01094 clDSPOp::Convert(ucpDest, fpSrc, lCount);
01095 }
01096
01097
01098 void dsp_convertd64c (unsigned char *ucpDest, const double *dpSrc, long lCount)
01099 {
01100 clDSPOp::Convert(ucpDest, dpSrc, lCount);
01101 }
01102
01103
01104 void dsp_convertf32s (signed short *ipDest, const float *fpSrc, long lCount,
01105 int i12bit)
01106 {
01107 clDSPOp::Convert(ipDest, fpSrc, lCount, (i12bit) ? true : false);
01108 }
01109
01110
01111 void dsp_convertd64s (signed short *ipDest, const double *dpSrc, long lCount,
01112 int i12bit)
01113 {
01114 clDSPOp::Convert(ipDest, dpSrc, lCount, (i12bit) ? true : false);
01115 }
01116
01117
01118 void dsp_convertf32i (signed int *ipDest, const float *fpSrc, long lCount,
01119 int i24bit)
01120 {
01121 clDSPOp::Convert(ipDest, fpSrc, lCount, (i24bit) ? true : false);
01122 }
01123
01124
01125 void dsp_convertd64i (signed int *ipDest, const double *dpSrc, long lCount,
01126 int i24bit)
01127 {
01128 clDSPOp::Convert(ipDest, dpSrc, lCount, (i24bit) ? true : false);
01129 }
01130
01131
01132 void dsp_cart2polarf (float *fpMagn, float *fpPhase, const float *fpReal,
01133 const float *fpImag, long lCount)
01134 {
01135 clDSPOp::CartToPolar(fpMagn, fpPhase, fpReal, fpImag, lCount);
01136 }
01137
01138
01139 void dsp_cart2polar (double *dpMagn, double *dpPhase, const double *dpReal,
01140 const double *dpImag, long lCount)
01141 {
01142 clDSPOp::CartToPolar(dpMagn, dpPhase, dpReal, dpImag, lCount);
01143 }
01144
01145
01146 void dsp_cart2polar2f (float *fpMagn, float *fpPhase, const stpSCplx spCart,
01147 long lCount)
01148 {
01149 clDSPOp::CartToPolar(fpMagn, fpPhase, spCart, lCount);
01150 }
01151
01152
01153 void dsp_cart2polar2 (double *dpMagn, double *dpPhase, const stpDCplx spCart,
01154 long lCount)
01155 {
01156 clDSPOp::CartToPolar(dpMagn, dpPhase, spCart, lCount);
01157 }
01158
01159
01160 void dsp_cart2polar3f (stpSPolar spPolar, const stpSCplx spCart, long lCount)
01161 {
01162 clDSPOp::CartToPolar(spPolar, spCart, lCount);
01163 }
01164
01165
01166 void dsp_cart2polar3 (stpDPolar spPolar, const stpDCplx spCart, long lCount)
01167 {
01168 clDSPOp::CartToPolar(spPolar, spCart, lCount);
01169 }
01170
01171
01172 void dsp_cart2polar4f (utpSCoord upCoord, long lCount)
01173 {
01174 clDSPOp::CartToPolar(upCoord, lCount);
01175 }
01176
01177
01178 void dsp_cart2polar4 (utpDCoord upCoord, long lCount)
01179 {
01180 clDSPOp::CartToPolar(upCoord, lCount);
01181 }
01182
01183
01184 void dsp_polar2cartf (float *fpReal, float *fpImag, const float *fpMagn,
01185 const float *fpPhase, long lCount)
01186 {
01187 clDSPOp::PolarToCart(fpReal, fpImag, fpMagn, fpPhase, lCount);
01188 }
01189
01190
01191 void dsp_polar2cart (double *dpReal, double *dpImag, const double *dpMagn,
01192 const double *dpPhase, long lCount)
01193 {
01194 clDSPOp::PolarToCart(dpReal, dpImag, dpMagn, dpPhase, lCount);
01195 }
01196
01197
01198 void dsp_polar2cart2f (stpSCplx spCart, const float *fpMagn,
01199 const float *fpPhase, long lCount)
01200 {
01201 clDSPOp::PolarToCart(spCart, fpMagn, fpPhase, lCount);
01202 }
01203
01204
01205 void dsp_polar2cart2 (stpDCplx spCart, const double *dpMagn,
01206 const double *dpPhase, long lCount)
01207 {
01208 clDSPOp::PolarToCart(spCart, dpMagn, dpPhase, lCount);
01209 }
01210
01211
01212 void dsp_polar2cart3f (stpSCplx spCart, const stpSPolar spPolar, long lCount)
01213 {
01214 clDSPOp::PolarToCart(spCart, spPolar, lCount);
01215 }
01216
01217
01218 void dsp_polar2cart3 (stpDCplx spCart, const stpDPolar spPolar, long lCount)
01219 {
01220 clDSPOp::PolarToCart(spCart, spPolar, lCount);
01221 }
01222
01223
01224 void dsp_polar2cart4f (utpSCoord upCoord, long lCount)
01225 {
01226 clDSPOp::PolarToCart(upCoord, lCount);
01227 }
01228
01229
01230 void dsp_polar2cart4 (utpDCoord upCoord, long lCount)
01231 {
01232 clDSPOp::PolarToCart(upCoord, lCount);
01233 }
01234
01235
01236 float dsp_crosscorrf (const float *fpSrc1, const float *fpSrc2, long lCount)
01237 {
01238 return clDSPOp::CrossCorr(fpSrc1, fpSrc2, lCount);
01239 }
01240
01241
01242 double dsp_crosscorr (const double *dpSrc1, const double *dpSrc2, long lCount)
01243 {
01244 return clDSPOp::CrossCorr(dpSrc1, dpSrc2, lCount);
01245 }
01246
01247
01248 float dsp_crosscorr2f (const float *fpSrc1, const float *fpSrc2,
01249 long lDelay, long lCount)
01250 {
01251 return clDSPOp::DelCrossCorr(fpSrc1, fpSrc2, lDelay, lCount);
01252 }
01253
01254
01255 double dsp_crosscorr2 (const double *dpSrc1, const double *dpSrc2,
01256 long lDelay, long lCount)
01257 {
01258 return clDSPOp::DelCrossCorr(dpSrc1, dpSrc2, lDelay, lCount);
01259 }
01260
01261
01262 void dsp_crosscorr3f (float *fpDest, const float *fpSrc1,
01263 const float *fpSrc2, long lCount, const long *lpDelays, long lDelayCount)
01264 {
01265 clDSPOp::DelCrossCorr(fpDest, fpSrc1, fpSrc2, lCount,
01266 lpDelays, lDelayCount);
01267 }
01268
01269
01270 void dsp_crosscorr3 (double *dpDest, const double *dpSrc1,
01271 const double *dpSrc2, long lCount, const long *lpDelays, long lDelayCount)
01272 {
01273 clDSPOp::DelCrossCorr(dpDest, dpSrc1, dpSrc2, lCount,
01274 lpDelays, lDelayCount);
01275 }
01276
01277
01278 float dsp_energyf (const float *fpSrc, long lCount)
01279 {
01280 return clDSPOp::Energy(fpSrc, lCount);
01281 }
01282
01283
01284 double dsp_energy (const double *dpSrc, long lCount)
01285 {
01286 return clDSPOp::Energy(dpSrc, lCount);
01287 }
01288
01289
01290 void dsp_magnitudef (float *fpDest, const stpSCplx spSrc, long lCount)
01291 {
01292 clDSPOp::Magnitude(fpDest, spSrc, lCount);
01293 }
01294
01295
01296 void dsp_magnitude (double *dpDest, const stpDCplx spSrc, long lCount)
01297 {
01298 clDSPOp::Magnitude(dpDest, spSrc, lCount);
01299 }
01300
01301
01302 void dsp_powerf (float *fpDest, const stpSCplx spSrc, long lCount)
01303 {
01304 clDSPOp::Power(fpDest, spSrc, lCount);
01305 }
01306
01307
01308 void dsp_power (double *dpDest, const stpDCplx spSrc, long lCount)
01309 {
01310 clDSPOp::Power(dpDest, spSrc, lCount);
01311 }
01312
01313
01314 void dsp_phasef (float *fpDest, const stpSCplx spSrc, long lCount)
01315 {
01316 clDSPOp::Phase(fpDest, spSrc, lCount);
01317 }
01318
01319
01320 void dsp_phase (double *dpDest, const stpDCplx spSrc, long lCount)
01321 {
01322 clDSPOp::Phase(dpDest, spSrc, lCount);
01323 }
01324
01325
01326 void dsp_powerphasef (float *fpPower, float *fpPhase, const stpSCplx spSrc,
01327 long lCount)
01328 {
01329 clDSPOp::PowerPhase(fpPower, fpPhase, spSrc, lCount);
01330 }
01331
01332
01333 void dsp_powerphase (double *dpPower, double *dpPhase, const stpDCplx spSrc,
01334 long lCount)
01335 {
01336 clDSPOp::PowerPhase(dpPower, dpPhase, spSrc, lCount);
01337 }
01338
01339
01340 void dsp_decimatef (float *fpDest, const float *fpSrc, long lFactor,
01341 long lCount)
01342 {
01343 clDSPOp::Decimate(fpDest, fpSrc, lFactor, lCount);
01344 }
01345
01346
01347 void dsp_decimate (double *dpDest, const double *dpSrc, long lFactor,
01348 long lCount)
01349 {
01350 clDSPOp::Decimate(dpDest, dpSrc, lFactor, lCount);
01351 }
01352
01353
01354 void dsp_decimateavgf (float *fpDest, const float *fpSrc, long lFactor,
01355 long lCount)
01356 {
01357 clDSPOp::DecimateAvg(fpDest, fpSrc, lFactor, lCount);
01358 }
01359
01360
01361 void dsp_decimateavg (double *dpDest, const double *dpSrc, long lFactor,
01362 long lCount)
01363 {
01364 clDSPOp::DecimateAvg(dpDest, dpSrc, lFactor, lCount);
01365 }
01366
01367
01368 void dsp_interpolatef (float *fpDest, const float *fpSrc, long lFactor,
01369 long lCount)
01370 {
01371 clDSPOp::Interpolate(fpDest, fpSrc, lFactor, lCount);
01372 }
01373
01374
01375 void dsp_interpolate (double *dpDest, const double *dpSrc, long lFactor,
01376 long lCount)
01377 {
01378 clDSPOp::Interpolate(dpDest, dpSrc, lFactor, lCount);
01379 }
01380
01381
01382 void dsp_resamplef (float *fpDest, long lDestCount, const float *fpSrc,
01383 long lSrcCount)
01384 {
01385 clDSPOp::Resample(fpDest, lDestCount, fpSrc, lSrcCount);
01386 }
01387
01388
01389 void dsp_resample (double *dpDest, long lDestCount, const double *dpSrc,
01390 long lSrcCount)
01391 {
01392 clDSPOp::Resample(dpDest, lDestCount, dpSrc, lSrcCount);
01393 }
01394
01395
01396 void dsp_resampleavgf (float *fpDest, long lDestCount, const float *fpSrc,
01397 long lSrcCount)
01398 {
01399 clDSPOp::ResampleAvg(fpDest, lDestCount, fpSrc, lSrcCount);
01400 }
01401
01402
01403 void dsp_resampleavg (double *dpDest, long lDestCount, const double *dpSrc,
01404 long lSrcCount)
01405 {
01406 clDSPOp::ResampleAvg(dpDest, lDestCount, dpSrc, lSrcCount);
01407 }
01408
01409
01410 void dsp_interpolateavgf (float *fpDest, const float *fpSrc, long lFactor,
01411 long lCount)
01412 {
01413 clDSPOp::InterpolateAvg(fpDest, fpSrc, lFactor, lCount);
01414 }
01415
01416
01417 void dsp_interpolateavg (double *dpDest, const double *dpSrc, long lFactor,
01418 long lCount)
01419 {
01420 clDSPOp::InterpolateAvg(dpDest, dpSrc, lFactor, lCount);
01421 }
01422
01423
01424 float dsp_rmsf (const float *fpSrc, long lCount)
01425 {
01426 return clDSPOp::RMS(fpSrc, lCount);
01427 }
01428
01429
01430 double dsp_rms (const double *dpSrc, long lCount)
01431 {
01432 return clDSPOp::RMS(dpSrc, lCount);
01433 }
01434
01435
01436 float dsp_variancef (float *fpVariance, float *fpMean, const float *fpSrc,
01437 long lCount)
01438 {
01439 return clDSPOp::Variance(fpVariance, fpMean, fpSrc, lCount);
01440 }
01441
01442
01443 double dsp_variance (double *dpVariance, double *dpMean, const double *dpSrc,
01444 long lCount)
01445 {
01446 return clDSPOp::Variance(dpVariance, dpMean, dpSrc, lCount);
01447 }
01448
01449
01450 float dsp_peaklevelf (const float *fpSrc, long lCount)
01451 {
01452 return clDSPOp::PeakLevel(fpSrc, lCount);
01453 }
01454
01455
01456 double dsp_peaklevel (const double *dpSrc, long lCount)
01457 {
01458 return clDSPOp::PeakLevel(dpSrc, lCount);
01459 }
01460
01461
01462 void dsp_mixf (float *fpDest, const float *fpSrc, long lCount)
01463 {
01464 clDSPOp::Mix(fpDest, fpSrc, lCount);
01465 }
01466
01467
01468 void dsp_mix (double *dpDest, const double *dpSrc, long lCount)
01469 {
01470 clDSPOp::Mix(dpDest, dpSrc, lCount);
01471 }
01472
01473
01474 void dsp_mix2f (float *fpDest, const float *fpSrc1, const float *fpSrc2,
01475 long lCount)
01476 {
01477 clDSPOp::Mix(fpDest, fpSrc1, fpSrc2, lCount);
01478 }
01479
01480
01481 void dsp_mix2 (double *dpDest, const double *dpSrc1, const double *dpSrc2,
01482 long lCount)
01483 {
01484 clDSPOp::Mix(dpDest, dpSrc1, dpSrc2, lCount);
01485 }
01486
01487
01488 void dsp_mixnf (float *fpDest, const float *fpSrc, long lChCount,
01489 long lCount)
01490 {
01491 clDSPOp::Mix(fpDest, fpSrc, lChCount, lCount);
01492 }
01493
01494
01495 void dsp_mixn (double *dpDest, const double *dpSrc, long lChCount,
01496 long lCount)
01497 {
01498 clDSPOp::Mix(dpDest, dpSrc, lChCount, lCount);
01499 }
01500
01501
01502 void dsp_extractf (float *fpDest, const float *fpSrc, long lChannel,
01503 long lChCount, long lCount)
01504 {
01505 clDSPOp::Extract(fpDest, fpSrc, lChannel, lChCount, lCount);
01506 }
01507
01508
01509 void dsp_extract (double *dpDest, const double *dpSrc, long lChannel,
01510 long lChCount, long lCount)
01511 {
01512 clDSPOp::Extract(dpDest, dpSrc, lChannel, lChCount, lCount);
01513 }
01514
01515
01516 void dsp_packf (float *fpDest, const float *fpSrc, long lChannel,
01517 long lChCount, long lCount)
01518 {
01519 clDSPOp::Pack(fpDest, fpSrc, lChannel, lChCount, lCount);
01520 }
01521
01522
01523 void dsp_pack (double *dpDest, const double *dpSrc, long lChannel,
01524 long lChCount, long lCount)
01525 {
01526 clDSPOp::Pack(dpDest, dpSrc, lChannel, lChCount, lCount);
01527 }
01528
01529
01530 void dsp_fftw_convertf2cf (stpSCplx spDest, const float *fpSrc, long lCount)
01531 {
01532 clDSPOp::FFTWConvert(spDest, fpSrc, lCount);
01533 }
01534
01535
01536 void dsp_fftw_convertf2cd (stpDCplx spDest, const float *fpSrc, long lCount)
01537 {
01538 clDSPOp::FFTWConvert(spDest, fpSrc, lCount);
01539 }
01540
01541
01542 void dsp_fftw_convertd2cf (stpSCplx spDest, const double *dpSrc, long lCount)
01543 {
01544 clDSPOp::FFTWConvert(spDest, dpSrc, lCount);
01545 }
01546
01547
01548 void dsp_fftw_convertd2cd (stpDCplx spDest, const double *dpSrc, long lCount)
01549 {
01550 clDSPOp::FFTWConvert(spDest, dpSrc, lCount);
01551 }
01552
01553
01554 void dsp_fftw_convertcf2f (float *fpDest, const stpSCplx spSrc, long lCount)
01555 {
01556 clDSPOp::FFTWConvert(fpDest, spSrc, lCount);
01557 }
01558
01559
01560 void dsp_fftw_convertcd2f (float *fpDest, const stpDCplx spSrc, long lCount)
01561 {
01562 clDSPOp::FFTWConvert(fpDest, spSrc, lCount);
01563 }
01564
01565
01566 void dsp_fftw_convertcf2d (double *dpDest, const stpSCplx spSrc, long lCount)
01567 {
01568 clDSPOp::FFTWConvert(dpDest, spSrc, lCount);
01569 }
01570
01571
01572 void dsp_fftw_convertcd2d (double *dpDest, const stpDCplx spSrc, long lCount)
01573 {
01574 clDSPOp::FFTWConvert(dpDest, spSrc, lCount);
01575 }
01576
01577
01578 dsp_t dsp_new ()
01579 {
01580 return ((dsp_t) new clDSPOp);
01581 }
01582
01583
01584 void dsp_delete (dsp_t dspInst)
01585 {
01586 delete ((clDSPOp *) dspInst);
01587 }
01588
01589
01590 void dsp_win_bartlettf (dsp_t dspInst, float *fpDest, long lCount)
01591 {
01592 ((clDSPOp *) dspInst)->WinBartlett(fpDest, lCount);
01593 }
01594
01595
01596 void dsp_win_bartlett (dsp_t dspInst, double *dpDest, long lCount)
01597 {
01598 ((clDSPOp *) dspInst)->WinBartlett(dpDest, lCount);
01599 }
01600
01601
01602 void dsp_win_blackmanf (dsp_t dspInst, float *fpDest, long lCount,
01603 float fAlpha)
01604 {
01605 ((clDSPOp *) dspInst)->WinBlackman(fpDest, lCount, fAlpha);
01606 }
01607
01608
01609 void dsp_win_blackman (dsp_t dspInst, double *dpDest, long lCount,
01610 double dAlpha)
01611 {
01612 ((clDSPOp *) dspInst)->WinBlackman(dpDest, lCount, dAlpha);
01613 }
01614
01615
01616 void dsp_win_blackman_harrisf (dsp_t dspInst, float *fpDest, long lCount)
01617 {
01618 ((clDSPOp *) dspInst)->WinBlackmanHarris(fpDest, lCount);
01619 }
01620
01621
01622 void dsp_win_blackman_harris (dsp_t dspInst, double *dpDest, long lCount)
01623 {
01624 ((clDSPOp *) dspInst)->WinBlackmanHarris(dpDest, lCount);
01625 }
01626
01627
01628 void dsp_win_cos_taperedf (dsp_t dspInst, float *fpDest, long lCount)
01629 {
01630 ((clDSPOp *) dspInst)->WinCosTapered(fpDest, lCount);
01631 }
01632
01633
01634 void dsp_win_cos_tapered (dsp_t dspInst, double *dpDest, long lCount)
01635 {
01636 ((clDSPOp *) dspInst)->WinCosTapered(dpDest, lCount);
01637 }
01638
01639
01640 void dsp_win_exact_blackmanf (dsp_t dspInst, float *fpDest, long lCount)
01641 {
01642 ((clDSPOp *) dspInst)->WinExactBlackman(fpDest, lCount);
01643 }
01644
01645
01646 void dsp_win_exact_blackman (dsp_t dspInst, double *dpDest, long lCount)
01647 {
01648 ((clDSPOp *) dspInst)->WinExactBlackman(dpDest, lCount);
01649 }
01650
01651
01652 void dsp_win_flat_topf (dsp_t dspInst, float *fpDest, long lCount)
01653 {
01654 ((clDSPOp *) dspInst)->WinFlatTop(fpDest, lCount);
01655 }
01656
01657
01658 void dsp_win_flat_top (dsp_t dspInst, double *dpDest, long lCount)
01659 {
01660 ((clDSPOp *) dspInst)->WinFlatTop(dpDest, lCount);
01661 }
01662
01663
01664 void dsp_win_generic_cosf (dsp_t dspInst, float *fpDest, long lCount,
01665 const float *fpCoeff, long lCoeffCount)
01666 {
01667 ((clDSPOp *) dspInst)->WinGenericCos(fpDest, lCount, fpCoeff,
01668 lCoeffCount);
01669 }
01670
01671
01672 void dsp_win_generic_cos (dsp_t dspInst, double *dpDest, long lCount,
01673 const double *dpCoeff, long lCoeffCount)
01674 {
01675 ((clDSPOp *) dspInst)->WinGenericCos(dpDest, lCount, dpCoeff,
01676 lCoeffCount);
01677 }
01678
01679
01680 void dsp_win_hammingf (dsp_t dspInst, float *fpDest, long lCount)
01681 {
01682 ((clDSPOp *) dspInst)->WinHamming(fpDest, lCount);
01683 }
01684
01685
01686 void dsp_win_hamming (dsp_t dspInst, double *dpDest, long lCount)
01687 {
01688 ((clDSPOp *) dspInst)->WinHamming(dpDest, lCount);
01689 }
01690
01691
01692 void dsp_win_hanningf (dsp_t dspInst, float *fpDest, long lCount)
01693 {
01694 ((clDSPOp *) dspInst)->WinHanning(fpDest, lCount);
01695 }
01696
01697
01698 void dsp_win_hanning (dsp_t dspInst, double *dpDest, long lCount)
01699 {
01700 ((clDSPOp *) dspInst)->WinHanning(dpDest, lCount);
01701 }
01702
01703
01704 void dsp_win_kaiserf (dsp_t dspInst, float *fpDest, float fBeta, long lCount)
01705 {
01706 ((clDSPOp *) dspInst)->WinKaiser(fpDest, fBeta, lCount);
01707 }
01708
01709
01710 void dsp_win_kaiser (dsp_t dspInst, double *dpDest, double dBeta, long lCount)
01711 {
01712 ((clDSPOp *) dspInst)->WinKaiser(dpDest, dBeta, lCount);
01713 }
01714
01715
01716 void dsp_win_kaiser_besself (dsp_t dspInst, float *fpDest, float fAlpha,
01717 long lCount)
01718 {
01719 ((clDSPOp *) dspInst)->WinKaiserBessel(fpDest, fAlpha, lCount);
01720 }
01721
01722
01723 void dsp_win_kaiser_bessel (dsp_t dspInst, double *dpDest, double dAlpha,
01724 long lCount)
01725 {
01726 ((clDSPOp *) dspInst)->WinKaiserBessel(dpDest, dAlpha, lCount);
01727 }
01728
01729
01730 void dsp_win_tukeyf (dsp_t dspInst, float *fpDest, long lCount)
01731 {
01732 ((clDSPOp *) dspInst)->WinTukey(fpDest, lCount);
01733 }
01734
01735
01736 void dsp_win_tukey (dsp_t dspInst, double *dpDest, long lCount)
01737 {
01738 ((clDSPOp *) dspInst)->WinTukey(dpDest, lCount);
01739 }
01740
01741
01742 void dsp_win_dolph_chebyshevf (dsp_t dspInst, float *fpDest, float fGamma,
01743 long lCount)
01744 {
01745 ((clDSPOp *) dspInst)->WinDolphChebyshev(fpDest, fGamma, lCount);
01746 }
01747
01748
01749 void dsp_win_dolph_chebyshev (dsp_t dspInst, double *dpDest, double dGamma,
01750 long lCount)
01751 {
01752 ((clDSPOp *) dspInst)->WinDolphChebyshev(dpDest, dGamma, lCount);
01753 }
01754
01755
01756 long dsp_rebufferf (dsp_t dspInst, float *fpDest, const float *fpSrc,
01757 long lDestCount, long lSrcCount)
01758 {
01759 return ((clDSPOp *) dspInst)->ReBuffer(fpDest, fpSrc, lDestCount,
01760 lSrcCount);
01761 }
01762
01763
01764 long dsp_rebuffer (dsp_t dspInst, double *dpDest, const double *dpSrc,
01765 long lDestCount, long lSrcCount)
01766 {
01767 return ((clDSPOp *) dspInst)->ReBuffer(dpDest, dpSrc, lDestCount,
01768 lSrcCount);
01769 }
01770
01771
01772 float dsp_deg2radf (dsp_t dspInst, float fSource)
01773 {
01774 return ((clDSPOp *) dspInst)->DegToRad(fSource);
01775 }
01776
01777
01778 double dsp_deg2rad (dsp_t dspInst, double dSource)
01779 {
01780 return ((clDSPOp *) dspInst)->DegToRad(dSource);
01781 }
01782
01783
01784 float dsp_rad2degf (dsp_t dspInst, float fSource)
01785 {
01786 return ((clDSPOp *) dspInst)->RadToDeg(fSource);
01787 }
01788
01789
01790 double dsp_rad2deg (dsp_t dspInst, double dSource)
01791 {
01792 return ((clDSPOp *) dspInst)->RadToDeg(dSource);
01793 }
01794
01795
01796 void dsp_fir_allocatef (dsp_t dspInst, const float *fpCoeff, long lCount)
01797 {
01798 ((clDSPOp *) dspInst)->FIRAllocate(fpCoeff, lCount);
01799 }
01800
01801
01802 void dsp_fir_allocate (dsp_t dspInst, const double *dpCoeff, long lCount)
01803 {
01804 ((clDSPOp *) dspInst)->FIRAllocate(dpCoeff, lCount);
01805 }
01806
01807
01808 void dsp_fir_free (dsp_t dspInst)
01809 {
01810 ((clDSPOp *) dspInst)->FIRFree();
01811 }
01812
01813
01814 void dsp_fir_filterf (dsp_t dspInst, float *fpVect, long lCount)
01815 {
01816 ((clDSPOp *) dspInst)->FIRFilter(fpVect, lCount);
01817 }
01818
01819
01820 void dsp_fir_filter (dsp_t dspInst, double *dpVect, long lCount)
01821 {
01822 ((clDSPOp *) dspInst)->FIRFilter(dpVect, lCount);
01823 }
01824
01825
01826 void dsp_fir_filterf_nip (dsp_t dspInst, float *fpDest, const float *fpSrc,
01827 long lCount)
01828 {
01829 ((clDSPOp *) dspInst)->FIRFilter(fpDest, fpSrc, lCount);
01830 }
01831
01832
01833 void dsp_fir_filter_nip (dsp_t dspInst, double *dpDest, const double *dpSrc,
01834 long lCount)
01835 {
01836 ((clDSPOp *) dspInst)->FIRFilter(dpDest, dpSrc, lCount);
01837 }
01838
01839
01840 void dsp_fir_filterf_fst (dsp_t dspInst, float *fpDest, float *fpSrc,
01841 long lCount)
01842 {
01843 ((clDSPOp *) dspInst)->FIRFilterF(fpDest, fpSrc, lCount);
01844 }
01845
01846
01847 void dsp_fir_filter_fst (dsp_t dspInst, double *dpDest, double *dpSrc,
01848 long lCount)
01849 {
01850 ((clDSPOp *) dspInst)->FIRFilterF(dpDest, dpSrc, lCount);
01851 }
01852
01853
01854 void dsp_iir_initf (dsp_t dspInst, const float *fpCoeffs)
01855 {
01856 ((clDSPOp *) dspInst)->IIRInitialize(fpCoeffs);
01857 }
01858
01859
01860 void dsp_iir_init (dsp_t dspInst, const double *dpCoeffs)
01861 {
01862 ((clDSPOp *) dspInst)->IIRInitialize(dpCoeffs);
01863 }
01864
01865
01866 void dsp_iir_filterf (dsp_t dspInst, float *fpVect, long lCount)
01867 {
01868 ((clDSPOp *) dspInst)->IIRFilter(fpVect, lCount);
01869 }
01870
01871
01872 void dsp_iir_filter (dsp_t dspInst, double *dpVect, long lCount)
01873 {
01874 ((clDSPOp *) dspInst)->IIRFilter(dpVect, lCount);
01875 }
01876
01877
01878 void dsp_iir_filterf_nip (dsp_t dspInst, float *fpDest, const float *fpSrc,
01879 long lCount)
01880 {
01881 ((clDSPOp *) dspInst)->IIRFilter(fpDest, fpSrc, lCount);
01882 }
01883
01884
01885 void dsp_iir_filter_nip (dsp_t dspInst, double *dpDest, const double *dpSrc,
01886 long lCount)
01887 {
01888 ((clDSPOp *) dspInst)->IIRFilter(dpDest, dpSrc, lCount);
01889 }
01890
01891
01892 void dsp_iir_clear (dsp_t dspInst)
01893 {
01894 ((clDSPOp *) dspInst)->IIRClear();
01895 }
01896
01897
01898 void dsp_fft_init (dsp_t dspInst, long lSize, int iReal)
01899 {
01900 ((clDSPOp *) dspInst)->FFTInitialize(lSize, (iReal) ? true : false);
01901 }
01902
01903
01904 void dsp_fft_uninit (dsp_t dspInst)
01905 {
01906 ((clDSPOp *) dspInst)->FFTUninitialize();
01907 }
01908
01909
01910 void dsp_fftf (dsp_t dspInst, stpSCplx spDest, float *fpSrc)
01911 {
01912 ((clDSPOp *) dspInst)->FFTi(spDest, fpSrc);
01913 }
01914
01915
01916 void dsp_fft (dsp_t dspInst, stpDCplx spDest, double *dpSrc)
01917 {
01918 ((clDSPOp *) dspInst)->FFTi(spDest, dpSrc);
01919 }
01920
01921
01922 void dsp_fftf_nip (dsp_t dspInst, stpSCplx spDest, const float *fpSrc)
01923 {
01924 ((clDSPOp *) dspInst)->FFTo(spDest, fpSrc);
01925 }
01926
01927
01928 void dsp_fft_nip (dsp_t dspInst, stpDCplx spDest, const double *dpSrc)
01929 {
01930 ((clDSPOp *) dspInst)->FFTo(spDest, dpSrc);
01931 }
01932
01933
01934 void dsp_cfftf_nip (dsp_t dspInst, stpSCplx spDest, const stpSCplx spSrc)
01935 {
01936 ((clDSPOp *) dspInst)->FFTo(spDest, spSrc);
01937 }
01938
01939
01940 void dsp_cfft_nip (dsp_t dspInst, stpDCplx spDest, const stpDCplx spSrc)
01941 {
01942 ((clDSPOp *) dspInst)->FFTo(spDest, spSrc);
01943 }
01944
01945
01946 void dsp_ifftf_nip (dsp_t dspInst, float *fpDest, const stpSCplx spSrc)
01947 {
01948 ((clDSPOp *) dspInst)->IFFTo(fpDest, spSrc);
01949 }
01950
01951
01952 void dsp_ifft_nip (dsp_t dspInst, double *dpDest, const stpDCplx spSrc)
01953 {
01954 ((clDSPOp *) dspInst)->IFFTo(dpDest, spSrc);
01955 }
01956
01957
01958 void dsp_cifftf_nip (dsp_t dspInst, stpSCplx spDest, const stpSCplx spSrc)
01959 {
01960 ((clDSPOp *) dspInst)->IFFTo(spDest, spSrc);
01961 }
01962
01963
01964 void dsp_cifft_nip (dsp_t dspInst, stpDCplx spDest, const stpDCplx spSrc)
01965 {
01966 ((clDSPOp *) dspInst)->IFFTo(spDest, spSrc);
01967 }
01968
01969
01970 void dsp_dct_init (dsp_t dspInst, long lSize)
01971 {
01972 ((clDSPOp *) dspInst)->DCTInitialize(lSize);
01973 }
01974
01975
01976 void dsp_dct_uninit (dsp_t dspInst)
01977 {
01978 ((clDSPOp *) dspInst)->FFTUninitialize();
01979 }
01980
01981
01982 void dsp_dctf (dsp_t dspInst, float *fpVect)
01983 {
01984 ((clDSPOp *) dspInst)->DCTi(fpVect);
01985 }
01986
01987
01988 void dsp_dct (dsp_t dspInst, double *dpVect)
01989 {
01990 ((clDSPOp *) dspInst)->DCTi(dpVect);
01991 }
01992
01993
01994 void dsp_dctf_nip (dsp_t dspInst, float *fpDest, const float *fpSrc)
01995 {
01996 ((clDSPOp *) dspInst)->DCTo(fpDest, fpSrc);
01997 }
01998
01999
02000 void dsp_dct_nip (dsp_t dspInst, double *dpDest, const double *dpSrc)
02001 {
02002 ((clDSPOp *) dspInst)->DCTo(dpDest, dpSrc);
02003 }
02004
02005
02006 void dsp_idctf (dsp_t dspInst, float *fpVect)
02007 {
02008 ((clDSPOp *) dspInst)->IDCTi(fpVect);
02009 }
02010
02011
02012 void dsp_idct (dsp_t dspInst, double *dpVect)
02013 {
02014 ((clDSPOp *) dspInst)->IDCTi(dpVect);
02015 }
02016
02017
02018 void dsp_idctf_nip (dsp_t dspInst, float *fpDest, const float *fpSrc)
02019 {
02020 ((clDSPOp *) dspInst)->IDCTo(fpDest, fpSrc);
02021 }
02022
02023
02024 void dsp_idct_nip (dsp_t dspInst, double *dpDest, const double *dpSrc)
02025 {
02026 ((clDSPOp *) dspInst)->IDCTo(dpDest, dpSrc);
02027 }
02028
02029
02030
02031
02032
02033 dsp_iircas_t dsp_iir_cas_new ()
02034 {
02035 return ((dsp_iircas_t) new clIIRCascade);
02036 }
02037
02038
02039 void dsp_iir_cas_delete (dsp_iircas_t dspiircasInst)
02040 {
02041 delete ((clIIRCascade *) dspiircasInst);
02042 }
02043
02044
02045 int dsp_iir_cas_initf (dsp_iircas_t dspiircasInst,
02046 const float fpCoeffs[][5], long lStageCount)
02047 {
02048 if (!((clIIRCascade *) dspiircasInst)->Initialize(fpCoeffs, lStageCount))
02049 return 0;
02050 return 1;
02051 }
02052
02053
02054 int dsp_iir_cas_init (dsp_iircas_t dspiircasInst,
02055 const double dpCoeffs[][5], long lStageCount)
02056 {
02057 if (!((clIIRCascade *) dspiircasInst)->Initialize(dpCoeffs, lStageCount))
02058 return 0;
02059 return 1;
02060 }
02061
02062
02063 void dsp_iir_cas_uninit (dsp_iircas_t dspiircasInst)
02064 {
02065 ((clIIRCascade *) dspiircasInst)->Uninitialize();
02066 }
02067
02068
02069 void dsp_iir_cas_processf (dsp_iircas_t dspiircasInst,
02070 float *fpVect, long lCount)
02071 {
02072 ((clIIRCascade *) dspiircasInst)->Process(fpVect, lCount);
02073 }
02074
02075
02076 void dsp_iir_cas_process (dsp_iircas_t dspiircasInst,
02077 double *dpVect, long lCount)
02078 {
02079 ((clIIRCascade *) dspiircasInst)->Process(dpVect, lCount);
02080 }
02081
02082
02083 void dsp_iir_cas_processf_nip (dsp_iircas_t dspiircasInst,
02084 float *fpDest, const float *fpSrc, long lCount)
02085 {
02086 ((clIIRCascade *) dspiircasInst)->Process(fpDest, fpSrc, lCount);
02087 }
02088
02089
02090 void dsp_iir_cas_process_nip (dsp_iircas_t dspiircasInst,
02091 double *dpDest, const double *dpSrc, long lCount)
02092 {
02093 ((clIIRCascade *) dspiircasInst)->Process(dpDest, dpSrc, lCount);
02094 }
02095
02096
02097 void dsp_iir_cas_clear (dsp_iircas_t dspiircasInst)
02098 {
02099 ((clIIRCascade *) dspiircasInst)->Clear();
02100 }
02101
02102
02103
02104
02105
02106 dsp_decfft_t dsp_dec_fft_new ()
02107 {
02108 return ((dsp_decfft_t) new clFFTDecimator);
02109 }
02110
02111
02112 void dsp_dec_fft_delete (dsp_decfft_t dspdecfftInst)
02113 {
02114 delete ((clFFTDecimator *) dspdecfftInst);
02115 }
02116
02117
02118 int dsp_dec_fft_initf (dsp_decfft_t dspdecfftInst, long lDecFact,
02119 long lFiltSize, int iHighPass)
02120 {
02121 float *fpNullPtr = NULL;
02122
02123 if (!((clFFTDecimator *) dspdecfftInst)->Initialize(lDecFact, lFiltSize,
02124 fpNullPtr, (iHighPass) ? true : false)) return 0;
02125 return 1;
02126 }
02127
02128
02129 int dsp_dec_fft_init (dsp_decfft_t dspdecfftInst, long lDecFact,
02130 long lFiltSize, int iHighPass)
02131 {
02132 double *dpNullPtr = NULL;
02133
02134 if (!((clFFTDecimator *) dspdecfftInst)->Initialize(lDecFact, lFiltSize,
02135 dpNullPtr, (iHighPass) ? true : false)) return 0;
02136 return 1;
02137 }
02138
02139
02140 void dsp_dec_fft_uninit (dsp_decfft_t dspdecfftInst)
02141 {
02142 ((clFFTDecimator *) dspdecfftInst)->Uninitialize();
02143 }
02144
02145
02146 void dsp_dec_fft_putf (dsp_decfft_t dspdecfftInst, const float *fpSrcData,
02147 long lSrcCount)
02148 {
02149 ((clFFTDecimator *) dspdecfftInst)->Put(fpSrcData, lSrcCount);
02150 }
02151
02152
02153 void dsp_dec_fft_put (dsp_decfft_t dspdecfftInst, const double *dpSrcData,
02154 long lSrcCount)
02155 {
02156 ((clFFTDecimator *) dspdecfftInst)->Put(dpSrcData, lSrcCount);
02157 }
02158
02159
02160 int dsp_dec_fft_getf (dsp_decfft_t dspdecfftInst, float *fpDestData,
02161 long lDestCount)
02162 {
02163 if (!((clFFTDecimator *) dspdecfftInst)->Get(fpDestData, lDestCount))
02164 return 0;
02165 return 1;
02166 }
02167
02168
02169 int dsp_dec_fft_get (dsp_decfft_t dspdecfftInst, double *dpDestData,
02170 long lDestCount)
02171 {
02172 if (!((clFFTDecimator *) dspdecfftInst)->Get(dpDestData, lDestCount))
02173 return 0;
02174 return 1;
02175 }
02176
02177
02178
02179
02180
02181 dsp_decfir_t dsp_dec_fir_new ()
02182 {
02183 return ((dsp_decfir_t) new clFIRDecimator);
02184 }
02185
02186
02187 void dsp_dec_fir_delete (dsp_decfir_t dspdecfirInst)
02188 {
02189 delete ((clFIRDecimator *) dspdecfirInst);
02190 }
02191
02192
02193 int dsp_dec_fir_initf (dsp_decfir_t dspdecfirInst, long lDecFact, int iHighPass)
02194 {
02195 float *fpNullPtr = NULL;
02196
02197 if (!((clFIRDecimator *) dspdecfirInst)->Initialize(lDecFact, fpNullPtr,
02198 (iHighPass) ? true : false)) return 0;
02199 return 1;
02200 }
02201
02202
02203 int dsp_dec_fir_init (dsp_decfir_t dspdecfirInst, long lDecFact, int iHighPass)
02204 {
02205 double *dpNullPtr = NULL;
02206
02207 if (!((clFIRDecimator *) dspdecfirInst)->Initialize(lDecFact, dpNullPtr,
02208 (iHighPass) ? true : false)) return 0;
02209 return 1;
02210 }
02211
02212
02213 void dsp_dec_fir_uninit (dsp_decfir_t dspdecfirInst)
02214 {
02215 ((clFIRDecimator *) dspdecfirInst)->Uninitialize();
02216 }
02217
02218
02219 void dsp_dec_fir_putf (dsp_decfir_t dspdecfirInst, const float *fpSrcData,
02220 long lSrcCount)
02221 {
02222 ((clFIRDecimator *) dspdecfirInst)->Put(fpSrcData, lSrcCount);
02223 }
02224
02225
02226 void dsp_dec_fir_put (dsp_decfir_t dspdecfirInst, const double *dpSrcData,
02227 long lSrcCount)
02228 {
02229 ((clFIRDecimator *) dspdecfirInst)->Put(dpSrcData, lSrcCount);
02230 }
02231
02232
02233 int dsp_dec_fir_getf (dsp_decfir_t dspdecfirInst, float *fpDestData,
02234 long lDestCount)
02235 {
02236 if (!((clFIRDecimator *) dspdecfirInst)->Get(fpDestData, lDestCount))
02237 return 0;
02238 return 1;
02239 }
02240
02241
02242 int dsp_dec_fir_get (dsp_decfir_t dspdecfirInst, double *dpDestData,
02243 long lDestCount)
02244 {
02245 if (!((clFIRDecimator *) dspdecfirInst)->Get(dpDestData, lDestCount))
02246 return 0;
02247 return 1;
02248 }
02249
02250
02251
02252
02253
02254 dsp_deciir_t dsp_dec_iir_new ()
02255 {
02256 return ((dsp_deciir_t) new clIIRDecimator);
02257 }
02258
02259
02260 void dsp_dec_iir_delete (dsp_deciir_t dspdeciirInst)
02261 {
02262 delete ((clIIRDecimator *) dspdeciirInst);
02263 }
02264
02265
02266 int dsp_dec_iir_initf (dsp_deciir_t dspdeciirInst, long lDecFact, int iHighPass)
02267 {
02268 float *fpNullPtr = NULL;
02269
02270 if (!((clIIRDecimator *) dspdeciirInst)->Initialize(lDecFact, fpNullPtr,
02271 (iHighPass) ? true : false)) return 0;
02272 return 1;
02273 }
02274
02275
02276 int dsp_dec_iir_init (dsp_deciir_t dspdeciirInst, long lDecFact, int iHighPass)
02277 {
02278 double *dpNullPtr = NULL;
02279
02280 if (!((clIIRDecimator *) dspdeciirInst)->Initialize(lDecFact, dpNullPtr,
02281 (iHighPass) ? true : false)) return 0;
02282 return 1;
02283 }
02284
02285
02286 void dsp_dec_iir_uninit (dsp_deciir_t dspdeciirInst)
02287 {
02288 ((clIIRDecimator *) dspdeciirInst)->Uninitialize();
02289 }
02290
02291
02292 void dsp_dec_iir_putf (dsp_deciir_t dspdeciirInst, const float *fpSrcData,
02293 long lSrcCount)
02294 {
02295 ((clIIRDecimator *) dspdeciirInst)->Put(fpSrcData, lSrcCount);
02296 }
02297
02298
02299 void dsp_dec_iir_put (dsp_deciir_t dspdeciirInst, const double *dpSrcData,
02300 long lSrcCount)
02301 {
02302 ((clIIRDecimator *) dspdeciirInst)->Put(dpSrcData, lSrcCount);
02303 }
02304
02305
02306 int dsp_dec_iir_getf (dsp_deciir_t dspdeciirInst, float *fpDestData,
02307 long lDestCount)
02308 {
02309 if (!((clIIRDecimator *) dspdeciirInst)->Get(fpDestData, lDestCount))
02310 return 0;
02311 return 1;
02312 }
02313
02314
02315 int dsp_dec_iir_get (dsp_deciir_t dspdeciirInst, double *dpDestData,
02316 long lDestCount)
02317 {
02318 if (!((clIIRDecimator *) dspdeciirInst)->Get(dpDestData, lDestCount))
02319 return 0;
02320 return 1;
02321 }
02322
02323
02324
02325
02326
02327 dsp_decrec_t dsp_dec_rec_new ()
02328 {
02329 return ((dsp_decrec_t) new clRecDecimator);
02330 }
02331
02332
02333 void dsp_dec_rec_delete (dsp_decrec_t dspdecrecInst)
02334 {
02335 delete ((clRecDecimator *) dspdecrecInst);
02336 }
02337
02338
02339 int dsp_dec_rec_initf (dsp_decrec_t dspdecrecInst, long lDecFact,
02340 long lFiltSize, float fBandCenter, int iFilterType)
02341 {
02342 float *fpNullPtr = NULL;
02343
02344 if (!((clRecDecimator *) dspdecrecInst)->Initialize(lDecFact,
02345 lFiltSize, fpNullPtr, fBandCenter, iFilterType))
02346 return 0;
02347 return 1;
02348 }
02349
02350
02351 int dsp_dec_rec_init (dsp_decrec_t dspdecrecInst, long lDecFact,
02352 long lFiltSize, double dBandCenter, int iFilterType)
02353 {
02354 double *dpNullPtr = NULL;
02355
02356 if (!((clRecDecimator *) dspdecrecInst)->Initialize(lDecFact,
02357 lFiltSize, dpNullPtr, dBandCenter, iFilterType))
02358 return 0;
02359 return 1;
02360 }
02361
02362
02363 void dsp_dec_rec_uninit (dsp_decrec_t dspdecrecInst)
02364 {
02365 ((clRecDecimator *) dspdecrecInst)->Uninitialize();
02366 }
02367
02368
02369 void dsp_dec_rec_putf (dsp_decrec_t dspdecrecInst, const float *fpSrcData,
02370 long lSrcCount)
02371 {
02372 ((clRecDecimator *) dspdecrecInst)->Put(fpSrcData, lSrcCount);
02373 }
02374
02375
02376 void dsp_dec_rec_put (dsp_decrec_t dspdecrecInst, const double *dpSrcData,
02377 long lSrcCount)
02378 {
02379 ((clRecDecimator *) dspdecrecInst)->Put(dpSrcData, lSrcCount);
02380 }
02381
02382
02383 int dsp_dec_rec_getf (dsp_decrec_t dspdecrecInst, float *fpDestData,
02384 long lDestCount)
02385 {
02386 if (!((clRecDecimator *) dspdecrecInst)->Get(fpDestData, lDestCount))
02387 return 0;
02388 return 1;
02389 }
02390
02391
02392 int dsp_dec_rec_get (dsp_decrec_t dspdecrecInst, double *dpDestData,
02393 long lDestCount)
02394 {
02395 if (!((clRecDecimator *) dspdecrecInst)->Get(dpDestData, lDestCount))
02396 return 0;
02397 return 1;
02398 }
02399
02400
02401
02402
02403
02404 dsp_intfft_t dsp_int_fft_new ()
02405 {
02406 return ((dsp_intfft_t) new clFFTInterpolator);
02407 }
02408
02409
02410 void dsp_int_fft_delete (dsp_intfft_t dspintfftInst)
02411 {
02412 delete ((clFFTInterpolator *) dspintfftInst);
02413 }
02414
02415
02416 int dsp_int_fft_initf (dsp_intfft_t dspintfftInst, long lIntFact,
02417 long lFiltSize, int iHighPass)
02418 {
02419 float *fpNullPtr = NULL;
02420
02421 if (!((clFFTInterpolator *) dspintfftInst)->Initialize(lIntFact, lFiltSize,
02422 fpNullPtr, (iHighPass) ? true : false)) return 0;
02423 return 1;
02424 }
02425
02426
02427 int dsp_int_fft_init (dsp_intfft_t dspintfftInst, long lIntFact,
02428 long lFiltSize, int iHighPass)
02429 {
02430 double *dpNullPtr = NULL;
02431
02432 if (!((clFFTInterpolator *) dspintfftInst)->Initialize(lIntFact, lFiltSize,
02433 dpNullPtr, (iHighPass) ? true : false)) return 0;
02434 return 1;
02435 }
02436
02437
02438 void dsp_int_fft_uninit (dsp_intfft_t dspintfftInst)
02439 {
02440 ((clFFTInterpolator *) dspintfftInst)->Uninitialize();
02441 }
02442
02443
02444 void dsp_int_fft_putf (dsp_intfft_t dspintfftInst, const float *fpSrcData,
02445 long lSrcCount)
02446 {
02447 ((clFFTInterpolator *) dspintfftInst)->Put(fpSrcData, lSrcCount);
02448 }
02449
02450
02451 void dsp_int_fft_put (dsp_intfft_t dspintfftInst, const double *dpSrcData,
02452 long lSrcCount)
02453 {
02454 ((clFFTInterpolator *) dspintfftInst)->Put(dpSrcData, lSrcCount);
02455 }
02456
02457
02458 int dsp_int_fft_getf (dsp_intfft_t dspintfftInst, float *fpDestData,
02459 long lDestCount)
02460 {
02461 if (!((clFFTInterpolator *) dspintfftInst)->Get(fpDestData, lDestCount))
02462 return 0;
02463 return 1;
02464 }
02465
02466
02467 int dsp_int_fft_get (dsp_intfft_t dspintfftInst, double *dpDestData,
02468 long lDestCount)
02469 {
02470 if (!((clFFTInterpolator *) dspintfftInst)->Get(dpDestData, lDestCount))
02471 return 0;
02472 return 1;
02473 }
02474
02475
02476
02477
02478
02479 dsp_intfir_t dsp_int_fir_new ()
02480 {
02481 return ((dsp_intfir_t) new clFIRInterpolator);
02482 }
02483
02484
02485 void dsp_int_fir_delete (dsp_intfir_t dspintfirInst)
02486 {
02487 delete ((clFIRInterpolator *) dspintfirInst);
02488 }
02489
02490
02491 int dsp_int_fir_initf (dsp_intfir_t dspintfirInst, long lIntFact, int iHighPass)
02492 {
02493 float *fpNullPtr = NULL;
02494
02495 if (!((clFIRInterpolator *) dspintfirInst)->Initialize(lIntFact, fpNullPtr,
02496 (iHighPass) ? true : false)) return 0;
02497 return 1;
02498 }
02499
02500
02501 int dsp_int_fir_init (dsp_intfir_t dspintfirInst, long lIntFact, int iHighPass)
02502 {
02503 double *dpNullPtr = NULL;
02504
02505 if (!((clFIRInterpolator *) dspintfirInst)->Initialize(lIntFact, dpNullPtr,
02506 (iHighPass) ? true : false)) return 0;
02507 return 1;
02508 }
02509
02510
02511 void dsp_int_fir_uninit (dsp_intfir_t dspintfirInst)
02512 {
02513 ((clFIRInterpolator *) dspintfirInst)->Uninitialize();
02514 }
02515
02516
02517 void dsp_int_fir_putf (dsp_intfir_t dspintfirInst, const float *fpSrcData,
02518 long lSrcCount)
02519 {
02520 ((clFIRInterpolator *) dspintfirInst)->Put(fpSrcData, lSrcCount);
02521 }
02522
02523
02524 void dsp_int_fir_put (dsp_intfir_t dspintfirInst, const double *dpSrcData,
02525 long lSrcCount)
02526 {
02527 ((clFIRInterpolator *) dspintfirInst)->Put(dpSrcData, lSrcCount);
02528 }
02529
02530
02531 int dsp_int_fir_getf (dsp_intfir_t dspintfirInst, float *fpDestData,
02532 long lDestCount)
02533 {
02534 if (!((clFIRInterpolator *) dspintfirInst)->Get(fpDestData, lDestCount))
02535 return 0;
02536 return 1;
02537 }
02538
02539
02540 int dsp_int_fir_get (dsp_intfir_t dspintfirInst, double *dpDestData,
02541 long lDestCount)
02542 {
02543 if (!((clFIRInterpolator *) dspintfirInst)->Get(dpDestData, lDestCount))
02544 return 0;
02545 return 1;
02546 }
02547
02548
02549
02550
02551
02552 dsp_intiir_t dsp_int_iir_new ()
02553 {
02554 return ((dsp_intiir_t) new clIIRInterpolator);
02555 }
02556
02557
02558 void dsp_int_iir_delete (dsp_intiir_t dspintiirInst)
02559 {
02560 delete ((clIIRInterpolator *) dspintiirInst);
02561 }
02562
02563
02564 int dsp_int_iir_initf (dsp_intiir_t dspintiirInst, long lIntFact, int iHighPass)
02565 {
02566 float *fpNullPtr = NULL;
02567
02568 if (!((clIIRInterpolator *) dspintiirInst)->Initialize(lIntFact, fpNullPtr,
02569 (iHighPass) ? true : false)) return 0;
02570 return 1;
02571 }
02572
02573
02574 int dsp_int_iir_init (dsp_intiir_t dspintiirInst, long lIntFact, int iHighPass)
02575 {
02576 double *dpNullPtr = NULL;
02577
02578 if (!((clIIRInterpolator *) dspintiirInst)->Initialize(lIntFact, dpNullPtr,
02579 (iHighPass) ? true : false)) return 0;
02580 return 1;
02581 }
02582
02583
02584 void dsp_int_iir_uninit (dsp_intiir_t dspintiirInst)
02585 {
02586 ((clIIRInterpolator *) dspintiirInst)->Uninitialize();
02587 }
02588
02589
02590 void dsp_int_iir_putf (dsp_intiir_t dspintiirInst, const float *fpSrcData,
02591 long lSrcCount)
02592 {
02593 ((clIIRInterpolator *) dspintiirInst)->Put(fpSrcData, lSrcCount);
02594 }
02595
02596
02597 void dsp_int_iir_put (dsp_intiir_t dspintiirInst, const double *dpSrcData,
02598 long lSrcCount)
02599 {
02600 ((clIIRInterpolator *) dspintiirInst)->Put(dpSrcData, lSrcCount);
02601 }
02602
02603
02604 int dsp_int_iir_getf (dsp_intiir_t dspintiirInst, float *fpDestData,
02605 long lDestCount)
02606 {
02607 if (!((clIIRInterpolator *) dspintiirInst)->Get(fpDestData, lDestCount))
02608 return 0;
02609 return 1;
02610 }
02611
02612
02613 int dsp_int_iir_get (dsp_intiir_t dspintiirInst, double *dpDestData,
02614 long lDestCount)
02615 {
02616 if (!((clIIRInterpolator *) dspintiirInst)->Get(dpDestData, lDestCount))
02617 return 0;
02618 return 1;
02619 }
02620
02621
02622
02623
02624
02625 dsp_intrec_t dsp_int_rec_new ()
02626 {
02627 return ((dsp_intrec_t) new clRecInterpolator);
02628 }
02629
02630
02631 void dsp_int_rec_delete (dsp_intrec_t dspintrecInst)
02632 {
02633 delete ((clRecInterpolator *) dspintrecInst);
02634 }
02635
02636
02637 int dsp_int_rec_initf (dsp_intrec_t dspintrecInst, long lIntFact,
02638 long lFiltSize, float fBandCenter, int iFilterType)
02639 {
02640 float *fpNullPtr = NULL;
02641
02642 if (!((clRecInterpolator *) dspintrecInst)->Initialize(lIntFact,
02643 lFiltSize, fpNullPtr, fBandCenter, iFilterType))
02644 return 0;
02645 return 1;
02646 }
02647
02648
02649 int dsp_int_rec_init (dsp_intrec_t dspintrecInst, long lIntFact,
02650 long lFiltSize, double dBandCenter, int iFilterType)
02651 {
02652 double *dpNullPtr = NULL;
02653
02654 if (!((clRecInterpolator *) dspintrecInst)->Initialize(lIntFact,
02655 lFiltSize, dpNullPtr, dBandCenter, iFilterType))
02656 return 0;
02657 return 1;
02658 }
02659
02660
02661 void dsp_int_rec_uninit (dsp_intrec_t dspintrecInst)
02662 {
02663 ((clRecInterpolator *) dspintrecInst)->Uninitialize();
02664 }
02665
02666
02667 void dsp_int_rec_putf (dsp_intrec_t dspintrecInst, const float *fpSrcData,
02668 long lSrcCount)
02669 {
02670 ((clRecInterpolator *) dspintrecInst)->Put(fpSrcData, lSrcCount);
02671 }
02672
02673
02674 void dsp_int_rec_put (dsp_intrec_t dspintrecInst, const double *dpSrcData,
02675 long lSrcCount)
02676 {
02677 ((clRecInterpolator *) dspintrecInst)->Put(dpSrcData, lSrcCount);
02678 }
02679
02680
02681 int dsp_int_rec_getf (dsp_intrec_t dspintrecInst, float *fpDestData,
02682 long lDestCount)
02683 {
02684 if (!((clRecInterpolator *) dspintrecInst)->Get(fpDestData, lDestCount))
02685 return 0;
02686 return 1;
02687 }
02688
02689
02690 int dsp_int_rec_get (dsp_intrec_t dspintrecInst, double *dpDestData,
02691 long lDestCount)
02692 {
02693 if (!((clRecInterpolator *) dspintrecInst)->Get(dpDestData, lDestCount))
02694 return 0;
02695 return 1;
02696 }
02697
02698
02699
02700
02701
02702 dsp_filter_t dsp_filter_new ()
02703 {
02704 return ((dsp_filter_t) new clFilter);
02705 }
02706
02707
02708 void dsp_filter_delete (dsp_filter_t dspfilterInst)
02709 {
02710 delete ((clFilter *) dspfilterInst);
02711 }
02712
02713
02714 int dsp_filter_initf (dsp_filter_t dspfilterInst, long lWindowSize)
02715 {
02716 float *fpNullPtr = NULL;
02717
02718 if (!((clFilter *) dspfilterInst)->Initialize(lWindowSize, fpNullPtr))
02719 return 0;
02720 return 1;
02721 }
02722
02723
02724 int dsp_filter_init (dsp_filter_t dspfilterInst, long lWindowSize)
02725 {
02726 double *dpNullPtr = NULL;
02727
02728 if (!((clFilter *) dspfilterInst)->Initialize(lWindowSize, dpNullPtr))
02729 return 0;
02730 return 1;
02731 }
02732
02733
02734 int dsp_filter_init2f (dsp_filter_t dspfilterInst, long lWindowSize,
02735 const float *fpFiltCoeffs, float fOverlap, float fBeta)
02736 {
02737 if (!((clFilter *) dspfilterInst)->Initialize(lWindowSize, fpFiltCoeffs,
02738 fOverlap, fBeta)) return 0;
02739 return 1;
02740 }
02741
02742
02743 int dsp_filter_init2 (dsp_filter_t dspfilterInst, long lWindowSize,
02744 const double *dpFiltCoeffs, double dOverlap, double dBeta)
02745 {
02746 if (!((clFilter *) dspfilterInst)->Initialize(lWindowSize, dpFiltCoeffs,
02747 dOverlap, dBeta)) return 0;
02748 return 1;
02749 }
02750
02751
02752 int dsp_filter_init_lpf (dsp_filter_t dspfilterInst, float fPassBand,
02753 float fStopBand, float fRippleRatio, float fOverlap)
02754 {
02755 if (!((clFilter *) dspfilterInst)->InitializeLP(fPassBand, fStopBand,
02756 fRippleRatio, fOverlap)) return 0;
02757 return 1;
02758 }
02759
02760
02761 int dsp_filter_init_lp (dsp_filter_t dspfilterInst, double dPassBand,
02762 double dStopBand, double dRippleRatio, double dOverlap)
02763 {
02764 if (!((clFilter *) dspfilterInst)->InitializeLP(dPassBand, dStopBand,
02765 dRippleRatio, dOverlap)) return 0;
02766 return 1;
02767 }
02768
02769
02770 int dsp_filter_init_hpf (dsp_filter_t dspfilterInst, float fPassBand,
02771 float fStopBand, float fRippleRatio, float fOverlap)
02772 {
02773 if (!((clFilter *) dspfilterInst)->InitializeHP(fPassBand, fStopBand,
02774 fRippleRatio, fOverlap)) return 0;
02775 return 1;
02776 }
02777
02778
02779 int dsp_filter_init_hp (dsp_filter_t dspfilterInst, double dPassBand,
02780 double dStopBand, double dRippleRatio, double dOverlap)
02781 {
02782 if (!((clFilter *) dspfilterInst)->InitializeHP(dPassBand, dStopBand,
02783 dRippleRatio, dOverlap)) return 0;
02784 return 1;
02785 }
02786
02787
02788 void dsp_filter_set_coeffsf (dsp_filter_t dspfilterInst,
02789 const float *fpFiltCoeffs)
02790 {
02791 ((clFilter *) dspfilterInst)->SetCoeffs(fpFiltCoeffs);
02792 }
02793
02794
02795 void dsp_filter_set_coeffs (dsp_filter_t dspfilterInst,
02796 const double *dpFiltCoeffs)
02797 {
02798 ((clFilter *) dspfilterInst)->SetCoeffs(dpFiltCoeffs);
02799 }
02800
02801
02802 void dsp_filter_set_ccoeffsf (dsp_filter_t dspfilterInst,
02803 const stpSCplx spFiltCoeffs, int iSmooth)
02804 {
02805 ((clFilter *) dspfilterInst)->SetCoeffs(spFiltCoeffs,
02806 (iSmooth) ? true : false);
02807 }
02808
02809
02810 void dsp_filter_set_ccoeffs (dsp_filter_t dspfilterInst,
02811 const stpDCplx spFiltCoeffs, int iSmooth)
02812 {
02813 ((clFilter *) dspfilterInst)->SetCoeffs(spFiltCoeffs,
02814 (iSmooth) ? true : false);
02815 }
02816
02817
02818 void dsp_filter_get_coeffsf (dsp_filter_t dspfilterInst,
02819 float *fpFiltCoeffs)
02820 {
02821 ((clFilter *) dspfilterInst)->GetCoeffs(fpFiltCoeffs);
02822 }
02823
02824
02825 void dsp_filter_get_coeffs (dsp_filter_t dspfilterInst,
02826 double *dpFiltCoeffs)
02827 {
02828 ((clFilter *) dspfilterInst)->GetCoeffs(dpFiltCoeffs);
02829 }
02830
02831
02832 void dsp_filter_get_ccoeffsf (dsp_filter_t dspfilterInst,
02833 stpSCplx spFiltCoeffs)
02834 {
02835 ((clFilter *) dspfilterInst)->GetCoeffs(spFiltCoeffs);
02836 }
02837
02838
02839 void dsp_filter_get_ccoeffs (dsp_filter_t dspfilterInst,
02840 stpDCplx spFiltCoeffs)
02841 {
02842 ((clFilter *) dspfilterInst)->GetCoeffs(spFiltCoeffs);
02843 }
02844
02845
02846 void dsp_filter_putf (dsp_filter_t dspfilterInst, const float *fpSrcData,
02847 long lSrcCount)
02848 {
02849 ((clFilter *) dspfilterInst)->Put(fpSrcData, lSrcCount);
02850 }
02851
02852
02853 void dsp_filter_put (dsp_filter_t dspfilterInst, const double *dpSrcData,
02854 long lSrcCount)
02855 {
02856 ((clFilter *) dspfilterInst)->Put(dpSrcData, lSrcCount);
02857 }
02858
02859
02860 void dsp_filter_put2f (dsp_filter_t dspfilterInst, const float *fpSrcData,
02861 long lSrcCount, const stpSCplx spCoeffs)
02862 {
02863 ((clFilter *) dspfilterInst)->Put(fpSrcData, lSrcCount, spCoeffs);
02864 }
02865
02866
02867 void dsp_filter_put2 (dsp_filter_t dspfilterInst, const double *dpSrcData,
02868 long lSrcCount, const stpDCplx spCoeffs)
02869 {
02870 ((clFilter *) dspfilterInst)->Put(dpSrcData, lSrcCount, spCoeffs);
02871 }
02872
02873
02874 void dsp_filter_getf (dsp_filter_t dspfilterInst, float *fpDestData,
02875 long lDestCount)
02876 {
02877 ((clFilter *) dspfilterInst)->Get(fpDestData, lDestCount);
02878 }
02879
02880
02881 void dsp_filter_get (dsp_filter_t dspfilterInst, double *dpDestData,
02882 long lDestCount)
02883 {
02884 ((clFilter *) dspfilterInst)->Get(dpDestData, lDestCount);
02885 }
02886
02887
02888 void dsp_filter_design_lpf (dsp_filter_t dspfilterInst, float *fpCorner,
02889 int iDCBlock)
02890 {
02891 ((clFilter *) dspfilterInst)->DesignLP(fpCorner,
02892 (iDCBlock) ? true : false);
02893 }
02894
02895
02896 void dsp_filter_design_lp (dsp_filter_t dspfilterInst, double *dpCorner,
02897 int iDCBlock)
02898 {
02899 ((clFilter *) dspfilterInst)->DesignLP(dpCorner,
02900 (iDCBlock) ? true : false);
02901 }
02902
02903
02904 void dsp_filter_design_lp2f (dsp_filter_t dspfilterInst, float *fpCorner,
02905 float fSampleRate, int iDCBlock)
02906 {
02907 ((clFilter *) dspfilterInst)->DesignLP(fpCorner, fSampleRate,
02908 (iDCBlock) ? true : false);
02909 }
02910
02911
02912 void dsp_filter_design_lp2 (dsp_filter_t dspfilterInst, double *dpCorner,
02913 double dSampleRate, int iDCBlock)
02914 {
02915 ((clFilter *) dspfilterInst)->DesignLP(dpCorner, dSampleRate,
02916 (iDCBlock) ? true : false);
02917 }
02918
02919
02920 void dsp_filter_design_hpf (dsp_filter_t dspfilterInst, float *fpCorner)
02921 {
02922 ((clFilter *) dspfilterInst)->DesignHP(fpCorner);
02923 }
02924
02925
02926 void dsp_filter_design_hp (dsp_filter_t dspfilterInst, double *dpCorner)
02927 {
02928 ((clFilter *) dspfilterInst)->DesignHP(dpCorner);
02929 }
02930
02931
02932 void dsp_filter_design_hp2f (dsp_filter_t dspfilterInst, float *fpCorner,
02933 float fSampleRate)
02934 {
02935 ((clFilter *) dspfilterInst)->DesignHP(fpCorner, fSampleRate);
02936 }
02937
02938
02939 void dsp_filter_design_hp2 (dsp_filter_t dspfilterInst, double *dpCorner,
02940 double dSampleRate)
02941 {
02942 ((clFilter *) dspfilterInst)->DesignHP(dpCorner, dSampleRate);
02943 }
02944
02945
02946 void dsp_filter_design_bpf (dsp_filter_t dspfilterInst, float *fpLowCorner,
02947 float *fpHighCorner)
02948 {
02949 ((clFilter *) dspfilterInst)->DesignBP(fpLowCorner, fpHighCorner);
02950 }
02951
02952
02953 void dsp_filter_design_bp (dsp_filter_t dspfilterInst, double *dpLowCorner,
02954 double *dpHighCorner)
02955 {
02956 ((clFilter *) dspfilterInst)->DesignBP(dpLowCorner, dpHighCorner);
02957 }
02958
02959
02960 void dsp_filter_design_bp2f (dsp_filter_t dspfilterInst, float *fpLowCorner,
02961 float *fpHighCorner, float fSampleRate)
02962 {
02963 ((clFilter *) dspfilterInst)->DesignBP(fpLowCorner, fpHighCorner,
02964 fSampleRate);
02965 }
02966
02967
02968 void dsp_filter_design_bp2 (dsp_filter_t dspfilterInst, double *dpLowCorner,
02969 double *dpHighCorner, double dSampleRate)
02970 {
02971 ((clFilter *) dspfilterInst)->DesignBP(dpLowCorner, dpHighCorner,
02972 dSampleRate);
02973 }
02974
02975
02976 void dsp_filter_design_brf (dsp_filter_t dspfilterInst, float *fpLowCorner,
02977 float *fpHighCorner)
02978 {
02979 ((clFilter *) dspfilterInst)->DesignBR(fpLowCorner, fpHighCorner);
02980 }
02981
02982
02983 void dsp_filter_design_br (dsp_filter_t dspfilterInst, double *dpLowCorner,
02984 double *dpHighCorner)
02985 {
02986 ((clFilter *) dspfilterInst)->DesignBR(dpLowCorner, dpHighCorner);
02987 }
02988
02989
02990 void dsp_filter_design_br2f (dsp_filter_t dspfilterInst, float *fpLowCorner,
02991 float *fpHighCorner, float fSampleRate)
02992 {
02993 ((clFilter *) dspfilterInst)->DesignBR(fpLowCorner, fpHighCorner,
02994 fSampleRate);
02995 }
02996
02997
02998 void dsp_filter_design_br2 (dsp_filter_t dspfilterInst, double *dpLowCorner,
02999 double *dpHighCorner, double dSampleRate)
03000 {
03001 ((clFilter *) dspfilterInst)->DesignBR(dpLowCorner, dpHighCorner,
03002 dSampleRate);
03003 }
03004
03005
03006
03007
03008
03009 dsp_flip_t dsp_flip_new ()
03010 {
03011 return ((dsp_flip_t) new clFlipBand);
03012 }
03013
03014
03015 void dsp_flip_delete (dsp_flip_t dspflipInst)
03016 {
03017 delete ((clFlipBand *) dspflipInst);
03018 }
03019
03020
03021 void dsp_flip_initf (dsp_flip_t dspflipInst, long lSize)
03022 {
03023 float *fpNullPtr = NULL;
03024
03025 ((clFlipBand *) dspflipInst)->Initialize(lSize, fpNullPtr);
03026 }
03027
03028
03029 void dsp_flip_init (dsp_flip_t dspflipInst, long lSize)
03030 {
03031 double *dpNullPtr = NULL;
03032
03033 ((clFlipBand *) dspflipInst)->Initialize(lSize, dpNullPtr);
03034 }
03035
03036
03037 void dsp_flip_uninit (dsp_flip_t dspflipInst)
03038 {
03039 ((clFlipBand *) dspflipInst)->Uninitialize();
03040 }
03041
03042
03043 void dsp_flip_putf (dsp_flip_t dspflipInst, const float *fpSrc, long lCount)
03044 {
03045 ((clFlipBand *) dspflipInst)->Put(fpSrc, lCount);
03046 }
03047
03048
03049 void dsp_flip_put (dsp_flip_t dspflipInst, const double *dpSrc, long lCount)
03050 {
03051 ((clFlipBand *) dspflipInst)->Put(dpSrc, lCount);
03052 }
03053
03054
03055 void dsp_flip_getf (dsp_flip_t dspflipInst, float *fpDest, long lCount)
03056 {
03057 ((clFlipBand *) dspflipInst)->Get(fpDest, lCount);
03058 }
03059
03060
03061 void dsp_flip_get (dsp_flip_t dspflipInst, double *dpDest, long lCount)
03062 {
03063 ((clFlipBand *) dspflipInst)->Get(dpDest, lCount);
03064 }
03065
03066
03067 void dsp_flip_clear (dsp_flip_t dspflipInst)
03068 {
03069 ((clFlipBand *) dspflipInst)->Clear();
03070 }
03071
03072
03073
03074
03075
03076 dsp_rebuf_t dsp_rebuf_new ()
03077 {
03078 return ((dsp_rebuf_t) new clReBuffer);
03079 }
03080
03081
03082 void dsp_rebuf_delete (dsp_rebuf_t dsprebufInst)
03083 {
03084 delete ((clReBuffer *) dsprebufInst);
03085 }
03086
03087
03088 void dsp_rebuf_putf (dsp_rebuf_t dsprebufInst, const float *fpSrcData,
03089 long lSrcCount)
03090 {
03091 ((clReBuffer *) dsprebufInst)->Put(fpSrcData, lSrcCount);
03092 }
03093
03094
03095 void dsp_rebuf_put (dsp_rebuf_t dsprebufInst, const double *dpSrcData,
03096 long lSrcCount)
03097 {
03098 ((clReBuffer *) dsprebufInst)->Put(dpSrcData, lSrcCount);
03099 }
03100
03101
03102 int dsp_rebuf_getf (dsp_rebuf_t dsprebufInst, float *fpDestData,
03103 long lDestCount)
03104 {
03105 if (!((clReBuffer *) dsprebufInst)->Get(fpDestData, lDestCount))
03106 return 0;
03107 return 1;
03108 }
03109
03110
03111 int dsp_rebuf_get (dsp_rebuf_t dsprebufInst, double *dpDestData,
03112 long lDestCount)
03113 {
03114 if (!((clReBuffer *) dsprebufInst)->Get(dpDestData, lDestCount))
03115 return 0;
03116 return 1;
03117 }
03118
03119
03120 long dsp_rebuf_size (dsp_rebuf_t dsprebufInst)
03121 {
03122 return ((clReBuffer *) dsprebufInst)->GetCount();
03123 }
03124
03125
03126 void dsp_rebuf_clear (dsp_rebuf_t dsprebufInst)
03127 {
03128 ((clReBuffer *) dsprebufInst)->Clear();
03129 }
03130
03131
03132 void dsp_rebuf_copy (dsp_rebuf_t dsprebufInst, dsp_rebuf_t dsprebufCopySrc)
03133 {
03134 *((clReBuffer *) dsprebufInst) = *((clReBuffer *) dsprebufCopySrc);
03135
03136
03137
03138 }
03139
03140 }