コード例 #1
0
ファイル: main.cpp プロジェクト: gaoxiaojun/task-schedulers
int main (int argc, char * const argv[]) {    
    dependency_test1();
    //dependency_test2();
    dependency_test3();
    mandelbrot_test();
    return 0;
}
コード例 #2
0
ファイル: mandelbrot.c プロジェクト: Alex-Ferguson/mandelbrot
int main(int argc, char *argv[])
{
	image_meta image;
	image = image_meta_gen(argc, argv);
	
	FILE *file;
	colour *rgb;
	double xdiff, ydiff, a, b;
	int ypx, xpx;
	
	if(!(rgb = malloc(image.width * image.height * sizeof(colour)))) {
		fprintf(stderr, "Memory allocation error!\n");
		exit(MEM_ERROR);
	}
	
	if(!(file = fopen(image.file_name, "w"))) {
		fprintf(stderr, "File access error!\n");
		free(rgb);
		exit(FILE_ERROR);
	} else {
		printf("Generating image...\n");
		fprintf(file, "P6 %d %d 255\n", image.width, image.height);
		xdiff = image.xmax - image.xmin;
		ydiff = image.ymax - image.ymin;
		
		#pragma omp parallel 
		{
			#pragma omp for schedule(dynamic)
			for(ypx = 0; ypx < image.height; ypx++) {
				for(xpx = 0; xpx < image.width; xpx++) {
					double a = image.xmin + xpx * xdiff / image.width;
					double b = image.ymax - ypx * ydiff / image.height;
					double complex num = a + b * I;
					rgb[ypx * image.width + xpx] = rgb_gen(mandelbrot_test(num));
				}
			}
		}
		
		fwrite(rgb, sizeof(colour), image.width * image.height, file);
		fclose(file);
	}
	exit(EXEC_SUCCESS);
}