CWO++library  0.32
 All Classes Functions Variables Groups
cwo_lib.h
1 // Copyright (C) Tomoyoshi Shimobaba 2011-
2 
3 
4 #ifndef _CWO_LIB_H
5 #define _CWO_LIB_H
6 
7 #define CWO_VER_MAJOR (0)
8 #define CWO_VER_MINOR (3)
9 #define CWO_VER_BUILD (2)
10 
11 #ifndef __linux__
12  #ifdef CWODLL
13  #define CWO_EXPORT __declspec(dllexport)
14  #else
15  #define CWO_EXPORT __declspec(dllimport)
16  #endif
17 #else
18  #define CWO_EXPORTCWO_HOST_DEV
19 #endif
20 
21 //if you want to generate DLL, omit the following comment out.
22 #ifndef __linux__
23 #define CWOAPI __stdcall
24 #else
25 #define CWOAPI
26 #endif
27 
28 
30 #ifdef __CUDACC__ //for CUDA
31 #define CWO_HOST_DEV __host__ __device__
32 #else //for host
33 #define CWO_HOST_DEV
34 #endif
35 
36 
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 
43 //###########################################
51 #define CWO_CONV_EXPLICIT 0x00
52 
57 #define CWO_CONV_IMPLICIT 0x80
58 
59 //###########################################
66 #define CWO_ERROR (-1)
67 
68 #define CWO_SUCCESS (0)
69 
70 
72 
73 //###########################################
77 
113 #define CWO_ANGULAR (0x01)
114 
115 
116 
122 #define CWO_HUYGENS (0x03)
123 
129 #define CWO_FRESNEL_CONV (0x04)
130 
136 #define CWO_FRESNEL_FOURIER (0x05)
137 
144 #define CWO_FRESNEL_ANALYSIS (0x06)
145 
152 #define CWO_FRESNEL_DBL (0x07)
153 
154 
155 
161 #define CWO_FRAUNHOFER (0x08)
162 
168 #define CWO_SHIFTED_ANGULAR (0x09)
169 #define CWO_SCALED_ANGULAR (0x0a)
170 #define CWO_SCALED_FRESNEL (0x0b)
171 
172 
173 #define CWO_FRESNEL_ARBITRARY_DIRECT (0x0c)
174 #define CWO_FRESNEL_ARBITRARY (0x0d)
175 #define CWO_FRESNEL_ARBITRARY2 (0x0e)
176 #define CWO_FRAUNHOFER_ARBITRARY (0x0f)
177 
178 #define CWO_LAPLACIAN_WAVE_RETV (0x10)
179 
180 #define CWO_NU_ANGULAR1 (0x11)
181 #define CWO_NU_ANGULAR2 (0x12)
182 
183 #define CWO_NU_FRESNEL1 (0x13)
184 #define CWO_NU_FRESNEL2 (0x14)
185 
191 #define CWO_ARSS_FRESNEL (0x14)
192 
193 #define CWO_DIRECT_SOMMER (0x15)
194 
195 
200 #define CWO_FFT (0x16)
201 
205 #define CWO_IFFT (0x17)
206 
211 #define CWO_SCALED_FFT (0x18)
212 
213 
219 #define CWO_SHIFTED_FRESNEL (0x19)
220 
226 #define CWO_SIMPLE_SASM (0x20)
227 
228 
229 
231 
232 #define CWO_DIFFRACT_WITHOUT_COFF (0x8000)
233 
234 #define CWO_CGH_BASIC (0x20)
235 #define CWO_CGH_FRESNEL (0x21)
236 #define CWO_CGH_RECURRENCE (0x22)
237 
238 
239 #define CWO_PLS_FRESNEL (0x30)
240 #define CWO_PLS_FRESNEL_CGH (0x31)
241 #define CWO_PLS_HUYGENS (0x32)
242 //#define CWO_PLS_HUYGENS_CGH (0x33)
243 
244 
245 
246 
247 //###########################################
255 #define CWO_FLD_COMPLEX (0)
256 
260 #define CWO_FLD_INTENSITY (1)
261 
265 #define CWO_FLD_PHASE (2)
266 
270 #define CWO_FLD_CHAR (3)
271 
272 
273 //color
278 #define CWO_RED (0)
279 
283 #define CWO_GREEN (1)
284 
288 #define CWO_BLUE (2)
289 
293 #define CWO_GREY (3)
294 
295 
300 #define CWO_INTER_NEAREST (0)
301 
305 #define CWO_INTER_LINEAR (1)
306 
310 #define CWO_INTER_CUBIC (2)
311 
315 #define CWO_INTER_LANCZOS (3)
316 
317 
318 
323 #define CWO_ED_FS (0)
324 
329 #define CWO_ED_MFS (1)
330 
335 #define CWO_ED_JJN (2)
336 
341 #define CWO_ED_ST (3)
342 
347 #define CWO_ED_BUR (4)
348 
349 
354 #define CWO_ED_ATK (5)
355 
356 
357 
360 #define CWO_SAVE_AS_INTENSITY (0x01)
361 
362 #define CWO_SAVE_AS_PHASE (0x02)
363 
366 #define CWO_SAVE_AS_AMP (0x03)
367 
370 #define CWO_SAVE_AS_RE (0x04)
371 
374 #define CWO_SAVE_AS_IM (0x05)
375 
378 #define CWO_SAVE_AS_ARG (0x06)
379 
380 
381 #define CWO_SAVE_AS_LOG (0x100)
382 
383 
384 #define CWO_PROP_CENTER (0)
385 #define CWO_PROP_FFT_SHIFT (1)
386 #define CWO_PROP_MUL_CENTER (2)
387 #define CWO_PROP_MUL_FFT_SHIFT (3)
388 
389 #define CWO_FILL_INSIDE (0)
390 #define CWO_FILL_OUTSIDE (1)
391 
392 #define CWO_EXPAND_ZEROPAD (0)
393 #define CWO_EXPAND_MIRROR (1)
394 #define CWO_EXPAND_WITHOUT (2)
395 
396 #define CWO_BUFFER_FIELD (0)
397 #define CWO_BUFFER_DIFF_A (1)
398 #define CWO_BUFFER_DIFF_B (2)
399 #define CWO_BUFFER_D1 (3)
400 #define CWO_BUFFER_D2 (4)
401 #define CWO_BUFFER_X1 (5)
402 #define CWO_BUFFER_X2 (6)
403 #define CWO_BUFFER_PLS (7)
404 
405 #define CWO_SUCCESS (0)
406 #define CWO_FAIL (-1)
407 
408 
409 
410 
411 
413 //
415 #define CWO_ON 1
416 #define CWO_OFF 0
417 
419 //
421 //#define CWO_MEM_PAGELOCKED (0x01)
422 
423 
425 //define pi
427 #define CWO_PI (3.1415926535897932384626433832795)
428 #define CWO_2PI (3.1415926535897932384626433832795 * 2.0)
429 #define CWO_PI2 (3.1415926535897932384626433832795 / 2.0)
430 
432 //
434 
435 #define CWO_RE(a) ((a).cplx[0])
436 #define CWO_IM(a) ((a).cplx[1])
437 
438 #define CWO_CONJ(a) (CWO_IM(a)*=-1.0)
439 #define CWO_INTENSITY(a) (CWO_RE(a)*CWO_RE(a)+CWO_IM(a)*CWO_IM(a))
440 #define CWO_AMP(a) (sqrt(CWO_RE(a)*CWO_RE(a)+CWO_IM(a)*CWO_IM(a)))
441 #define CWO_PHASE(a) (atan2(CWO_IM(a),CWO_RE(a)))
442 #define CWO_ARG(a) (atan2(CWO_IM(a),CWO_RE(a)))
443 
444 
445 //convert degree to radian
446 #define CWO_RAD(deg) (deg*CWO_PI/180.0)
447 
448 //convert radian to degree
449 #define CWO_DEG(rad) (rad*180.0/CWO_PI)
450 
451 
452 //
453 #define CWO_X(a) (a)
454 #define CWO_Y(a) (-(a))
455 
456 
457 
458 
459 
461 
465 struct cwoComplex{
466  float cplx[2];
467  //cwoComplex(){};
468  //cwoComplex(float r, float i){cplx[0]=r;cplx[1]=i;};
469 
470  void Re(const float a){cplx[0]=a;};
471  void Im(const float a){cplx[1]=a;};
472 
473  /*void Polar(const float amp, const float ph){
474  cplx[0]=amp*cos(ph);
475  cplx[1]=amp*sin(ph);
476  };*/
477 
478  CWO_HOST_DEV cwoComplex& operator=(const cwoComplex &a){
479  cplx[0]=a.cplx[0]; cplx[1]=a.cplx[1];
480  return *this;
481  };
482 
483  CWO_HOST_DEV cwoComplex& operator=(const float a){
484  cplx[0]=a; cplx[1]=0.0f;
485  return *this;
486  };
487 
488  CWO_HOST_DEV cwoComplex& operator+=(const cwoComplex &a){
489  cplx[0]+=a.cplx[0]; cplx[1]+=a.cplx[1];
490  return *this;
491  };
492  CWO_HOST_DEV cwoComplex& operator+=(const float a){
493  cplx[0]+=a;
494  return *this;
495  };
496  CWO_HOST_DEV cwoComplex& operator-=(const cwoComplex &a){
497  cplx[0]-=a.cplx[0]; cplx[1]-=a.cplx[1];
498  return *this;
499  };
500  CWO_HOST_DEV cwoComplex& operator-=(const float a){
501  cplx[0]-=a;
502  return *this;
503  };
504  CWO_HOST_DEV cwoComplex& operator*=(const cwoComplex &a){
505  cwoComplex tmp;
506 
507  tmp.cplx[0]=cplx[0]*a.cplx[0]-cplx[1]*a.cplx[1];
508  tmp.cplx[1]=cplx[0]*a.cplx[1]+cplx[1]*a.cplx[0];
509  cplx[0]=tmp.cplx[0];
510  cplx[1]=tmp.cplx[1];
511  return *this;
512  }
513  CWO_HOST_DEV cwoComplex& operator*=(const float a){
514  cplx[0]*=a; cplx[1]*=a;
515  return *this;
516  };
517 
518  CWO_HOST_DEV cwoComplex& operator/=(const cwoComplex &a){
519  cwoComplex tmp;
520  float deno=a.cplx[0]*a.cplx[0]+a.cplx[1]*a.cplx[1];
521  tmp.cplx[0]=(cplx[0]*a.cplx[0]+cplx[1]*a.cplx[1])/deno;
522  tmp.cplx[1]=(cplx[1]*a.cplx[0]-cplx[0]*a.cplx[1])/deno;
523  cplx[0]=tmp.cplx[0];
524  cplx[1]=tmp.cplx[1];
525  return *this;
526  };
527 
528  CWO_HOST_DEV cwoComplex& operator/=(const float a){
529  cplx[0]/=a; cplx[1]/=a;
530  return *this;
531  };
532 
533  CWO_HOST_DEV const cwoComplex operator+(const cwoComplex &a)const{
534  cwoComplex tmp;
535  tmp.cplx[0]=cplx[0]+a.cplx[0];
536  tmp.cplx[1]=cplx[1]+a.cplx[1];
537  return tmp;
538  }
539  CWO_HOST_DEV const cwoComplex operator+(const float a)const{
540  cwoComplex tmp;
541  tmp.cplx[0]=cplx[0]+a;
542  tmp.cplx[1]=cplx[1];
543  return tmp;
544  }
545  CWO_HOST_DEV const cwoComplex operator-(const cwoComplex &a)const{
546  cwoComplex tmp;
547  tmp.cplx[0]=cplx[0]-a.cplx[0];
548  tmp.cplx[1]=cplx[1]-a.cplx[1];
549  return tmp;
550  }
551  CWO_HOST_DEV const cwoComplex operator-(const float a)const{
552  cwoComplex tmp;
553  tmp.cplx[0]=cplx[0]-a;
554  return tmp;
555  }
556  CWO_HOST_DEV const cwoComplex operator*(const cwoComplex &a)const{
557  cwoComplex tmp;
558  tmp.cplx[0]=cplx[0]*a.cplx[0]-cplx[1]*a.cplx[1];
559  tmp.cplx[1]=cplx[0]*a.cplx[1]+cplx[1]*a.cplx[0];
560  return tmp;
561  }
562  CWO_HOST_DEV const cwoComplex operator*(const float a)const{
563  cwoComplex tmp;
564  tmp.cplx[0]=cplx[0]*a;
565  tmp.cplx[1]=cplx[1]*a;
566  return tmp;
567  }
568  CWO_HOST_DEV const cwoComplex operator/(const cwoComplex &a)const{
569  cwoComplex tmp;
570  float deno=a.cplx[0]*a.cplx[0]+a.cplx[1]*a.cplx[1];
571  tmp.cplx[0]=(cplx[0]*a.cplx[0]+cplx[1]*a.cplx[1])/deno;
572  tmp.cplx[1]=(cplx[1]*a.cplx[0]-cplx[0]*a.cplx[1])/deno;
573  return tmp;
574  }
575  CWO_HOST_DEV const cwoComplex operator/(const float a) const{
576  cwoComplex tmp;
577  tmp.cplx[0]=cplx[0]/a;
578  tmp.cplx[1]=cplx[1]/a;
579  return tmp;
580  }
581 
582  //CWO_HOST_DEV const friend cwoComplex operator/(const float a, const cwoComplex &b) {
583  // cwoComplex tmp;
584  // float cof = a/(b.cplx[0] * b.cplx[0] + b.cplx[1] * b.cplx[1]);
585  // tmp.cplx[0] = b.cplx[0] * cof;
586  // tmp.cplx[1] = -b.cplx[1] * cof;
587  // return tmp;
588  //}
589 
590  CWO_HOST_DEV cwoComplex Conj(){
591  cwoComplex tmp;
592  tmp.cplx[0]=cplx[0];
593  tmp.cplx[1]=-cplx[1];
594  return tmp;
595  }
596  CWO_HOST_DEV float Intensity(){
597  return cplx[0]*cplx[0]+cplx[1]*cplx[1];
598  }
599 
600  CWO_HOST_DEV cwoComplex operator()(float re, float im) const {
601  cwoComplex tmp;
602  tmp.cplx[0] = re;
603  tmp.cplx[1] = im;
604  return tmp;
605  }
606 
607 };
608 
609 
610 
611 
612 struct cwoObjPoint{
613  cwoComplex a;
614  float x;
615  float y;
616  float z;
617 };
618 
620  cwoComplex a;
621  int x;
622  int y;
623  int z;
624 };
625 
626 
627 struct cwoFloat2{
628  float x;
629  float y;
630  cwoFloat2(){};
631  cwoFloat2(float tx, float ty){ x = tx; y = ty; };
632 
633  CWO_HOST_DEV cwoFloat2& operator=(const cwoFloat2 &a){
634  x = a.x; y = a.y;
635  return *this;
636  };
637 
638  CWO_HOST_DEV cwoFloat2& operator=(const float a){
639  x = a; y = 0.0f;
640  return *this;
641  };
642 
643  CWO_HOST_DEV cwoFloat2& operator+=(const cwoFloat2 &a){
644  x += a.x; y += a.y;
645  return *this;
646  };
647  CWO_HOST_DEV cwoFloat2& operator+=(const float a){
648  x += a;
649  return *this;
650  };
651  CWO_HOST_DEV cwoFloat2& operator-=(const cwoFloat2 &a){
652  x -= a.x; y -= a.y;
653  return *this;
654  };
655  CWO_HOST_DEV cwoFloat2& operator-=(const float a){
656  x -= a;
657  return *this;
658  };
659  CWO_HOST_DEV cwoFloat2& operator*=(const cwoFloat2 &a){ //Hadamard product
660  x *= a.x; y *= a.y;
661  return *this;
662  }
663  CWO_HOST_DEV cwoFloat2& operator*=(const float a){
664  x *= a; y *= a;
665  return *this;
666  };
667 
668  CWO_HOST_DEV cwoFloat2& operator/=(const cwoFloat2 &a){ //Hadamard product
669  x /= a.x; y /= a.y;
670  return *this;
671  };
672 
673  CWO_HOST_DEV cwoFloat2& operator/=(const float a){
674  x /= a; y /= a;
675  return *this;
676  };
677 
678  CWO_HOST_DEV const cwoFloat2 operator+(const cwoFloat2 &a) const{
679  cwoFloat2 tmp;
680  tmp.x = x + a.x;
681  tmp.y = y + a.y;
682  return tmp;
683  }
684  CWO_HOST_DEV const cwoFloat2 operator+(const float a) const{
685  cwoFloat2 tmp;
686  tmp.x = x + a;
687  tmp.y = y;
688  return tmp;
689  }
690  CWO_HOST_DEV const cwoFloat2 operator-(const cwoFloat2 &a) const{
691  cwoFloat2 tmp;
692  tmp.x = x - a.x;
693  tmp.y = y - a.y;
694  return tmp;
695  }
696  CWO_HOST_DEV const cwoFloat2 operator-(const float a) const{
697  cwoFloat2 tmp;
698  tmp.x = x - a;
699  tmp.y = y;
700  return tmp;
701  }
702  CWO_HOST_DEV const cwoFloat2 operator*(const cwoFloat2 &a) const{ //Hadamard product
703  cwoFloat2 tmp;
704  tmp.x = x * a.x;
705  tmp.y = y * a.y;
706  return tmp;
707  }
708  CWO_HOST_DEV const cwoFloat2 operator*(const float a) const{
709  cwoFloat2 tmp;
710  tmp.x = x * a;
711  tmp.y = y * a;
712  return tmp;
713  }
714  CWO_HOST_DEV const cwoFloat2 operator/(const cwoFloat2 &a) const{ //Hadamard product
715  cwoFloat2 tmp;
716  tmp.x = x / a.x;
717  tmp.y = y / a.y;
718  return tmp;
719  }
720  CWO_HOST_DEV const cwoFloat2 operator/(const float a) const{
721  cwoFloat2 tmp;
722  tmp.x = x / a;
723  tmp.y = y / a;
724  return tmp;
725  }
726 
727 };
728 
729 struct cwoFloat3{
730  cwoFloat3(){};
731  cwoFloat3(float tx, float ty, float tz){x=tx;y=ty;z=tz;};
732  float x;
733  float y;
734  float z;
735 };
736 
737 struct cwoFloat4{
738  cwoFloat4(){};
739  cwoFloat4(float tx, float ty, float tz, float ta){x=tx;y=ty;z=tz;a=ta;};
740  float x;
741  float y;
742  float z;
743  float a;
744 };
745 
746 struct cwoInt2{
747  cwoInt2(){};
748  cwoInt2(int tx, int ty){x=tx;y=ty;};
749  int x;
750  int y;
751 };
752 
753 struct cwoInt3{
754  cwoInt3(){};
755  cwoInt3(int tx, int ty, int tz){x=tx;y=ty;z=tz;};
756  int x;
757  int y;
758  int z;
759 };
760 
761 struct cwoInt4{
762  cwoInt4(){};
763  cwoInt4(int tx1, int tx2, int tx3, int tx4){
764  x1=tx1;
765  x2=tx2;
766  x3=tx3;
767  x4=tx4;
768  };
769 
770  int Range(int x,int y){
771  //Check range
772  // return 0 : out range
773  // return 1 : in range
774  return (x >= x1 && x <= x3 && y >= x2 && y <= x4);
775  }
776 
777  int x1;
778  int x2;
779  int x3;
780  int x4;
781 };
782 
783 
784 
785 
786 
787 
788 #ifndef __FFTW_H_
789 #define __FFTW_H_
790  #include "fftw3.h"
791 #endif
792 
793 typedef fftwf_plan cwofftPlan; //CPU—p
794 
795 //typedef int cwoStream; //CPU‚ÌꇂÍstream‚ÍŽg‚í‚È‚¢‚̂Ń_ƒ~[‚Æ‚µ‚Äint‚ðŽg‚¤
796 
797 
799 
802 struct alignas(128) cwoCtx{
803 
804  int Nx;
805  int Ny;
806 
807  int calc_type;
808 
809  float z;
810  float wave_length;
811 
812  float src_px, src_py;
813  float dst_px, dst_py;
814 
815  float src_ox, src_oy;
816  float dst_ox, dst_oy;
817 
818  int expand;
819 
820  //**************
821  //For PLS
822  //**************
823  int PLS_num;
824 
825  int GetNx(){return Nx;};
826  int GetNy(){return Ny;};
827  float GetPropDist(){return z;};
828  float GetWaveLength(){return wave_length;};
829  float GetSrcPx(){return src_px;};
830  float GetSrcPy(){return src_py;};
831  float GetDstPx(){return dst_px;};
832  float GetDstPy(){return dst_py;};
833  float GetSrcOx(){return src_ox;};
834  float GetSrcOy(){return src_oy;};
835  float GetDstOx(){return dst_ox;};
836  float GetDstOy(){return dst_oy;};
837 };
838 
839 
840 CWO_EXPORT const char* CWOAPI cwoGetVersion();
841 
842 CWO_EXPORT int CWOAPI cwoMalloc(void **ptr, size_t size);
843 CWO_EXPORT int CWOAPI cwoFree(void *ptr);
844 
846 //Threads
848 CWO_EXPORT void CWOAPI cwoSetThreads(int N);
849 CWO_EXPORT int CWOAPI cwoGetThreads();
850 
851 
853 //timer
855 
856 CWO_EXPORT void CWOAPI cwoSetTimer();
857 CWO_EXPORT float CWOAPI cwoEndTimer();
858 /*
860 //Image File I/O
862 
863 CWO_EXPORT void* CWOAPI cwoImgCreate();
864 CWO_EXPORT CWOAPI cwoImgDestroy(void *handle);
865 
866 CWO_EXPORT void CWOAPI cwoImgLoadAsFloat(char *fname,float *c, int *Nx, int *Ny);
867 CWO_EXPORT void CWOAPI cwoImgLoadAsFloatRGB(char *fname,float *r, float *g, float *b, int *Nx, int *Ny);
868 CWO_EXPORT void CWOAPI cwoImgSaveAsFloat(char *fname,float *c, int Nx, int Ny);
869 CWO_EXPORT void CWOAPI cwoImgSaveAsFloatRGB(char *fname,float *r, float *g, float *b, int Nx, int Ny);
870 CWO_EXPORT void CWOAPI cwoImgFree();
871 */
872 
875 
876 
877 
878 #define CWO_C2C 0
879 #define CWO_R2C 1
880 #define CWO_C2R 2
881 
882 
883 CWO_EXPORT int CWOAPI cwoInitFFT();
884 //CWO_EXPORT void CWOAPI cwoSetThreads(int N); //!< Set the number of threads
885 
886 
887 CWO_EXPORT void CWOAPI cwoCGHRecurrence(cwoCtx *c, cwoObjPoint *obj, float *hol, int N);
888 
889 //CWO_EXPORT void CWOAPI cwoWASABIRange(int Nx, int Ny, int dep, int current_m, int current_n, int *m1, int *m2, int *n1, int *n2);
890 
891 CWO_EXPORT void CWOAPI cwoWASABISuperposition(
892  cwoCtx *c, cwoObjPoint *obj, float *hol, int N);
893 
894 
895 
896 CWO_EXPORT void CWOAPI cwoFFT(cwoCtx *c, void *src, void *dst, int mode);
897 CWO_EXPORT void CWOAPI cwoIFFT(cwoCtx *c, void *src, void *dst);
898 CWO_EXPORT void CWOAPI cwoFFTShift(cwoCtx *c, void *a);
899 
900 CWO_EXPORT void CWOAPI cwoFWT(cwoComplex *a, int Nx, int Ny, int depth, int tap, const float *pk, const float *qk);
901 CWO_EXPORT void CWOAPI cwoIFWT(cwoComplex *a, int Nx, int Ny, int depth, int tap, const float *pk, const float *qk);
902 
903 
904 
905 CWO_EXPORT void CWOAPI cwoNUFFT_T1(cwoCtx *c, cwoComplex *p_fld, cwoFloat2 *p_x, int R, int Msp);
906 CWO_EXPORT void CWOAPI cwoNUFFT_T2(cwoCtx *c, cwoComplex *p_fld, cwoFloat2 *p_x, int R, int Msp);
907 
908 //CWO_EXPORT void CWOAPI cwoWaveletHaar(cwoCtx *c, cwoComplex *src, cwoComplex *dst, int mode, int scale);
909 
910 
911 //CWO_EXPORT void CWOAPI cwoAngularProp(cwoCtx *c, cwoComplex *buf, float px, float py);
912 
913 CWO_EXPORT void CWOAPI cwoAngularProp(cwoCtx *c, cwoComplex *buf); //Create, Center
914 CWO_EXPORT void CWOAPI cwoAngularPropFS(cwoCtx *c, cwoComplex *buf); //Create, FFTShift
915 CWO_EXPORT void CWOAPI cwoAngularPropMul(cwoCtx *c, cwoComplex *buf); //Multiply, Center
916 CWO_EXPORT void CWOAPI cwoAngularPropMulFS(cwoCtx *c, cwoComplex *buf); //Multiply, FFTShift
917 
918 CWO_EXPORT void CWOAPI cwoAngularLim(cwoCtx *c, float *fx_c, float *fx_w, float *fy_c, float *fy_w);
919 //CWO_EXPORT void CWOAPI cwoShiftedAngularProp(cwoCtx *c, cwoComplex *a);
920 
921 CWO_EXPORT void CWOAPI cwoHuygensProp(cwoCtx *c, cwoComplex *buf);
922 
923 CWO_EXPORT void CWOAPI cwoFresnelConvProp(cwoCtx *c, cwoComplex *buf);
924 CWO_EXPORT void CWOAPI cwoFresnelConvCoeff(cwoCtx *c, cwoComplex *buf, float const_val);
925 
926 CWO_EXPORT void CWOAPI cwoFresnelAnalysisTransfer(cwoCtx *c, cwoComplex *a, cwoComplex *b);
927 
928 CWO_EXPORT void CWOAPI cwoShiftedFresnelAperture(cwoCtx *c, cwoComplex *buf);
929 CWO_EXPORT void CWOAPI cwoShiftedFresnelProp(cwoCtx *c, cwoComplex *buf);
930 CWO_EXPORT void CWOAPI cwoShiftedFresnelCoeff(cwoCtx *c, cwoComplex *buf);
931 
932 CWO_EXPORT void CWOAPI cwoARSSFresnelAperture(cwoCtx *c, cwoComplex *buf);
933 CWO_EXPORT void CWOAPI cwoARSSFresnelProp(cwoCtx *c, cwoComplex *buf);
934 CWO_EXPORT void CWOAPI cwoARSSFresnelCoeff(cwoCtx *c, cwoComplex *buf);
935 
936 CWO_EXPORT void CWOAPI cwoFresnelFourierProp(cwoCtx *c, cwoComplex *a);
937 CWO_EXPORT void CWOAPI cwoFresnelFourierCoeff(cwoCtx *c, cwoComplex *a);
938 
939 CWO_EXPORT void CWOAPI cwoFresnelDblAperture(cwoCtx *c, cwoComplex *a, float z1);
940 CWO_EXPORT void CWOAPI cwoFresnelDblFourierDomain(cwoCtx *c, cwoComplex *a, float z1, float z2, cwoInt4 *zp);
941 CWO_EXPORT void CWOAPI cwoFresnelDblCoeff(cwoCtx *c, cwoComplex *a, float z1, float z2);
942 
943 
944 CWO_EXPORT void CWOAPI cwoPhase(cwoCtx *c, cwoComplex *a, cwoComplex *b, float offset);
945 CWO_EXPORT void CWOAPI cwoArg(cwoCtx *c, cwoComplex *a, cwoComplex *b, float scale, float offset);
946 CWO_EXPORT void CWOAPI cwoIntensity(cwoCtx *c, cwoComplex *a, cwoComplex *b);
947 CWO_EXPORT void CWOAPI cwoAmp(cwoCtx *c, cwoComplex *a, cwoComplex *b);
948 
949 CWO_EXPORT void CWOAPI cwoExpi(cwoCtx *c, cwoComplex *a, cwoComplex *b);
950 
951 CWO_EXPORT void CWOAPI cwoExpand(cwoCtx *ctx,
952  void *src, int sx, int sy, int sNx, int sNy,
953  void *dst, int dx, int dy, int dNx, int dNy, int mode);
954 
955 CWO_EXPORT void CWOAPI cwoScaleReal(cwoCtx *ctx,
956  cwoComplex *pi, cwoComplex *po,
957  float i1,float i2, float o1, float o2);
958 
959 CWO_EXPORT void CWOAPI cwoScaleCplx(cwoCtx *ctx,
960  cwoComplex *pi, cwoComplex *po,
961  float i1,float i2, float o1, float o2);
962 
963 
964 CWO_EXPORT void CWOAPI cwoMultComplex(cwoCtx *c, void *A, void *B, void *C);
965 CWO_EXPORT void CWOAPI cwoDiv(cwoCtx *c, void* a, float b); // c=a/b
966 //CWO_EXPORT void CWOAPI cwoGamma(cwoCtx *c, float* buf, float gamma);
967 
968 CWO_EXPORT void CWOAPI cwoSqrtReal(cwoCtx *ctx,
969  cwoComplex *pi, cwoComplex *po);
970 
971 CWO_EXPORT void CWOAPI cwoSqrtCplx(cwoCtx *ctx,
972  cwoComplex *pi, cwoComplex *po);
973 
974 CWO_EXPORT void CWOAPI cwoMaxMin(
975  cwoCtx *c, cwoComplex* a, float *max, float *min,
976  int *max_x, int *max_y,int *min_x, int *min_y);
977 
978 
979 CWO_EXPORT float CWOAPI cwoMSE(cwoCtx *ctx, cwoComplex *tar, cwoComplex *ref);
980 
981 
982 CWO_EXPORT void CWOAPI cwoAddSphericalWave(
983  cwoCtx *c,cwoComplex *p, float x, float y, float z,
984  float px, float py, float a, float ph);
985 
986 CWO_EXPORT void CWOAPI cwoAddSphericalWaveAliasFree(
987  cwoCtx *c, cwoComplex *p,
988  float x, float y, float z, float px, float py, float a, float ratio);
989 
990 CWO_EXPORT void CWOAPI cwoMulSphericalWave(
991  cwoCtx *c,cwoComplex *p, float x, float y, float z,
992  float px, float py, float a);
993 
994 
995 
996 CWO_EXPORT void CWOAPI cwoAddApproxSphWave(
997  cwoCtx *c,cwoComplex *p, float x, float y, float phi, float zx, float zy,
998  float px, float py, float a);
999 CWO_EXPORT void CWOAPI cwoMulApproxSphWave(
1000  cwoCtx *c,cwoComplex *p, float x, float y, float phi, float zx, float zy,
1001  float px, float py, float a);
1002 
1003 
1004 CWO_EXPORT void CWOAPI cwoSetRandSeed(unsigned long s);
1005 CWO_EXPORT float CWOAPI cwoRandVal();
1006 CWO_EXPORT void CWOAPI cwoSetRandReal(cwoCtx *c, cwoComplex *a, float max, float min);
1007 CWO_EXPORT void CWOAPI cwoSetRandPhase(cwoCtx *c, cwoComplex *a, float max, float min);
1008 CWO_EXPORT void CWOAPI cwoMulRandPhase(cwoCtx *c, cwoComplex *a, float max, float min);
1009 
1010 CWO_EXPORT void CWOAPI cwoParticleField(cwoCtx *c, cwoComplex *p, cwoFloat3 pos, float radius, float amp, float init_ph);
1011 
1012 CWO_EXPORT float CWOAPI cwoSumTotal(cwoCtx *c, cwoComplex *a);
1013 CWO_EXPORT float CWOAPI cwoAverage(cwoCtx *c, cwoComplex *a);
1014 CWO_EXPORT float CWOAPI cwoVariance(cwoCtx *c, cwoComplex *a, float ave);
1015 CWO_EXPORT void CWOAPI cwoVarianceMap(cwoCtx *c, cwoComplex *src, cwoComplex *dst, int Sx, int Sy);
1016 CWO_EXPORT float CWOAPI cwoSSIM(cwoComplex *data1, cwoComplex *data2, int Nx, int Ny);
1017 CWO_EXPORT float CWOAPI cwoSMDx(cwoCtx *c, float *a);
1018 
1019 //CWO_EXPORT void CWOAPI cwoSearchMaxMin(cwoCtx *c, void* buf, float *max, float *min, int Nx, int Ny);
1020 
1021 
1022 CWO_EXPORT void CWOAPI cwoHanning(cwoCtx *c, cwoComplex *a, int m, int n, int Wx, int Wy);
1023 CWO_EXPORT void CWOAPI cwoHamming(cwoCtx *c, cwoComplex *a, int m, int n, int Wx, int Wy);
1024 
1025 cwoComplex CWOAPI cwoInterNearest(
1026  cwoComplex *p,
1027  float x, float y, int Nx, int Ny);
1028 
1029 CWO_EXPORT void CWOAPI cwoResizeNearest(
1030  cwoCtx *ctx,
1031  cwoComplex *p_new, int dNx, int dNy,
1032  cwoComplex *p_old, int sNx, int sNy
1033 );
1034 CWO_EXPORT void CWOAPI cwoResizeNearestScale(
1035  cwoCtx *ctx,
1036  cwoComplex *p_new, cwoComplex *p_old,
1037  float scale_x, float scale_y);
1038 
1039 
1040 cwoComplex CWOAPI cwoInterLinear(
1041  cwoComplex *p,
1042  float x, float y, int Nx, int Ny);
1043 
1044 CWO_EXPORT void CWOAPI cwoResizeLinear(
1045  cwoCtx *ctx,
1046  cwoComplex *p_new, int dNx, int dNy,
1047  cwoComplex *p_old, int sNx, int sNy
1048 );
1049 
1050 CWO_EXPORT void CWOAPI cwoResizeLinearScale(
1051  cwoCtx *ctx,
1052  cwoComplex *p_new, cwoComplex *p_old,
1053  float scale_x, float scale_y);
1054 
1055 cwoComplex CWOAPI cwoInterCubic(
1056  cwoComplex *p,
1057  float x, float y, int Nx, int Ny);
1058 
1059 CWO_EXPORT void CWOAPI cwoResizeCubic(
1060  cwoCtx *ctx,
1061  cwoComplex *p_new, int dNx, int dNy,
1062  cwoComplex *p_old, int sNx, int sNy
1063 );
1064 
1065 CWO_EXPORT void CWOAPI cwoResizeCubicScale(
1066  cwoCtx *ctx,
1067  cwoComplex *p_new, cwoComplex *p_old,
1068  float scale_x, float scale_y);
1069 
1070 cwoComplex CWOAPI cwoInterLanczos(
1071  cwoComplex *p,
1072  float x, float y, int Nx, int Ny);
1073 
1074 CWO_EXPORT void CWOAPI cwoResizeLanczos(
1075  cwoCtx *ctx,
1076  cwoComplex *p_new, int dNx, int dNy,
1077  cwoComplex *p_old, int sNx, int sNy
1078 );
1079 
1080 CWO_EXPORT void CWOAPI cwoResizeLanczosScale(
1081  cwoCtx *ctx,
1082  cwoComplex *p_new, cwoComplex *p_old,
1083  float scale_x, float scale_y);
1084 
1085 CWO_EXPORT void CWOAPI cwoAffineAngularSpectrum(
1086  cwoCtx *ctx,
1087  cwoComplex *p_new, cwoComplex *p_old, int Nx, int Ny,
1088  double px, double py, double wl, float *mat_affine, int flag);
1089 
1090 
1091 
1092 //CWO_EXPORT int CWOAPI cwoImgLoad(cwoCtx *ctx, const char *fname, int c, cwoComplex *p);
1093 CWO_EXPORT int CWOAPI cwoPrepareCimg(const char *fname, int *Nx, int *Ny);
1094 CWO_EXPORT int CWOAPI cwoLoadCimg(cwoCtx *ctx, const char *fname, int c, cwoComplex *a);
1095 CWO_EXPORT int CWOAPI cwoSaveCimgMono(cwoCtx *ctx, const char *fname, cwoComplex *a);
1096 CWO_EXPORT int CWOAPI cwoSaveCimgColor(cwoCtx *ctx, const char *fname, cwoComplex *pr, cwoComplex *pg, cwoComplex *pb);
1097 CWO_EXPORT int CWOAPI cwoSaveCimgMonosToColor(cwoCtx *ctx, const char *fname, const char *r_name, const char *g_name, const char *b_name);
1098 
1099 
1100 CWO_EXPORT int CWOAPI cwoLoadBmp(
1101  const char *file_name,
1102  unsigned char ** bmp_data, int * bmp_width, int * bmp_height, int * bmp_bits,
1103  int fixed_width);
1104 
1105 CWO_EXPORT int CWOAPI cwoSaveBmp(
1106  const char * file_name,
1107  const unsigned char * bmp_data, int width, int height, int bmp_bits,
1108  int fixed_width);
1109 
1110 
1111 //Phase unwrapping
1112 CWO_EXPORT float CWOAPI cwoWrap(float p1, float p2);
1113 CWO_EXPORT void CWOAPI cwoLaplacianPhase(cwoCtx *ctx, cwoComplex *pi, cwoComplex *po, float *dxwts, float *dywts, int laptype);
1114 CWO_EXPORT void CWOAPI cwoPoisonSolverFFT(cwoCtx *ctx, cwoComplex *p);
1115 
1116 
1117 //compression
1118 CWO_EXPORT int CWOAPI cwoLZ4Comp(const char* src, char* dst, int inputSize);
1119 CWO_EXPORT int CWOAPI cwoLZ4Decomp(const char* src, char* dst, int inputSize, int maxOutputSize);
1120 
1121 
1122 //Wavelet transform
1123 
1124 #define WAVELE_DATA_TYPE float
1125 
1126 #define CWO_WT_COFF_HAAR (0)
1127 
1128 #define CWO_WT_COFF_DB1 (10)
1129 #define CWO_WT_COFF_DB2 (CWO_WT_COFF_DB1+1)
1130 #define CWO_WT_COFF_DB3 (CWO_WT_COFF_DB1+2)
1131 #define CWO_WT_COFF_DB4 (CWO_WT_COFF_DB1+3)
1132 #define CWO_WT_COFF_DB5 (CWO_WT_COFF_DB1+4)
1133 #define CWO_WT_COFF_DB6 (CWO_WT_COFF_DB1+5)
1134 #define CWO_WT_COFF_DB7 (CWO_WT_COFF_DB1+6)
1135 #define CWO_WT_COFF_DB8 (CWO_WT_COFF_DB1+7)
1136 #define CWO_WT_COFF_DB9 (CWO_WT_COFF_DB1+8)
1137 #define CWO_WT_COFF_DB10 (CWO_WT_COFF_DB1+9)
1138 #define CWO_WT_COFF_DB11 (CWO_WT_COFF_DB1+10)
1139 #define CWO_WT_COFF_DB12 (CWO_WT_COFF_DB1+11)
1140 #define CWO_WT_COFF_DB13 (CWO_WT_COFF_DB1+12)
1141 #define CWO_WT_COFF_DB14 (CWO_WT_COFF_DB1+13)
1142 #define CWO_WT_COFF_DB15 (CWO_WT_COFF_DB1+14)
1143 #define CWO_WT_COFF_DB16 (CWO_WT_COFF_DB1+15)
1144 #define CWO_WT_COFF_DB17 (CWO_WT_COFF_DB1+16)
1145 #define CWO_WT_COFF_DB18 (CWO_WT_COFF_DB1+17)
1146 #define CWO_WT_COFF_DB19 (CWO_WT_COFF_DB1+18)
1147 #define CWO_WT_COFF_DB20 (CWO_WT_COFF_DB1+19)
1148 
1149 #define CWO_WT_COFF_SYM2 (100)
1150 #define CWO_WT_COFF_SYM3 (CWO_WT_COFF_SYM2+1)
1151 #define CWO_WT_COFF_SYM4 (CWO_WT_COFF_SYM2+2)
1152 #define CWO_WT_COFF_SYM5 (CWO_WT_COFF_SYM2+3)
1153 #define CWO_WT_COFF_SYM6 (CWO_WT_COFF_SYM2+4)
1154 #define CWO_WT_COFF_SYM7 (CWO_WT_COFF_SYM2+5)
1155 #define CWO_WT_COFF_SYM8 (CWO_WT_COFF_SYM2+6)
1156 #define CWO_WT_COFF_SYM9 (CWO_WT_COFF_SYM2+7)
1157 #define CWO_WT_COFF_SYM10 (CWO_WT_COFF_SYM2+8)
1158 #define CWO_WT_COFF_SYM11 (CWO_WT_COFF_SYM2+9)
1159 #define CWO_WT_COFF_SYM12 (CWO_WT_COFF_SYM2+10)
1160 #define CWO_WT_COFF_SYM13 (CWO_WT_COFF_SYM2+11)
1161 #define CWO_WT_COFF_SYM14 (CWO_WT_COFF_SYM2+12)
1162 #define CWO_WT_COFF_SYM15 (CWO_WT_COFF_SYM2+13)
1163 #define CWO_WT_COFF_SYM16 (CWO_WT_COFF_SYM2+14)
1164 #define CWO_WT_COFF_SYM17 (CWO_WT_COFF_SYM2+15)
1165 #define CWO_WT_COFF_SYM18 (CWO_WT_COFF_SYM2+16)
1166 #define CWO_WT_COFF_SYM19 (CWO_WT_COFF_SYM2+17)
1167 #define CWO_WT_COFF_SYM20 (CWO_WT_COFF_SYM2+18)
1168 
1169 #define CWO_WT_COFF_COIF1 (200)
1170 #define CWO_WT_COFF_COIF2 (CWO_WT_COFF_COIF1+1)
1171 #define CWO_WT_COFF_COIF3 (CWO_WT_COFF_COIF1+2)
1172 #define CWO_WT_COFF_COIF4 (CWO_WT_COFF_COIF1+3)
1173 #define CWO_WT_COFF_COIF5 (CWO_WT_COFF_COIF1+4)
1174 
1175 
1177 const int N_db1 = 2;
1178 const WAVELE_DATA_TYPE p_db1[] = {
1179  0.7071067811865476, 0.7071067811865476
1180 };
1181 const WAVELE_DATA_TYPE q_db1[] = {
1182  0.7071067811865476, -0.7071067811865476
1183 };
1184 
1186 const int N_db2 = 4;
1187 const WAVELE_DATA_TYPE p_db2[] = {
1188  0.48296291314469025, 0.836516303737469,
1189  0.22414386804185735, -0.12940952255092145
1190 };
1191 const WAVELE_DATA_TYPE q_db2[] = {
1192  -0.12940952255092145, -0.22414386804185735,
1193  0.836516303737469, -0.48296291314469025
1194 };
1195 
1197 const int N_db3 = 6;
1198 const WAVELE_DATA_TYPE p_db3[] = {
1199  0.3326705529509569, 0.8068915093133388,
1200  0.4598775021193313, -0.13501102001039084,
1201  -0.08544127388224149, 0.035226291882100656
1202 };
1203 const WAVELE_DATA_TYPE q_db3[] = {
1204  0.035226291882100656, 0.08544127388224149,
1205  -0.13501102001039084, -0.4598775021193313,
1206  0.8068915093133388, -0.3326705529509569
1207 };
1208 
1210 const int N_db4 = 8;
1211 const WAVELE_DATA_TYPE p_db4[] = {
1212  0.23037781330885523, 0.7148465705525415,
1213  0.6308807679295904, -0.02798376941698385,
1214  -0.18703481171888114, 0.030841381835986965,
1215  0.032883011666982945, -0.010597401784997278
1216 };
1217 const WAVELE_DATA_TYPE q_db4[] = {
1218  -0.010597401784997278, -0.032883011666982945,
1219  0.030841381835986965, 0.18703481171888114,
1220  -0.02798376941698385, -0.6308807679295904,
1221  0.7148465705525415, -0.23037781330885523
1222 };
1223 
1225 const int N_db5 = 10;
1226 const WAVELE_DATA_TYPE p_db5[] = {
1227  0.160102397974125, 0.6038292697974729,
1228  0.7243085284385744, 0.13842814590110342,
1229  -0.24229488706619015, -0.03224486958502952,
1230  0.07757149384006515, -0.006241490213011705,
1231  -0.012580751999015526, 0.003335725285001549
1232 };
1233 const WAVELE_DATA_TYPE q_db5[] = {
1234  0.003335725285001549, 0.012580751999015526,
1235  -0.006241490213011705, -0.07757149384006515,
1236  -0.03224486958502952, 0.24229488706619015,
1237  0.13842814590110342, -0.7243085284385744,
1238  0.6038292697974729, -0.160102397974125
1239 };
1240 
1242 const int N_db6 = 12;
1243 const WAVELE_DATA_TYPE p_db6[] = {
1244  0.11154074335008017, 0.4946238903983854,
1245  0.7511339080215775, 0.3152503517092432,
1246  -0.22626469396516913, -0.12976686756709563,
1247  0.09750160558707936, 0.02752286553001629,
1248  -0.031582039318031156, 0.0005538422009938016,
1249  0.004777257511010651, -0.00107730108499558,
1250 };
1251 const WAVELE_DATA_TYPE q_db6[] = {
1252  -0.00107730108499558, -0.004777257511010651,
1253  0.0005538422009938016, 0.031582039318031156,
1254  0.02752286553001629, -0.09750160558707936,
1255  -0.12976686756709563, 0.22626469396516913,
1256  0.3152503517092432, -0.7511339080215775,
1257  0.4946238903983854, -0.11154074335008017
1258 };
1259 
1261 const int N_db7 = 14;
1262 const WAVELE_DATA_TYPE p_db7[] = {
1263  0.07785205408506236, 0.39653931948230575,
1264  0.7291320908465551, 0.4697822874053586,
1265  -0.14390600392910627, -0.22403618499416572,
1266  0.07130921926705004, 0.0806126091510659,
1267  -0.03802993693503463, -0.01657454163101562,
1268  0.012550998556013784, 0.00042957797300470274,
1269  -0.0018016407039998328, 0.0003537138000010399
1270 };
1271 const WAVELE_DATA_TYPE q_db7[] = {
1272  0.0003537138000010399, 0.0018016407039998328,
1273  0.00042957797300470274, -0.012550998556013784,
1274  -0.01657454163101562, 0.03802993693503463,
1275  0.0806126091510659, -0.07130921926705004,
1276  -0.22403618499416572, 0.14390600392910627,
1277  0.4697822874053586, -0.7291320908465551,
1278  0.39653931948230575, -0.07785205408506236
1279 };
1280 
1282 const int N_db8 = 16;
1283 const WAVELE_DATA_TYPE p_db8[] = {
1284  0.05441584224308161, 0.3128715909144659,
1285  0.6756307362980128, 0.5853546836548691,
1286  -0.015829105256023893, -0.2840155429624281,
1287  0.00047248457399797254, 0.128747426620186,
1288  -0.01736930100202211, -0.04408825393106472,
1289  0.013981027917015516, 0.008746094047015655,
1290  -0.00487035299301066, -0.0003917403729959771,
1291  0.0006754494059985568, -0.00011747678400228192
1292 };
1293 const WAVELE_DATA_TYPE q_db8[] = {
1294  -0.00011747678400228192, -0.0006754494059985568,
1295  -0.0003917403729959771, 0.00487035299301066,
1296  0.008746094047015655, -0.013981027917015516,
1297  -0.04408825393106472, 0.01736930100202211,
1298  0.128747426620186, -0.00047248457399797254,
1299  -0.2840155429624281, 0.015829105256023893,
1300  0.5853546836548691, -0.6756307362980128,
1301  0.3128715909144659, -0.05441584224308161
1302 };
1303 
1305 const int N_db9 = 18;
1306 const WAVELE_DATA_TYPE p_db9[] = {
1307  0.03807794736316728, 0.24383467463766728,
1308  0.6048231236767786, 0.6572880780366389,
1309  0.13319738582208895, -0.29327378327258685,
1310  -0.09684078322087904, 0.14854074933476008,
1311  0.030725681478322865, -0.06763282905952399,
1312  0.00025094711499193845, 0.022361662123515244,
1313  -0.004723204757894831, -0.004281503681904723,
1314  0.0018476468829611268, 0.00023038576399541288,
1315  -0.0002519631889981789, 3.9347319995026124e-05
1316 };
1317 const WAVELE_DATA_TYPE q_db9[] = {
1318  3.9347319995026124e-05, 0.0002519631889981789,
1319  0.00023038576399541288, -0.0018476468829611268,
1320  -0.004281503681904723, 0.004723204757894831,
1321  0.022361662123515244, -0.00025094711499193845,
1322  -0.06763282905952399, -0.030725681478322865,
1323  0.14854074933476008, 0.09684078322087904,
1324  -0.29327378327258685, -0.13319738582208895,
1325  0.6572880780366389, -0.6048231236767786,
1326  0.24383467463766728, -0.03807794736316728,
1327 };
1328 
1330 const int N_db10 = 20;
1331 const WAVELE_DATA_TYPE p_db10[] = {
1332  0.026670057900950818, 0.18817680007762133,
1333  0.5272011889309198, 0.6884590394525921,
1334  0.2811723436604265, -0.24984642432648865,
1335  -0.19594627437659665, 0.12736934033574265,
1336  0.09305736460380659, -0.07139414716586077,
1337  -0.02945753682194567, 0.03321267405893324,
1338  0.0036065535669883944, -0.010733175482979604,
1339  0.0013953517469940798, 0.00199240529499085,
1340  -0.0006858566950046825, -0.0001164668549943862,
1341  9.358867000108985e-05, -1.326420300235487e-05
1342 };
1343 const WAVELE_DATA_TYPE q_db10[] = {
1344  -1.326420300235487e-05, -9.358867000108985e-05,
1345  -0.0001164668549943862, 0.0006858566950046825,
1346  0.00199240529499085, -0.0013953517469940798,
1347  -0.010733175482979604, -0.0036065535669883944,
1348  0.03321267405893324, 0.02945753682194567,
1349  -0.07139414716586077, -0.09305736460380659,
1350  0.12736934033574265, 0.19594627437659665,
1351  -0.24984642432648865, -0.2811723436604265,
1352  0.6884590394525921, -0.5272011889309198,
1353  0.18817680007762133, -0.026670057900950818
1354 };
1355 
1357 const int N_db11 = 22;
1358 const WAVELE_DATA_TYPE p_db11[] = {
1359  0.01869429776147044,
1360  0.1440670211506196,
1361  0.44989976435603013,
1362  0.6856867749161785,
1363  0.41196436894789695,
1364  -0.16227524502747828,
1365  -0.27423084681792875,
1366  0.06604358819669089,
1367  0.14981201246638268,
1368  -0.04647995511667613,
1369  -0.06643878569502022,
1370  0.03133509021904531,
1371  0.02084090436018004,
1372  -0.015364820906201324,
1373  -0.0033408588730145018,
1374  0.004928417656058778,
1375  -0.00030859285881515924,
1376  -0.0008930232506662366,
1377  0.00024915252355281426,
1378  5.443907469936638e-05,
1379  -3.463498418698379e-05,
1380  4.494274277236352e-06
1381 };
1382 const WAVELE_DATA_TYPE q_db11[] = {
1383  4.494274277236352e-06,
1384  3.463498418698379e-05,
1385  5.443907469936638e-05,
1386  -0.00024915252355281426,
1387  -0.0008930232506662366,
1388  0.00030859285881515924,
1389  0.004928417656058778,
1390  0.0033408588730145018,
1391  -0.015364820906201324,
1392  -0.02084090436018004,
1393  0.03133509021904531,
1394  0.06643878569502022,
1395  -0.04647995511667613,
1396  -0.14981201246638268,
1397  0.06604358819669089,
1398  0.27423084681792875,
1399  -0.16227524502747828,
1400  -0.41196436894789695,
1401  0.6856867749161785,
1402  -0.44989976435603013,
1403  0.1440670211506196,
1404  -0.01869429776147044
1405 };
1406 
1408 const int N_db12 = 24;
1409 const WAVELE_DATA_TYPE p_db12[] = {
1410  0.013112257957229239,
1411  0.10956627282118277,
1412  0.3773551352142041,
1413  0.6571987225792911,
1414  0.5158864784278007,
1415  -0.04476388565377762,
1416  -0.31617845375277914,
1417  -0.023779257256064865,
1418  0.18247860592758275,
1419  0.0053595696743599965,
1420  -0.09643212009649671,
1421  0.010849130255828966,
1422  0.04154627749508764,
1423  -0.01221864906974642,
1424  -0.012840825198299882,
1425  0.006711499008795549,
1426  0.0022486072409952287,
1427  -0.0021795036186277044,
1428  6.5451282125215034e-06,
1429  0.0003886530628209267,
1430  -8.850410920820318e-05,
1431  -2.4241545757030318e-05,
1432  1.2776952219379579e-05,
1433  -1.5290717580684923e-06
1434 };
1435 const WAVELE_DATA_TYPE q_db12[] = {
1436  -1.5290717580684923e-06,
1437  -1.2776952219379579e-05,
1438  -2.4241545757030318e-05,
1439  8.850410920820318e-05,
1440  0.0003886530628209267,
1441  -6.5451282125215034e-06,
1442  -0.0021795036186277044,
1443  -0.0022486072409952287,
1444  0.006711499008795549,
1445  0.012840825198299882,
1446  -0.01221864906974642,
1447  -0.04154627749508764,
1448  0.010849130255828966,
1449  0.09643212009649671,
1450  0.0053595696743599965,
1451  -0.18247860592758275,
1452  -0.023779257256064865,
1453  0.31617845375277914,
1454  -0.04476388565377762,
1455  -0.5158864784278007,
1456  0.6571987225792911,
1457  -0.3773551352142041,
1458  0.10956627282118277,
1459  -0.013112257957229239
1460 };
1461 
1463 const int N_db13 = 26;
1464 const WAVELE_DATA_TYPE p_db13[] = {
1465  0.009202133538962279,
1466  0.08286124387290195,
1467  0.3119963221604349,
1468  0.6110558511587811,
1469  0.5888895704312119,
1470  0.086985726179645,
1471  -0.31497290771138414,
1472  -0.12457673075080665,
1473  0.17947607942935084,
1474  0.07294893365678874,
1475  -0.10580761818792761,
1476  -0.026488406475345658,
1477  0.056139477100276156,
1478  0.002379972254052227,
1479  -0.02383142071032781,
1480  0.003923941448795577,
1481  0.007255589401617119,
1482  -0.002761911234656831,
1483  -0.0013156739118922766,
1484  0.000932326130867249,
1485  4.9251525126285676e-05,
1486  -0.0001651289885565057,
1487  3.067853757932436e-05,
1488  1.0441930571407941e-05,
1489  -4.700416479360808e-06,
1490  5.2200350984548e-07
1491 };
1492 const WAVELE_DATA_TYPE q_db13[] = {
1493  5.2200350984548e-07,
1494  4.700416479360808e-06,
1495  1.0441930571407941e-05,
1496  -3.067853757932436e-05,
1497  -0.0001651289885565057,
1498  -4.9251525126285676e-05,
1499  0.000932326130867249,
1500  0.0013156739118922766,
1501  -0.002761911234656831,
1502  -0.007255589401617119,
1503  0.003923941448795577,
1504  0.02383142071032781,
1505  0.002379972254052227,
1506  -0.056139477100276156,
1507  -0.026488406475345658,
1508  0.10580761818792761,
1509  0.07294893365678874,
1510  -0.17947607942935084,
1511  -0.12457673075080665,
1512  0.31497290771138414,
1513  0.086985726179645,
1514  -0.5888895704312119,
1515  0.6110558511587811,
1516  -0.3119963221604349,
1517  0.08286124387290195,
1518  -0.009202133538962279
1519 };
1520 
1522 const int N_db14 = 28;
1523 const WAVELE_DATA_TYPE p_db14[] = {
1524  0.0064611534600864905,
1525  0.062364758849384874,
1526  0.25485026779256437,
1527  0.5543056179407709,
1528  0.6311878491047198,
1529  0.21867068775886594,
1530  -0.27168855227867705,
1531  -0.2180335299932165,
1532  0.13839521386479153,
1533  0.13998901658445695,
1534  -0.0867484115681106,
1535  -0.0715489555039835,
1536  0.05523712625925082,
1537  0.02698140830794797,
1538  -0.030185351540353976,
1539  -0.0056150495303375755,
1540  0.01278949326634007,
1541  -0.0007462189892638753,
1542  -0.003849638868019787,
1543  0.001061691085606874,
1544  0.0007080211542354048,
1545  -0.00038683194731287514,
1546  -4.177724577037067e-05,
1547  6.875504252695734e-05,
1548  -1.0337209184568496e-05,
1549  -4.389704901780418e-06,
1550  1.7249946753674012e-06,
1551  -1.7871399683109222e-07,
1552 };
1553 const WAVELE_DATA_TYPE q_db14[] = {
1554  -1.7871399683109222e-07,
1555  -1.7249946753674012e-06,
1556  -4.389704901780418e-06,
1557  1.0337209184568496e-05,
1558  6.875504252695734e-05,
1559  4.177724577037067e-05,
1560  -0.00038683194731287514,
1561  -0.0007080211542354048,
1562  0.001061691085606874,
1563  0.003849638868019787,
1564  -0.0007462189892638753,
1565  -0.01278949326634007,
1566  -0.0056150495303375755,
1567  0.030185351540353976,
1568  0.02698140830794797,
1569  -0.05523712625925082,
1570  -0.0715489555039835,
1571  0.0867484115681106,
1572  0.13998901658445695,
1573  -0.13839521386479153,
1574  -0.2180335299932165,
1575  0.27168855227867705,
1576  0.21867068775886594,
1577  -0.6311878491047198,
1578  0.5543056179407709,
1579  -0.25485026779256437,
1580  0.062364758849384874,
1581  -0.0064611534600864905
1582 };
1583 
1585 const int N_db15 = 30;
1586 const WAVELE_DATA_TYPE p_db15[] = {
1587  0.004538537361577376,
1588  0.04674339489275062,
1589  0.20602386398692688,
1590  0.4926317717079753,
1591  0.6458131403572103,
1592  0.33900253545462167,
1593  -0.19320413960907623,
1594  -0.28888259656686216,
1595  0.06528295284876569,
1596  0.19014671400708816,
1597  -0.0396661765557336,
1598  -0.11112093603713753,
1599  0.033877143923563204,
1600  0.054780550584559995,
1601  -0.02576700732836694,
1602  -0.020810050169636805,
1603  0.015083918027862582,
1604  0.005101000360422873,
1605  -0.0064877345603061454,
1606  -0.00024175649075894543,
1607  0.0019433239803823459,
1608  -0.0003734823541372647,
1609  -0.00035956524436229364,
1610  0.00015589648992055726,
1611  2.579269915531323e-05,
1612  -2.8133296266037558e-05,
1613  3.3629871817363823e-06,
1614  1.8112704079399406e-06,
1615  -6.316882325879451e-07,
1616  6.133359913303714e-08,
1617 };
1618 const WAVELE_DATA_TYPE q_db15[] = {
1619  6.133359913303714e-08,
1620  6.316882325879451e-07,
1621  1.8112704079399406e-06,
1622  -3.3629871817363823e-06,
1623  -2.8133296266037558e-05,
1624  -2.579269915531323e-05,
1625  0.00015589648992055726,
1626  0.00035956524436229364,
1627  -0.0003734823541372647,
1628  -0.0019433239803823459,
1629  -0.00024175649075894543,
1630  0.0064877345603061454,
1631  0.005101000360422873,
1632  -0.015083918027862582,
1633  -0.020810050169636805,
1634  0.02576700732836694,
1635  0.054780550584559995,
1636  -0.033877143923563204,
1637  -0.11112093603713753,
1638  0.0396661765557336,
1639  0.19014671400708816,
1640  -0.06528295284876569,
1641  -0.28888259656686216,
1642  0.19320413960907623,
1643  0.33900253545462167,
1644  -0.6458131403572103,
1645  0.4926317717079753,
1646  -0.20602386398692688,
1647  0.04674339489275062,
1648  -0.004538537361577376
1649 };
1650 
1652 const int N_db16 = 32;
1653 const WAVELE_DATA_TYPE p_db16[] = {
1654  0.0031892209253436892,
1655  0.03490771432362905,
1656  0.1650642834886438,
1657  0.43031272284545874,
1658  0.6373563320829833,
1659  0.44029025688580486,
1660  -0.08975108940236352,
1661  -0.3270633105274758,
1662  -0.02791820813292813,
1663  0.21119069394696974,
1664  0.027340263752899923,
1665  -0.13238830556335474,
1666  -0.006239722752156254,
1667  0.07592423604445779,
1668  -0.007588974368642594,
1669  -0.036888397691556774,
1670  0.010297659641009963,
1671  0.013993768859843242,
1672  -0.006990014563390751,
1673  -0.0036442796214883506,
1674  0.00312802338120381,
1675  0.00040789698084934395,
1676  -0.0009410217493585433,
1677  0.00011424152003843815,
1678  0.00017478724522506327,
1679  -6.103596621404321e-05,
1680  -1.394566898819319e-05,
1681  1.133660866126152e-05,
1682  -1.0435713423102517e-06,
1683  -7.363656785441815e-07,
1684  2.3087840868545578e-07,
1685  -2.1093396300980412e-08
1686 };
1687 const WAVELE_DATA_TYPE q_db16[] = {
1688  -2.1093396300980412e-08,
1689  -2.3087840868545578e-07,
1690  -7.363656785441815e-07,
1691  1.0435713423102517e-06,
1692  1.133660866126152e-05,
1693  1.394566898819319e-05,
1694  -6.103596621404321e-05,
1695  -0.00017478724522506327,
1696  0.00011424152003843815,
1697  0.0009410217493585433,
1698  0.00040789698084934395,
1699  -0.00312802338120381,
1700  -0.0036442796214883506,
1701  0.006990014563390751,
1702  0.013993768859843242,
1703  -0.010297659641009963,
1704  -0.036888397691556774,
1705  0.007588974368642594,
1706  0.07592423604445779,
1707  0.006239722752156254,
1708  -0.13238830556335474,
1709  -0.027340263752899923,
1710  0.21119069394696974,
1711  0.02791820813292813,
1712  -0.3270633105274758,
1713  0.08975108940236352,
1714  0.44029025688580486,
1715  -0.6373563320829833,
1716  0.43031272284545874,
1717  -0.1650642834886438,
1718  0.03490771432362905,
1719  -0.0031892209253436892,
1720 };
1721 
1723 const int N_db17 = 34;
1724 const WAVELE_DATA_TYPE p_db17[] = {
1725  0.00224180700103879,
1726  0.025985393703623173,
1727  0.13121490330791097,
1728  0.3703507241528858,
1729  0.6109966156850273,
1730  0.5183157640572823,
1731  0.027314970403312946,
1732  -0.32832074836418546,
1733  -0.12659975221599248,
1734  0.19731058956508457,
1735  0.10113548917744287,
1736  -0.12681569177849797,
1737  -0.05709141963185808,
1738  0.08110598665408082,
1739  0.022312336178011833,
1740  -0.04692243838937891,
1741  -0.0032709555358783646,
1742  0.022733676583919053,
1743  -0.0030429899813869555,
1744  -0.008602921520347815,
1745  0.002967996691518064,
1746  0.0023012052421511474,
1747  -0.001436845304805,
1748  -0.00032813251941022427,
1749  0.0004394654277689454,
1750  -2.5610109566546042e-05,
1751  -8.204803202458212e-05,
1752  2.318681379876164e-05,
1753  6.990600985081294e-06,
1754  -4.505942477225963e-06,
1755  3.0165496099963414e-07,
1756  2.9577009333187617e-07,
1757  -8.423948446008154e-08,
1758  7.26749296856637e-09
1759 };
1760 const WAVELE_DATA_TYPE q_db17[] = {
1761  7.26749296856637e-09,
1762  8.423948446008154e-08,
1763  2.9577009333187617e-07,
1764  -3.0165496099963414e-07,
1765  -4.505942477225963e-06,
1766  -6.990600985081294e-06,
1767  2.318681379876164e-05,
1768  8.204803202458212e-05,
1769  -2.5610109566546042e-05,
1770  -0.0004394654277689454,
1771  -0.00032813251941022427,
1772  0.001436845304805,
1773  0.0023012052421511474,
1774  -0.002967996691518064,
1775  -0.008602921520347815,
1776  0.0030429899813869555,
1777  0.022733676583919053,
1778  0.0032709555358783646,
1779  -0.04692243838937891,
1780  -0.022312336178011833,
1781  0.08110598665408082,
1782  0.05709141963185808,
1783  -0.12681569177849797,
1784  -0.10113548917744287,
1785  0.19731058956508457,
1786  0.12659975221599248,
1787  -0.32832074836418546,
1788  -0.027314970403312946,
1789  0.5183157640572823,
1790  -0.6109966156850273,
1791  0.3703507241528858,
1792  -0.13121490330791097,
1793  0.025985393703623173,
1794  -0.00224180700103879
1795 };
1796 
1798 const int N_db18 = 36;
1799 const WAVELE_DATA_TYPE p_db18[] = {
1800  0.0015763102184365595,
1801  0.01928853172409497,
1802  0.10358846582214751,
1803  0.31467894133619284,
1804  0.5718268077650818,
1805  0.571801654887122,
1806  0.14722311196952223,
1807  -0.2936540407357981,
1808  -0.21648093400458224,
1809  0.14953397556500755,
1810  0.16708131276294505,
1811  -0.09233188415030412,
1812  -0.10675224665906288,
1813  0.0648872162123582,
1814  0.05705124773905827,
1815  -0.04452614190225633,
1816  -0.023733210395336858,
1817  0.026670705926689853,
1818  0.006262167954438661,
1819  -0.013051480946517112,
1820  0.00011863003387493042,
1821  0.004943343605456594,
1822  -0.0011187326669886426,
1823  -0.0013405962983313922,
1824  0.0006284656829644715,
1825  0.0002135815619103188,
1826  -0.00019864855231101547,
1827  -1.535917123021341e-07,
1828  3.741237880730847e-05,
1829  -8.520602537423464e-06,
1830  -3.3326344788769603e-06,
1831  1.768712983622886e-06,
1832  -7.691632689865049e-08,
1833  -1.1760987670250871e-07,
1834  3.06883586303703e-08,
1835  -2.507934454941929e-09
1836 };
1837 const WAVELE_DATA_TYPE q_db18[] = {
1838  -2.507934454941929e-09,
1839  -3.06883586303703e-08,
1840  -1.1760987670250871e-07,
1841  7.691632689865049e-08,
1842  1.768712983622886e-06,
1843  3.3326344788769603e-06,
1844  -8.520602537423464e-06,
1845  -3.741237880730847e-05,
1846  -1.535917123021341e-07,
1847  0.00019864855231101547,
1848  0.0002135815619103188,
1849  -0.0006284656829644715,
1850  -0.0013405962983313922,
1851  0.0011187326669886426,
1852  0.004943343605456594,
1853  -0.00011863003387493042,
1854  -0.013051480946517112,
1855  -0.006262167954438661,
1856  0.026670705926689853,
1857  0.023733210395336858,
1858  -0.04452614190225633,
1859  -0.05705124773905827,
1860  0.0648872162123582,
1861  0.10675224665906288,
1862  -0.09233188415030412,
1863  -0.16708131276294505,
1864  0.14953397556500755,
1865  0.21648093400458224,
1866  -0.2936540407357981,
1867  -0.14722311196952223,
1868  0.571801654887122,
1869  -0.5718268077650818,
1870  0.31467894133619284,
1871  -0.10358846582214751,
1872  0.01928853172409497,
1873  -0.0015763102184365595
1874 };
1875 
1877 const int N_db19 = 38;
1878 const WAVELE_DATA_TYPE p_db19[] = {
1879  0.0011086697631864314,
1880  0.01428109845082521,
1881  0.08127811326580564,
1882  0.26438843174202237,
1883  0.5244363774668862,
1884  0.6017045491300916,
1885  0.2608949526521201,
1886  -0.22809139421653665,
1887  -0.28583863175723145,
1888  0.07465226970806647,
1889  0.21234974330662043,
1890  -0.03351854190320226,
1891  -0.14278569504021468,
1892  0.02758435062488713,
1893  0.0869067555554507,
1894  -0.026501236250778635,
1895  -0.04567422627778492,
1896  0.021623767409452484,
1897  0.019375549889114482,
1898  -0.013988388678695632,
1899  -0.005866922281112195,
1900  0.007040747367080495,
1901  0.0007689543592242488,
1902  -0.002687551800734441,
1903  0.00034180865344939543,
1904  0.0007358025205041731,
1905  -0.0002606761356811995,
1906  -0.00012460079173506306,
1907  8.711270467250443e-05,
1908  5.105950487090694e-06,
1909  -1.664017629722462e-05,
1910  3.0109643163099385e-06,
1911  1.531931476697877e-06,
1912  -6.86275565779811e-07,
1913  1.447088298804088e-08,
1914  4.636937775802368e-08,
1915  -1.1164020670405678e-08,
1916  8.666848839034483e-10,
1917 };
1918 const WAVELE_DATA_TYPE q_db19[] = {
1919  8.666848839034483e-10,
1920  1.1164020670405678e-08,
1921  4.636937775802368e-08,
1922  -1.447088298804088e-08,
1923  -6.86275565779811e-07,
1924  -1.531931476697877e-06,
1925  3.0109643163099385e-06,
1926  1.664017629722462e-05,
1927  5.105950487090694e-06,
1928  -8.711270467250443e-05,
1929  -0.00012460079173506306,
1930  0.0002606761356811995,
1931  0.0007358025205041731,
1932  -0.00034180865344939543,
1933  -0.002687551800734441,
1934  -0.0007689543592242488,
1935  0.007040747367080495,
1936  0.005866922281112195,
1937  -0.013988388678695632,
1938  -0.019375549889114482,
1939  0.021623767409452484,
1940  0.04567422627778492,
1941  -0.026501236250778635,
1942  -0.0869067555554507,
1943  0.02758435062488713,
1944  0.14278569504021468,
1945  -0.03351854190320226,
1946  -0.21234974330662043,
1947  0.07465226970806647,
1948  0.28583863175723145,
1949  -0.22809139421653665,
1950  -0.2608949526521201,
1951  0.6017045491300916,
1952  -0.5244363774668862,
1953  0.26438843174202237,
1954  -0.08127811326580564,
1955  0.01428109845082521,
1956  -0.0011086697631864314,
1957 };
1958 
1959 
1961 const int N_db20 = 40;
1962 const WAVELE_DATA_TYPE p_db20[] = {
1963  0.0007799536136659112,
1964  0.010549394624937735,
1965  0.06342378045900529,
1966  0.21994211355113222,
1967  0.4726961853103315,
1968  0.6104932389378558,
1969  0.36150229873889705,
1970  -0.13921208801128787,
1971  -0.3267868004335376,
1972  -0.016727088308801888,
1973  0.22829105082013823,
1974  0.039850246458519104,
1975  -0.1554587507060453,
1976  -0.024716827337521424,
1977  0.10229171917513397,
1978  0.005632246857685454,
1979  -0.061722899624668884,
1980  0.0058746818113949465,
1981  0.03229429953011916,
1982  -0.008789324924555765,
1983  -0.013810526137727442,
1984  0.0067216273018096935,
1985  0.00442054238676635,
1986  -0.003581494259744107,
1987  -0.0008315621728772474,
1988  0.0013925596193045254,
1989  -5.349759844340453e-05,
1990  -0.0003851047486990061,
1991  0.00010153288973669777,
1992  6.774280828373048e-05,
1993  -3.710586183390615e-05,
1994  -4.376143862182197e-06,
1995  7.241248287663791e-06,
1996  -1.0119940100181473e-06,
1997  -6.847079596993149e-07,
1998  2.633924226266962e-07,
1999  2.0143220235374613e-10,
2000  -1.814843248297622e-08,
2001  4.05612705554717e-09,
2002  -2.998836489615753e-10,
2003 };
2004 const WAVELE_DATA_TYPE q_db20[] = {
2005  -2.998836489615753e-10,
2006  -4.05612705554717e-09,
2007  -1.814843248297622e-08,
2008  -2.0143220235374613e-10,
2009  2.633924226266962e-07,
2010  6.847079596993149e-07,
2011  -1.0119940100181473e-06,
2012  -7.241248287663791e-06,
2013  -4.376143862182197e-06,
2014  3.710586183390615e-05,
2015  6.774280828373048e-05,
2016  -0.00010153288973669777,
2017  -0.0003851047486990061,
2018  5.349759844340453e-05,
2019  0.0013925596193045254,
2020  0.0008315621728772474,
2021  -0.003581494259744107,
2022  -0.00442054238676635,
2023  0.0067216273018096935,
2024  0.013810526137727442,
2025  -0.008789324924555765,
2026  -0.03229429953011916,
2027  0.0058746818113949465,
2028  0.061722899624668884,
2029  0.005632246857685454,
2030  -0.10229171917513397,
2031  -0.024716827337521424,
2032  0.1554587507060453,
2033  0.039850246458519104,
2034  -0.22829105082013823,
2035  -0.016727088308801888,
2036  0.3267868004335376,
2037  -0.13921208801128787,
2038  -0.36150229873889705,
2039  0.6104932389378558,
2040  -0.4726961853103315,
2041  0.21994211355113222,
2042  -0.06342378045900529,
2043  0.010549394624937735,
2044  -0.0007799536136659112
2045 };
2046 
2048 const int N_sym2 = 4;
2049 const WAVELE_DATA_TYPE p_sym2[] = {
2050  0.48296291314469025, 0.836516303737469,
2051  0.22414386804185735, -0.12940952255092145
2052 };
2053 const WAVELE_DATA_TYPE q_sym2[] = {
2054  -0.12940952255092145, -0.22414386804185735,
2055  0.836516303737469, -0.48296291314469025
2056 };
2057 
2059 const int N_sym3 = 6;
2060 const WAVELE_DATA_TYPE p_sym3[] = {
2061  0.3326705529509569, 0.8068915093133388,
2062  0.4598775021193313, -0.13501102001039084,
2063  -0.08544127388224149, 0.035226291882100656
2064 };
2065 const WAVELE_DATA_TYPE q_sym3[] = {
2066  0.035226291882100656, 0.08544127388224149,
2067  -0.13501102001039084, -0.4598775021193313,
2068  0.8068915093133388, -0.3326705529509569
2069 };
2070 
2072 const int N_sym4 = 8;
2073 const WAVELE_DATA_TYPE p_sym4[] = {
2074  0.0322231006040427, -0.012603967262037833,
2075  -0.09921954357684722, 0.29785779560527736,
2076  0.8037387518059161, 0.49761866763201545,
2077  -0.02963552764599851, -0.07576571478927333
2078 };
2079 const WAVELE_DATA_TYPE q_sym4[] = {
2080  -0.07576571478927333, 0.02963552764599851,
2081  0.49761866763201545, -0.8037387518059161,
2082  0.29785779560527736, 0.09921954357684722,
2083  -0.012603967262037833, -0.0322231006040427
2084 };
2085 
2087 const int N_sym5 = 10;
2088 const WAVELE_DATA_TYPE p_sym5[] = {
2089  0.019538882735286728, -0.021101834024758855,
2090  -0.17532808990845047, 0.01660210576452232,
2091  0.6339789634582119, 0.7234076904024206,
2092  0.1993975339773936, -0.039134249302383094,
2093  0.029519490925774643, 0.027333068345077982
2094 };
2095 const WAVELE_DATA_TYPE q_sym5[] = {
2096  0.027333068345077982, -0.029519490925774643,
2097  -0.039134249302383094, -0.1993975339773936,
2098  0.7234076904024206, -0.6339789634582119,
2099  0.01660210576452232, 0.17532808990845047,
2100  -0.021101834024758855, -0.019538882735286728
2101 };
2102 
2104 const int N_sym6 = 12;
2105 const WAVELE_DATA_TYPE p_sym6[] = {
2106  -0.007800708325034148,
2107  0.0017677118642428036,
2108  0.04472490177066578,
2109  -0.021060292512300564,
2110  -0.07263752278646252,
2111  0.3379294217276218,
2112  0.787641141030194,
2113  0.4910559419267466,
2114  -0.048311742585633,
2115  -0.11799011114819057,
2116  0.0034907120842174702,
2117  0.015404109327027373
2118 };
2119 const WAVELE_DATA_TYPE q_sym6[] = {
2120  0.015404109327027373,
2121  -0.0034907120842174702,
2122  -0.11799011114819057,
2123  0.048311742585633,
2124  0.4910559419267466,
2125  -0.787641141030194,
2126  0.3379294217276218,
2127  0.07263752278646252,
2128  -0.021060292512300564,
2129  -0.04472490177066578,
2130  0.0017677118642428036,
2131  0.007800708325034148
2132 };
2133 
2135 const int N_sym7 = 14;
2136 const WAVELE_DATA_TYPE p_sym7[] = {
2137  0.010268176708511255,
2138  0.004010244871533663,
2139  -0.10780823770381774,
2140  -0.14004724044296152,
2141  0.2886296317515146,
2142  0.767764317003164,
2143  0.5361019170917628,
2144  0.017441255086855827,
2145  -0.049552834937127255,
2146  0.0678926935013727,
2147  0.03051551316596357,
2148  -0.01263630340325193,
2149  -0.0010473848886829163,
2150  0.002681814568257878
2151 };
2152 const WAVELE_DATA_TYPE q_sym7[] = {
2153  0.002681814568257878,
2154  0.0010473848886829163,
2155  -0.01263630340325193,
2156  -0.03051551316596357,
2157  0.0678926935013727,
2158  0.049552834937127255,
2159  0.017441255086855827,
2160  -0.5361019170917628,
2161  0.767764317003164,
2162  -0.2886296317515146,
2163  -0.14004724044296152,
2164  0.10780823770381774,
2165  0.004010244871533663,
2166  -0.010268176708511255
2167 };
2168 
2170 const int N_sym8 = 16;
2171 const WAVELE_DATA_TYPE p_sym8[] = {
2172  0.0018899503327594609,
2173  -0.0003029205147213668,
2174  -0.01495225833704823,
2175  0.003808752013890615,
2176  0.049137179673607506,
2177  -0.027219029917056003,
2178  -0.05194583810770904,
2179  0.3644418948353314,
2180  0.7771857517005235,
2181  0.4813596512583722,
2182  -0.061273359067658524,
2183  -0.1432942383508097,
2184  0.007607487324917605,
2185  0.03169508781149298,
2186  -0.0005421323317911481,
2187  -0.0033824159510061256
2188 };
2189 const WAVELE_DATA_TYPE q_sym8[] = {
2190  -0.0033824159510061256,
2191  0.0005421323317911481,
2192  0.03169508781149298,
2193  -0.007607487324917605,
2194  -0.1432942383508097,
2195  0.061273359067658524,
2196  0.4813596512583722,
2197  -0.7771857517005235,
2198  0.3644418948353314,
2199  0.05194583810770904,
2200  -0.027219029917056003,
2201  -0.049137179673607506,
2202  0.003808752013890615,
2203  0.01495225833704823,
2204  -0.0003029205147213668,
2205  -0.0018899503327594609
2206 };
2207 
2209 const int N_sym9 = 18;
2210 const WAVELE_DATA_TYPE p_sym9[] = {
2211  0.0010694900329086053,
2212  -0.0004731544986800831,
2213  -0.010264064027633142,
2214  0.008859267493400484,
2215  0.06207778930288603,
2216  -0.018233770779395985,
2217  -0.19155083129728512,
2218  0.035272488035271894,
2219  0.6173384491409358,
2220  0.717897082764412,
2221  0.238760914607303,
2222  -0.05456895843083407,
2223  0.0005834627461258068,
2224  0.03022487885827568,
2225  -0.01152821020767923,
2226  -0.013271967781817119,
2227  0.0006197808889855868,
2228  0.0014009155259146807
2229 };
2230 const WAVELE_DATA_TYPE q_sym9[] = {
2231  0.0014009155259146807,
2232  -0.0006197808889855868,
2233  -0.013271967781817119,
2234  0.01152821020767923,
2235  0.03022487885827568,
2236  -0.0005834627461258068,
2237  -0.05456895843083407,
2238  -0.238760914607303,
2239  0.717897082764412,
2240  -0.6173384491409358,
2241  0.035272488035271894,
2242  0.19155083129728512,
2243  -0.018233770779395985,
2244  -0.06207778930288603,
2245  0.008859267493400484,
2246  0.010264064027633142,
2247  -0.0004731544986800831,
2248  -0.0010694900329086053
2249 };
2250 
2252 const int N_sym10 = 20;
2253 const WAVELE_DATA_TYPE p_sym10[] = {
2254  -0.0004593294210046588,
2255  5.7036083618494284e-05,
2256  0.004593173585311828,
2257  -0.0008043589320165449,
2258  -0.02035493981231129,
2259  0.005764912033581909,
2260  0.04999497207737669,
2261  -0.0319900568824278,
2262  -0.03553674047381755,
2263  0.38382676106708546,
2264  0.7695100370211071,
2265  0.47169066693843925,
2266  -0.07088053578324385,
2267  -0.15949427888491757,
2268  0.011609893903711381,
2269  0.0459272392310922,
2270  -0.0014653825813050513,
2271  -0.008641299277022422,
2272  9.563267072289475e-05,
2273  0.0007701598091144901
2274 };
2275 const WAVELE_DATA_TYPE q_sym10[] = {
2276  0.0007701598091144901,
2277  -9.563267072289475e-05,
2278  -0.008641299277022422,
2279  0.0014653825813050513,
2280  0.0459272392310922,
2281  -0.011609893903711381,
2282  -0.15949427888491757,
2283  0.07088053578324385,
2284  0.47169066693843925,
2285  -0.7695100370211071,
2286  0.38382676106708546,
2287  0.03553674047381755,
2288  -0.0319900568824278,
2289  -0.04999497207737669,
2290  0.005764912033581909,
2291  0.02035493981231129,
2292  -0.0008043589320165449,
2293  -0.004593173585311828,
2294  5.7036083618494284e-05,
2295  0.0004593294210046588
2296 };
2297 
2299 const int N_sym11 = 22;
2300 const WAVELE_DATA_TYPE p_sym11[] = {
2301  0.0004892636102619239,
2302  0.00011053509764272153,
2303  -0.006389603666454892,
2304  -0.0020034719001093887,
2305  0.04300019068155228,
2306  0.03526675956446655,
2307  -0.1446023437053156,
2308  -0.2046547944958006,
2309  0.23768990904924897,
2310  0.7303435490883957,
2311  0.5720229780100871,
2312  0.09719839445890947,
2313  -0.022832651022562687,
2314  0.06997679961073414,
2315  0.0370374159788594,
2316  -0.024080841595864003,
2317  -0.009857934828789794,
2318  0.00651249567477145,
2319  0.0005883527353969915,
2320  -0.0017343662672978692,
2321  -3.8795655736158566e-05,
2322  0.00017172195069934854
2323 };
2324 const WAVELE_DATA_TYPE q_sym11[] = {
2325  0.00017172195069934854,
2326  3.8795655736158566e-05,
2327  -0.0017343662672978692,
2328  -0.0005883527353969915,
2329  0.00651249567477145,
2330  0.009857934828789794,
2331  -0.024080841595864003,
2332  -0.0370374159788594,
2333  0.06997679961073414,
2334  0.022832651022562687,
2335  0.09719839445890947,
2336  -0.5720229780100871,
2337  0.7303435490883957,
2338  -0.23768990904924897,
2339  -0.2046547944958006,
2340  0.1446023437053156,
2341  0.03526675956446655,
2342  -0.04300019068155228,
2343  -0.0020034719001093887,
2344  0.006389603666454892,
2345  0.00011053509764272153,
2346  -0.0004892636102619239
2347 };
2348 
2350 const int N_sym12 = 24;
2351 const WAVELE_DATA_TYPE p_sym12[] = {
2352  -0.0001790665869750869,
2353  -1.8158078862617515e-05,
2354  0.002350297614183465,
2355  0.00030764779631059454,
2356  -0.014589836449234145,
2357  -0.0026043910313322326,
2358  0.05780417944550566,
2359  0.01530174062247884,
2360  -0.17037069723886492,
2361  -0.07833262231634322,
2362  0.46274103121927235,
2363  0.7634790977836572,
2364  0.39888597239022,
2365  -0.022162306170337816,
2366  -0.03584883073695439,
2367  0.04917931829966084,
2368  0.0075537806116804775,
2369  -0.024220722675013445,
2370  -0.0014089092443297553,
2371  0.007414965517654251,
2372  0.00018021409008538188,
2373  -0.0013497557555715387,
2374  -1.1353928041541452e-05,
2375  0.00011196719424656033
2376 };
2377 const WAVELE_DATA_TYPE q_sym12[] = {
2378  0.00011196719424656033,
2379  1.1353928041541452e-05,
2380  -0.0013497557555715387,
2381  -0.00018021409008538188,
2382  0.007414965517654251,
2383  0.0014089092443297553,
2384  -0.024220722675013445,
2385  -0.0075537806116804775,
2386  0.04917931829966084,
2387  0.03584883073695439,
2388  -0.022162306170337816,
2389  -0.39888597239022,
2390  0.7634790977836572,
2391  -0.46274103121927235,
2392  -0.07833262231634322,
2393  0.17037069723886492,
2394  0.01530174062247884,
2395  -0.05780417944550566,
2396  -0.0026043910313322326,
2397  0.014589836449234145,
2398  0.00030764779631059454,
2399  -0.002350297614183465,
2400  -1.8158078862617515e-05,
2401  0.0001790665869750869
2402 };
2403 
2405 const int N_sym13 = 26;
2406 const WAVELE_DATA_TYPE p_sym13[] = {
2407  7.042986690694402e-05,
2408  3.690537342319624e-05,
2409  -0.0007213643851362283,
2410  0.00041326119884196064,
2411  0.0056748537601224395,
2412  -0.0014924472742598532,
2413  -0.020749686325515677,
2414  0.017618296880653084,
2415  0.09292603089913712,
2416  0.008819757670420546,
2417  -0.14049009311363403,
2418  0.11023022302137217,
2419  0.6445643839011856,
2420  0.6957391505614964,
2421  0.19770481877117801,
2422  -0.12436246075153011,
2423  -0.0597506277179437,
2424  0.013862497435849205,
2425  -0.017211642726299048,
2426  -0.02021676813338983,
2427  0.005296359738725025,
2428  0.0075262253899681,
2429  -0.0001709428585302221,
2430  -0.0011360634389281183,
2431  -3.573862364868901e-05,
2432  6.820325263075319e-05
2433 };
2434 const WAVELE_DATA_TYPE q_sym13[] = {
2435  6.820325263075319e-05,
2436  3.573862364868901e-05,
2437  -0.0011360634389281183,
2438  0.0001709428585302221,
2439  0.0075262253899681,
2440  -0.005296359738725025,
2441  -0.02021676813338983,
2442  0.017211642726299048,
2443  0.013862497435849205,
2444  0.0597506277179437,
2445  -0.12436246075153011,
2446  -0.19770481877117801,
2447  0.6957391505614964,
2448  -0.6445643839011856,
2449  0.11023022302137217,
2450  0.14049009311363403,
2451  0.008819757670420546,
2452  -0.09292603089913712,
2453  0.017618296880653084,
2454  0.020749686325515677,
2455  -0.0014924472742598532,
2456  -0.0056748537601224395,
2457  0.00041326119884196064,
2458  0.0007213643851362283,
2459  3.690537342319624e-05,
2460  -7.042986690694402e-05
2461 };
2462 
2464 const int N_sym14 = 28;
2465 const WAVELE_DATA_TYPE p_sym14[] = {
2466  4.4618977991475265e-05,
2467  1.9329016965523917e-05,
2468  -0.0006057601824664335,
2469  -7.321421356702399e-05,
2470  0.004532677471945648,
2471  0.0010131419871842082,
2472  -0.019439314263626713,
2473  -0.002365048836740385,
2474  0.06982761636180755,
2475  0.02589858753104667,
2476  -0.15999741114652205,
2477  -0.05811182331771783,
2478  0.4753357626342066,
2479  0.7599762419610909,
2480  0.39320152196208885,
2481  -0.03531811211497973,
2482  -0.057634498351326995,
2483  0.03743308836285345,
2484  0.004280520499019378,
2485  -0.029196217764038187,
2486  -0.002753774791224071,
2487  0.01003769371767227,
2488  0.0003664765736601183,
2489  -0.002579441725933078,
2490  -6.286542481477636e-05,
2491  0.00039843567297594335,
2492  1.1210865808890361e-05,
2493  -2.5879090265397886e-05
2494 };
2495 const WAVELE_DATA_TYPE q_sym14[] = {
2496  -2.5879090265397886e-05,
2497  -1.1210865808890361e-05,
2498  0.00039843567297594335,
2499  6.286542481477636e-05,
2500  -0.002579441725933078,
2501  -0.0003664765736601183,
2502  0.01003769371767227,
2503  0.002753774791224071,
2504  -0.029196217764038187,
2505  -0.004280520499019378,
2506  0.03743308836285345,
2507  0.057634498351326995,
2508  -0.03531811211497973,
2509  -0.39320152196208885,
2510  0.7599762419610909,
2511  -0.4753357626342066,
2512  -0.05811182331771783,
2513  0.15999741114652205,
2514  0.02589858753104667,
2515  -0.06982761636180755,
2516  -0.002365048836740385,
2517  0.019439314263626713,
2518  0.0010131419871842082,
2519  -0.004532677471945648,
2520  -7.321421356702399e-05,
2521  0.0006057601824664335,
2522  1.9329016965523917e-05,
2523  -4.4618977991475265e-05
2524 };
2525 
2527 const int N_sym15 = 30;
2528 const WAVELE_DATA_TYPE p_sym15[] = {
2529  2.866070852531808e-05,
2530  2.171789015077892e-05,
2531  -0.00040216853760293483,
2532  -0.00010815440168545525,
2533  0.003481028737064895,
2534  0.0015261382781819983,
2535  -0.01717125278163873,
2536  -0.008744788886477952,
2537  0.06796982904487918,
2538  0.06839331006048024,
2539  -0.1340562984562539,
2540  -0.1966263587662373,
2541  0.2439627054321663,
2542  0.7218430296361812,
2543  0.5786404152150345,
2544  0.11153369514261872,
2545  -0.04108266663538248,
2546  0.04073547969681068,
2547  0.021937642719753955,
2548  -0.03887671687683349,
2549  -0.01940501143093447,
2550  0.01007997708790567,
2551  0.003423450736351241,
2552  -0.0035901654473726417,
2553  -0.0002673164464718057,
2554  0.0010705672194623959,
2555  5.512254785558665e-05,
2556  -0.00016066186637495343,
2557  -7.35966679891947e-06,
2558  9.712419737963348e-06
2559 };
2560 const WAVELE_DATA_TYPE q_sym15[] = {
2561  9.712419737963348e-06,
2562  7.35966679891947e-06,
2563  -0.00016066186637495343,
2564  -5.512254785558665e-05,
2565  0.0010705672194623959,
2566  0.0002673164464718057,
2567  -0.0035901654473726417,
2568  -0.003423450736351241,
2569  0.01007997708790567,
2570  0.01940501143093447,
2571  -0.03887671687683349,
2572  -0.021937642719753955,
2573  0.04073547969681068,
2574  0.04108266663538248,
2575  0.11153369514261872,
2576  -0.5786404152150345,
2577  0.7218430296361812,
2578  -0.2439627054321663,
2579  -0.1966263587662373,
2580  0.1340562984562539,
2581  0.06839331006048024,
2582  -0.06796982904487918,
2583  -0.008744788886477952,
2584  0.01717125278163873,
2585  0.0015261382781819983,
2586  -0.003481028737064895,
2587  -0.00010815440168545525,
2588  0.00040216853760293483,
2589  2.171789015077892e-05,
2590  -2.866070852531808e-05
2591 };
2592 
2594 const int N_sym16 = 32;
2595 const WAVELE_DATA_TYPE p_sym16[] = {
2596  -1.0797982104319795e-05,
2597  -5.396483179315242e-06,
2598  0.00016545679579108483,
2599  3.656592483348223e-05,
2600  -0.0013387206066921965,
2601  -0.00022211647621176323,
2602  0.0069377611308027096,
2603  0.001359844742484172,
2604  -0.024952758046290123,
2605  -0.003510275068374009,
2606  0.07803785290341991,
2607  0.03072113906330156,
2608  -0.15959219218520598,
2609  -0.054040601387606135,
2610  0.47534280601152273,
2611  0.7565249878756971,
2612  0.39712293362064416,
2613  -0.034574228416972504,
2614  -0.06698304907021778,
2615  0.032333091610663785,
2616  0.004869274404904607,
2617  -0.031051202843553064,
2618  -0.0031265171722710075,
2619  0.012666731659857348,
2620  0.0007182119788317892,
2621  -0.0038809122526038786,
2622  -0.0001084456223089688,
2623  0.0008523547108047095,
2624  2.8078582128442894e-05,
2625  -0.00010943147929529757,
2626  -3.113556407621969e-06,
2627  6.230006701220761e-06
2628 };
2629 const WAVELE_DATA_TYPE q_sym16[] = {
2630  6.230006701220761e-06,
2631  3.113556407621969e-06,
2632  -0.00010943147929529757,
2633  -2.8078582128442894e-05,
2634  0.0008523547108047095,
2635  0.0001084456223089688,
2636  -0.0038809122526038786,
2637  -0.0007182119788317892,
2638  0.012666731659857348,
2639  0.0031265171722710075,
2640  -0.031051202843553064,
2641  -0.004869274404904607,
2642  0.032333091610663785,
2643  0.06698304907021778,
2644  -0.034574228416972504,
2645  -0.39712293362064416,
2646  0.7565249878756971,
2647  -0.47534280601152273,
2648  -0.054040601387606135,
2649  0.15959219218520598,
2650  0.03072113906330156,
2651  -0.07803785290341991,
2652  -0.003510275068374009,
2653  0.024952758046290123,
2654  0.001359844742484172,
2655  -0.0069377611308027096,
2656  -0.00022211647621176323,
2657  0.0013387206066921965,
2658  3.656592483348223e-05,
2659  -0.00016545679579108483,
2660  -5.396483179315242e-06,
2661  1.0797982104319795e-05
2662 };
2663 
2665 const int N_sym17 = 34;
2666 const WAVELE_DATA_TYPE p_sym17[] = {
2667  3.7912531943321266e-06,
2668  -2.4527163425833e-06,
2669  -7.607124405605129e-05,
2670  2.520793314082878e-05,
2671  0.0007198270642148971,
2672  5.8400428694052584e-05,
2673  -0.003932325279797902,
2674  -0.001905407689852666,
2675  0.012396988366648726,
2676  0.009952982523509598,
2677  -0.01803889724191924,
2678  -0.007261634750928767,
2679  0.016158808725919346,
2680  -0.08607087472073338,
2681  -0.15507600534974825,
2682  0.18053958458111286,
2683  0.681488995344925,
2684  0.6507166292045456,
2685  0.1423983504146782,
2686  -0.11856693261143636,
2687  0.0172711782105185,
2688  0.10475461484223211,
2689  0.01790395221434112,
2690  -0.03329138349235933,
2691  -0.004819212803176148,
2692  0.010482366933031529,
2693  0.0008567700701915741,
2694  -0.0027416759756816018,
2695  -0.000138642302680455,
2696  0.0004759963802638669,
2697  -1.3506383399901165e-05,
2698  -6.293702597554192e-05,
2699  2.7801266938414138e-06,
2700  4.297343327345983e-06
2701 };
2702 const WAVELE_DATA_TYPE q_sym17[] = {
2703  4.297343327345983e-06,
2704  -2.7801266938414138e-06,
2705  -6.293702597554192e-05,
2706  1.3506383399901165e-05,
2707  0.0004759963802638669,
2708  0.000138642302680455,
2709  -0.0027416759756816018,
2710  -0.0008567700701915741,
2711  0.010482366933031529,
2712  0.004819212803176148,
2713  -0.03329138349235933,
2714  -0.01790395221434112,
2715  0.10475461484223211,
2716  -0.0172711782105185,
2717  -0.11856693261143636,
2718  -0.1423983504146782,
2719  0.6507166292045456,
2720  -0.681488995344925,
2721  0.18053958458111286,
2722  0.15507600534974825,
2723  -0.08607087472073338,
2724  -0.016158808725919346,
2725  -0.007261634750928767,
2726  0.01803889724191924,
2727  0.009952982523509598,
2728  -0.012396988366648726,
2729  -0.001905407689852666,
2730  0.003932325279797902,
2731  5.8400428694052584e-05,
2732  -0.0007198270642148971,
2733  2.520793314082878e-05,
2734  7.607124405605129e-05,
2735  -2.4527163425833e-06,
2736  -3.7912531943321266e-06
2737 };
2738 
2740 const int N_sym18 = 36;
2741 const WAVELE_DATA_TYPE p_sym18[] = {
2742  -1.5131530692371587e-06,
2743  7.847298055831765e-07,
2744  2.955743762093081e-05,
2745  -9.858816030140058e-06,
2746  -0.0002658301102424104,
2747  4.741614518373667e-05,
2748  0.0014280863270832796,
2749  -0.00018877623940755607,
2750  -0.005239789683026608,
2751  0.001087784789595693,
2752  0.015012356344250213,
2753  -0.0032607442000749834,
2754  -0.03171268473181454,
2755  0.006277944554311694,
2756  0.028529597039037808,
2757  -0.07379920729060717,
2758  -0.032480573290138676,
2759  0.40148386057061813,
2760  0.7536291401017928,
2761  0.47396905989393956,
2762  -0.052029158983952786,
2763  -0.15993814866932407,
2764  0.03399566710394736,
2765  0.08421992997038655,
2766  -0.005077085160757053,
2767  -0.030325091089369604,
2768  0.001642986397278216,
2769  0.009502164390962365,
2770  -0.00041152110923597756,
2771  -0.002313871814506099,
2772  7.021273459036268e-05,
2773  0.00039616840638254753,
2774  -1.4020992577726755e-05,
2775  -4.5246757874949856e-05,
2776  1.354915761832114e-06,
2777  2.6126125564836423e-06
2778 };
2779 const WAVELE_DATA_TYPE q_sym18[] = {
2780  2.6126125564836423e-06,
2781  -1.354915761832114e-06,
2782  -4.5246757874949856e-05,
2783  1.4020992577726755e-05,
2784  0.00039616840638254753,
2785  -7.021273459036268e-05,
2786  -0.002313871814506099,
2787  0.00041152110923597756,
2788  0.009502164390962365,
2789  -0.001642986397278216,
2790  -0.030325091089369604,
2791  0.005077085160757053,
2792  0.08421992997038655,
2793  -0.03399566710394736,
2794  -0.15993814866932407,
2795  0.052029158983952786,
2796  0.47396905989393956,
2797  -0.7536291401017928,
2798  0.40148386057061813,
2799  0.032480573290138676,
2800  -0.07379920729060717,
2801  -0.028529597039037808,
2802  0.006277944554311694,
2803  0.03171268473181454,
2804  -0.0032607442000749834,
2805  -0.015012356344250213,
2806  0.001087784789595693,
2807  0.005239789683026608,
2808  -0.00018877623940755607,
2809  -0.0014280863270832796,
2810  4.741614518373667e-05,
2811  0.0002658301102424104,
2812  -9.858816030140058e-06,
2813  -2.955743762093081e-05,
2814  7.847298055831765e-07,
2815  1.5131530692371587e-06
2816 };
2817 
2819 const int N_sym19 = 38;
2820 const WAVELE_DATA_TYPE p_sym19[] = {
2821  1.7509367995348687e-06,
2822  2.0623170632395688e-06,
2823  -2.8151138661550245e-05,
2824  -1.6821387029373716e-05,
2825  0.0002762187768573407,
2826  0.00012930767650701415,
2827  -0.0017049602611649971,
2828  -0.0006179223277983108,
2829  0.008262236955528255,
2830  0.004319351874894969,
2831  -0.02770989693131125,
2832  -0.016908234861345205,
2833  0.08407267627924504,
2834  0.09363084341589714,
2835  -0.11624173010739675,
2836  -0.17659686625203097,
2837  0.2582661692372836,
2838  0.7195555257163943,
2839  0.578144945338605,
2840  0.10902582508127781,
2841  -0.06752505804029409,
2842  0.008954591173043624,
2843  0.0070155738571741596,
2844  -0.046635983534938946,
2845  -0.02265199337824595,
2846  0.01579743929567463,
2847  0.007968438320613306,
2848  -0.005122205002583014,
2849  -0.0011607032572062486,
2850  0.0021214250281823303,
2851  0.00015915804768084938,
2852  -0.000635764515004334,
2853  -4.612039600210587e-05,
2854  0.0001155392333357879,
2855  8.873312173729286e-06,
2856  -1.1880518269823984e-05,
2857  -6.463651303345963e-07,
2858  5.487732768215838e-07
2859 };
2860 const WAVELE_DATA_TYPE q_sym19[] = {
2861  5.487732768215838e-07,
2862  6.463651303345963e-07,
2863  -1.1880518269823984e-05,
2864  -8.873312173729286e-06,
2865  0.0001155392333357879,
2866  4.612039600210587e-05,
2867  -0.000635764515004334,
2868  -0.00015915804768084938,
2869  0.0021214250281823303,
2870  0.0011607032572062486,
2871  -0.005122205002583014,
2872  -0.007968438320613306,
2873  0.01579743929567463,
2874  0.02265199337824595,
2875  -0.046635983534938946,
2876  -0.0070155738571741596,
2877  0.008954591173043624,
2878  0.06752505804029409,
2879  0.10902582508127781,
2880  -0.578144945338605,
2881  0.7195555257163943,
2882  -0.2582661692372836,
2883  -0.17659686625203097,
2884  0.11624173010739675,
2885  0.09363084341589714,
2886  -0.08407267627924504,
2887  -0.016908234861345205,
2888  0.02770989693131125,
2889  0.004319351874894969,
2890  -0.008262236955528255,
2891  -0.0006179223277983108,
2892  0.0017049602611649971,
2893  0.00012930767650701415,
2894  -0.0002762187768573407,
2895  -1.6821387029373716e-05,
2896  2.8151138661550245e-05,
2897  2.0623170632395688e-06,
2898  -1.7509367995348687e-06,
2899 };
2900 
2902 const int N_sym20 = 40;
2903 const WAVELE_DATA_TYPE p_sym20[] = {
2904  -6.329129044776395e-07,
2905  -3.2567026420174407e-07,
2906  1.22872527779612e-05,
2907  4.525422209151636e-06,
2908  -0.00011739133516291466,
2909  -2.6615550335516086e-05,
2910  0.0007476108597820572,
2911  0.0001254409172306726,
2912  -0.0034716478028440734,
2913  -0.0006111263857992088,
2914  0.012157040948785737,
2915  0.0019385970672402002,
2916  -0.035373336756604236,
2917  -0.0068437019650692274,
2918  0.08891966802819956,
2919  0.03625095165393308,
2920  -0.16057829841525254,
2921  -0.0510883429210674,
2922  0.47199147510148703,
2923  0.75116272842273,
2924  0.4058314443484506,
2925  -0.02981936888033373,
2926  -0.07899434492839816,
2927  0.025579349509413946,
2928  0.008123228356009682,
2929  -0.031629437144957966,
2930  -0.003313857383623359,
2931  0.01700404902339034,
2932  0.0014230873594621453,
2933  -0.006606585799088861,
2934  -0.0003052628317957281,
2935  0.002088994708190198,
2936  7.215991188074035e-05,
2937  -0.0004947310915672655,
2938  -1.928412300645204e-05,
2939  7.992967835772481e-05,
2940  3.025666062736966e-06,
2941  -7.919361411976999e-06,
2942  -1.9015675890554106e-07,
2943  3.695537474835221e-07
2944 };
2945 const WAVELE_DATA_TYPE q_sym20[] = {
2946  3.695537474835221e-07,
2947  1.9015675890554106e-07,
2948  -7.919361411976999e-06,
2949  -3.025666062736966e-06,
2950  7.992967835772481e-05,
2951  1.928412300645204e-05,
2952  -0.0004947310915672655,
2953  -7.215991188074035e-05,
2954  0.002088994708190198,
2955  0.0003052628317957281,
2956  -0.006606585799088861,
2957  -0.0014230873594621453,
2958  0.01700404902339034,
2959  0.003313857383623359,
2960  -0.031629437144957966,
2961  -0.008123228356009682,
2962  0.025579349509413946,
2963  0.07899434492839816,
2964  -0.02981936888033373,
2965  -0.4058314443484506,
2966  0.75116272842273,
2967  -0.47199147510148703,
2968  -0.0510883429210674,
2969  0.16057829841525254,
2970  0.03625095165393308,
2971  -0.08891966802819956,
2972  -0.0068437019650692274,
2973  0.035373336756604236,
2974  0.0019385970672402002,
2975  -0.012157040948785737,
2976  -0.0006111263857992088,
2977  0.0034716478028440734,
2978  0.0001254409172306726,
2979  -0.0007476108597820572,
2980  -2.6615550335516086e-05,
2981  0.00011739133516291466,
2982  4.525422209151636e-06,
2983  -1.22872527779612e-05,
2984  -3.2567026420174407e-07,
2985  6.329129044776395e-07
2986 };
2987 
2989 const int N_coif1 = 6;
2990 const WAVELE_DATA_TYPE p_coif1[] = {
2991  -0.0727326195128539, 0.3378976624578092,
2992  0.8525720202122554, 0.38486484686420286,
2993  -0.0727326195128539, -0.01565572813546454
2994 };
2995 const WAVELE_DATA_TYPE q_coif1[] = {
2996  -0.01565572813546454, 0.0727326195128539,
2997  0.38486484686420286, -0.8525720202122554,
2998  0.3378976624578092, 0.0727326195128539
2999 };
3000 
3002 const int N_coif2 = 12;
3003 const WAVELE_DATA_TYPE p_coif2[] = {
3004  0.016387336463522112, -0.04146493678175915,
3005  -0.06737255472196302, 0.3861100668211622,
3006  0.8127236354455423, 0.41700518442169254,
3007  -0.0764885990783064, -0.0594344186464569,
3008  0.023680171946334084, 0.0056114348193944995,
3009  -0.0018232088707029932, -0.0007205494453645122
3010 };
3011 const WAVELE_DATA_TYPE q_coif2[] = {
3012  -0.0007205494453645122, 0.0018232088707029932,
3013  0.0056114348193944995, -0.023680171946334084,
3014  -0.0594344186464569, 0.0764885990783064,
3015  0.41700518442169254, -0.8127236354455423,
3016  0.3861100668211622, 0.06737255472196302,
3017  -0.04146493678175915, -0.016387336463522112
3018 };
3019 
3021 const int N_coif3 = 18;
3022 const WAVELE_DATA_TYPE p_coif3[] = {
3023  -0.003793512864491014, 0.007782596427325418,
3024  0.023452696141836267, -0.0657719112818555,
3025  -0.06112339000267287, 0.4051769024096169,
3026  0.7937772226256206, 0.42848347637761874,
3027  -0.07179982161931202, -0.08230192710688598,
3028  0.03455502757306163, 0.015880544863615904,
3029  -0.00900797613666158, -0.0025745176887502236,
3030  0.0011175187708906016, 0.0004662169601128863,
3031  -7.098330313814125e-05, -3.459977283621256e-05
3032 };
3033 const WAVELE_DATA_TYPE q_coif3[] = {
3034  -3.459977283621256e-05, 7.098330313814125e-05,
3035  0.0004662169601128863, -0.0011175187708906016,
3036  -0.0025745176887502236, 0.00900797613666158,
3037  0.015880544863615904, -0.03455502757306163,
3038  -0.08230192710688598, 0.07179982161931202,
3039  0.42848347637761874, -0.7937772226256206,
3040  0.4051769024096169, 0.06112339000267287,
3041  -0.0657719112818555, -0.023452696141836267,
3042  0.007782596427325418, 0.003793512864491014
3043 };
3044 
3046 const int N_coif4 = 24;
3047 const WAVELE_DATA_TYPE p_coif4[] = {
3048  0.0008923136685823146,
3049  -0.0016294920126017326,
3050  -0.0073461663276420935,
3051  0.016068943964776348,
3052  0.026682300156053072,
3053  -0.08126669968087875,
3054  -0.05607731331675481,
3055  0.41530840703043026,
3056  0.782238930920499,
3057  0.4343860564914685,
3058  -0.06662747426342504,
3059  -0.09622044203398798,
3060  0.03933442712333749,
3061  0.025082261844864097,
3062  -0.015211731527946259,
3063  -0.00565828668661072,
3064  0.003751436157278457,
3065  0.0012665619292989445,
3066  -0.0005890207562443383,
3067  -0.00025997455248771324,
3068  6.233903446100713e-05,
3069  3.1229875865345646e-05,
3070  -3.2596802368833675e-06,
3071  -1.7849850030882614e-06
3072 };
3073 const WAVELE_DATA_TYPE q_coif4[] = {
3074  -1.7849850030882614e-06,
3075  3.2596802368833675e-06,
3076  3.1229875865345646e-05,
3077  -6.233903446100713e-05,
3078  -0.00025997455248771324,
3079  0.0005890207562443383,
3080  0.0012665619292989445,
3081  -0.003751436157278457,
3082  -0.00565828668661072,
3083  0.015211731527946259,
3084  0.025082261844864097,
3085  -0.03933442712333749,
3086  -0.09622044203398798,
3087  0.06662747426342504,
3088  0.4343860564914685,
3089  -0.782238930920499,
3090  0.41530840703043026,
3091  0.05607731331675481,
3092  -0.08126669968087875,
3093  -0.026682300156053072,
3094  0.016068943964776348,
3095  0.0073461663276420935,
3096  -0.0016294920126017326,
3097  -0.0008923136685823146
3098 };
3099 
3101 const int N_coif5 = 30;
3102 const WAVELE_DATA_TYPE p_coif5[] = {
3103  -0.00021208083980379827,
3104  0.00035858968789573785,
3105  0.0021782363581090178,
3106  -0.004159358781386048,
3107  -0.010131117519849788,
3108  0.023408156785839195,
3109  0.02816802897093635,
3110  -0.09192001055969624,
3111  -0.05204316317624377,
3112  0.4215662066908515,
3113  0.7742896036529562,
3114  0.4379916261718371,
3115  -0.06203596396290357,
3116  -0.10557420870333893,
3117  0.0412892087501817,
3118  0.03268357426711183,
3119  -0.01976177894257264,
3120  -0.009164231162481846,
3121  0.006764185448053083,
3122  0.0024333732126576722,
3123  -0.0016628637020130838,
3124  -0.0006381313430451114,
3125  0.00030225958181306315,
3126  0.00014054114970203437,
3127  -4.134043227251251e-05,
3128  -2.1315026809955787e-05,
3129  3.7346551751414047e-06,
3130  2.0637618513646814e-06,
3131  -1.6744288576823017e-07,
3132  -9.517657273819165e-08
3133 };
3134 const WAVELE_DATA_TYPE q_coif5[] = {
3135  -9.517657273819165e-08,
3136  1.6744288576823017e-07,
3137  2.0637618513646814e-06,
3138  -3.7346551751414047e-06,
3139  -2.1315026809955787e-05,
3140  4.134043227251251e-05,
3141  0.00014054114970203437,
3142  -0.00030225958181306315,
3143  -0.0006381313430451114,
3144  0.0016628637020130838,
3145  0.0024333732126576722,
3146  -0.006764185448053083,
3147  -0.009164231162481846,
3148  0.01976177894257264,
3149  0.03268357426711183,
3150  -0.0412892087501817,
3151  -0.10557420870333893,
3152  0.06203596396290357,
3153  0.4379916261718371,
3154  -0.7742896036529562,
3155  0.4215662066908515,
3156  0.05204316317624377,
3157  -0.09192001055969624,
3158  -0.02816802897093635,
3159  0.023408156785839195,
3160  0.010131117519849788,
3161  -0.004159358781386048,
3162  -0.0021782363581090178,
3163  0.00035858968789573785,
3164  0.00021208083980379827
3165 };
3166 
3168 const int N_bior11 = 2;
3169 const WAVELE_DATA_TYPE p_bior11[] = {
3170  0.7071067811865476, 0.7071067811865476
3171 };
3172 const WAVELE_DATA_TYPE q_bior11[] = {
3173  0.7071067811865476, -0.7071067811865476
3174 };
3175 
3177 const int N_bior13 = 6;
3178 const WAVELE_DATA_TYPE p_bior13[] = {
3179  0.0, 0.0,
3180  0.7071067811865476, 0.7071067811865476,
3181  0.0, 0.0
3182 };
3183 const WAVELE_DATA_TYPE q_bior13[] = {
3184  -0.08838834764831845, -0.08838834764831845,
3185  0.7071067811865476, -0.7071067811865476,
3186  0.08838834764831845, 0.08838834764831845,
3187 };
3188 
3190 const int N_bior15 = 10;
3191 const WAVELE_DATA_TYPE p_bior15[] = {
3192  0.0, 0.0,
3193  0.0, 0.0,
3194  0.7071067811865476, 0.7071067811865476,
3195  0.0, 0.0,
3196  0.0, 0.0
3197 };
3198 const WAVELE_DATA_TYPE q_bior15[] = {
3199  0.01657281518405971, 0.01657281518405971,
3200  -0.12153397801643787, -0.12153397801643787,
3201  0.7071067811865476, -0.7071067811865476,
3202  0.12153397801643787, 0.12153397801643787,
3203  -0.01657281518405971, -0.01657281518405971
3204 };
3205 
3207 const int N_bior22 = 6;
3208 const WAVELE_DATA_TYPE p_bior22[] = {
3209  0.0, 0.3535533905932738,
3210  0.7071067811865476, 0.3535533905932738,
3211  0.0, 0.0
3212 };
3213 const WAVELE_DATA_TYPE q_bior22[] = {
3214  0.0, 0.1767766952966369,
3215  0.3535533905932738, -1.0606601717798214,
3216  0.3535533905932738, 0.1767766952966369
3217 };
3218 
3220 const int N_bior24 = 10;
3221 const WAVELE_DATA_TYPE p_bior24[] = {
3222  0.0, 0.0,
3223  0.0, 0.3535533905932738,
3224  0.7071067811865476, 0.3535533905932738,
3225  0.0, 0.0,
3226  0.0, 0.0
3227 };
3228 const WAVELE_DATA_TYPE q_bior24[] = {
3229  0.0, -0.03314563036811942,
3230  -0.06629126073623884, 0.1767766952966369,
3231  0.4198446513295126, -0.9943689110435825,
3232  0.4198446513295126, 0.1767766952966369,
3233  -0.06629126073623884, -0.03314563036811942
3234 };
3235 
3237 const int N_bior26 = 14;
3238 const WAVELE_DATA_TYPE p_bior26[] = {
3239  0.0, 0.0,
3240  0.0, 0.0,
3241  0.0, 0.3535533905932738,
3242  0.7071067811865476, 0.3535533905932738,
3243  0.0, 0.0,
3244  0.0, 0.0,
3245  0.0, 0.0
3246 };
3247 const WAVELE_DATA_TYPE q_bior26[] = {
3248  0.0, 0.006905339660024878,
3249  0.013810679320049757, -0.046956309688169176,
3250  -0.10772329869638811, 0.16987135563661201,
3251  0.4474660099696121, -0.966747552403483,
3252  0.4474660099696121, 0.16987135563661201,
3253  -0.10772329869638811, -0.046956309688169176,
3254  0.013810679320049757, 0.006905339660024878
3255 };
3256 
3258 const int N_bior28 = 18;
3259 const WAVELE_DATA_TYPE p_bior28[] = {
3260  0.0, 0.0,
3261  0.0, 0.0,
3262  0.0, 0.0,
3263  0.0, 0.3535533905932738,
3264  0.7071067811865476, 0.3535533905932738,
3265  0.0, 0.0,
3266  0.0, 0.0,
3267  0.0, 0.0,
3268  0.0, 0.0
3269 };
3270 const WAVELE_DATA_TYPE q_bior28[] = {
3271  0.0, -0.0015105430506304422,
3272  -0.0030210861012608843, 0.012947511862546647,
3273  0.02891610982635418, -0.052998481890690945,
3274  -0.13491307360773608, 0.16382918343409025,
3275  0.4625714404759166, -0.9516421218971786,
3276  0.4625714404759166, 0.16382918343409025,
3277  -0.13491307360773608, -0.052998481890690945,
3278  0.02891610982635418, 0.012947511862546647,
3279  -0.0030210861012608843, -0.0015105430506304422
3280 };
3281 
3283 const int N_bior31 = 4;
3284 const WAVELE_DATA_TYPE p_bior31[] = {
3285  0.1767766952966369, 0.5303300858899107, 0.5303300858899107, 0.1767766952966369
3286 };
3287 const WAVELE_DATA_TYPE q_bior31[] = {
3288  -0.3535533905932738, -1.0606601717798214, 1.0606601717798214, 0.3535533905932738
3289 };
3290 
3292 const int N_bior33 = 8;
3293 const WAVELE_DATA_TYPE p_bior33[] = {
3294  0.0, 0.0, 0.1767766952966369, 0.5303300858899107,
3295  0.5303300858899107, 0.1767766952966369, 0.0, 0.0
3296 };
3297 const WAVELE_DATA_TYPE q_bior33[] = {
3298  0.06629126073623884, 0.19887378220871652, -0.15467960838455727, -0.9943689110435825,
3299  0.9943689110435825, 0.15467960838455727, -0.19887378220871652, -0.06629126073623884
3300 };
3301 
3303 const int N_bior35 = 12;
3304 const WAVELE_DATA_TYPE p_bior35[] = {
3305  0.0, 0.0, 0.0, 0.0,
3306  0.1767766952966369, 0.5303300858899107, 0.5303300858899107, 0.1767766952966369,
3307  0.0, 0.0, 0.0, 0.0
3308 };
3309 const WAVELE_DATA_TYPE q_bior35[] = {
3310  -0.013810679320049757, -0.04143203796014927, 0.052480581416189075, 0.26792717880896527,
3311  -0.07181553246425874, -0.966747552403483, 0.966747552403483, 0.07181553246425874,
3312  -0.26792717880896527, -0.052480581416189075, 0.04143203796014927, 0.013810679320049757
3313 };
3314 
3316 const int N_bior37 = 16;
3317 const WAVELE_DATA_TYPE p_bior37[] = {
3318  0.0, 0.0, 0.0, 0.0,
3319  0.0, 0.0, 0.1767766952966369, 0.5303300858899107,
3320  0.5303300858899107, 0.1767766952966369, 0.0, 0.0,
3321  0.0, 0.0, 0.0, 0.0
3322 };
3323 const WAVELE_DATA_TYPE q_bior37[] = {
3324  0.0030210861012608843, 0.009063258303782653, -0.01683176542131064, -0.074663985074019,
3325  0.03133297870736289, 0.301159125922835, -0.026499240945345472, -0.9516421218971786,
3326  0.9516421218971786, 0.026499240945345472, -0.301159125922835, -0.03133297870736289,
3327  0.074663985074019, 0.01683176542131064, -0.009063258303782653, -0.0030210861012608843,
3328 };
3329 
3331 const int N_bior39 = 20;
3332 const WAVELE_DATA_TYPE p_bior39[] = {
3333  0.0, 0.0, 0.0, 0.0,
3334  0.0, 0.0, 0.0, 0.0,
3335  0.1767766952966369, 0.5303300858899107, 0.5303300858899107, 0.1767766952966369,
3336  0.0, 0.0, 0.0, 0.0,
3337  0.0, 0.0, 0.0, 0.0
3338 };
3339 const WAVELE_DATA_TYPE q_bior39[] = {
3340  -0.000679744372783699, -0.002039233118351097, 0.005060319219611981, 0.020618912641105536,
3341  -0.014112787930175846, -0.09913478249423216, 0.012300136269419315, 0.32019196836077857,
3342  0.0020500227115698858, -0.9421257006782068, 0.9421257006782068, -0.0020500227115698858,
3343  -0.32019196836077857, -0.012300136269419315, 0.09913478249423216, 0.014112787930175846,
3344  -0.020618912641105536, -0.005060319219611981, 0.002039233118351097, 0.000679744372783699
3345 };
3346 
3348 const int N_bior44 = 10;
3349 const WAVELE_DATA_TYPE p_bior44[] = {
3350  0.0, -0.06453888262869706, -0.04068941760916406, 0.41809227322161724, 0.7884856164055829,
3351  0.41809227322161724, -0.04068941760916406, -0.06453888262869706, 0.0, 0.0
3352 };
3353 const WAVELE_DATA_TYPE q_bior44[] = {
3354  0.0, -0.03782845550726404, -0.023849465019556843, 0.11062440441843718, 0.37740285561283066,
3355  -0.8526986790088938, 0.37740285561283066, 0.11062440441843718, -0.023849465019556843, -0.03782845550726404
3356 };
3357 
3359 const int N_bior55 = 12;
3360 const WAVELE_DATA_TYPE p_bior55[] = {
3361  0.013456709459118716,
3362  -0.002694966880111507,
3363  -0.13670658466432914,
3364  -0.09350469740093886,
3365  0.47680326579848425,
3366  0.8995061097486484,
3367  0.47680326579848425,
3368  -0.09350469740093886,
3369  -0.13670658466432914,
3370  -0.002694966880111507,
3371  0.013456709459118716,
3372  0.0
3373 };
3374 const WAVELE_DATA_TYPE q_bior55[] = {
3375  0.0,
3376  0.0,
3377  0.03968708834740544,
3378  -0.007948108637240322,
3379  -0.05446378846823691,
3380  -0.34560528195603346,
3381  0.7366601814282105,
3382  -0.34560528195603346,
3383  -0.05446378846823691,
3384  -0.007948108637240322,
3385  0.03968708834740544,
3386  0.0
3387 };
3388 
3390 const int N_bior68 = 18;
3391 const WAVELE_DATA_TYPE p_bior68[] = {
3392  0.0,
3393  0.0,
3394  0.0,
3395  0.014426282505624435,
3396  0.014467504896790148,
3397  -0.07872200106262882,
3398  -0.04036797903033992,
3399  0.41784910915027457,
3400  0.7589077294536541,
3401  0.41784910915027457,
3402  -0.04036797903033992,
3403  -0.07872200106262882,
3404  0.014467504896790148,
3405  0.014426282505624435,
3406  0.0,
3407  0.0,
3408  0.0,
3409  0.0
3410 };
3411 const WAVELE_DATA_TYPE q_bior68[] = {
3412  0.0,
3413  -0.0019088317364812906,
3414  -0.0019142861290887667,
3415  0.016990639867602342,
3416  0.01193456527972926,
3417  -0.04973290349094079,
3418  -0.07726317316720414,
3419  0.09405920349573646,
3420  0.4207962846098268,
3421  -0.8259229974584023,
3422  0.4207962846098268,
3423  0.09405920349573646,
3424  -0.07726317316720414,
3425  -0.04973290349094079,
3426  0.01193456527972926,
3427  0.016990639867602342,
3428  -0.0019142861290887667,
3429  -0.0019088317364812906,
3430 };
3431 
3433 const int N_rbio11 = 2;
3434 const WAVELE_DATA_TYPE p_rbio11[] = {
3435  0.7071067811865476, 0.7071067811865476
3436 };
3437 const WAVELE_DATA_TYPE q_rbio11[] = {
3438  0.7071067811865476, -0.7071067811865476
3439 };
3440 
3442 const int N_rbio13 = 6;
3443 const WAVELE_DATA_TYPE p_rbio13[] = {
3444  -0.08838834764831845, 0.08838834764831845,
3445  0.7071067811865476, 0.7071067811865476,
3446  0.08838834764831845, -0.08838834764831845
3447 };
3448 const WAVELE_DATA_TYPE q_rbio13[] = {
3449  0.0, 0.0,
3450  0.7071067811865476, -0.7071067811865476,
3451  0.0, 0.0
3452 };
3453 
3455 const int N_rbio15 = 10;
3456 const WAVELE_DATA_TYPE p_rbio15[] = {
3457  0.01657281518405971, -0.01657281518405971,
3458  -0.12153397801643787, 0.12153397801643787,
3459  0.7071067811865476, 0.7071067811865476,
3460  0.12153397801643787, -0.12153397801643787,
3461  -0.01657281518405971, 0.01657281518405971
3462 };
3463 const WAVELE_DATA_TYPE q_rbio15[] = {
3464  0.0, 0.0,
3465  0.0, 0.0,
3466  0.7071067811865476, -0.7071067811865476,
3467  0.0, 0.0,
3468  0.0, 0.0
3469 };
3470 
3472 const int N_rbio22 = 6;
3473 const WAVELE_DATA_TYPE p_rbio22[] = {
3474  -0.1767766952966369, 0.3535533905932738,
3475  1.0606601717798214, 0.3535533905932738,
3476  -0.1767766952966369, 0.0
3477 };
3478 const WAVELE_DATA_TYPE q_rbio22[] = {
3479  0.0, 0.0,
3480  0.3535533905932738, -0.7071067811865476,
3481  0.3535533905932738, 0.0
3482 };
3483 
3485 const int N_rbio24 = 10;
3486 const WAVELE_DATA_TYPE p_rbio24[] = {
3487  0.03314563036811942, -0.06629126073623884,
3488  -0.1767766952966369, 0.4198446513295126,
3489  0.9943689110435825, 0.4198446513295126,
3490  -0.1767766952966369, -0.06629126073623884,
3491  0.03314563036811942, 0.0
3492 };
3493 const WAVELE_DATA_TYPE q_rbio24[] = {
3494  0.0, 0.0,
3495  0.0, 0.0,
3496  0.3535533905932738, -0.7071067811865476,
3497  0.3535533905932738, 0.0,
3498  0.0, 0.0
3499 };
3500 
3502 const int N_rbio26 = 14;
3503 const WAVELE_DATA_TYPE p_rbio26[] = {
3504  -0.006905339660024878, 0.013810679320049757,
3505  0.046956309688169176, -0.10772329869638811,
3506  -0.16987135563661201, 0.4474660099696121,
3507  0.966747552403483, 0.4474660099696121,
3508  -0.16987135563661201, -0.10772329869638811,
3509  0.046956309688169176, 0.013810679320049757,
3510  -0.006905339660024878, 0.0
3511 };
3512 const WAVELE_DATA_TYPE q_rbio26[] = {
3513  0.0, 0.0,
3514  0.0, 0.0,
3515  0.0, 0.0,
3516  0.3535533905932738, -0.7071067811865476,
3517  0.3535533905932738, 0.0,
3518  0.0, 0.0,
3519  0.0, 0.0
3520 };
3521 
3523 const int N_rbio28 = 18;
3524 const WAVELE_DATA_TYPE p_rbio28[] = {
3525  0.0015105430506304422, -0.0030210861012608843,
3526  -0.012947511862546647, 0.02891610982635418,
3527  0.052998481890690945, -0.13491307360773608,
3528  -0.16382918343409025, 0.4625714404759166,
3529  0.9516421218971786, 0.4625714404759166,
3530  -0.16382918343409025, -0.13491307360773608,
3531  0.052998481890690945, 0.02891610982635418,
3532  -0.012947511862546647, -0.0030210861012608843,
3533  0.0015105430506304422, 0.0
3534 };
3535 const WAVELE_DATA_TYPE q_rbio28[] = {
3536  0.0, 0.0,
3537  0.0, 0.0,
3538  0.0, 0.0,
3539  0.0, 0.0,
3540  0.3535533905932738, -0.7071067811865476,
3541  0.3535533905932738, 0.0,
3542  0.0, 0.0,
3543  0.0, 0.0,
3544  0.0, 0.0
3545 };
3546 
3548 const int N_rbio31 = 4;
3549 const WAVELE_DATA_TYPE p_rbio31[] = {
3550  -0.3535533905932738, 1.0606601717798214, 1.0606601717798214, -0.3535533905932738
3551 };
3552 const WAVELE_DATA_TYPE q_rbio31[] = {
3553  0.1767766952966369, -0.5303300858899107, 0.5303300858899107, -0.1767766952966369
3554 };
3555 
3557 const int N_rbio33 = 8;
3558 const WAVELE_DATA_TYPE p_rbio33[] = {
3559  0.06629126073623884, -0.19887378220871652, -0.15467960838455727, 0.9943689110435825,
3560  0.9943689110435825, -0.15467960838455727, -0.19887378220871652, 0.06629126073623884
3561 };
3562 const WAVELE_DATA_TYPE q_rbio33[] = {
3563  0.0, 0.0, 0.1767766952966369, -0.5303300858899107,
3564  0.5303300858899107, -0.1767766952966369, 0.0, 0.0
3565 };
3566 
3568 const int N_rbio35 = 12;
3569 const WAVELE_DATA_TYPE p_rbio35[] = {
3570  -0.013810679320049757, 0.04143203796014927, 0.052480581416189075, -0.26792717880896527,
3571  -0.07181553246425874, 0.966747552403483, 0.966747552403483, -0.07181553246425874,
3572  -0.26792717880896527, 0.052480581416189075, 0.04143203796014927, -0.013810679320049757
3573 };
3574 const WAVELE_DATA_TYPE q_rbio35[] = {
3575  0.0, 0.0, 0.0, 0.0,
3576  0.1767766952966369, -0.5303300858899107, 0.5303300858899107, -0.1767766952966369,
3577  0.0, 0.0, 0.0, 0.0
3578 };
3579 
3581 const int N_rbio37 = 16;
3582 const WAVELE_DATA_TYPE p_rbio37[] = {
3583  0.0030210861012608843, -0.009063258303782653, -0.01683176542131064, 0.074663985074019,
3584  0.03133297870736289, -0.301159125922835, -0.026499240945345472, 0.9516421218971786,
3585  0.9516421218971786, -0.026499240945345472, -0.301159125922835, 0.03133297870736289,
3586  0.074663985074019, -0.01683176542131064, -0.009063258303782653, 0.0030210861012608843
3587 };
3588 const WAVELE_DATA_TYPE q_rbio37[] = {
3589  0.0, 0.0, 0.0, 0.0,
3590  0.0, 0.0, 0.1767766952966369, -0.5303300858899107,
3591  0.5303300858899107, -0.1767766952966369, 0.0, 0.0,
3592  0.0, 0.0, 0.0, 0.0
3593 };
3594 
3596 const int N_rbio39 = 20;
3597 const WAVELE_DATA_TYPE p_rbio39[] = {
3598  -0.000679744372783699, 0.002039233118351097, 0.005060319219611981, -0.020618912641105536,
3599  -0.014112787930175846, 0.09913478249423216, 0.012300136269419315, -0.32019196836077857,
3600  0.0020500227115698858, 0.9421257006782068, 0.9421257006782068, 0.0020500227115698858,
3601  -0.32019196836077857, 0.012300136269419315, 0.09913478249423216, -0.014112787930175846,
3602  -0.020618912641105536, 0.005060319219611981, 0.002039233118351097, -0.000679744372783699,
3603 };
3604 const WAVELE_DATA_TYPE q_rbio39[] = {
3605  0.0, 0.0, 0.0, 0.0,
3606  0.0, 0.0, 0.0, 0.0,
3607  0.1767766952966369, -0.5303300858899107, 0.5303300858899107, -0.1767766952966369,
3608  0.0, 0.0, 0.0, 0.0,
3609  0.0, 0.0, 0.0, 0.0
3610 };
3611 
3613 const int N_rbio44 = 10;
3614 const WAVELE_DATA_TYPE p_rbio44[] = {
3615  0.03782845550726404, -0.023849465019556843, -0.11062440441843718, 0.37740285561283066, 0.8526986790088938,
3616  0.37740285561283066, -0.11062440441843718, -0.023849465019556843, 0.03782845550726404, 0.0
3617 };
3618 const WAVELE_DATA_TYPE q_rbio44[] = {
3619  0.0, 0.0, -0.06453888262869706, 0.04068941760916406, 0.41809227322161724,
3620  -0.7884856164055829, 0.41809227322161724, 0.04068941760916406, -0.06453888262869706, 0.0
3621 };
3622 
3624 const int N_rbio55 = 12;
3625 const WAVELE_DATA_TYPE p_rbio55[] = {
3626  0.0,
3627  0.03968708834740544,
3628  0.007948108637240322,
3629  -0.05446378846823691,
3630  0.34560528195603346,
3631  0.7366601814282105,
3632  0.34560528195603346,
3633  -0.05446378846823691,
3634  0.007948108637240322,
3635  0.03968708834740544,
3636  0.0,
3637  0.0
3638 };
3639 const WAVELE_DATA_TYPE q_rbio55[] = {
3640  0.0,
3641  -0.013456709459118716,
3642  -0.002694966880111507,
3643  0.13670658466432914,
3644  -0.09350469740093886,
3645  -0.47680326579848425,
3646  0.8995061097486484,
3647  -0.47680326579848425,
3648  -0.09350469740093886,
3649  0.13670658466432914,
3650  -0.002694966880111507,
3651  -0.013456709459118716
3652 };
3653 
3655 const int N_rbio68 = 18;
3656 const WAVELE_DATA_TYPE p_rbio68[] = {
3657  0.0019088317364812906,
3658  -0.0019142861290887667,
3659  -0.016990639867602342,
3660  0.01193456527972926,
3661  0.04973290349094079,
3662  -0.07726317316720414,
3663  -0.09405920349573646,
3664  0.4207962846098268,
3665  0.8259229974584023,
3666  0.4207962846098268,
3667  -0.09405920349573646,
3668  -0.07726317316720414,
3669  0.04973290349094079,
3670  0.01193456527972926,
3671  -0.016990639867602342,
3672  -0.0019142861290887667,
3673  0.0019088317364812906,
3674  0.0
3675 };
3676 const WAVELE_DATA_TYPE q_rbio68[] = {
3677  0.0,
3678  0.0,
3679  0.0,
3680  0.0,
3681  0.014426282505624435,
3682  -0.014467504896790148,
3683  -0.07872200106262882,
3684  0.04036797903033992,
3685  0.41784910915027457,
3686  -0.7589077294536541,
3687  0.41784910915027457,
3688  0.04036797903033992,
3689  -0.07872200106262882,
3690  -0.014467504896790148,
3691  0.014426282505624435,
3692  0.0,
3693  0.0,
3694  0.0
3695 };
3696 
3698 const int N_dmey = 62;
3699 const WAVELE_DATA_TYPE p_dmey[] = {
3700  -1.009999956941423e-12,
3701  8.519459636796214e-09,
3702  -1.111944952595278e-08,
3703  -1.0798819539621958e-08,
3704  6.066975741351135e-08,
3705  -1.0866516536735883e-07,
3706  8.200680650386481e-08,
3707  1.1783004497663934e-07,
3708  -5.506340565252278e-07,
3709  1.1307947017916706e-06,
3710  -1.489549216497156e-06,
3711  7.367572885903746e-07,
3712  3.20544191334478e-06,
3713  -1.6312699734552807e-05,
3714  6.554305930575149e-05,
3715  -0.0006011502343516092,
3716  -0.002704672124643725,
3717  0.002202534100911002,
3718  0.006045814097323304,
3719  -0.006387718318497156,
3720  -0.011061496392513451,
3721  0.015270015130934803,
3722  0.017423434103729693,
3723  -0.03213079399021176,
3724  -0.024348745906078023,
3725  0.0637390243228016,
3726  0.030655091960824263,
3727  -0.13284520043622938,
3728  -0.035087555656258346,
3729  0.44459300275757724,
3730  0.7445855923188063,
3731  0.44459300275757724,
3732  -0.035087555656258346,
3733  -0.13284520043622938,
3734  0.030655091960824263,
3735  0.0637390243228016,
3736  -0.024348745906078023,
3737  -0.03213079399021176,
3738  0.017423434103729693,
3739  0.015270015130934803,
3740  -0.011061496392513451,
3741  -0.006387718318497156,
3742  0.006045814097323304,
3743  0.002202534100911002,
3744  -0.002704672124643725,
3745  -0.0006011502343516092,
3746  6.554305930575149e-05,
3747  -1.6312699734552807e-05,
3748  3.20544191334478e-06,
3749  7.367572885903746e-07,
3750  -1.489549216497156e-06,
3751  1.1307947017916706e-06,
3752  -5.506340565252278e-07,
3753  1.1783004497663934e-07,
3754  8.200680650386481e-08,
3755  -1.0866516536735883e-07,
3756  6.066975741351135e-08,
3757  -1.0798819539621958e-08,
3758  -1.111944952595278e-08,
3759  8.519459636796214e-09,
3760  -1.009999956941423e-12,
3761  0.0
3762 };
3763 const WAVELE_DATA_TYPE q_dmey[] = {
3764  0.0,
3765  1.009999956941423e-12,
3766  8.519459636796214e-09,
3767  1.111944952595278e-08,
3768  -1.0798819539621958e-08,
3769  -6.066975741351135e-08,
3770  -1.0866516536735883e-07,
3771  -8.200680650386481e-08,
3772  1.1783004497663934e-07,
3773  5.506340565252278e-07,
3774  1.1307947017916706e-06,
3775  1.489549216497156e-06,
3776  7.367572885903746e-07,
3777  -3.20544191334478e-06,
3778  -1.6312699734552807e-05,
3779  -6.554305930575149e-05,
3780  -0.0006011502343516092,
3781  0.002704672124643725,
3782  0.002202534100911002,
3783  -0.006045814097323304,
3784  -0.006387718318497156,
3785  0.011061496392513451,
3786  0.015270015130934803,
3787  -0.017423434103729693,
3788  -0.03213079399021176,
3789  0.024348745906078023,
3790  0.0637390243228016,
3791  -0.030655091960824263,
3792  -0.13284520043622938,
3793  0.035087555656258346,
3794  0.44459300275757724,
3795  -0.7445855923188063,
3796  0.44459300275757724,
3797  0.035087555656258346,
3798  -0.13284520043622938,
3799  -0.030655091960824263,
3800  0.0637390243228016,
3801  0.024348745906078023,
3802  -0.03213079399021176,
3803  -0.017423434103729693,
3804  0.015270015130934803,
3805  0.011061496392513451,
3806  -0.006387718318497156,
3807  -0.006045814097323304,
3808  0.002202534100911002,
3809  0.002704672124643725,
3810  -0.0006011502343516092,
3811  -6.554305930575149e-05,
3812  -1.6312699734552807e-05,
3813  -3.20544191334478e-06,
3814  7.367572885903746e-07,
3815  1.489549216497156e-06,
3816  1.1307947017916706e-06,
3817  5.506340565252278e-07,
3818  1.1783004497663934e-07,
3819  -8.200680650386481e-08,
3820  -1.0866516536735883e-07,
3821  -6.066975741351135e-08,
3822  -1.0798819539621958e-08,
3823  1.111944952595278e-08,
3824  8.519459636796214e-09,
3825  1.009999956941423e-12
3826 };
3827 
3828 
3829 
3830 
3831 #ifdef __cplusplus
3832 }
3833 #endif
3834 
3835 
3836 #endif
3837 
3838 
3839 
3841