[Tutor] how to speed up this code?
Pujo Aji
ajikoe at gmail.com
Thu Oct 13 08:41:15 CEST 2005
I have code like this:
def f(x,y):
return math.sin(x*y) + 8 * x
def main():
n = 2000
a = zeros((n,n), Float)
xcoor = arange(0,1,1/float(n))
ycoor = arange(0,1,1/float(n))
for i in range(n):
for j in range(n):
a[i,j] = f(xcoor[i], ycoor[j]) # f(x,y) = sin(x*y) + 8*x
print a[1000,1000]
pass
if __name__ == '__main__':
main()
I try to make this run faster even using psyco, but I found this still
slow, I tried using java and found it around 13x faster...
public class s1 {
/**
* @param args
*/
public static int n = 2000;
public static double[][] a = new double[n][n];
public static double [] xcoor = new double[n];
public static double [] ycoor = new double[n];
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i=0; i<n; i++){
xcoor[i] = i/(float)(n);
ycoor[i] = i/(float)n;
}
for (int i=0; i<n; i++){
for (int j=0; j<n; j++){
a[i][j] = f(xcoor[i], ycoor[j]);
}
}
System.out.println(a[1000][1000]);
}
public static double f(double x, double y){
return Math.sin(x*y) + 8*x;
}
}
Can anybody help?
pujo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20051013/0cab59a3/attachment.html
More information about the Tutor
mailing list