Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 74 sur 182 PremièrePremière ... 2464666768697071727374757677787980818284124174 ... DernièreDernière
Affichage des résultats 2 191 à 2 220 sur 5459
  1. #2191
    Citation Envoyé par Tramb Voir le message
    Du coup, juste pour clarifier, tu veux calculer ton exponentiation via n(-1 ) multiplications (disons ça pour simplifier), puis appliquer une réduction de Barrett pour le mod ?
    C'est pas calcul de puissance puis modulo, les calculs sont trop compliqués (dans mon exemple, les nombres font jusqu'a 70 entiers 64bit).
    L'exponentiation n'est possible en un temps raisonnable et avec une utilisation mémoire restreinte parce que la réduction est effectuée avant.

    Citation Envoyé par Tramb Voir le message
    Pour des raisons de taille de code, tu ne veux pas utiliser la mod exp de ta lib ?
    La lib en question implémente une exp mod la plus efficace (en terme de temps proc) possible. Donc suivant les paramètres, elle part sur du Montgomery ou du Barrett. J'ai voulu ne garder que la partie Barrett qui est censée marcher dans tous les cas.

  2. #2192
    Citation Envoyé par zifox Voir le message
    C'est pas calcul de puissance puis modulo, les calculs sont trop compliqués (dans mon exemple, les nombres font jusqu'a 70 entiers 64bit).
    L'exponentiation n'est possible en un temps raisonnable et avec une utilisation mémoire restreinte parce que la réduction est effectuée avant.
    Ok j'avais bien mal compris


    Citation Envoyé par zifox Voir le message
    La lib en question implémente une exp mod la plus efficace (en terme de temps proc) possible. Donc suivant les paramètres, elle part sur du Montgomery ou du Barrett. J'ai voulu ne garder que la partie Barrett qui est censée marcher dans tous les cas.
    Mais pourquoi ? Pour la footprint de code ?
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  3. #2193
    Citation Envoyé par Tramb Voir le message
    Ok j'avais bien mal compris

    Mais pourquoi ? Pour la footprint de code ?
    Oui. J'ai très peu de place.

  4. #2194
    Donc tu forkes libtomcrypt et tu strippes le code que tu n'utilises pas ? Ou tu le réimplémentes ?
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  5. #2195
    Citation Envoyé par Tramb Voir le message
    Donc tu forkes libtomcrypt et tu strippes le code que tu n'utilises pas ? Ou tu le réimplémentes ?
    Je désactive le code à la compil, y'a des centaines de define pour activer / désactiver les fonctionnalités.

  6. #2196
    Alors il est plus que probable que personne n'ait testé les tetrachiées de combinaisons entre les defines, et que tu sois dans un gap
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  7. #2197
    J'ai une question de C++, vu que je suis un peu paumé (et j'ai plus de pied à force de me tirer des balles dedans).

    En gros j'ai un code de ce genre là (j'essaie apparement d'implémenter un FSM de façon aussi verbeuse que possible)

    Code:
    template<typename Roger...>
    struct Base
    {
      struct Base_E1 {
        std::variant<Roger::Rabbit...> _varA;
    
        template<typename Robert>
        A(Robert::Rabbit rob) : _varA(rob) {}
      };
    
      struct Base_E2 {
        std::variant<Roger::Rabbit...> _varB;
    
        template<typename Robert>
        B(Robert::Rabbit rob) : _varB(rob) {}
      };
     
      template<typename S>
      auto f(const S&, const Base_E1&e) { std::get<S::Rabbit>(e._varA); //etc }
    
      template<typename S>
      auto f(const S&, const Base_E2&e) { std::get<S::Rabbit>(e._varB); //etc }
    };

    et ensuite

    Code:
    struct S1 {};
    struct S2 {};
    
    struct E1 {};
    struct E2 {};
    
    struct Subclass : public Base<Alice, Bob> // Alice et Bob sont deux struct avec Rabbit dedans i.e. Alice::Rabbit et Bob::Rabbit existent
    {
      auto f(const S1&, const E1&) {}
      auto f(const S2&, const E2&) {}
    
      template<typename S, typename E> // catch all qui est censé faire planter le truc quand la transition E pour l'état S n'est pas prévue
      auto f(const S&, const E&) { assert(false); }
    };
    Mon problème, c'est que quand je fais :

    Code:
    instance_de_Subclass.f(S1, Base<Alice, Bob>::Base_E1({Alice::Rabbit{}}))
    Je me retrouve dans la version catch-all, alors que je voudrais que la version de f définie dans Base soit appelée. Est-ce que c'est une histoire ou il faut descendre le "template<typename Roger...>" devant Base_E1 et Base_E2 plutôt que de templater Base directement? Honnêtement j'ai tatonné jusqu'à avoir un truc qui compile mais je pense que j'ai raté quelque chose (clairement). Peut-être que la déduction de type préfère trouver le catch-all d'abord parce qu'il est dans la classe fille et ensuite va chercher dans la classe mère?
    Dernière modification par Thamior ; 23/03/2019 à 00h27.
    Citation Envoyé par François
    L'ordinateur cantique, c'est l'avenir.

  8. #2198
    Je suis pas sûr de tout comprendre avec les noms bidons. Mais pour les surcharges avec catch-all, c'est que, quand il y a le choix entre plusieurs, la version la plus précise est choisie. Donc si tu as le choix entre une fonction qui prend un objet de base (et donc nécessite une conversion) et un catch all (qui prend le type exact), le second est retenu.

    Pour prendre un exemple plus court que le tien : https://gcc.godbolt.org/z/Zi89Th, tu vois bien que le main retourne 2 donc appelle la version catch-all.

    Tu peux peut-être essayer de limiter ton catch-all avec des enable_if, et is_base_of ou is_convertible. Ça risque d'être moche. Ou si tous tes objets héritent d'une base commune et lointaine, utilise celle-ci au lieu d'un template.

    Il manquerait pas aussi des typename devant les Roger::Rabbit et Robert::Rabbit ?

  9. #2199
    Tu veux vraiment pourvoir compiler avec un appel au catch all ? À la limite, tu peux le rendre encore moins prioritaire avec
    Code:
    auto f(...) { assert(false); }
    Aussi je sais pas à quel point c'est l'exemple exacte que tu exécutes, mais Base<Alice, Bob>::Base_E1({Alice::Rabbit{}}) est un rvalue référence, (un objet temporaire). Tu ne peux pas le donner à une fonction qui attend un lvalue référence (référence classique).

    Enfin, tu essayes de faire quoi avec ça ?
    Code:
    auto f(S1&, E1&) {}
    auto f(S2&, E2&) {}

  10. #2200
    Alors il manque probablement des typenames oui, mais le vrai code à ce qu'il faut pour compiler, donc la syntaxe n'est pas le problème.

    Citation Envoyé par Cwningen Voir le message
    Pour prendre un exemple plus court que le tien : https://gcc.godbolt.org/z/Zi89Th, tu vois bien que le main retourne 2 donc appelle la version catch-all.?
    Sauf que dans mon cas, l'appel à f a comme deuxième paramètre une instance de Base_E1, qui correspond exactement au prototype qui est dans Base, avec le type déduit S = S1, soit une seule déduction de type. Le catch-all requiert deux déductions, donc il m'a l'air moins "précis". A moins que la priorité soit "plus précis vers moins précis vers base-class".


    Citation Envoyé par Raplonu Voir le message
    Tu veux vraiment pourvoir compiler avec un appel au catch all ?
    Oui, je veux. En quoi est-ce que mettre un assert le rend moins prioritaire? C'est prévu par le standard?


    Citation Envoyé par Raplonu Voir le message
    Aussi je sais pas à quel point c'est l'exemple exacte que tu exécutes, mais Base<Alice, Bob>::Base_E1({Alice::Rabbit{}}) est un rvalue référence, (un objet temporaire). Tu ne peux pas le donner à une fonction qui attend un lvalue référence (référence classique).
    J'ai oublié les const Je vais mettre à jour le post initial. Mais du coup, on peut "binder" une lvalue reference à une const rvalue reference, ce qui est l'idée ici.


    Citation Envoyé par Raplonu Voir le message
    Enfin, tu essayes de faire quoi avec ça ?
    Code:
    auto f(S1&, E1&) {}
    auto f(S2&, E2&) {}
    Ben, là, ça ne fait rien, mais on peut imaginer que c'est ce qui se passe quand on reçoit l'évènement E1 en étant dans l'état S1, et que par exemple on pourrait retourner une instance de S2 (l'état d'arrivée du FSM). Le catch all prend son sens ici vu que j'ai pas envie de spécifier toutes les transitions possibles entre tous les états.
    Citation Envoyé par François
    L'ordinateur cantique, c'est l'avenir.

  11. #2201
    Citation Envoyé par Thamior Voir le message
    Sauf que dans mon cas, l'appel à f a comme deuxième paramètre une instance de Base_E1, qui correspond exactement au prototype qui est dans Base, avec le type déduit S = S1, soit une seule déduction de type. Le catch-all requiert deux déductions, donc il m'a l'air moins "précis". A moins que la priorité soit "plus précis vers moins précis vers base-class".
    J'avais mal lu, je croyais que tu voulais les autres fonctions f de la classe dérivée. Celles de la classe de base sont tout simplement cachées par celles que tu redéfinis dans la classe dérivée (avec le patron).

  12. #2202
    Ok, donc a priori je ne peux pas vraiment consolider certaines fonctionalités dans la classe de base de part l'utilisation de templates de partout. Je peux éventuellement ré-implémenter template<typename S> f(constS&, const Base_E1&) dans la classe dérivée et appeler la version de la classe mère de façon explicite mais c'est bof. Quitte à faire ça autant faire une macro...
    Citation Envoyé par François
    L'ordinateur cantique, c'est l'avenir.

  13. #2203
    J'ai l'impression qu'en mettant la variante catch-all dans la classe de base ça devrait fonctionner comme tu le souhaites. Elle doit obligatoirement être dans les classes dérivées ?
    Citation Envoyé par Sidus Preclarum Voir le message
    Ben du caramel pas sucré alors...
    "Avant, j'étais dyslexique, masi aujorudh'ui je vasi meiux."

  14. #2204
    Non, ça m'arrangerait même que le catch-all soit dans la classe de base. Cela dit, j'ai déjà testé et ça ne fonctionnait pas, et je suppose que c'est pour la même raison que ce que j'essaie de faire ne marche pas directement : les versions de f() de classe de base sont cachées par les versions de f() qui sont dans la classe dérivée et n'ont pas l'air de participer à la déduction de template.
    Citation Envoyé par François
    L'ordinateur cantique, c'est l'avenir.

  15. #2205
    Un truc que j'avais oublié : on ne peut pas combiner héritage et surcharge. Si il y a au moins une fonction f dans la classe dérivée, le compilateur ne cherchera les fonctions f uniquement dans la classe dérivée et oubliera tout ce qui est dans la classe de base.

  16. #2206
    Un bundle de livres sur la programmation:
    https://www.humblebundle.com/books/c...ookshelf-books
    "Déconstruire", c'est "détruire" en insérant des "cons".
    Battle.net (Diablo 3) : Fbzn#2658 ----- / ----- / ----- Steam ID

  17. #2207
    Oui mais y'a 'using' pour importer les fonctions une par une ou en groupe.

  18. #2208
    Citation Envoyé par FB74 Voir le message
    Un bundle de livres sur la programmation:
    https://www.humblebundle.com/books/c...ookshelf-books
    Je suis toujours impressionné par le prix très accessible de ces bundles. Merci pour le partage
    Citation Envoyé par Kazemaho Voir le message
    Ma cherie arrete pas de raler qu'elle en veut une plus grosse, plus moderne, plus plus plus et moi j'y comprends rien.

  19. #2209
    Citation Envoyé par ook4mi Voir le message
    Je suis toujours impressionné par le prix très accessible de ces bundles. Merci pour le partage
    Attention à la qualité des livres (j'ignore complètement ce que valent ceux-là en particulier): les livres d'informatiques torchés à la va-vite sont malheureusement légion.
    - La version 3 est arrivée !

  20. #2210

    Je ne vois pas de quoi tu parles.

  21. #2211

  22. #2212
    Salut à tous,

    Je cherche à démarrer le dev d'applications Android, et j'ai plusieurs questions, sachant que j'ai déjà beaucoup d'expérience (7 ans, moultes apps) en dev iOS et en Swift/Objective-C, ainsi qu'un peu d'expérience en Java
    - Kotlin directement ? Ca me parait plus proche du Swift et un peu plus charmant
    - J'aime bien démarrer l'apprentissage d'une plateforme par une lecture papier/liseuse, des recommandations ?
    - Android Studio ? Ou il y a des alternatives meilleures ?
    - Je peux me contenter du simulateur pour démarrer ou je serai rapidement limité ?
    - Des conseils sur les choses à faire ou à éviter absolument ?

    Merci d'avance

  23. #2213
    Citation Envoyé par thomzon Voir le message
    Salut à tous,

    Je cherche à démarrer le dev d'applications Android, et j'ai plusieurs questions, sachant que j'ai déjà beaucoup d'expérience (7 ans, moultes apps) en dev iOS et en Swift/Objective-C, ainsi qu'un peu d'expérience en Java
    - Kotlin directement ? Ca me parait plus proche du Swift et un peu plus charmant
    Si tu as un peu d'experience Java, tu peux attaquer directement Kotlin, ouais.
    - Android Studio ? Ou il y a des alternatives meilleures ?
    oui. et non. En fait Android Studio est basé sur Intelli IDEA, qui est le meilleur IDE Java a l'heure actuelle, tout simplement. En plus de ça, les mecs derrière (Jetbrains) sont aussi les mecs derrière Kotlin, donc c'est sans doute l'IDE qui t'apportera la meilleure integration.
    Ce qu'il faut savoir, c'est qu'on ment beaucoup aux minmatars, surtout lorsqu'ils posent des questions du style: "t'es sûr que ça vole, ce truc ?" Cooking Momo, le 30/08/09

  24. #2214
    Citation Envoyé par thomzon Voir le message
    - Android Studio ? Ou il y a des alternatives meilleures ?
    Comme dis plus haut c'est basé sur le meilleur IDE du marché et développé par les créateurs du langage, donc à moins d'avoir des préférences personnelles pour un autre IDE c'est difficile de faire mieux

    Citation Envoyé par thomzon Voir le message
    - Je peux me contenter du simulateur pour démarrer ou je serai rapidement limité ?
    Oui, et si tu es limité par les performances du simulateur fourni il y a Genymotion (gratuit pour un usage personnel) : https://www.genymotion.com/fun-zone/

  25. #2215
    Citation Envoyé par Calys Voir le message
    Oui, et si tu es limité par les performances du simulateur fourni il y a Genymotion (gratuit pour un usage personnel) : https://www.genymotion.com/fun-zone/
    Autant y'a 2-3 ans ça se justifiait, autant maintenant le simulateur de base fait trèèèès largement le taf.
    C'est la faute à Arteis

  26. #2216
    Merci pour l'info, j'avais pas suivi les avancées du simulateur officiel, j'y redonnerai sa chance un de ces jours

  27. #2217

  28. #2218
    Et là comme à chaque version majeure, tu l'installes day one puis tu oublies que les 10 plugins sympas ne sont pas encore supportés, et sont rétrogradés à des versions préhistoriques (bon ok je chipote, mais c'est ce qui arrive systématiquement au plugin Lombok pour les javateux, donc IntelliJ).

  29. #2219
    Je ne suis pas trop dépendant des plugins pour le moment. J'espère surtout un bon revamp des perfs, parce que l'éditeur est une grosse gourmande en version 2018.
    Il parait que ce n'est pas le cas des autres produits IntelliJ, donc j'ai l'espoir

    En tous cas, c'était bien joué le friendship day à -50% fin juin. Ca fait une entrée pas cher dans l'écosystème et une licence lifetime, mais pour avoir une lifetime de la version 2019, il faudra resouscrire un paquet de mois. Donc, un an de plus, ad libitum...

  30. #2220
    Pour le prix, ça dépend, tu l'utilises dans le cadre d'une activité commerciale ?
    Si non commercial, tu peux avoir tous les IDE JetBrains gratos en deux clics.

Page 74 sur 182 PremièrePremière ... 2464666768697071727374757677787980818284124174 ... DernièreDernière

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •