http://bugzilla.gdcproject.org/show_bug.cgi?id=58
Bug #: 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: ibuc...@gdcproject.org ReportedBy: fen...@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.