int main (int argc, char** argv) {

	if (argc == 4) {

		srand (time(NULL));
		int size = atoi(argv[1]);
		int n_threads = atoi(argv[2]);
		int print = atoi(argv[3]);

		matrix = (int*) malloc (sizeof(int) * size * size);
		mask = (int*) calloc (size * size, sizeof(int));
		points = (struct found_point*) malloc (sizeof(struct found_point)
			* n_threads);
		int nfill = 100000;

		set_threads_number(n_threads);
		set_matrix_values(size);
		set_mask_middle_point(size);
		invperc(size, nfill);

		if (print == 1) {
			int i, j;
			for (i = 0; i < size; ++i) {
				for (j = 0; j < size; ++j) {
					printf("%d ", mask[i*size + j]);
				}
				printf("\n");
			}
		}

		free(matrix);
		free(mask);
		free(points);

	} else {


	}

	return 0;
}
Ejemplo n.º 2
0
Archivo: matrix.c Proyecto: lukhio/matC
matrix *parse_matrix_from_text (const char *text_matrix) {
    matrix * mat;
    char *token, *end;
    float **parsed_data;
    // we must use another container to prevent segfaults
    char *raw_data = strdup(text_matrix);
    const char *delim = "}";
    int height        = get_matrix_height(text_matrix);
    int width         = get_matrix_width(text_matrix);
    int i             = 0;

    mat               = new_matrix(height, width);
    parsed_data       = malloc(height*sizeof(float*));

    for (size_t i = 0; i < height; ++i)
        parsed_data[i] = malloc(width*sizeof(float));

    token = strtok(raw_data, delim);

    while(token != NULL) {
        // moving to first digit
        while(!isdigit(*token)) {
            token++;
        }

        for (size_t j = 0; j < width; ++j) {
            float f = strtof(token, &end);
            parsed_data[i][j] = f;
            token = end;
            token++;
        }

        token = strtok(NULL, delim);
        i++;
    }

    set_matrix_values(mat, parsed_data);

    return mat;
}