jeudi 18 juin 2009

vacances

Non, ce n'est pas les vacances, c'est même tout l'inverse, c'est la période délicate où tous découvrent les examens, fête dignement leurs diplômes en nageant dans la fontaine, font des courses en saladier attachés derrière des voitures... Bref, ils font des trucs de cinglés.
  
Donc moi, au milieu de tout ça, je passe tranquillement mes journées sur un avatar de paint, à dessiner des carrés. Non pas que je me sois récemment pris d'un ammmmmmmmmmmour passionné et irrationnel pour les cas particuliers de losanges, je préfère de loin...(je vous dis pas qu[o]i)
  
Et j'en ai besoin pour mon rapport que je tappe actuellement avec ces lettres si étranges qu'on semble incapable de les reconnaître loin au delà de l'Ukraine. Et comme je ne suis pas un autochtone, j'ai été formé à penser qu'un bon schéma vaut mieux que mille discours.
  
Les profs d'ici ne schématisent jamais rien. Ils écrivent tout juste quelques équations parfois. Mais un zoli tit dessin qui pourrait permettre de comprendre ce qu'ils racontent en 5 minutes, jamais. Donc j'en mets plein dans mon rapport pour compenser.
  
Bon c'est pas tout ça mais j'avais un truc important à dire... Ah oui, je serais en Suisse entre le 28 juillet et le 31 août parce qu'ils ont accepté de m'engager et donc que je reviens ici après.
  
Ah et sinon, je vous donne le code d'une fonction attribuée à M. John Carmack dont j'espère qu'elle me permettra d'aller encore plus vite dans ce petit bout de programme à moi que mon job me pousse actuellement à traduire en C/C++
  
float Q_rsqrt( float number ){
  long i;
  float x2, y;
  const float threehalfs = 1.5F;
 
  x2 = number * 0.5F;
  y = number;
  i = * ( long * ) &y;
// evil floating point bit level hacking 
  i = 0x5f3759df - ( i >> 1 );
// what the fuck? 
  y = * ( float * ) &i;
  y = y * ( threehalfs - ( x2 * y * y ) );
// 1st iteration 
 
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed 
 
  #ifndef Q3_VM
  #ifdef __linux__

  assert( !isnan(y) );
// bk010122 - FPE?  
  #endif
  #endif

  return y;
}

Je vous laisse deviner comment je lui fait retourner une racine carrée au lieu de son inverse.

mercredi 3 juin 2009

Je suis un superhéro (et modeste en plus)

Sans prétention aucune - j'ai remédié à cet ultime défaut l'an passé, atteignant de fait la perfection - je bats sans regarder Batman, Superman, Spiderman, Brosnan, Megaman, Pacman et d'autres moins connus comme Robertman ou Daubeman confondu souvent et à tort avec DaubeRMan et Doberman que je bats aussi.

Tout cela pour deux raisons. La première, c'est qu'après avoir trouvé que mon programme était un peu trop lent à mon goût, j'ai un peu customisé et optimisé le code, j'en suis maintenant à ~1/50 secondes pour le processing d'une image (sans compter le temps de chargement qui est vraiment plus long). Sans entrer dans les détails techniques, ça veut dire que je peux faire du vidéo-processing en respectant le théorème de Shannon, je n'aurais même pas besoin de sous-échantillonner pour garantir le framerate. Quand on ajoute à ça que je travaille sur des images de 2048x1536 pixels avec une profondeur de 32 bits et parfois une compression RLE sans pertes, on s'aperçoit que soit je suis rentré dans les détails techniques soit vous n'avez que ça à lire :)

Et sinon, après une première révision de mon rapport, j'ai le droit de continuer à l'écrire, c'est pas assez mauvais pour que je le confie à quelqu'un d'autre. L'ennui, c'est que le Prof. nous a fait une petite visite surprise et il a vu à quoi je passe mon temps libre. Donc désormais je n'ai plus le choix: je dois faire tout mon rapport en russe. Ça va encore faire mal à la tête tout ça...