Increase in efficiency with Module
- To: mathgroup at smc.vnet.net
- Subject: [mg40050] Increase in efficiency with Module
- From: "Aaron E. Hirsh" <aehirsh at stanford.edu>
- Date: Mon, 17 Mar 2003 03:35:18 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
I would be grateful if someone could explain the difference in
efficiency between the following two simple programs. ry is a list of
length n. For n = 1000, the program using Module takes 1 second on my
laptop, whereas the program without Module takes 75 seconds.
ftauc = Compile[{{ry, _Real, 1}, {n, _Real, 0}},
Module[{i,
j, a},
i = 1;
a = 0;
Do[
j = i + 1;
Do[
If[ry[[i]] < ry[[j]], a++,
If[ry[[i]] > ry[[j]], a--]];
j++, {n - i}];
i++, {n - 1}]; a
]]
ftauc2 = Compile[{{ry, _Real, 1}, {n, _Real, 0}},
i = 1;
a = 0;
Do[
j = i + 1;
Do[
If[ry[[i]] < ry[[j]], a++, If[ry[[i]] > ry[[j]], a--]];
j++, {n - i}];
i++, {n - 1}]; a
]
thank you,
--
Aaron E. Hirsh
Center for Computational Genetics and Biological Modeling
Department of Biological Sciences
Stanford University
tel. (650) 723-4952
fax. (650) 725-0180
- Follow-Ups:
- Re: Increase in efficiency with Module
- From: Dr Bob <drbob@bigfoot.com>
- Re: Increase in efficiency with Module