Mantis - Cadmium
Erweiterte Problemanzeige
48 general kleinerer Fehler immer 2009-11-30 11:51 2010-02-06 21:12
xclerc  
xclerc  
normal  
erledigt 1.3  
erledigt  
keine    
keine 1.4  
0000048: Error in "mod_float" primitive implementation
The Cadmium runtime does not return the same values than the original one
for the "mod_float" primitive. Counterexamples follow:

Through "ocamlc"/"ocamlopt":
4.2 modfloat 1.6 = 1
-4.2 modfloat 1.6 = -1
4.2 modfloat -1.6 = 1
-4.2 modfloat -1.6 = -1

Through "ocamljava":
4.2 modfloat 1.6 = -0.6
-4.2 modfloat 1.6 = 0.6
4.2 modfloat -1.6 = -0.6
-4.2 modfloat -1.6 = 0.6


Source file used to generate counterexamples:
let tests = [
  4.2, 1.6 ;
  (-4.2), 1.6 ;
  4.2, (-1.6) ;
  (-4.2), (-1.6) ;
]

let () =
  List.iter
    (fun (x, y) ->
      Printf.printf "%g modfloat %g = %g\n" x y (mod_float x y))
    tests
Problem-Historie
2009-11-30 11:51 xclerc Neues Problem
2009-11-30 11:52 xclerc Status neu => zugewiesen
2009-11-30 11:52 xclerc Bearbeitung durch => xclerc
2009-11-30 12:08 xclerc Problemnotiz hinzugefügt: 0000197
2010-02-06 21:12 xclerc Status zugewiesen => erledigt
2010-02-06 21:12 xclerc Behoben in Version => 1.4
2010-02-06 21:12 xclerc Lösung offen => erledigt

Notiz
(0000197)
xclerc   
2009-11-30 12:08   
The fix is trivial: the 'Math.IEEEremainder' method should be replaced by the '%' operator.