int main (int argc, char **argv) { srand( 20141 ); int c, //guarda a opçao (-i, -o, -r) n = -1; //guarta a dimensao da matriz (n x n) char *arq_out; //string p/ guardar o caminho do arquivo de saida FILE *input = stdin, *output = stdout; double *A = NULL, tempo_inv, tempo_err; while ((c = getopt(argc, argv, "i:o:r:")) != -1) { switch (c) { case 'i': A = le_entrada (optarg, &n); break; case 'o': output = fopen (optarg, "w"); break; case 'r': n = atoi(optarg); break; default: //err = 1; break; } } if ( (A == NULL) && (n == -1) ) // se n foi dado um arquivo como entrada A = le_entrada ("stdin", &n);// le da entrada padrao if ( (A == NULL) && (n != -1) ) // se foi dado apenas a dimensao da matriz A = generateSquareRandomPositiveDefiniteMatrix( n ); // if (!Check_Matrix(A, n)) { // fprintf (stderr, "Matriz não definida positiva.\n"); // return -1; // } double *A_inv = inverse (A, n, &tempo_inv); double res = residuo (A, A_inv, n, &tempo_err); imprime_saida (A_inv, n, tempo_inv, tempo_err, res, output); free(A); free(A_inv); return 0; }
int main(){ int n; /* Numero de elementos nao nulos na matriz A */ int m; /* Ordem da matriz A */ tupla A[MAX]; tupla atual; double v[5],resp[5]; int i; le_entrada(&n,A,&m,v); for(i=0;i<n;i++){ printf("%d %d %lf\n",A[i].x,A[i].y,A[i].valor); } for(i=0;i<m;i++){ printf("%lf ",v[i]); } printf("\n"); multiplica_matriz_por_vetor(n,m,A,v,resp); for(i=0;i<m;i++){ printf("%lf ",resp[i]); } printf("\n"); return 0; }
void main(int x, char** args){ int Tam_Thread = 2; int turn = 1, VarComp = 0, i; bool wantp = false, wantq = false; le_entrada(args, &Tam_Thread); omp_set_num_threads(Tam_Thread); #pragma omp private(VarComp) #pragma omp sections { #pragma omp section { for(i=0; i<100; i++){ //Pre-Protocolo wantp = true; while(wantq){ if(turn == 2){ wantp = false; while(turn == 1){} wantp = true; } } VarComp++; //Pos-Protocolo #pragma omp atomic turn++; wantp = false; } } #pragma omp section { for(i=0; i<100; i++){ //Pre-Protocolo wantq = true; while(wantp){ if(turn == 1){ wantq = false; while(turn == 2){} wantq = true; } } VarComp += 10; //Pos-Protocolo #pragma omp atomic turn--; wantq = false; } } } printf("%d\n", VarComp); }
void main(int x, char** args) { int Tam_Thread; int i; le_entrada(args, &Tam_Thread); cont_T = Tam_Thread; pthread_t t[Tam_Thread+1]; int vetor[Tam_Thread]; pthread_create(&t[0], NULL, Server, NULL); for(i=1; i<=Tam_Thread; i++) { vetor[i] = i; pthread_create(&t[i], NULL, Client, (void*) &vetor[i]); } pthread_join(t[0], NULL); printf("%d\n", VarComp); }
int main(void) { char diretorio[1024]; //Diretorio corrente char entrada[1024]; //Entrada feito pelo usuário char com_matrix[10][64][1024]; //Matriz de comandos depois de processada int n_command=0; //Numero de comandos da matriz int pipe; //Flag de pipe int bkgnd[10]; //Matriz de flags de bkgnd int error_flag = 0; //flag de erro int exit_flag = 0; //flag para finalizacao inicializa(diretorio); //Loop para realizar interações le -> processa while (exit_flag == 0) { le_entrada(entrada,diretorio); error_flag = parser(entrada, com_matrix, &n_command, &pipe, bkgnd); if (error_flag == 0) exit_flag = process(com_matrix,&n_command,&pipe,bkgnd,diretorio); } return 0; }
int main(){ int n; double A[nmax][nmax]; double b[nmax]; double norma; int p[nmax]; int ret; int i; le_entrada(&n, A, b); printf("b eh :" ); for(i=0;i<n;i++) printf("%lf ",b[i]); printf("\n"); norma = norma2_sem_overflow(n,b); printf("Norma: %lf\n",norma); return 0; }