/[ascend]/trunk/base/generic/general/tm_time.c
ViewVC logotype

Contents of /trunk/base/generic/general/tm_time.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 59 - (show annotations) (download) (as text)
Sun Oct 30 01:38:20 2005 UTC (18 years, 7 months ago) by jds
File MIME type: text/x-csrc
File size: 2215 byte(s)
- prototype unit test suite based on CUnit added.
- unit tests for base/generic/general and base/generic/utilites added.
- 2nd manual rework of doxygen documentation in general and utilities.
- bug fixes (mostly general & utilities) found during test development.
- added asc_assert prototype to redirect failures to Asc_Panic() and enable decoupling assertions from NDEBUG.
- some modifications of interface & implementation to facilitate testing.
- utilities/ascPrint & utilities/ascMalloc functions now always included in base libs to minimize recompilation when an interface chooses different options.
1 /*
2 * Time module
3 * by Karl Westerberg
4 * Created: 6/90
5 * Version: $Revision: 1.1 $
6 * Version control file: $RCSfile: tm_time.c,v $
7 * Date last modified: $Date: 2000/01/25 02:21:26 $
8 * Last modified by: $Author: ballan $
9 *
10 * This file is part of the Ascend Language Interpreter.
11 *
12 * Copyright (C) 1997 Carnegie Mellon University
13 *
14 * The Ascend Language Interpreter is free software; you can redistribute
15 * it and/or modify it under the terms of the GNU General Public License as
16 * published by the Free Software Foundation; either version 2 of the
17 * License, or (at your option) any later version.
18 *
19 * The Ascend Language Interpreter is distributed in hope that it will be
20 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with the program; if not, write to the Free Software Foundation,
26 * Inc., 675 Mass Ave, Cambridge, MA 02139 USA. Check the file named
27 * COPYING. COPYING is in ../compiler.
28 */
29
30 #include <time.h>
31 #include "utilities/ascConfig.h"
32 #include "utilities/ascPanic.h"
33 #include "general/tm_time.h"
34
35 static boolean f_first = TRUE;
36
37 double tm_cpu_time(void)
38 {
39 static clock_t ref;
40 static double dref;
41 static double dcps;
42 clock_t now;
43 double dnow;
44
45 if( f_first ) {
46 dcps = (double) CLOCKS_PER_SEC;
47 ref = clock();
48 dref = (double) ref;
49 f_first = FALSE;
50 }
51 now = clock();
52 dnow = (double) now;
53
54 return( (dnow - dref)/dcps );
55 }
56
57 double tm_reset_cpu_time(void)
58 {
59 f_first = TRUE;
60 return tm_cpu_time();
61 }
62
63 void tm_cpu_time_ftn_(double *t)
64 {
65 asc_assert(NULL != t);
66 *t = tm_cpu_time();
67 }
68
69 void aftime_(double *t)
70 {
71 asc_assert(NULL != t);
72 *t = tm_cpu_time();
73 }
74
75 void tm_cpu_time_ftn(double *t)
76 {
77 asc_assert(NULL != t);
78 *t = tm_cpu_time();
79 }
80
81 void aftime(double *t)
82 {
83 asc_assert(NULL != t);
84 *t = tm_cpu_time();
85 }
86
87 void TM_CPU_TIME_FTN(double *t)
88 {
89 asc_assert(NULL != t);
90 *t = tm_cpu_time();
91 }
92
93 void AFTIME(double *t)
94 {
95 asc_assert(NULL != t);
96 *t = tm_cpu_time();
97 }

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22