Nope, on peut pas faire ce que je veux faire avec les bitset.
Je te laisse tenter un truc comme ça :
1 2 | bitset a("1"); bitset b=a |
mais je doute que ça donne 1Et non, les mettre tous à la même taille n'est pas une option.
Nope, on peut pas faire ce que je veux faire avec les bitset.
Je te laisse tenter un truc comme ça :
1 2 | bitset a("1"); bitset b=a |
mais je doute que ça donne 1Et non, les mettre tous à la même taille n'est pas une option.
Heuu… excuse moi mais pourquoi n'est ce pas une option ?
Si vraiment c'est gênant, une mini pool, voire même un seul bitset en pool devrait être largement suffisant (et
resterais plus simple) et en plus il resterait en cache… tu gagnerais encore en vitesse !
Je me demandais si tu allais me dire que c'est pas optimisé (*touché*) ou si tu allais carrément faire un bench avec un code sous-optimisé (dans quel cas j'aurais eut plus de boulot).
Résumons :
> tu recodes bitset
> tu peux utiliser std::bitset
> on peut pas lire par blocs de 32 bits avec un bitset
> si on peut.
> on peut pas xor un petit slice avec un grand
> si on peut
> c'est pas efficace
Un peu de sérieux, en effet si on s'amuse à faire des opérations sur des blocs de 32 bits seulement ce sera bien mieux un uint32_t[] mais, à moins que 32 soit un nombre magique (et tout le monde sait que c'est 42 avec un 4 et non un 3), tu peux faire la plus part des opérations sur un bitset tout entier.
Il semblerait que tu veuilles t'accrocher à unsigned[], je t'en pris, moi j'ai défendu la (pauvre) cause de std::bitset, si tu penses encore qu'il y a un problème de std::bitset (qui rappelons le, est dans la lib standard) par rapport à un unsigned[] enveloppé… je te laisserai chercher par toi même et j’espère que personne ne croira que « quand on a besoin d'un bitset il faut coder bitset sans les mauvaises parties de bitset et ne pas utiliser bitset parceque bitset n'est pas aussi bien que bitset ». Bon, moi je m’arrête là, à moins que tu ais un argument valable contre std::bitset (et que tu l'ais vérifié d’abord cette fois ci).
plupart*
pries*
Au pire Pole4 tu reprends le source de std::bitset, et tu codes tes opérations manquantes à la main, comme ça tout le monde est content.
Parce que rajouter un facteur racine(n) n'est pas une option.
729 bitsets de 243 bits c'est pas mal mieux que 729 bitset de 177 147 bits.
Surtout quand on doit parcourir tous ces bits n fois avec n=10 000.
« Résumons :
> tu recodes bitset
> tu peux utiliser std::bitset
> on peut pas lire par blocs de 32 bits avec un bitset
> si on peut.
> on peut pas xor un petit slice avec un grand
> si on peut
> c'est pas efficace »
Nan mais merci, on peut tout en copiant bit à bit (ça, c'est effectivement possible).
Tu crois vraiment que j'ai recodé les bitset juste pour le fun ???
TLN : Ouais ou alors je demande à l'ISO de rajouter une bonne vingtaine de fonctions ou de nous laisser accéder aux unsigned. Je doute qu'ils acceptent ! :D
Tu sais, je lis ce que tu écris, ça sert à rien de le dire en double, ok ça te gênes de prendre un facteur sqrt(n) en
taille et bien relit mon post.
Bon, j'ai un avion à prendre *mode sans internet pour quelques jours*.
prie**
Je le dis en triple alors : je n'ai pas envie de me prendre un facteur 0.05 en vitesse pour une centaine de lignes en
moins.
Voilà, après, chacun son avis.