Ejemplo n.º 1
0
int main(int argc, char** argv)
{
    if (argc == 1) {
        fprintf(stderr, "must specify data source; see README\n");
        return 0;
    }
    char* in_name = argv[1];
    size_t key_len = (argc > 2) ? atoi(argv[2]) : 16;
    size_t max_iter = (argc > 3) ? atoi(argv[3]) : 10000;
    FILE* ins = fopen(in_name, "r");

    if (ins == NULL) {
        fprintf(stderr, "cannot open %s\n", in_name);
        return 1;
    }

    matrix_t* results = matrix_alloc(key_len * 8, hash_words * 32);

    avalanche(&fnv_1a, ins, max_iter, results);
    fclose(ins);

    matrix_fprintf(stdout, "% 6.4g", results);

    matrix_free(results);
    return 0;
}
Ejemplo n.º 2
0
/* This example illustrates how to access LAPACK functions directly. */
int main(int argc, char *argv[])
{
    int info = -1;
    int ipiv[3];
    /* allocate memory for matrix M */
    matrix_t *M = matrix_alloc(3,3);

    /* initialize matrix: */
    matrix_set(M, 0,0, 21);
    matrix_set(M, 0,1, 17);
    matrix_set(M, 0,2, 6);

    matrix_set(M, 1,0, -5);
    matrix_set(M, 1,1, -1);
    matrix_set(M, 1,2, -6);

    matrix_set(M, 2,0, 4);
    matrix_set(M, 2,1, 4);
    matrix_set(M, 2,2, 16);

    /* Note:
     * 1) LAPACK function names have a underscore at the end
     * 2) We could also use the libhades function matrix_lu_decomposition(M)
     *    here
     */
    dgetrf_(
        &M->rows,    /* M number of rows of M */
        &M->columns, /* N number of columns of M */
        M->M,        /* matrix M to be factored */
        &M->columns, /* LDA: leading dimension of M */
        ipiv,        /* pivot indices of dimension (min(M,N)) */
        &info
    );

    printf("info = %d\n", info);
    matrix_fprintf(stdout, M, "%g", "  ", "\n");

    /* free matrices M */
    matrix_free(M);

    return 0;
}