亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mpi.cpp

?? mpi并行計算的c++代碼 可用vc或gcc編譯通過 可以用來搭建并行計算試驗環境
?? CPP
字號:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//* * *  (C) 2001 by Argonne National Laboratory. *      See COPYRIGHT in top-level directory. */#include "mpi.h"#include <windows.h>#include <math.h>#include <stdio.h>#define RGBtocolor_t(r,g,b) ((color_t)(((unsigned char)(r)|((unsigned short)((unsigned char)(g))<<8))|(((unsigned long)(unsigned char)(b))<<16)))#define getR(r) ((int)((r) & 0xFF))#define getG(g) ((int)((g>>8) & 0xFF))#define getB(b) ((int)((b>>16) & 0xFF))typedef int color_t;int mpi_send_xyminmax(double xmin, double ymin, double xmax, double ymax);extern HWND g_hWnd;extern HDC g_hDC;extern int g_width, g_height;extern HANDLE g_hMutex;static int g_num_colors;static int g_max_iter;static color_t *colors;MPI_Comm comm = MPI_COMM_NULL;static color_t getColor(double fraction, double intensity){    /* fraction is a part of the rainbow (0.0 - 1.0) = (Red-Yellow-Green-Cyan-Blue-Magenta-Red)    intensity (0.0 - 1.0) 0 = black, 1 = full color, 2 = white    */    double red, green, blue;    int r,g,b;    double dtemp;    fraction = fabs(modf(fraction, &dtemp));    if (intensity > 2.0)	intensity = 2.0;    if (intensity < 0.0)	intensity = 0.0;    dtemp = 1.0/6.0;    if (fraction < 1.0/6.0)    {	red = 1.0;	green = fraction / dtemp;	blue = 0.0;    }    else    {	if (fraction < 1.0/3.0)	{	    red = 1.0 - ((fraction - dtemp) / dtemp);	    green = 1.0;	    blue = 0.0;	}	else	{	    if (fraction < 0.5)	    {		red = 0.0;		green = 1.0;		blue = (fraction - (dtemp*2.0)) / dtemp;	    }	    else	    {		if (fraction < 2.0/3.0)		{		    red = 0.0;		    green = 1.0 - ((fraction - (dtemp*3.0)) / dtemp);		    blue = 1.0;		}		else		{		    if (fraction < 5.0/6.0)		    {			red = (fraction - (dtemp*4.0)) / dtemp;			green = 0.0;			blue = 1.0;		    }		    else		    {			red = 1.0;			green = 0.0;			blue = 1.0 - ((fraction - (dtemp*5.0)) / dtemp);		    }		}	    }	}    }    if (intensity > 1)    {	intensity = intensity - 1.0;	red = red + ((1.0 - red) * intensity);	green = green + ((1.0 - green) * intensity);	blue = blue + ((1.0 - blue) * intensity);    }    else    {	red = red * intensity;	green = green * intensity;	blue = blue * intensity;    }    r = (int)(red * 255.0);    g = (int)(green * 255.0);    b = (int)(blue * 255.0);    return RGBtocolor_t(r,g,b);}static int Make_color_array(int num_colors, int max, color_t colors[]){    double fraction, intensity;    int i;    intensity = 1.0;    for (i=0; i<max; i++)    {	fraction = (double)(i % num_colors) / (double)num_colors;	colors[i] = getColor(fraction, intensity);    }    return 0;}static void getRGB(color_t color, int *r, int *g, int *b){    *r = getR(color);    *g = getG(color);    *b = getB(color);}int mpi_connect_to_pmandel(const char *port, int &width, int &height){    int result;    MPI_Status status;    MPI_Info info;    /*char err[100];*/    MPI_Info_create(&info);    result = MPI_Comm_connect((char*)port, info, 0, MPI_COMM_WORLD, &comm);    if (result != MPI_SUCCESS)    {	MessageBox(NULL, "MPI_Comm_connect failed", "Error", MB_OK);	return -1;    }    MPI_Recv(&width, 1, MPI_INT, 0, 0, comm, &status);    MPI_Recv(&height, 1, MPI_INT, 0, 0, comm, &status);    MPI_Recv(&g_num_colors, 1, MPI_INT, 0, 0, comm, &status);    MPI_Recv(&g_max_iter, 1, MPI_INT, 0, 0, comm, &status);    g_width = width;    g_height = height;    colors = new color_t[g_max_iter+1];    Make_color_array(g_num_colors, g_max_iter, colors);    colors[g_max_iter] = 0; /* add one on the top to avoid edge errors */    /*    sprintf(err, "num_colors = %d", g_num_colors);    MessageBox(NULL, err, "Note", MB_OK);    */    return 0;}int mpi_send_xyminmax(double xmin, double ymin, double xmax, double ymax, int max_iter){    int result;    char err[100];    RECT r;    if (xmin != xmax && ymin != ymax && g_hDC)    {	r.left = 0;	r.right = g_width;	r.top = 0;	r.bottom = g_height;	FillRect(g_hDC, &r, (HBRUSH)GetStockObject(BLACK_BRUSH));    }    result = MPI_Send(&xmin, 1, MPI_DOUBLE, 0, 0, comm);    if (result != MPI_SUCCESS)    {	sprintf(err, "send failed: error %d", result);	MessageBox(NULL, err, "Error", MB_OK);	return -1;    }    result = MPI_Send(&ymin, 1, MPI_DOUBLE, 0, 0, comm);    if (result != MPI_SUCCESS)    {	sprintf(err, "send failed: error %d", result);	MessageBox(NULL, err, "Error", MB_OK);	return -1;    }    result = MPI_Send(&xmax, 1, MPI_DOUBLE, 0, 0, comm);    if (result != MPI_SUCCESS)    {	sprintf(err, "send failed: error %d", result);	MessageBox(NULL, err, "Error", MB_OK);	return -1;    }    result = MPI_Send(&ymax, 1, MPI_DOUBLE, 0, 0, comm);    if (result != MPI_SUCCESS)    {	sprintf(err, "send failed: error %d", result);	MessageBox(NULL, err, "Error", MB_OK);	return -1;    }    result = MPI_Send(&max_iter, 1, MPI_INT, 0, 0, comm);    if (result != MPI_SUCCESS)    {	sprintf(err, "send failed: error %d", result);	MessageBox(NULL, err, "Error", MB_OK);	return -1;    }    if (max_iter != g_max_iter)    {	if (colors)	    delete [] colors;	g_max_iter = max_iter;	colors = new color_t[g_max_iter+1];	Make_color_array(g_num_colors, g_max_iter, colors);	colors[g_max_iter] = 0; /* add one on the top to avoid edge errors */    }    return 0;}int mpi_get_pmandel_data(){    int temp[4];    int *buffer;    int size;    int result;    int i, j, k;    RECT r;    MPI_Status status;    for (;;)    {	result = MPI_Recv(&temp, 4, MPI_INT, 0, 0, comm, &status);	if (result != MPI_SUCCESS)	    return 0;	if (temp[0] == 0 && temp[1] == 0 && temp[2] == 0 && temp[3] == 0)	    return 0;	size = (temp[1] + 1 - temp[0]) * (temp[3] + 1 - temp[2]);	buffer = new int[size];	result = MPI_Recv(buffer, size, MPI_INT, 0, 0, comm, &status);	if (result != MPI_SUCCESS)	{	    delete buffer;	    return 0;	}	WaitForSingleObject(g_hMutex, INFINITE);	k = 0;	for (j=temp[2]; j<=temp[3]; j++)	{	    for (i=temp[0]; i<=temp[1]; i++)	    {		//SetPixel(g_hDC, i, j, colors[buffer[k]]);		SetPixelV(g_hDC, i, j, colors[buffer[k]]);		k++;	    }	}	ReleaseMutex(g_hMutex);	r.left = 0;	r.right = g_width;	r.top = 0;	r.bottom = g_height;	InvalidateRect(g_hWnd, &r, FALSE);	delete buffer;    }    return 1;}void mpi_init(){    MPI_Init(NULL, NULL);}void mpi_disconnect(){    MPI_Comm_disconnect(&comm);}void mpi_finalize(){    MPI_Finalize();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产一区二区三区| 午夜电影久久久| 午夜影院久久久| 国产美女娇喘av呻吟久久| 91福利国产成人精品照片| 国产欧美日韩综合精品一区二区| 午夜激情一区二区三区| 99久久国产免费看| 国产农村妇女毛片精品久久麻豆| 天天操天天色综合| 精品视频一区二区不卡| 亚洲人成网站影音先锋播放| 国产精品一区一区三区| 精品久久久久久久久久久久久久久久久| 亚洲四区在线观看| 成人高清免费观看| 国产精品美女视频| 国产·精品毛片| 26uuu国产一区二区三区| 日韩高清中文字幕一区| 欧美日韩成人综合| 亚洲国产精品久久人人爱蜜臀| 99国产精品一区| 亚洲欧美乱综合| 色狠狠色狠狠综合| 亚洲一区自拍偷拍| 欧美日韩高清影院| 亚洲bdsm女犯bdsm网站| 欧美日韩一级黄| 首页亚洲欧美制服丝腿| 6080午夜不卡| 精品系列免费在线观看| 久久久国产综合精品女国产盗摄| 国产在线精品一区二区不卡了| 日韩精品一区二区三区在线| 久久机这里只有精品| 日韩女优av电影在线观看| 精品制服美女久久| 国产午夜精品久久| 成人激情av网| 亚洲精品国产视频| 在线观看亚洲a| 日本伊人色综合网| 久久综合九色综合欧美就去吻 | 一区二区三区在线观看网站| av一区二区三区四区| 国产精品久久久久天堂| 成人网在线播放| 亚洲欧美一区二区久久| 精品视频123区在线观看| 日本不卡视频在线| 欧美韩国日本一区| 在线观看日韩电影| 蜜桃视频在线观看一区二区| 中文字幕精品一区二区三区精品| 91丨国产丨九色丨pron| 天天影视涩香欲综合网| 久久精品人人爽人人爽| 欧美美女bb生活片| 国产98色在线|日韩| 日欧美一区二区| 欧美精品一区二区三区蜜桃视频| 国产一区二区日韩精品| 亚洲欧洲中文日韩久久av乱码| 欧美日韩成人在线| 成人小视频在线| 七七婷婷婷婷精品国产| 日韩一区在线播放| 欧美xxxxx裸体时装秀| 97超碰欧美中文字幕| 美国av一区二区| 亚洲精品国产精品乱码不99| 精品国产免费人成电影在线观看四季 | 日韩精品一级二级| 国产婷婷一区二区| 91精品国产欧美一区二区18 | 国产一区二区调教| 一区二区三区丝袜| 国产亚洲短视频| 欧美一区二区在线看| 国产麻豆精品一区二区| 亚洲综合成人在线视频| 国产喷白浆一区二区三区| 欧美日韩国产另类不卡| 99精品国产99久久久久久白柏| 看电视剧不卡顿的网站| 午夜久久久久久电影| 中文字幕在线免费不卡| 精品1区2区在线观看| 欧美日韩一区二区三区免费看| 不卡的av电影在线观看| 国产激情视频一区二区在线观看 | 国产无人区一区二区三区| 欧美国产视频在线| 欧美一级夜夜爽| 欧美日韩国产高清一区| 在线欧美日韩精品| 97久久超碰精品国产| 波多野结衣一区二区三区| 国产成人精品影视| 国产成人午夜视频| 国产成人午夜精品影院观看视频| 激情综合色播激情啊| 国精产品一区一区三区mba桃花| 日韩成人一级片| 日产精品久久久久久久性色| 视频一区二区不卡| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品美女久久久久久2018 | 久久精品无码一区二区三区| 欧美电影免费观看高清完整版| 欧美群妇大交群中文字幕| 欧美性大战久久久久久久蜜臀| 在线日韩国产精品| 欧美区在线观看| 日韩午夜电影av| 久久综合久久综合九色| 久久精品免视看| 国产精品久久久久久久久免费丝袜| 国产蜜臀97一区二区三区 | 91麻豆swag| 欧美在线高清视频| 欧美一区在线视频| 久久久久久久综合日本| 中文一区二区在线观看| 亚洲私人黄色宅男| 午夜精品爽啪视频| 久久se这里有精品| 丁香六月综合激情| 91国产视频在线观看| 欧美日本韩国一区二区三区视频| 欧美一区三区二区| 久久精品日韩一区二区三区| 国产精品短视频| 视频一区在线视频| 韩国精品久久久| 91麻豆文化传媒在线观看| 欧美美女网站色| 国产性色一区二区| 亚洲一区二区五区| 黄页网站大全一区二区| 99精品久久免费看蜜臀剧情介绍| 欧美午夜免费电影| 久久精品在线观看| 亚洲va韩国va欧美va| 国产麻豆精品在线| 欧美情侣在线播放| 国产精品美日韩| 青青青伊人色综合久久| www.在线欧美| 欧美岛国在线观看| 亚洲精品乱码久久久久久日本蜜臀 | 成人av在线看| 欧美日韩精品免费观看视频| 国产日韩欧美精品电影三级在线| 国产精品久久久久久久第一福利| 亚洲超碰精品一区二区| 国产精品456露脸| 欧美色综合久久| 欧美国产成人精品| 色欲综合视频天天天| 日韩一区二区在线看片| 亚洲精品国产a| 国产精品一区专区| 日韩三级视频在线看| 亚洲主播在线播放| gogogo免费视频观看亚洲一| 日韩一区二区免费高清| 玉米视频成人免费看| 国产91色综合久久免费分享| 欧美一级xxx| 午夜一区二区三区视频| 色香色香欲天天天影视综合网 | 在线综合亚洲欧美在线视频| 国产精品不卡一区二区三区| 激情丁香综合五月| 日韩三级.com| 日本在线观看不卡视频| 欧美日韩国产欧美日美国产精品| 综合久久国产九一剧情麻豆| 国产精品亚洲第一区在线暖暖韩国| 欧美一区二区视频在线观看| 一区二区三区日韩在线观看| 99精品桃花视频在线观看| 国产欧美一区二区三区网站| 国产麻豆欧美日韩一区| 精品久久人人做人人爱| 国产一区二区在线视频| 91精品国产欧美日韩| 亚洲欧美日韩电影| 成人午夜免费视频| 国产日产欧产精品推荐色| 蜜桃一区二区三区在线| 日韩午夜在线影院| 视频精品一区二区| 日韩一级成人av| 麻豆91免费观看| 日韩精品一区二区三区老鸭窝| 久久国产精品99久久久久久老狼| 欧美一区二区女人|