Esempio n. 1
0
File: Util.c Progetto: wilk/VOWLAN
struct timeval differenza(struct timeval dopo,struct timeval prima)
{
	struct timeval diff;
	normalizza( &prima);
	normalizza( &dopo);
	
	if ( dopo.tv_sec < prima.tv_sec){
		diff.tv_sec = 0;
		diff.tv_usec = 0;
	}
	else {
		diff.tv_sec = dopo.tv_sec - prima.tv_sec;	/* Sottraggo i secondi tra di loro */
		if  (dopo.tv_usec < prima.tv_usec){
			if (diff.tv_sec > 0)
			{
				/*
				Devo scalare di uno i secondi e sottrarli ai micro secondi 
				ossia aggiungo 1000000 all'ultima espressione
				*/
				diff.tv_sec =diff.tv_sec - 1;
				diff.tv_usec =(dopo.tv_usec) - prima.tv_usec + SEC_IN_MCSEC;
			}
			else{
				diff.tv_usec = 0;
			}
		}
		else {
			diff.tv_usec = dopo.tv_usec - prima.tv_usec;
		}
	}
	return(diff);
}
Esempio n. 2
0
File: Util.c Progetto: wilk/VOWLAN
int minoreouguale(struct timeval *a, struct timeval *b)
{
	normalizza(a);
	normalizza(b);
	if			( a->tv_sec <  b->tv_sec ) return(1);
	else if	( a->tv_sec >  b->tv_sec ) return(0);
	else if (a->tv_usec <= b->tv_usec) return(1);
	else return(0);
}
Esempio n. 3
0
File: Util.c Progetto: wilk/VOWLAN
int somma(struct timeval tmr,struct timeval ist,struct timeval *delay)
{
	normalizza( &tmr );
	normalizza( &ist );
	
	(*delay).tv_sec = ist.tv_sec + tmr.tv_sec;
	(*delay).tv_usec = ist.tv_usec + tmr.tv_usec;
	normalizza( delay );
	return(1);
}
/*
 * MAIN
 */
int main(int argc, char **argv) {
    int temp = 0;
    int countercicli = 0;
    double tempo_esecuz, inizio;

    acquisisci(argc, argv);
    nstampa = 0;

    fout = fopen(OUTFILE, "w");
    fprintf(fout, "**** METODO UNGHERESE ****    n\nValori inseriti:\n");
    stampa();

    inizio = clock();
    normalizza();
    soluzione_iniziale_duale();

    /*finch� ci sono stazioni esposte in partenza*/
    while (esistono_a_esposti() != -1) {
        /* aggiorno soluzione duale (I J + - e delta) finch� non esistono cammini aumentanti */
        while (!cammino_aumentante())
            aggiorna_soluzione_duale();
        /*a questo punto esiste un cammino*/
        incrementa_flusso();
    }
    tempo_esecuz = clock() - inizio; /* in CLOCKS_PER_SEC */

    stampa();

    fprintf(fout, "costo totale %d\nTempo di esecuzione %lf\n", costo_totale(), tempo_esecuz);

    fclose(fout);
    printf("Risultato in OUTFILE\n");
    /*system("pause");*/
    return 0;
}