int main(int argc, char *argv[]) { int num[SIZE_INT]; int value = 0; if(parseArgument(argc, argv, &value)) { printf("Not a formatted number.\n"); /* Return error */ exit(-1); } printf("Value: %d\n", value); /* Printing value */ printf("Binary: "); intToBinary(value, num); printNumber(num); printf("Comp1: "); intToComp1(value, num); printNumber(num); printf("Comp2: "); intToComp2(value, num); printNumber(num); return 0; /* Return success */ }
int main(int argc, const char * argv[]) { unsigned long long a = 0; unsigned long long x = 0; unsigned long long n = 0; unsigned long long result = 1; scanf("%llu %llu %llu",&a, &x, &n); char * binary = intToBinary(x); printf("%s\n", binary); while (x > 0){ if (x % 2 == 1){ //result = (result * a) % n; result = multiplyMod(result, a, n); } printf("%llu\n", a % n); x = x >> 1; a = multiplyMod(a, a, n); } printf("%llu\n", result); return 0; }
int main(int argc, char* argv[]){ int rank, size, n, i, j, elementiXproc, stage, length, next; orderedAfterSwap *m; char *binary; FILE *file; float *elementi, *mieiElementi, *result; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); if(argc<2) { printf("Numero argomenti non sufficiente: %d richiesto %d", argc-1, 1); MPI_Abort(MPI_COMM_WORLD, 0); return 1; } if(rank==0) { writeFile(); file = fopen(argv[1],"rb"); if(file==NULL) { printf("Non è stato possibile aprire il file: %s", argv[1]); MPI_Abort(MPI_COMM_WORLD, 0); return 1; } fread(&n, sizeof(int), 1, file); elementiXproc = n/size; mieiElementi = malloc(sizeof(float)*elementiXproc); elementi = malloc(sizeof(float)*elementiXproc); fread(mieiElementi, sizeof(float), elementiXproc, file); for(i=1; i<size; i++){ MPI_Send (&elementiXproc, 1, MPI_INT, i, 0, MPI_COMM_WORLD); fread(elementi, sizeof(float), elementiXproc, file); MPI_Send (elementi, elementiXproc, MPI_FLOAT, i, 0, MPI_COMM_WORLD); } fclose(file); result = malloc(sizeof(float)*n); } else { MPI_Recv (&elementiXproc, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); mieiElementi = malloc(sizeof(float)*elementiXproc); MPI_Recv (mieiElementi, elementiXproc, MPI_FLOAT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); elementi = malloc(sizeof(float)*elementiXproc); } qsort(mieiElementi, elementiXproc, sizeof(float), floatcomp); length = log(size)/log(2); binary = intToBinary(rank,length); for(stage=0; stage<length; stage++) { if(binary[stage]=='0'){ binary[stage] = '1'; next = binaryToInt(binary, length); binary[stage] = '0'; MPI_Send (mieiElementi, elementiXproc, MPI_FLOAT, next, 0, MPI_COMM_WORLD); MPI_Recv (elementi, elementiXproc, MPI_FLOAT, next, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); m = swapMin(mieiElementi,elementi,elementiXproc); mieiElementi = m->mieiElementi; } else { binary[stage] = '0'; next = binaryToInt(binary, length); binary[stage] = '1'; MPI_Recv (elementi, elementiXproc, MPI_FLOAT, next, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); MPI_Send (mieiElementi, elementiXproc, MPI_FLOAT, next, 0, MPI_COMM_WORLD); m = swapMax(mieiElementi,elementi,elementiXproc); mieiElementi = m->mieiElementi; } } MPI_Gather(mieiElementi, elementiXproc, MPI_FLOAT, result, elementiXproc, MPI_FLOAT, 0, MPI_COMM_WORLD); if(rank==0){ printf("[ "); for(j=0; j<n; j++) { printf("%f ", result[j]); } printf("] \n"); free(result); } free(m); free(binary); free(mieiElementi); free(elementi); MPI_Finalize(); return 0; }
bool CheckSign(int nValue) { printf("Input numeber : %d\n", nValue); printf("%s\n", intToBinary(nValue)); return (nValue & 0x4); }