annotate scripts/miscellaneous/etime.m @ 3426:f8dde1807dee

[project @ 2000-01-13 08:40:00 by jwe]
author jwe
date Thu, 13 Jan 2000 08:40:53 +0000
parents ae7adbb591e8
children 22bd65326ec1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2847
8b262e771614 [project @ 1997-03-27 16:18:26 by jwe]
jwe
parents: 2314
diff changeset
1 ## Copyright (C) 1996, 1997 John W. Eaton
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
2 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
3 ## This file is part of Octave.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
4 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
6 ## under the terms of the GNU General Public License as published by
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
7 ## the Free Software Foundation; either version 2, or (at your option)
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
8 ## any later version.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
9 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
13 ## General Public License for more details.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
14 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
15 ## You should have received a copy of the GNU General Public License
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
16 ## along with Octave; see the file COPYING. If not, write to the Free
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
17 ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
18 ## 02111-1307, USA.
901
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
19
3301
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
20 ## -*- texinfo -*-
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
21 ## @deftypefn {Function File} {} etime (@var{t1}, @var{t2})
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
22 ## Return the difference (in seconds) between two time values returned from
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
23 ## @code{clock}. For example:
3426
f8dde1807dee [project @ 2000-01-13 08:40:00 by jwe]
jwe
parents: 3408
diff changeset
24 ##
3301
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
25 ## @example
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
26 ## t0 = clock ();
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
27 ## # many computations later...
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
28 ## elapsed_time = etime (clock (), t0);
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
29 ## @end example
3426
f8dde1807dee [project @ 2000-01-13 08:40:00 by jwe]
jwe
parents: 3408
diff changeset
30 ##
3301
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
31 ## @noindent
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
32 ## will set the variable @code{elapsed_time} to the number of seconds since
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
33 ## the variable @code{t0} was set.
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 2847
diff changeset
34 ## @end deftypefn
3408
ae7adbb591e8 [project @ 2000-01-06 08:29:11 by jwe]
jwe
parents: 3407
diff changeset
35 ## @seealso{tic, toc, clock, and cputime}
901
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
36
2314
949ab8eba8bc [project @ 1996-07-12 03:58:02 by jwe]
jwe
parents: 2313
diff changeset
37 ## Author: jwe
949ab8eba8bc [project @ 1996-07-12 03:58:02 by jwe]
jwe
parents: 2313
diff changeset
38
2311
2b5788792cad [project @ 1996-07-11 20:18:38 by jwe]
jwe
parents: 2303
diff changeset
39 function secs = etime (t1, t0)
901
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
40
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
41 if (nargin != 2)
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
42 usage ("etime (t1, t0)");
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
43 endif
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
44
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
45 if (is_vector (t1) && length (t1) == 6 && is_vector (t0) && length (t0) == 6)
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
46
1021
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
47 if (t1 (1) != t0 (1))
1518
84bd88b8acee [project @ 1995-10-04 03:35:16 by jwe]
jwe
parents: 1337
diff changeset
48 error ("etime: can't handle timings over year boundaries yet");
1021
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
49 endif
901
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
50
2303
5cffc4b8de57 [project @ 1996-06-24 09:15:24 by jwe]
jwe
parents: 1887
diff changeset
51 ## XXX FIXME XXX -- could check here to ensure that t1 and t0 really do
5cffc4b8de57 [project @ 1996-06-24 09:15:24 by jwe]
jwe
parents: 1887
diff changeset
52 ## make sense as vectors returned from clock().
901
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
53
1337
52a3f38cbfeb [project @ 1995-08-25 02:00:18 by jwe]
jwe
parents: 1315
diff changeset
54 days_in_months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
1021
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
55
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
56 if (is_leap_year (t1 (1)))
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
57 days_in_months (2) = days_in_months (2) + 1;
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
58 endif
901
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
59
1021
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
60 d1 = sum (days_in_months (1:(t1 (2) - 1))) + t1 (3);
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
61 d0 = sum (days_in_months (1:(t0 (2) - 1))) + t0 (3);
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
62
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
63 s1 = 86400 * d1 + 3600 * t1 (4) + 60 * t1 (5) + t1 (6);
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
64 s0 = 86400 * d0 + 3600 * t0 (4) + 60 * t0 (5) + t0 (6);
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
65
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
66 secs = s1 - s0;
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
67
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
68 else
4ebc7911ab98 [project @ 1995-01-10 23:19:42 by jwe]
jwe
parents: 1014
diff changeset
69 error ("etime: args are not 6-element vectors");
901
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
70 endif
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
71
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
72
d99574d49d19 [project @ 1994-11-09 18:39:51 by jwe]
jwe
parents:
diff changeset
73 endfunction