|
358 | 358 | "cell_type": "markdown",
|
359 | 359 | "metadata": {},
|
360 | 360 | "source": [
|
361 |
| - "It also works correctly for ndarray of different dimension and dtype:" |
| 361 | + "It works fine for scalars of differents size / sign" |
362 | 362 | ]
|
363 | 363 | },
|
364 | 364 | {
|
365 | 365 | "cell_type": "code",
|
366 | 366 | "execution_count": 19,
|
367 | 367 | "metadata": {},
|
368 | 368 | "outputs": [],
|
| 369 | + "source": [ |
| 370 | + "%%pythran\n", |
| 371 | + "#pythran export dtype(complex64)\n", |
| 372 | + "#pythran export dtype(complex128)\n", |
| 373 | + "#pythran export dtype(complex256)\n", |
| 374 | + "import numpy as np\n", |
| 375 | + "def dtype(x): return x.real, x.imag" |
| 376 | + ] |
| 377 | + }, |
| 378 | + { |
| 379 | + "cell_type": "code", |
| 380 | + "execution_count": 20, |
| 381 | + "metadata": {}, |
| 382 | + "outputs": [ |
| 383 | + { |
| 384 | + "name": "stdout", |
| 385 | + "output_type": "stream", |
| 386 | + "text": [ |
| 387 | + "(1.5, -1.5) <class 'numpy.float32'>\n", |
| 388 | + "(1.5, -1.5) <class 'float'>\n", |
| 389 | + "(1.5, -1.5) <class 'numpy.float128'>\n" |
| 390 | + ] |
| 391 | + } |
| 392 | + ], |
| 393 | + "source": [ |
| 394 | + "import numpy as np\n", |
| 395 | + "x64 = dtype(np.complex64(1.5 + -1.5j))\n", |
| 396 | + "print(x64, type(x64[0]))\n", |
| 397 | + "x128 = dtype(np.complex128(1.5 + -1.5j))\n", |
| 398 | + "print(x128, type(x128[0]))\n", |
| 399 | + "x256 = dtype(np.complex256(1.5 + -1.5j))\n", |
| 400 | + "print(x256, type(x256[0]))" |
| 401 | + ] |
| 402 | + }, |
| 403 | + { |
| 404 | + "cell_type": "markdown", |
| 405 | + "metadata": {}, |
| 406 | + "source": [ |
| 407 | + "It also works correctly for ndarray of different dimension and dtype:" |
| 408 | + ] |
| 409 | + }, |
| 410 | + { |
| 411 | + "cell_type": "code", |
| 412 | + "execution_count": 21, |
| 413 | + "metadata": {}, |
| 414 | + "outputs": [], |
369 | 415 | "source": [
|
370 | 416 | "%%pythran\n",
|
371 | 417 | "#pythran export array(int8[])\n",
|
|
377 | 423 | },
|
378 | 424 | {
|
379 | 425 | "cell_type": "code",
|
380 |
| - "execution_count": 20, |
| 426 | + "execution_count": 22, |
381 | 427 | "metadata": {},
|
382 | 428 | "outputs": [
|
383 | 429 | {
|
|
401 | 447 | "cell_type": "markdown",
|
402 | 448 | "metadata": {},
|
403 | 449 | "source": [
|
404 |
| - "It is however ambiguous to use numpy's dtype of different size/sign as scalar across overloads" |
| 450 | + "It is however ambiguous to use numpy's dtype that actually have the same sign and size (in that case on a 64bit machine)" |
405 | 451 | ]
|
406 | 452 | },
|
407 | 453 | {
|
408 | 454 | "cell_type": "code",
|
409 |
| - "execution_count": 21, |
| 455 | + "execution_count": 23, |
410 | 456 | "metadata": {},
|
411 | 457 | "outputs": [
|
412 | 458 | {
|
413 | 459 | "name": "stdout",
|
414 | 460 | "output_type": "stream",
|
415 | 461 | "text": [
|
416 | 462 | "Ambiguous overloads\n",
|
417 |
| - "\tambiguous(float64)\n", |
418 |
| - "\tambiguous(float32).\n" |
| 463 | + "\tambiguous(int64)\n", |
| 464 | + "\tambiguous(int).\n" |
419 | 465 | ]
|
420 | 466 | }
|
421 | 467 | ],
|
422 | 468 | "source": [
|
423 | 469 | "code = '''\n",
|
424 |
| - "#pythran export ambiguous(float32)\n", |
425 |
| - "#pythran export ambiguous(float64)\n", |
| 470 | + "#pythran export ambiguous(int)\n", |
| 471 | + "#pythran export ambiguous(int64)\n", |
426 | 472 | "def ambiguous(x): return x\n",
|
427 | 473 | "'''\n",
|
428 | 474 | "try:\n",
|
|
440 | 486 | },
|
441 | 487 | {
|
442 | 488 | "cell_type": "code",
|
443 |
| - "execution_count": 22, |
| 489 | + "execution_count": 24, |
444 | 490 | "metadata": {},
|
445 | 491 | "outputs": [],
|
446 | 492 | "source": [
|
|
452 | 498 | },
|
453 | 499 | {
|
454 | 500 | "cell_type": "code",
|
455 |
| - "execution_count": 23, |
| 501 | + "execution_count": 25, |
456 | 502 | "metadata": {},
|
457 | 503 | "outputs": [
|
458 | 504 | {
|
|
484 | 530 | },
|
485 | 531 | {
|
486 | 532 | "cell_type": "code",
|
487 |
| - "execution_count": 24, |
| 533 | + "execution_count": 26, |
488 | 534 | "metadata": {},
|
489 | 535 | "outputs": [],
|
490 | 536 | "source": [
|
|
495 | 541 | },
|
496 | 542 | {
|
497 | 543 | "cell_type": "code",
|
498 |
| - "execution_count": 25, |
| 544 | + "execution_count": 27, |
499 | 545 | "metadata": {},
|
500 | 546 | "outputs": [
|
501 | 547 | {
|
|
504 | 550 | "(1, '1')"
|
505 | 551 | ]
|
506 | 552 | },
|
507 |
| - "execution_count": 25, |
| 553 | + "execution_count": 27, |
508 | 554 | "metadata": {},
|
509 | 555 | "output_type": "execute_result"
|
510 | 556 | }
|
|
522 | 568 | },
|
523 | 569 | {
|
524 | 570 | "cell_type": "code",
|
525 |
| - "execution_count": 26, |
| 571 | + "execution_count": 28, |
526 | 572 | "metadata": {},
|
527 | 573 | "outputs": [],
|
528 | 574 | "source": [
|
|
533 | 579 | },
|
534 | 580 | {
|
535 | 581 | "cell_type": "code",
|
536 |
| - "execution_count": 27, |
| 582 | + "execution_count": 29, |
537 | 583 | "metadata": {},
|
538 | 584 | "outputs": [
|
539 | 585 | {
|
|
542 | 588 | "'stuff that matter'"
|
543 | 589 | ]
|
544 | 590 | },
|
545 |
| - "execution_count": 27, |
| 591 | + "execution_count": 29, |
546 | 592 | "metadata": {},
|
547 | 593 | "output_type": "execute_result"
|
548 | 594 | }
|
|
560 | 606 | },
|
561 | 607 | {
|
562 | 608 | "cell_type": "code",
|
563 |
| - "execution_count": 28, |
| 609 | + "execution_count": 30, |
564 | 610 | "metadata": {},
|
565 | 611 | "outputs": [],
|
566 | 612 | "source": [
|
|
572 | 618 | },
|
573 | 619 | {
|
574 | 620 | "cell_type": "code",
|
575 |
| - "execution_count": 29, |
| 621 | + "execution_count": 31, |
576 | 622 | "metadata": {},
|
577 | 623 | "outputs": [
|
578 | 624 | {
|
|
581 | 627 | "'<capsule object \"corp(int, float)\" at 0x...'"
|
582 | 628 | ]
|
583 | 629 | },
|
584 |
| - "execution_count": 29, |
| 630 | + "execution_count": 31, |
585 | 631 | "metadata": {},
|
586 | 632 | "output_type": "execute_result"
|
587 | 633 | }
|
|
599 | 645 | },
|
600 | 646 | {
|
601 | 647 | "cell_type": "code",
|
602 |
| - "execution_count": 30, |
| 648 | + "execution_count": 32, |
603 | 649 | "metadata": {},
|
604 | 650 | "outputs": [],
|
605 | 651 | "source": [
|
|
618 | 664 | },
|
619 | 665 | {
|
620 | 666 | "cell_type": "code",
|
621 |
| - "execution_count": 31, |
| 667 | + "execution_count": 33, |
622 | 668 | "metadata": {},
|
623 | 669 | "outputs": [],
|
624 | 670 | "source": [
|
|
633 | 679 | },
|
634 | 680 | {
|
635 | 681 | "cell_type": "code",
|
636 |
| - "execution_count": 32, |
| 682 | + "execution_count": 34, |
637 | 683 | "metadata": {},
|
638 | 684 | "outputs": [
|
639 | 685 | {
|
|
642 | 688 | "4"
|
643 | 689 | ]
|
644 | 690 | },
|
645 |
| - "execution_count": 32, |
| 691 | + "execution_count": 34, |
646 | 692 | "metadata": {},
|
647 | 693 | "output_type": "execute_result"
|
648 | 694 | }
|
|
660 | 706 | },
|
661 | 707 | {
|
662 | 708 | "cell_type": "code",
|
663 |
| - "execution_count": 33, |
| 709 | + "execution_count": 35, |
664 | 710 | "metadata": {},
|
665 | 711 | "outputs": [
|
666 | 712 | {
|
|
691 | 737 | },
|
692 | 738 | {
|
693 | 739 | "cell_type": "code",
|
694 |
| - "execution_count": 34, |
| 740 | + "execution_count": 36, |
695 | 741 | "metadata": {},
|
696 | 742 | "outputs": [],
|
697 | 743 | "source": [
|
|
702 | 748 | },
|
703 | 749 | {
|
704 | 750 | "cell_type": "code",
|
705 |
| - "execution_count": 35, |
| 751 | + "execution_count": 37, |
706 | 752 | "metadata": {},
|
707 | 753 | "outputs": [
|
708 | 754 | {
|
|
735 | 781 | },
|
736 | 782 | {
|
737 | 783 | "cell_type": "code",
|
738 |
| - "execution_count": 36, |
| 784 | + "execution_count": 38, |
739 | 785 | "metadata": {},
|
740 | 786 | "outputs": [],
|
741 | 787 | "source": [
|
|
747 | 793 | },
|
748 | 794 | {
|
749 | 795 | "cell_type": "code",
|
750 |
| - "execution_count": 37, |
| 796 | + "execution_count": 39, |
751 | 797 | "metadata": {},
|
752 | 798 | "outputs": [
|
753 | 799 | {
|
|
756 | 802 | "((5, 1), (1, 5))"
|
757 | 803 | ]
|
758 | 804 | },
|
759 |
| - "execution_count": 37, |
| 805 | + "execution_count": 39, |
760 | 806 | "metadata": {},
|
761 | 807 | "output_type": "execute_result"
|
762 | 808 | }
|
|
770 | 816 | ],
|
771 | 817 | "metadata": {
|
772 | 818 | "kernelspec": {
|
773 |
| - "display_name": "Python 2", |
| 819 | + "display_name": "Python 3", |
774 | 820 | "language": "python",
|
775 |
| - "name": "python2" |
| 821 | + "name": "python3" |
776 | 822 | },
|
777 | 823 | "language_info": {
|
778 | 824 | "codemirror_mode": {
|
779 | 825 | "name": "ipython",
|
780 |
| - "version": 2 |
| 826 | + "version": 3 |
781 | 827 | },
|
782 | 828 | "file_extension": ".py",
|
783 | 829 | "mimetype": "text/x-python",
|
784 | 830 | "name": "python",
|
785 | 831 | "nbconvert_exporter": "python",
|
786 |
| - "pygments_lexer": "ipython2", |
787 |
| - "version": "2.7.14+" |
| 832 | + "pygments_lexer": "ipython3", |
| 833 | + "version": "3.6.3" |
788 | 834 | }
|
789 | 835 | },
|
790 | 836 | "nbformat": 4,
|
|
0 commit comments