Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - javier_macross

#1
Programación C/C++ / Problemas con bucles for
12 Octubre 2012, 03:54 AM
Hola amigos de esta estupenda web. Ojalá y me puedan ayudar con un problema. Tengo el siguiente código:

void _vect_mat(float *vect,float **mat){
  float temp[4];

  temp[0] = vect[0];
  temp[1] = vect[1];
  temp[2] = vect[2];
  temp[3] = vect[3];

  vect[0] = (temp[0] * mat[0][0]) + (temp[1] * mat[1][0]) + (temp[2] * mat[2][0]) + (temp[3] * mat[3][0]);
  vect[1] = (temp[0] * mat[0][1]) + (temp[1] * mat[1][1]) + (temp[2] * mat[2][1]) + (temp[3] * mat[3][1]);
  vect[2] = (temp[0] * mat[0][2]) + (temp[1] * mat[1][2]) + (temp[2] * mat[2][2]) + (temp[3] * mat[3][2]);
  vect[3] = (temp[0] * mat[0][3]) + (temp[1] * mat[1][3]) + (temp[2] * mat[2][3]) + (temp[3] * mat[3][3]);
}

int main(){
  int i,j,k;

  float *vect,**mat;

  vect =  (float *)malloc(4 * sizeof(float));
  mat  = (float **)malloc(4 * sizeof(float *);
  for(i=0;i<4;i++)mat[i] = (float *)malloc(4 * sizeof(float));

  vect[0] = 1.0;
  vect[n] = ......etc.

  mat[0][0] = 1.0;
  mat[n][m] ......etc.     

  while (1){
    for(i = 0;i < 5;i++){
      for(j = 0;j< 6;j++){
        for(k = 0;k < 3600;k++)_vect_mat(vect,mat);  <---Problema
      }
    }
  }
}


Esto es sólo parte de un programa hecho con OpenGL.

El problema es que cuando llamo a la función "_vect_mat" los frames por segundo se caen a sólo 12. Pero si la quito, regresa a 75 (mi refresco de monitor).

¿Podría alguien ayudarme?

Muchas Gracias.
;-)