www.digitalmars.com         C & C++   DMDScript  

D.gnu - [Bug 58] New: std.math.pow produces incorrect results when used with

http://bugzilla.gdcproject.org/show_bug.cgi?id=58


           Summary: std.math.pow produces incorrect results when used with
                    std.parallelism
    Classification: Unclassified
           Product: GDC
           Version: 4.8.x
          Platform: x86
        OS/Version: MinGW
            Status: NEW
          Severity: major
          Priority: Normal
         Component: gdc
        AssignedTo: ibuclaw gdcproject.org
        ReportedBy: fengli gmail.com


the following code compiled with GDC shows the bug
(I'm using the gcc 4.8 windows mingw32 version from 
https://bitbucket.org/goshawk/gdc/downloads)

import std.math;
import std.stdio;
import std.range;
import std.parallelism;

void main()
{
    enum n = 1000;
    float step = 1.0f/n;

    float[n] results_singlethreaded;
    float[n] results_multithreaded;

    foreach(i; iota(n))
        results_singlethreaded[i] = pow(step * i, 0.4545f);
    foreach(i; parallel(iota(n)))
        results_multithreaded[i] = pow(step * i, 0.4545f);
    foreach(i; iota(n))
        assert(results_singlethreaded[i] == 
results_multithreaded[i]);
}

~/Desktop $ ./test.exe
core.exception.AssertError test.d(26): Assertion failure

The same code passes without assertion when compiled with DMD.

I changed the last loop to
    foreach(i; iota(n))
    {
        if(results_singlethreaded[i] != results_multithreaded[i])
        {
            writefln("%s %s",i, feqrel(results_singlethreaded[i],
results_multithreaded[i]));
        }
    }
and the results are:
1 3
2 2
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 0
15 2
16 0
17 0
18 0
19 0
20 0
21 0
22 0
23 0
24 0
25 0
26 0
27 0
28 0
29 0
30 0
31 0
33 0
34 0
35 0
36 0
37 0
38 0
39 0
40 0
41 5
42 0
43 0
44 0
45 4
46 0
47 0
48 0
49 0
50 0
51 0
52 0
53 0
54 0
55 0
56 0
57 0
58 0
59 0
60 0
61 0
62 0
63 0
64 0
65 3
66 0
67 0
68 0
69 0
70 0
71 0
72 0
73 0
74 0
75 0
76 0
77 0
78 2
79 0
80 0
81 0
82 0
83 0
84 0
85 0
86 0
87 0
88 0
89 2
90 0
91 0
92 0
93 0
94 0
95 0
96 0
97 0
98 0
99 0
100 0
101 0
102 0
103 0
104 0
105 0
106 0
107 3
108 0
109 0
110 0
111 0
112 0
113 0
114 0
115 0
116 0
117 2
118 0
119 0
120 0
121 0
122 0
123 0
124 3
125 0
126 0
127 0
128 0
129 0
130 0
131 0
132 0
133 0
134 0
135 0
136 0
137 0
138 0
139 0
140 0
141 0
142 0
143 0
144 0
145 0
146 0
147 0
148 0
149 0
150 0
151 0
152 0
153 0
154 0
155 0
156 0
157 0
158 0
159 0
160 0
161 0
162 0
163 0
164 0
165 0
166 0
167 0
168 0
169 0
170 0
171 0
172 0
173 0
174 0
175 0
176 4
177 0
178 0
179 0
180 0
181 0
182 0
183 0
184 0
185 0
186 0
187 0
189 0
190 0
191 0
192 0
193 0
194 0
195 0
196 0
197 0
198 0
199 0
200 0
201 0
202 0
203 0
204 0
205 0
206 0
207 0
208 0
209 0
210 0
212 8
213 0
214 0
215 0
216 0
217 0
218 0
219 0
220 0
221 0
222 0
223 0
224 0
225 0
226 0
227 0
228 0
229 0
230 0
231 0
232 0
233 0
234 0
235 0
236 0
237 0
238 0
239 0
240 0
241 0
242 0
243 0
244 0
245 0
246 0
247 0
248 0
249 0
250 0
251 0
252 0
253 0
254 0
255 0
256 0
257 0
258 0
259 0
260 0
261 0
262 1
263 0
264 0
265 0
266 0
267 0
268 0
269 1
270 0
271 3
272 0
273 0
274 0
275 1
276 2
277 0
278 0
279 0
280 0
281 0
282 0
283 0
284 0
285 0
286 0
287 0
288 0
289 0
290 0
291 0
292 0
293 0
294 0
295 0
296 0
297 0
298 0
299 0
300 2
301 2
302 0
303 0
304 0
305 0
306 0
307 0
308 0
309 0
310 0
311 0
312 0
313 0
314 0
315 0
316 0
317 0
318 0
319 0
320 0
321 0
322 0
323 0
324 0
325 0
326 0
327 0
328 0
329 0
330 0
331 4
332 0
333 0
335 0
336 0
337 0
338 0
339 0
340 0
341 0
342 0
343 0
344 0
345 0
346 0
347 0
348 0
349 10
350 0
351 3
352 0
353 0
354 0
355 0
356 0
357 0
358 0
359 0
360 1
361 0
362 1
363 1
364 0
365 0
366 0
367 0
368 0
369 0
370 0
371 0
372 0
373 0
374 0
375 0
376 1
377 0
378 0
379 0
380 0
381 0
382 0
383 0
384 0
385 0
386 2
387 0
388 0
389 0
390 0
391 0
392 0
393 0
394 0
395 0
396 0
397 0
398 0
399 0
400 0
401 0
402 0
403 0
404 0
405 1
406 0
407 0
408 0
409 0
410 2
411 2
412 0
413 0
414 0
415 0
416 0
417 0
418 0
419 0
420 0
421 0
422 2
423 0
424 0
425 1
426 0
427 0
428 0
429 2
430 0
431 7
432 0
433 0
434 0
435 0
436 0
437 0
438 2
439 0
440 0
441 0
442 0
443 0
444 0
445 0
446 0
447 0
448 0
449 0
450 0
451 0
452 3
453 3
454 2
455 0
456 0
457 0
458 0
459 3
460 0
461 0
462 0
463 0
464 0
465 1
466 1
467 0
468 0
469 2
470 2
471 0
472 0
473 0
474 0
475 2
476 1
477 2
478 0
479 0
480 0
481 0
482 4
483 0
484 0
485 0
486 0
487 0
488 0
489 0
490 0
491 0
492 0
493 0
494 2
495 2
496 2
497 4
498 0
499 0
500 0
501 0
502 0
503 2
504 0
505 0
506 0
507 0
508 0
509 0
510 0
511 0
512 0
513 0
514 0
515 0
516 2
517 0
518 0
519 0
520 0
521 0
522 0
523 0
524 0
525 0
526 0
527 0
528 0
529 0
530 0
531 0
532 0
533 0
534 0
535 0
536 0
537 0
538 0
539 0
540 0
541 0
542 0
543 0
544 0
545 0
546 0
547 0
548 0
549 0
550 0
551 0
552 5
553 0
554 0
555 0
556 0
557 0
558 0
559 0
560 0
561 0
562 0
563 0
564 0
565 0
566 0
567 0
568 0
569 0
570 0
571 0
572 0
573 0
574 0
575 0
576 2
577 0
578 0
579 0
580 0
581 0
582 0
583 0
584 0
585 0
586 0
587 0
589 0
590 0
591 0
592 0
593 0
594 0
595 0
596 0
597 0
598 0
599 0
600 1
601 0
602 0
603 0
604 0
605 0
606 0
607 0
608 0
609 0
610 0
611 0
612 0
613 0
614 0
615 0
616 0
617 0
618 0
619 0
621 0
623 0
624 0
625 0
626 0
627 0
628 0
629 0
630 0
631 0
632 0
633 0
634 0
635 0
636 0
637 11
638 2
639 0
640 0
641 1
642 0
643 0
644 0
645 0
646 0
647 0
648 0
649 2
650 0
651 0
652 0
653 2
654 0
655 0
656 0
657 0
658 2
659 0
660 0
661 0
662 0
663 0
664 2
665 0
666 0
667 0
668 0
669 0
670 0
671 0
672 0
673 0
674 0
675 0
676 0
677 0
678 0
679 4
680 3
681 0
682 0
683 0
684 0
685 1
686 0
687 0
688 0
689 0
690 0
691 0
692 0
693 0
694 0
695 3
696 0
697 0
698 0
699 0
700 0
701 0
702 0
703 3
704 1
705 0
706 0
707 2
708 0
709 2
710 1
711 0
712 0
713 0
714 0
715 2
716 0
717 0
718 2
719 6
720 2
721 0
722 0
723 0
724 2
725 0
726 0
727 0
728 0
729 3
730 0
731 0
732 0
733 0
734 6
735 0
736 3
737 0
738 0
739 0
740 5
741 4
742 4
743 0
744 0
745 0
746 3
747 0
748 0
749 0
750 0
751 0
752 0
753 3
754 0
755 0
756 0
757 0
758 0
759 0
760 0
761 0
762 0
763 0
764 0
765 3
766 0
767 6
768 0
769 4
770 2
771 0
772 0
773 0
774 0
775 0
776 0
777 0
778 0
779 0
780 0
781 0
782 0
783 0
784 0
785 0
786 0
787 0
788 0
789 0
790 0
791 0
792 0
793 0
794 0
795 0
796 0
797 0
798 0
799 0
800 1
801 0
802 3
803 3
804 2
805 0
806 4
807 0
808 3
809 0
810 0
811 3
812 1
813 0
814 0
815 0
816 3
817 4
818 0
819 0
820 0
821 0
822 0
823 0
824 0
825 0
826 0
827 0
828 0
829 0
830 0
831 4
832 0
833 0
834 0
835 1
836 0
837 0
838 5
839 2
840 0
841 0
842 0
843 0
844 0
845 0
846 0
847 2
848 2
849 5
850 5
851 0
852 0
853 0
854 0
855 0
856 0
857 0
858 0
859 0
860 0
862 2
863 0
864 0
865 0
866 0
867 0
868 0
869 1
870 0
871 0
872 0
873 0
874 0
875 0
876 0
877 0
878 0
879 0
880 0
881 0
882 5
883 0
884 0
885 0
886 0
887 0
888 0
889 0
890 0
891 1
892 0
893 0
894 0
895 0
896 0
897 0
898 0
899 0
900 0
901 0
902 0
903 3
904 8
905 0
906 0
907 0
908 4
909 6
910 1
911 6
912 0
913 0
914 0
915 0
916 0
917 0
918 0
919 0
920 0
921 0
922 0
923 7
924 5
925 6
926 5
927 0
928 0
929 0
930 0
931 0
932 0
933 0
934 0
935 0
936 2
937 0
938 0
939 0
940 0
941 0
942 0
943 5
944 0
945 4
946 0
947 2
948 0
949 8
950 0
951 0
952 0
953 0
954 0
955 0
956 0
957 3
958 6
959 8
960 0
961 0
962 6
963 0
964 0
965 6
966 4
967 0
968 0
969 0
970 0
971 4
972 3
973 7
974 5
975 0
976 0
977 0
978 4
979 7
980 0
981 7
982 1
983 0
984 0
985 0
986 6
992 0
993 0
994 4
995 0
996 0
997 6
998 1
999 0

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
Jun 02 2013