Example #1
0
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;
}
Example #2
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;
}
Example #3
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);

}
Example #4
0
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);
}
Example #5
0
File: main.c Project: Goostavo/shii
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;
}
Example #6
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;
}