3
« en: Martes 9 de Diciembre de 2008, 16:27 »
Bueno pues como leéis en el título del post, después de hacer todo mi programa, ahora voy a tratar de optimizarlo, y voy a ver si me podéis echar una mano.
El caso es que mi código es un bucle que se realiza millones de veces, por lo que reducir el tiempo de computación de cualkier instrucción dentro del bucle conlleva el ahorro de bastante tiempo.
Según he visto, y es curioso, una de las cosas que más tarda en mi código es la generación de un número aleatorio con: random(rand_max);...!!!
Alguien sabe alguna forma de generar un número aleatorio de forma más rápida???!!!!
Otra cosa que quería saber es si me podéis ayudar con esto:
for (i=0;i<5;i++){
cvSetReal2D(A,i,0,(double) X*X-Y*Y);
cvSetReal2D(A,i,1,(double) 2*X*Y);
cvSetReal2D(A,i,2,(double) X);
cvSetReal2D(A,i,3,(double) Y);
cvSetReal2D(A,i,4,(double) 1.0);
}
Esta es la forma que tengo de asignar los valores a una matriz, pero me gustaría saber si lo puedo hacer de una forma directa sin usar un bucle,algo del siguiente estilo...:
cvSetReal2D(A,i,(double) X[0]*X[0]-Y[0]*Y[0],(double) X[1]*X[1]-Y[1]*Y[1],(double) X[2]*X[2]-Y[2]*Y[2],(double) X[3]*X[3]-Y[3]*Y[3],(double) X[4]*X[4]-Y[4]*Y[4]);
así asigno a la columna "i" ese vector, no sé o algo que me sirva, escucho proposiciones...un saludo y muchas gracias por adelantado!!!!!