Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

cdspop.cc

Go to the documentation of this file.
00001 /*
00002 
00003     DSP operations C-wrapper
00004     Copyright (C) 2002-2004 Jussi Laako
00005 
00006     This program is free software; you can redistribute it and/or modify
00007     it under the terms of the GNU General Public License as published by
00008     the Free Software Foundation; either version 2 of the License, or
00009     (at your option) any later version.
00010 
00011     This program is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014     GNU General Public License for more details.
00015 
00016     You should have received a copy of the GNU General Public License
00017     along with this program; if not, write to the Free Software
00018     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
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 /* clDSPOp */
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 /* clIIRCascade */
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 /* clFFTDecimator */
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 /* clFIRDecimator */
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 /* clIIRDecimator */
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 /* clRecDecimator */
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 /* clFFTInterpolator */
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 /* clFIRInterpolator */
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 /* clIIRInterpolator */
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 /* clRecInterpolator */
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 /* clFilter */
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 /* clFlipBand */
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 /* clReBuffer */
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     /* or */
03136     /*((clReBuffer *) dsprebufInst)->operator=(*((clReBuffer *) dsprebufCopySrc));*/
03137     /* if you like... :) */
03138 }
03139 
03140 }

Generated on Sun Nov 7 14:31:57 2004 for libDSP by doxygen 1.3.6