valarray fmod



  • hallo

    warum sind alle schönen funktionen aus <cmath> für valarray's überladen worden, nicht jedoch fmod? ist mir schon bewusst, dass es std::valarray<T>::apply gibt aber gleichermassen kann man auch gegen z.b. sin für valarray's argumentieren, was jedoch implementiert ist.

    also? gibt es einen bestimmten grund?

    gruss



  • Ich nehme an, operator% ruft nur den eingebauten Modulo-Operator auf und ist nicht schlau für Fliesskommazahlen?

    std::valarray ist mir ohnehin ein Rätsel, konnte das schon jemand produktiv einsetzen? Ich war schon ein paar Male nah dran, aber im Endeffekt war ein std::vector meist doch komfortabler.

    Ansonsten ist der Container ja weitgehend unbekannt... Und es scheint sich auch niemand zu bemühen, ihn zu verbessern. C++11 hat z.B. viele Mathe-Funktionen aus C90 übernommen, aber nicht für valarray überladen.



  • ja du hast recht, operator% geht für fliesskommazahlen nicht.

    std::valarray ist ganz nett aber ab und zu brauche ich die laufzeitgrösse einfach nicht, daher hab ich mir ein echtes std::valarray geschrieben.

    mir ist ausserdem auch schleierhaft wieso std::valarray vor c++11 keine iteratoren anbietet.

    bzw., was im eröffnungspost falsch ist: std::valarray<T>::apply nimmt nur unäre funktionen entgegen, std::fmod ist aber binär. somit hat man gar keine konfortable (das ist ja der hauptpunkt bei std::valarray) möglichkeit floats zu mod'en.

    edit: hab dein edit zu spät gesehen, ist nun angepasst.



  • asfdlol schrieb:

    std::valarray<T>::apply nimmt nur unäre funktionen entgegen, std::fmod ist aber binär. somit hat man gar keine konfortable (das ist ja der hauptpunkt bei std::valarray) möglichkeit floats zu mod'en.

    Sollte mit Lambda-Ausdrücken oder auch std::bind() recht komfortabel zu lösen sein.

    Oder willst du zwei Valarrays elementweise modulo-rechnen?



  • Nexus schrieb:

    asfdlol schrieb:

    std::valarray<T>::apply nimmt nur unäre funktionen entgegen, std::fmod ist aber binär. somit hat man gar keine konfortable (das ist ja der hauptpunkt bei std::valarray) möglichkeit floats zu mod'en.

    Sollte mit Lambda-Ausdrücken oder auch std::bind() recht komfortabel zu lösen sein.

    Oder willst du zwei Valarrays elementweise modulo-rechnen?

    ich bräuchte die funktion im moment nicht, sie aber anzubieten wäre lediglich konsistent. siehe z.b. std::pow für std::valarray's.

    edit: damit ist die variante mit zwei valarrays gemeint.


Anmelden zum Antworten