From cc504687bfd01b55bff1df00d9e6a0fa5d74717b Mon Sep 17 00:00:00 2001 From: wcancino Date: Mon, 2 Mar 2009 15:33:24 +0000 Subject: [PATCH] git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1468 331e1502-861f-0410-8da2-ba01fb791d7f --- .../branches/PhyloMOEA/PhyloMOEA/utils.cpp | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/contribution/branches/PhyloMOEA/PhyloMOEA/utils.cpp b/contribution/branches/PhyloMOEA/PhyloMOEA/utils.cpp index 1c4390695..c94b7c0a3 100644 --- a/contribution/branches/PhyloMOEA/PhyloMOEA/utils.cpp +++ b/contribution/branches/PhyloMOEA/PhyloMOEA/utils.cpp @@ -36,6 +36,31 @@ extern double pcrossover, pmutation, kappa, alpha; extern unsigned int ngenerations, popsize, ncats; extern LikelihoodCalculator *lik_calc_ptr; + +int timeval_subtract (struct timeval *result, struct timeval *x, struct timeval *y) +{ +/* Perform the carry for the later subtraction by updating y. */ + if (x->tv_usec < y->tv_usec) { + int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; + y->tv_usec -= 1000000 * nsec; + y->tv_sec += nsec; + } + + if (x->tv_usec - y->tv_usec > 1000000) { + int nsec = (x->tv_usec - y->tv_usec) / 1000000; + y->tv_usec += 1000000 * nsec; + y->tv_sec -= nsec; + } + + /* Compute the time remaining to wait. + tv_usec is certainly positive. */ + result->tv_sec = x->tv_sec - y->tv_sec; + result->tv_usec = x->tv_usec - y->tv_usec; + + /* Return 1 if result is negative. */ + return x->tv_sec < y->tv_sec; +} + void welcome_message() { cout << "\nPhyloMOEA, a program for multi-criteria phylogenetic inference\n";