floating point modulo



  • in verschiedenen quellen hab ich gelesen, dass beim modulo in floating point der divisor vom dividenden so oft abgezogen wird, bis der "verbleibende dividend" kleiner als der divisor ist und somit der rest ist.

    ist das nur ne theoretische antwort, damit man das versteht, oder wird es tatsächlich so in der fpu gemacht?
    es wäre nett wenn jemand etwas zum nachschlagen hätte (link), also gegooglet hab ich scho und diese aussage hab ich aus 2 assembler büchern von mir, das eine begründet dieses verhalten damit, dass es auf genauigkeit ankommt und sagt desweiteren, dass die fpu ab einer gewissen anzahl von loops abbricht.

    jemand ne erklärung, links, help dazu???

    rapso->greets();



  • ähm... also ich kann dir jetzt noch nichtmal folgen mit dem, was du meinst, aber als ich mal vor dem Problem stand, dass ich Modulo für floating points brauchte, hab ich das so gelöst:

    rest = (floor(Divident / Divisor) * Divisor);
    

    ist so in etwa auch das, was in deinem Text steht, wenn ich den soweit richtig aufgefasst habe...



  • ich denke die fpu wird das so etwa wie blue tiger machen aber hast du das in nem c proggi echt so implementiert???
    es gibt doch die funktion double fmod(double) die genau das macht...



  • Original erstellt von japro:
    ich denke die fpu wird das so etwa wie blue tiger machen aber hast du das in nem c proggi echt so implementiert???
    es gibt doch die funktion double fmod(double) die genau das macht...

    nö, das hab ich in 'nem C++ Prog so implementiert... *heul*... wieso sagt mir denn niemand, dass es so eine Funktion gibt? 😞 😃 😃 😉


Anmelden zum Antworten