Moi je reproche à la syntaxe d'OCaml d'être bourrée d'exceptions.
exemples ? Je ne vois pas trop de quoi tu veux parler ...
le fait d'avoir des opérateurs différents pour la même opération sur des types différents, ça rend la lecture et l'apprentissage difficiles.
Ouais enfin il ne s'agit que des opérateurs numériques et il suffit de rajouter un point pour la version flottantes, c'est quand même pas trés dur à comprendre et à retenir.
Beaucoup de compilo performant sortent du C, c'est le cas de OCaml, et SmartEiffel par exemple.
si tu veux dire par là que le compilateur OCaml génére du C qui est ensuite compilé par gcc, c'est complètement faux, le compilateur ocaml génère de l'assembleur directement.
Hop, moi aussi je profite de la news pour rappeler que monotone http://www.venge.net/monotone/ existe toujours. La version 0.26 est sortie il y a 2 semaines.
Linus s'est beaucoup inspiré de monotone pour l'architecture de git. En fait la première version de git utilisait pratiquement le même façon que monotone d'organiser les données. Ça a un peu divergé depuis mais les principes sont les mêmes.
t'as "oublié" que ML est impur ? Mouarf, tu dois pas en faire beaucoup ; c'est pas un reproche évidemment mais alors épargne nous tes jugements avec les "c'est pas naturel" (sous-entendu, lisaac l'est).
L'impératif et le fonctionel sont trés bien intégré, tant au niveau de la syntaxe que de la sémantique. C'est vraiment un aspect fondamental dans la conception des langages de la famille ML. D'ailleurs le logo des anciens langages caml était un symbole ying-yang avec un lambda dans une case et l'opérateur d'affectation en caml (:=) dans l'autre [1].
Pour la boucle, ça s'écrit comme ça: for i = 0 to limit_up do f i done
Voilà il faut vraiment être d'une mauvaise foi noire pour prétendre que c'est moins naturel que la version utilisant une fonction récursive ou que le gloubiboulga syntaxique de lisaac.
Non, il faut arrêter de croire que entiers, flottants tout ça c'est interchangeable. C'est tout simplement faux et ce sont justement les langages qui convertissent joyeusement entre les deux qui entretienent la confusion.
En OCaml les types entiers ont une arithmétique d'anneau, modulo 2^31 (ou 2^63). Mais les flottants suivent l'arithmétique IEEE 754 avec tous ses comportements bizarres (valeur NaN non comparable aux autres valeurs, non-associativité a priori des opérations, etc.)
Et ça évite ce genre d'erreur facile à faire en C: double x = a / b; où a et b sont des entiers.
Sérieusement ce qui est vraiment dommage c'est qu'ils n'ont pas utilisé l'extension objet de OCaml pour définir un type Nombre et uniffier l'interface des opérateurs entre les entiers et les flottants.
La PSP utilise des entêtes speciaux apparement et toutes les tentatives d'inclure les modifications dans les projets mères ont toujours echouées (un jour ca marche le lendemain plus, c'est une horreur).
Bah ils (ffmpeg) ont finalement intégré le patch pour le MPEG4/SP, ça devrait marcher ... non ?
C'est dommage que les versions modifiées ne soient pas sous forme de patch, c'est pas trop pratique là.
... parce que sinon moi je dis « les langages impératifs / orientés objets sont beacoup plus complexes à comprendre que les langages fonctionnels » (et je le pense).
Non, pas du tout. Relis la manpage.
mouarf, apprends à lire : `-ffast-math'
Sets `-fno-math-errno', `-funsafe-math-optimizations', ...
Si : l'utilité ou non d'avoir des connaissances en maths dans le cas présent.
non, au mieux t'as montré l'utilité d'avoir un processeur qui sait faire les racines carrées.
Je teste ton bout de code sans -ffast-math et avec optimisation : gcc -O3 -std=gnu99 -lm
Glibc : 4220000
DL ordre 4: 800000
DL ordre 2: 800000
-ffast-math
ça va faire que gcc va remplacer le sqrt() de base par l'instruction SQRT du coprocesseur. Du coup tu ne compares plus vraiment les mêmes choses.
-msse -mfpmath=sse
le code utilise des double précisions donc a priori le SSE ne sert à rien (ça ne fait que les flottants simple précision).
gcc--std=gnu99 -lm
Ben oui mais là le sqrt() vient toujours de la même libm, compilée avec opimisations (et en i686 sans doute). Là encore tu ne compares pas les mêmes choses ...
J'ai un ensemble fixe de points de R^3 appelé P.
Ensuite a partir d'un point donné Xi je veux chercher son plus proche "voisin" dans P.
Pour l'instant je parcours tout P en calculant les normes. Et c'est horriblement long.
C'est sûr :)
J'ai vu dans des papiers sur le net que la solution classique a ce probleme etait les kd-tree. (d'ailleurs je vois pas trop encore comment faire pour trouver ce point le plus proche avec un kd-tree. quand je vais parcourir l'arbre, je vais choisir de partir a gauche ou a droite de mon plan de separation suivant les valeurs de Xi, mais rien ne me dit que la distance forcement meilleure !)
Donc si tu as des docs la dessus n'h'site pas.
Sinon comme le faisait remarquer qqn il y a pas mal d'implémentations libres que tu peux réutiliser ou au moins lire le code pour comprendre comment ça marche. Entre autres, il y a un module kd-tree dans Biopython http://www.biopython.org/ .
Sinon il n'y a pas que les kd-trees. Une autre technique qui peut marcher c'est de simplement découper ton volume en "cases" (bins en anglais) de taille fixes de façon à ce que tu n'ais qu'un petit nombre de points par case. Pour trouver le plus proche voisin d'un point, tu n'as plus qu'à tester les autres points dans sa case et éventuellement ceux des cases à côté. Enfin ça dépend de la distribution de tes points. Ça marche bien pour des atomes dans une molécule par exemple.
si quelqu'un a de la doc sur l'implementation des kd-tree en 3d je suis preneur,
ça dépend comment tu les utilises : ce qui n'est pas évident avec les kd-tree c'est l'équilibrage (balancing), ou plutôt le rééquilibrage: c'est pas dur de construire un kd-tree équilibré à partir d'un ensemble fixe de points mais c'est plus difficile si tu veux pouvoir y ajouter/enlever des éléments.
En effet, il semble qu'il s'agisse de mutants de la bactérie, mais dans ce cas, je ne comprends pas bien l'intérêt !?
le but est (probablement, je pense, IMHO, au seul vu de l'article, etc.) uniquement d'étudier la bactérie et son interaction avec la plante afin de mieux comprendre la maladie. Le génome séquencé de la bactérie est une première étape, un outil qui permet de réaliser des souches mutantes de la bactérie qui vont permettre d'élucider les mécanismes de la maladie. Tout ceci débouchera peut-être sur un OGM (mais je sais pas si ça se fait sur un arbre fruitier ...) mais rien dans l'article n'indique cela.
[^] # Re: l'INRIA ne soutient pas suffisamment OCaml
Posté par Vivi (site web personnel) . En réponse à la dépêche Sortie de TOM 2.3. Évalué à 2.
exemples ? Je ne vois pas trop de quoi tu veux parler ...
le fait d'avoir des opérateurs différents pour la même opération sur des types différents, ça rend la lecture et l'apprentissage difficiles.
Ouais enfin il ne s'agit que des opérateurs numériques et il suffit de rajouter un point pour la version flottantes, c'est quand même pas trés dur à comprendre et à retenir.
[^] # Re: Inutile
Posté par Vivi (site web personnel) . En réponse à la dépêche Sortie de TOM 2.3. Évalué à 3.
[^] # Re: Inutile
Posté par Vivi (site web personnel) . En réponse à la dépêche Sortie de TOM 2.3. Évalué à 2.
si tu veux dire par là que le compilateur OCaml génére du C qui est ensuite compilé par gcc, c'est complètement faux, le compilateur ocaml génère de l'assembleur directement.
[^] # Monotone, le père spirituel de git mûrit lui aussi
Posté par Vivi (site web personnel) . En réponse à la dépêche Sortie de Git 1.3.0. Évalué à 3.
Linus s'est beaucoup inspiré de monotone pour l'architecture de git. En fait la première version de git utilisait pratiquement le même façon que monotone d'organiser les données. Ça a un peu divergé depuis mais les principes sont les mêmes.
[^] # Re: Epatant !
Posté par Vivi (site web personnel) . En réponse au journal Google Calendar. Évalué à 1.
y'a un calendrier à part pour les fêtes chrétiennes ... qui ne contient pas le lundi de Pâques d'ailleurs.
[^] # Re: Pffff...
Posté par Vivi (site web personnel) . En réponse au journal Un compte rendu de la conf sur isaac/lisaac. Évalué à 2.
L'impératif et le fonctionel sont trés bien intégré, tant au niveau de la syntaxe que de la sémantique. C'est vraiment un aspect fondamental dans la conception des langages de la famille ML. D'ailleurs le logo des anciens langages caml était un symbole ying-yang avec un lambda dans une case et l'opérateur d'affectation en caml (:=) dans l'autre [1].
Pour la boucle, ça s'écrit comme ça:
for i = 0 to limit_up do f i done
Voilà il faut vraiment être d'une mauvaise foi noire pour prétendre que c'est moins naturel que la version utilisant une fonction récursive ou que le gloubiboulga syntaxique de lisaac.
[1] http://cristal.inria.fr/~weis/books-fra.html
[^] # Re: Pffff...
Posté par Vivi (site web personnel) . En réponse au journal Un compte rendu de la conf sur isaac/lisaac. Évalué à 1.
[^] # Re: Pffff...
Posté par Vivi (site web personnel) . En réponse au journal Un compte rendu de la conf sur isaac/lisaac. Évalué à 4.
En OCaml les types entiers ont une arithmétique d'anneau, modulo 2^31 (ou 2^63). Mais les flottants suivent l'arithmétique IEEE 754 avec tous ses comportements bizarres (valeur NaN non comparable aux autres valeurs, non-associativité a priori des opérations, etc.)
Et ça évite ce genre d'erreur facile à faire en C: double x = a / b; où a et b sont des entiers.
[^] # Re: Pffff...
Posté par Vivi (site web personnel) . En réponse au journal Un compte rendu de la conf sur isaac/lisaac. Évalué à 1.
hmm non, pour ça les langages fonctionnels utilisent plutôt des type classes cf. http://en.wikipedia.org/wiki/Type_class .
Mais ça n'existe pas en OCaml.
[^] # Re: Comment faire un langage plus rapide que C ?
Posté par Vivi (site web personnel) . En réponse à la dépêche 23 mars: Conférence au LORIA sur Lisaac, un nouveau langage. Évalué à 2.
ouais enfin pas tant que ça.
Ça existe les bibliothèques/framework de génération de code pour compilateurs. Vous avez regardé ?
C-- http://www.cminusminus.org/
LLVM http://llvm.org/
[^] # Re: une petite connerie
Posté par Vivi (site web personnel) . En réponse au journal PSPvc is out. Évalué à 1.
Bah ils (ffmpeg) ont finalement intégré le patch pour le MPEG4/SP, ça devrait marcher ... non ?
C'est dommage que les versions modifiées ne soient pas sous forme de patch, c'est pas trop pratique là.
[^] # bof
Posté par Vivi (site web personnel) . En réponse à la dépêche 23 mars: Conférence au LORIA sur Lisaac, un nouveau langage. Évalué à 3.
... parce que sinon moi je dis « les langages impératifs / orientés objets sont beacoup plus complexes à comprendre que les langages fonctionnels » (et je le pense).
[^] # Re: Kesako ?
Posté par Vivi (site web personnel) . En réponse au journal orkut.... Évalué à 4.
euh .... non.
[^] # pareil
Posté par Vivi (site web personnel) . En réponse au journal orkut.... Évalué à 3.
# Intéressant
Posté par Vivi (site web personnel) . En réponse à la dépêche Colloque Calcul Scientifique (et les logiciels libres). Évalué à 1.
Bon sinon, la page principale parle « des travaux de leurs paires », c'est plutôt cocasse.
[^] # Re: Piste
Posté par Vivi (site web personnel) . En réponse au journal Balladeur ogg à disque dur : ça existe encore?. Évalué à 1.
[^] # Re: Le langage de mes rêves
Posté par Vivi (site web personnel) . En réponse au journal Le langage de mes rêves. Évalué à 3.
[^] # Re: Fnac et Virgin
Posté par Vivi (site web personnel) . En réponse au journal Donnedieu nous accuse de désinformation ?. Évalué à 9.
[^] # Re: En vrac
Posté par Vivi (site web personnel) . En réponse au journal Écoles, classes prépas etc etc.... Évalué à 3.
mouarf, apprends à lire :
`-ffast-math'
Sets `-fno-math-errno', `-funsafe-math-optimizations', ...
Si : l'utilité ou non d'avoir des connaissances en maths dans le cas présent.
non, au mieux t'as montré l'utilité d'avoir un processeur qui sait faire les racines carrées.
Je teste ton bout de code sans -ffast-math et avec optimisation :
gcc -O3 -std=gnu99 -lm
Glibc : 4220000
DL ordre 4: 800000
DL ordre 2: 800000
[^] # Re: En vrac
Posté par Vivi (site web personnel) . En réponse au journal Écoles, classes prépas etc etc.... Évalué à 3.
ça va faire que gcc va remplacer le sqrt() de base par l'instruction SQRT du coprocesseur. Du coup tu ne compares plus vraiment les mêmes choses.
-msse -mfpmath=sse
le code utilise des double précisions donc a priori le SSE ne sert à rien (ça ne fait que les flottants simple précision).
gcc--std=gnu99 -lm
Ben oui mais là le sqrt() vient toujours de la même libm, compilée avec opimisations (et en i686 sans doute). Là encore tu ne compares pas les mêmes choses ...
# Worldwind
Posté par Vivi (site web personnel) . En réponse au journal Et google earth pour Linux alors ????. Évalué à 5.
[^] # Re: En vrac
Posté par Vivi (site web personnel) . En réponse au journal Écoles, classes prépas etc etc.... Évalué à 2.
Ensuite a partir d'un point donné Xi je veux chercher son plus proche "voisin" dans P.
Pour l'instant je parcours tout P en calculant les normes. Et c'est horriblement long.
C'est sûr :)
J'ai vu dans des papiers sur le net que la solution classique a ce probleme etait les kd-tree. (d'ailleurs je vois pas trop encore comment faire pour trouver ce point le plus proche avec un kd-tree. quand je vais parcourir l'arbre, je vais choisir de partir a gauche ou a droite de mon plan de separation suivant les valeurs de Xi, mais rien ne me dit que la distance forcement meilleure !)
Donc si tu as des docs la dessus n'h'site pas.
En gros il faut positionner ton point cible dans le kd-tree et ensuite tu dois remonter un peu dans l'arbre et regarder les points dans le noeuds proches. Y'a une explication là par exemple :
http://www.ri.cmu.edu/pub_files/pub1/moore_andrew_1991_1/moo(...)
Sinon comme le faisait remarquer qqn il y a pas mal d'implémentations libres que tu peux réutiliser ou au moins lire le code pour comprendre comment ça marche. Entre autres, il y a un module kd-tree dans Biopython http://www.biopython.org/ .
Sinon il n'y a pas que les kd-trees. Une autre technique qui peut marcher c'est de simplement découper ton volume en "cases" (bins en anglais) de taille fixes de façon à ce que tu n'ais qu'un petit nombre de points par case. Pour trouver le plus proche voisin d'un point, tu n'as plus qu'à tester les autres points dans sa case et éventuellement ceux des cases à côté. Enfin ça dépend de la distribution de tes points. Ça marche bien pour des atomes dans une molécule par exemple.
[^] # Re: En vrac
Posté par Vivi (site web personnel) . En réponse au journal Écoles, classes prépas etc etc.... Évalué à 2.
ça dépend comment tu les utilises : ce qui n'est pas évident avec les kd-tree c'est l'équilibrage (balancing), ou plutôt le rééquilibrage: c'est pas dur de construire un kd-tree équilibré à partir d'un ensemble fixe de points mais c'est plus difficile si tu veux pouvoir y ajouter/enlever des éléments.
[^] # Re: N'empeche...
Posté par Vivi (site web personnel) . En réponse au journal Monsanto l'a dans le cul ;-). Évalué à 3.
le but est (probablement, je pense, IMHO, au seul vu de l'article, etc.) uniquement d'étudier la bactérie et son interaction avec la plante afin de mieux comprendre la maladie. Le génome séquencé de la bactérie est une première étape, un outil qui permet de réaliser des souches mutantes de la bactérie qui vont permettre d'élucider les mécanismes de la maladie. Tout ceci débouchera peut-être sur un OGM (mais je sais pas si ça se fait sur un arbre fruitier ...) mais rien dans l'article n'indique cela.
[^] # Re: N'empeche...
Posté par Vivi (site web personnel) . En réponse au journal Monsanto l'a dans le cul ;-). Évalué à 2.