//--------------------------------------------------------------------
int main(int argc, char* argv[])
{
	t_graph *graphs = NULL;
	int num_graphs = 4;

	allocate_training_graphs(graphs, num_graphs);
	if (!read_graphs(graphs)) {
		printf("Cannot find input graphs! Please specify the full path!\n");
		printf("Press Enter ...");
		getchar();
		return 1;
	}

	compute_global_variables(graphs, num_graphs);

	int num_variables = 10;

	double* vars_values = new double[num_variables];

	t_chromosome a_chromosome;
	if (!a_chromosome.from_file_simplified("best.txt")) {
		printf("Cannot find input solution! Please specify the full path!\n");
		printf("Press Enter ...");
		getchar();
		return 1;
	}

	double *partial_values_array = new double[a_chromosome.code_length];

	printf("graph #% || GP length || NN length || shortest path length || GP % || NN % \n");

	for (int k = 0; k < num_graphs; k++) {
		double path_length_gp = run_gp_heuristic(a_chromosome, graphs[k], num_variables, vars_values, partial_values_array);
		double path_length_nn = run_nn_heuristic(a_chromosome, graphs[k]);
		printf("[%d]  %lf  %lf %lf %lf %lf\n", k, path_length_gp, path_length_nn, graphs[k].optimal_length, (path_length_gp - graphs[k].optimal_length) / graphs[k].optimal_length * 100, (path_length_nn - graphs[k].optimal_length) / graphs[k].optimal_length * 100);
	}
	delete[] partial_values_array;

	delete[] vars_values;
	delete_training_graphs(graphs, num_graphs);

	printf("Press Enter ...");
	getchar();

	return 0;
}
int main(int argc, char *argv[]) {
	long size, vr;
	long *vals 	= malloc(80000000*sizeof(long));
	long *col_inds 	= malloc(80000000*sizeof(long));
	long *row_ptrs 	= malloc(80000000*sizeof(long));
	double *vec 	= malloc(80000000*sizeof(double));

//	printf("Enter size: \n");
//	scanf("%d",&size);
//	printf("Enter row ptr size: \n");
//	scanf("%d",&vr);

	read_graphs(argv,&size,&vr,vals,col_inds,row_ptrs,vec);
		
				
	long i;
//	printf("\n Vals: \n");
//	for(i=0; i<size; i++) {
//		printf("%ld ",vals[i]);
//	}
//
//	printf("\n Cols: \n");
//	for(i=0; i<size; i++) {
//		printf("%ld ",col_inds[i]);
//	}
//
//	printf("\n Rows: \n");
//	for(i=0; i<vr; i++) {
//		printf("%ld ",row_ptrs[i]);
//	}
//
//	printf("\n Vector: \n");
//	for(i=0; i<vr-1; i++) {
//		printf("%f ",vec[i]);
//	}
	
	pagerank(size,vr,vals,col_inds,row_ptrs,vec);
}