RosettaCodeData/Task/Time-a-function/Aime/time-a-function.aime

51 lines
470 B
Text
Raw Permalink Normal View History

2013-04-11 01:07:29 -07:00
integer
identity(integer x)
{
2019-09-12 10:33:56 -07:00
x;
2013-04-11 01:07:29 -07:00
}
integer
sum(integer c)
{
integer s;
s = 0;
while (c) {
s += c;
c -= 1;
}
2019-09-12 10:33:56 -07:00
s;
2013-04-11 01:07:29 -07:00
}
real
2019-09-12 10:33:56 -07:00
time_f(integer (*fp)(integer), integer fa)
2013-04-11 01:07:29 -07:00
{
date f, s;
time t;
2019-09-12 10:33:56 -07:00
s.now;
2013-04-11 01:07:29 -07:00
fp(fa);
2019-09-12 10:33:56 -07:00
f.now;
2013-04-11 01:07:29 -07:00
2019-09-12 10:33:56 -07:00
t.ddiff(f, s);
2013-04-11 01:07:29 -07:00
2019-09-12 10:33:56 -07:00
t.microsecond / 1000000r;
2013-04-11 01:07:29 -07:00
}
integer
main(void)
{
o_real(6, time_f(identity, 1));
o_text(" seconds\n");
o_real(6, time_f(sum, 1000000));
o_text(" seconds\n");
2019-09-12 10:33:56 -07:00
0;
2013-04-11 01:07:29 -07:00
}