Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int i=0,j=0;
- double interseccionN=0,unionN=0;
- for(i=ini1;i<fin1;i++){
- for(int j=0;j<sizeB;j++)
- if(vectorA[i]==vectorB[j]){
- interseccionN++;
- }
- }
- inter->k=interseccionN;
- unionN=p+sizeB;
- inter->u=unionN;
- inter->distanciaJ=interseccionN/unionN;
- pthread_exit(NULL);
- for(i=0;i<sizeA;i++){
- vectorA[i]=i;
- printf("%.2f",vectorA[i]);
- }
- printf("n");
- for(i=0;i<sizeB;i++){
- vectorB[i]=2*i;
- printf("%.2f",vectorB[i]);
- }
- printf("n");
- pthread_attr_t attr;
- pthread_attr_init(&attr);
- pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
- aux param[NUM_THREADS];
- for(t=0;t<NUM_THREADS;t++) {
- param[t].distanciaJ = 0;
- param[t].k=0;
- param[t].u=0;
- param[t].ini= t*(sizeA/NUM_THREADS)+(t<resto?t:resto);
- param[t].fin=param[t].ini+(sizeA/NUM_THREADS)+(t<resto);
- //printf("Creating thread %ldn", t);
- rc = pthread_create(&threads[t], NULL, funcion, (void *) ¶m[t]);
- if (rc) {
- printf("ERROR; return code from pthread_create() is %dn", rc);
- exit(-1);
- }
- }
- double aux22=0,aux23;
- for(t=0; t<NUM_THREADS; t++) {
- rc = pthread_join(threads[t],NULL);
- distanciaTotal+=param[t].distanciaJ;
- aux22+=param[t].k;
- aux23+=param[t].u;
- if (rc) {
- printf("ERROR; return code from pthread_join() is %dn", rc);
- exit(-1);
- }
- }
- printf("La interseccion es %.2fn",aux22);
- printf("La union es %.2fn",aux23);
- printf("La distancia de Jaccard es %.2fn",distanciaTotal);
- pthread_exit(NULL);
Add Comment
Please, Sign In to add comment