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