void test_fft (size_t exponent) { size_t size = 1 << exponent; FFT_C2C fft(exponent); for (size_t i = 0; i < size; ++i) { float t = 2 * M_PI * (i + 0.5) / size; fft.time_in[i] = complex(cos(t), sin(t)); } cout << "time input:" << endl; print_complex(fft.time_in, size); fft.transform_fwd(); cout << "freq output:" << endl; print_complex(fft.freq_out, size); multiply(1.0f/size, fft.freq_out, fft.freq_in); fft.transform_bwd(); cout << "time output:" << endl; print_complex(fft.time_out, size); }
main() { complex root1, root2, alpha1, alpha2, result; complex partial1, partial2; int n; // set up constants root1.real = 1.0; root1.imag = 1.0; root2.real = 1.0; root2.imag = -1.0; alpha1.real = 0.5; alpha1.imag = -0.5; alpha2.real = 0.5; alpha2.imag = 0.5; // get the value of n with boundries n = get_bounded_integer(0, INT_MAX); // calculate the result partial1 = multiply(alpha1, power(root1, n)); partial2 = multiply(alpha2, power(root2, n)); result = add(partial1, partial2); // display answer printf("f(%d) = %s\n", n, print_complex(result)); }
int main() { complex_t *array[NSIZE]; int size, i; complex_t entry[NSIZE]; complex_t cno; FILE *fp; fp = fopen("cdata.txt", "r"); size = 0; while(scan_complex(fp, &cno) == 1) { entry[size]=cno; array[size]=&entry[size]; size++; } printf("array before sorting = \n"); for(i=0;i<size;i++) { print_complex(entry[i]); } printf("***end of array****\n"); select_sort_rec(array, size); printf("\narray after sorting = \n"); for(i=0;i<size;i++) { print_complex(*array[i]); } printf("***end of array****\n"); fclose(fp); return 0; }
main () { // main function int finished = 0; char command [100]; double re, im, angle,x,y; MY_COMPLEX * z; while (!finished) { scanf ("%s",command); if (strncmp(command, "make",6) == 0) { scanf("%lf",&re); scanf("%lf",&im); z = make_complex(re,im); printf("make "); print_complex(z); } else if (strncmp(command,"translate",8) == 0) { check_complex(z); scanf ("%lf", &x); scanf ("%lf", &y); printf("translate (%g,%g) ",x,y); z = translate(z,x,y); print_complex(z); } else if (strncmp(command, "rotate",6) == 0) { check_complex(z); scanf("%lf", &angle); printf("rotate %g degrees ",angle); z = rotate(z,angle); printf("result "); print_complex(z); } else if (strncmp(command,"print",5) == 0) { check_complex(z); printf("print "); print_complex(z); } else if (strncmp(command,"quit",4) == 0) finished = 1; else printf ("unrecognised command\n"); } printf("Quitting\n"); }
int main() { int N; int n, p,q,r; double *y_r, *y_i, *x_r, *x_i; clock_t t1, t2; printf("hello midterm \n"); /* srand(time(NULL)); N=10; v=(int *) malloc(N *sizeof(int)); printf("ori "); for(i=0;i<N;++i){ v[i]=rand() % 100; //printf("%d,",v[i]); } */ printf("input 2^p 3^q 5^r : p q r =>"); scanf("%d %d %d", &p,&q,&r); N = 1 << p; N=N*pow(3,q)*pow(5, r); printf("N=%d\n",N); x_r = (double *) malloc(N*sizeof(double)); x_i = (double *) malloc(N*sizeof(double)); y_r = (double *) malloc(N*sizeof(double)); y_i = (double *) malloc(N*sizeof(double)); //initial data for(n=0;n<N;++n) { x_r[n] = n; x_i[n] = 0; } t1 = clock(); fft(x_r, x_i, y_r, y_i, N); ifft(y_r, y_i, y_r, y_i, N); // t2 = clock(); printf("%f secs\n", 1.0*(t2-t1)/CLOCKS_PER_SEC);//print times print_complex(y_r, y_i, N); free(x_r); free(x_i); free(y_r); free(y_i); //sort(v,N); return 0; }
main() { complex a, b, c, n[2];; double real1, imag1, real2, imag2, d, e, f, g, mag, pha; /* a.real = 1.0; a.imag = 1.0; b.real = 2.0; b.imag = 2.0; */ printf("\nEnter real part of first number = "); scanf("%lf", &real1); printf("\nEnter imaginary part of first number = "); scanf("%lf", &imag1); printf("\nEnter real part of second number = "); scanf("%lf", &real2); printf("\nEnter imaginary part of second number = "); scanf("%lf", &imag2); a.real = real1; a.imag = imag1; b.real = real2; b.imag = imag2; n[1].real = real1; n[1].imag = imag1; n[2].real = real2; n[2].imag = imag2; printf("a = "); print_complex(a); printf("\n"); printf("b = "); print_complex(b); printf("\n"); c = add(a,b); printf("a + b = "); print_complex(c); printf("\n"); c = subtract(a,b); printf("a - b = "); print_complex(c); printf("\n"); c = multiply(a,b); printf("a * b = "); print_complex(c); printf("\n"); c = divide(a,b); printf("a / b = "); print_complex(c); printf("\n"); d = realpart(a); e = imaginarypart(a); printf("real part of a = %lf\n", d); printf("imaginary part of a = %lf\n", e); f = realpart(b); g = imaginarypart(b); printf("real part of b = %lf\n", f); printf("imaginary part of b = %lf\n", g); mag = magnitude(a); printf("magnitude of a = %lf\n", mag); pha =phase(a); printf("phase in radians of a = %lf\n", pha); mag = magnitude(b); printf("magnitude of b = %lf\n", mag); pha = phase(b); printf("phase in radians of b = %lf\n", pha); }
int main() { struct Complex *complex = (struct Complex *) calloc(COMPLEX_SIZE_DEFAULT, sizeof(struct Complex)); int size = COMPLEX_SIZE_DEFAULT; int count_of_elements = COMPLEX_SIZE_DEFAULT; struct Complex c1, c2, result; complex[0].re = COMPLEX1_RE; complex[0].im = COMPLEX1_IM; complex[1].re = COMPLEX2_RE; complex[1].im = COMPLEX2_IM; c1.re = COMPLEX1_RE; c1.im = COMPLEX1_IM; c2.re = COMPLEX2_RE; c2.im = COMPLEX2_IM; while (1) { char ch; print_main_menu(c1, c2); ch = getchar(); clear_input(); switch (ch) { case '1': { int index = 0; change_complex_interface(&c1, complex, count_of_elements); break; } case '2': { int index = 1; change_complex_interface(&c2, complex, count_of_elements); break; } case 'a': case 'A': result = add(c1, c2); print_complex(result); break; case 's': case 'S': result = sub(c1, c2); print_complex(result); break; case 'm': case 'M': result = mul(c1, c2); print_complex(result); break; case 'd': case 'D': { int error = 0; result = division(c1, c2, &error); if (!error) print_complex(result); break; } case 'r': case 'R': complex = read_file_interface(complex, &size, &count_of_elements); break; case 'w': case 'W': complex = write_file_interface(complex, &size, &count_of_elements); break; case 'q': case 'Q': return 0; default: printf("Incorrect input, please choose an existing element\n"); } } return 0; }