int main (void) { uint_t i, window_size = 16; // window size utils_init_random(); cvec_t * complex_vector = new_cvec (window_size); // input buffer uint_t rand_times = 4; while (rand_times -- ) { // fill with random phas and norm for ( i = 0; i < complex_vector->length; i++ ) { complex_vector->norm[i] = ( 2. / RAND_MAX * random() - 1. ); complex_vector->phas[i] = ( 2. / RAND_MAX * random() - 1. ) * M_PI; } // print the vector cvec_print(complex_vector); } // set all vector elements to `0` cvec_norm_zeros(complex_vector); for ( i = 0; i < complex_vector->length; i++ ) { assert( complex_vector->norm[i] == 0. ); // assert( complex_vector->phas[i] == 0 ); } cvec_print(complex_vector); // set all vector elements to `1` cvec_norm_ones(complex_vector); for ( i = 0; i < complex_vector->length; i++ ) { assert( complex_vector->norm[i] == 1. ); // assert( complex_vector->phas[i] == 0 ); } cvec_print(complex_vector); cvec_zeros(complex_vector); cvec_phas_zeros(complex_vector); cvec_norm_zeros(complex_vector); cvec_norm_ones(complex_vector); cvec_phas_ones(complex_vector); cvec_copy(complex_vector, complex_vector); // destroy it del_cvec(complex_vector); return 0; }
int main (void) { int return_code = 0; uint_t i, n_iters = 100; // number of iterations uint_t win_s = 500; // window size fvec_t * in = new_fvec (win_s); // input buffer cvec_t * fftgrain = new_cvec (win_s); // fft norm and phase fvec_t * out = new_fvec (win_s); // output buffer // create fft object aubio_fft_t * fft = new_aubio_fft(win_s); if (!fft) { return_code = 1; goto beach; } // fill input with some data in->data[0] = 1; in->data[1] = 2; in->data[2] = 3; in->data[3] = 4; in->data[4] = 5; in->data[5] = 6; in->data[6] = 5; in->data[7] = 6; //fvec_print(in); for (i = 0; i < n_iters; i++) { // execute stft aubio_fft_do (fft,in,fftgrain); cvec_print(fftgrain); // execute inverse fourier transform aubio_fft_rdo(fft,fftgrain,out); } // cleam up //fvec_print(out); del_aubio_fft(fft); beach: del_fvec(in); del_cvec(fftgrain); del_fvec(out); aubio_cleanup(); return return_code; }
int main (void) { uint_t n = 6; // compute n times uint_t win_s = 32; // window size uint_t hop_s = win_s / 4; // hop size fvec_t * in = new_fvec (hop_s); // input buffer cvec_t * fftgrain = new_cvec (win_s); // fft norm and phase fvec_t * out = new_fvec (hop_s); // output buffer // allocate fft and other memory space aubio_pvoc_t * pv = new_aubio_pvoc(win_s,hop_s); // fill input with some data fvec_set_all (in, 1.); fvec_print (in); while ( n-- ) { // get some fresh input data // .. // execute phase vocoder aubio_pvoc_do (pv,in,fftgrain); // do something with fftgrain // ... cvec_print (fftgrain); // optionally rebuild the signal aubio_pvoc_rdo(pv,fftgrain,out); // and do something with the result // ... fvec_print (out); } // clean up del_fvec(in); del_cvec(fftgrain); del_fvec(out); del_aubio_pvoc(pv); aubio_cleanup(); return 0; }
int main(int argc, const char *argv[]) { char *eq[]={"{x-sin(3/2*(x+y)), y-cos(3/2*(x+y))}", "{x^3+y^2+1, x^2+y^2+2}", "{2*x^2+y, x+2*y+5}", "{3*x^2-1,log(x)+y+3}", //-eq 0 -eps 1e-100 --> ## 2 step 戻る ## 実数解 "{x^2+y^2+x^2-1,x^2+z^2-y,x-z}", //eq 5 ## 2step 戻る ## "{-x+x^2+2*y^2+2*z^2+2*w^2, -y+2*x*y+2*y*z+2*z*w, -z+y^2+2*x*z+2*y*w, -1+x+2*y+2*z+2*w}", //eq 6 ## 2step 戻る ## "{x-10000-y^2,x*y^2-100}", // eq 8 ## 2step 戻る ## "{0.3*x^2-1}", // eq 9 ## 2step 戻る ## "{(3*x-y^2)^3-1000,log(x)^(-1)+2*y-30}", //eq 12 ### 3step 戻る ### "{cos(0.5*x)+cos(y)-1, sin(0.5*x)-sin(y)-1}", //eq31 // x=pi, y=0 ## 2回 2step 戻る ## "{-x+x^2+2*y^2+2*z^2+2*w^2, -y+2*x*y+2*y*z+2*z*w, -z+y^2+2*x*z+2*y*w, -1+x+2*y+2*z+2*w}", //eq 36 4変数 x=1, y=z=w=0 ## 2step 戻る ## "{x^2-y^2-1,x^4-y^4-1999}", // 桁落ち kappa=0.06, 解 x=sqrt(1000),y=sqrt(999) "{x^2+y^2-1, x^2+2*x*y+y^2-2}", // 線形 "{x+y,x*y}", // 線形,零 NULL }; int debug=0,i,m,step_max0=-1,step_max=-1,prec0=53,prec=53,no=0,solve_true=0,info,seed=0,eterm=0,e_prec=2048,e_seed=-1,kappa=26,l=4; double mu=8; func_t *fF=NULL; cmulti **x0=NULL,**x=NULL,**x_true=NULL,**e=NULL; rmulti *eps=NULL,*eps_true=NULL; // init func_t func_eval(func_script("begin(x,y,z,w,v,u)")); // default prec set_default_prec(prec0); // allocate RA(eps); RA(eps_true); // default parameters rset_d(eps,1e-200); rset_s(eps_true,"1e-2000"); // get options i=1; while(i<argc){ if(STR_EQ(argv[i],"--help")) { usage(); } else if(STR_EQ(argv[i],"-v")) { debug=1; } else if(STR_EQ(argv[i],"-vv")) { debug=2; } else if(STR_EQ(argv[i],"-vvv")) { debug=3; } else if(STR_EQ(argv[i],"-true")) { solve_true=1; } else if(STR_EQ(argv[i],"-eterm")) { eterm=1; } else if(i+1<argc && STR_EQ(argv[i],"-mu")) { mu=atof(argv[++i]); } else if(i+1<argc && STR_EQ(argv[i],"-l")) { l=atoi(argv[++i]); } else if(i+1<argc && STR_EQ(argv[i],"-kappa")){ kappa=atoi(argv[++i]); } else if(i+1<argc && STR_EQ(argv[i],"-eq")) { no=atoi(argv[++i]); } else if(i+1<argc && STR_EQ(argv[i],"-n")) { step_max=atoi(argv[++i]); } else if(i+1<argc && STR_EQ(argv[i],"-prec0")){ prec0=atoi(argv[++i]); } else if(i+1<argc && STR_EQ(argv[i],"-prec")) { prec=atoi(argv[++i]); } else if(i+1<argc && STR_EQ(argv[i],"-e-prec")){ e_prec=atoi(argv[++i]); } else if(i+1<argc && STR_EQ(argv[i],"-e-seed")){ e_seed=atoi(argv[++i]); } else if(i+1<argc && STR_EQ(argv[i],"-eps")) { rset_s(eps,argv[++i]); } else if(i+1<argc && STR_EQ(argv[i],"-seed")) { seed=atoi(argv[++i]); } else { usage(); } i++; } // printf("step_max=%d\n",step_max); printf("mu=%g\n",mu); printf("l=%d\n",l); printf("kappa=%d\n",kappa); fF=func_script(eq[no]); printf("fF="); func_print(fF); printf("\n"); m=func_asize(fF); printf("m=%d\n",m); // allocate vectors and matrices set_default_prec(prec0); printf("prec0=%d\n",prec0); CVA(x0,m); CVA(x,m); CVA(x_true,m); CVA(e,m); // set initial vector init_genrand(seed); cvec_set_rand(m,x0,2,-1); cvec_print(m,x0,"x0=","f",6); // solve for true solution printf("#-------------------\n"); cvec_clone(m,x_true,x0); csolve_newton(m,x_true,fF,step_max0,debug); //prec=csolve_newton_adjust(m,x_true,fF,NULL,eps_true,step_max0,mu,l,kappa,debug); cvec_print(m,x_true,"x*=","e",20); cvec_clone(m,x,x_true); // solve if(solve_true){ printf("#-------------------\n"); cvec_clone(m,x,x0); prec=csolve_newton_adjust(m,x,fF,x_true,eps,step_max,mu,l,kappa,debug); cvec_print(m,x,"x=","e",20); } // error printf("#-------------------\n"); printf("prec=%d\n",prec); set_default_prec(prec); cvec_round(m,e,prec); cvec_set_nan(m,e); info=csolve_krawczyk(m,e,x,fF,debug-2); if(info){ print_red(); printf("failed.\n"); } else{ print_green(); printf("succeeded.\n"); } print_reset(); cvec_print(m,e,"e=","e",1); if(eterm){ printf("#-------------------\n"); if(e_seed>=0){ init_genrand(e_seed); cvec_set_rand(m,x,2,-1); } eterm_show(m,x,fF,e_prec,kappa); } // done printf("#-------------------\n"); fF=func_del(fF); func_clear(); RF(eps); CVF(x,m); CVF(e,m); printf("func_new_del_check_sum=%d\n",func_new_del_check_sum()); return 0; }