src/share/classes/java/util/stream/DoublePipeline.java

Print this page

        

@@ -375,12 +375,11 @@
         evaluate(ForEachOps.makeDouble(consumer, true));
     }
 
     @Override
     public final double sum() {
-        // TODO: better algorithm to compensate for errors
-        return reduce(0.0, Double::sum);
+        return evaluate(ReduceOps.makeDoubleCompensatingSummer());
     }
 
     @Override
     public final OptionalDouble min() {
         return reduce(Math::min);