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::valarrayist mir ohnehin ein Rätsel, konnte das schon jemand produktiv einsetzen? Ich war schon ein paar Male nah dran, aber im Endeffekt war einstd::vectormeist 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.