github.com/wzzhu/tensor@v0.9.24/internal/execution/generic_argmethods.go (about) 1 // Code generated by genlib2. DO NOT EDIT. 2 3 package execution 4 5 import ( 6 "math" 7 8 "github.com/chewxy/math32" 9 ) 10 11 func ArgmaxI(a []int) int { 12 var set bool 13 var f int 14 var max int 15 for i := range a { 16 v := a[i] 17 if !set { 18 f = v 19 max = i 20 set = true 21 continue 22 } 23 if v > f { 24 max = i 25 f = v 26 } 27 } 28 return max 29 } 30 31 func ArgmaxI8(a []int8) int { 32 var set bool 33 var f int8 34 var max int 35 for i := range a { 36 v := a[i] 37 if !set { 38 f = v 39 max = i 40 set = true 41 continue 42 } 43 if v > f { 44 max = i 45 f = v 46 } 47 } 48 return max 49 } 50 51 func ArgmaxI16(a []int16) int { 52 var set bool 53 var f int16 54 var max int 55 for i := range a { 56 v := a[i] 57 if !set { 58 f = v 59 max = i 60 set = true 61 continue 62 } 63 if v > f { 64 max = i 65 f = v 66 } 67 } 68 return max 69 } 70 71 func ArgmaxI32(a []int32) int { 72 var set bool 73 var f int32 74 var max int 75 for i := range a { 76 v := a[i] 77 if !set { 78 f = v 79 max = i 80 set = true 81 continue 82 } 83 if v > f { 84 max = i 85 f = v 86 } 87 } 88 return max 89 } 90 91 func ArgmaxI64(a []int64) int { 92 var set bool 93 var f int64 94 var max int 95 for i := range a { 96 v := a[i] 97 if !set { 98 f = v 99 max = i 100 set = true 101 continue 102 } 103 if v > f { 104 max = i 105 f = v 106 } 107 } 108 return max 109 } 110 111 func ArgmaxU(a []uint) int { 112 var set bool 113 var f uint 114 var max int 115 for i := range a { 116 v := a[i] 117 if !set { 118 f = v 119 max = i 120 set = true 121 continue 122 } 123 if v > f { 124 max = i 125 f = v 126 } 127 } 128 return max 129 } 130 131 func ArgmaxU8(a []uint8) int { 132 var set bool 133 var f uint8 134 var max int 135 for i := range a { 136 v := a[i] 137 if !set { 138 f = v 139 max = i 140 set = true 141 continue 142 } 143 if v > f { 144 max = i 145 f = v 146 } 147 } 148 return max 149 } 150 151 func ArgmaxU16(a []uint16) int { 152 var set bool 153 var f uint16 154 var max int 155 for i := range a { 156 v := a[i] 157 if !set { 158 f = v 159 max = i 160 set = true 161 continue 162 } 163 if v > f { 164 max = i 165 f = v 166 } 167 } 168 return max 169 } 170 171 func ArgmaxU32(a []uint32) int { 172 var set bool 173 var f uint32 174 var max int 175 for i := range a { 176 v := a[i] 177 if !set { 178 f = v 179 max = i 180 set = true 181 continue 182 } 183 if v > f { 184 max = i 185 f = v 186 } 187 } 188 return max 189 } 190 191 func ArgmaxU64(a []uint64) int { 192 var set bool 193 var f uint64 194 var max int 195 for i := range a { 196 v := a[i] 197 if !set { 198 f = v 199 max = i 200 set = true 201 continue 202 } 203 if v > f { 204 max = i 205 f = v 206 } 207 } 208 return max 209 } 210 211 func ArgmaxF32(a []float32) int { 212 var set bool 213 var f float32 214 var max int 215 for i := range a { 216 v := a[i] 217 if !set { 218 f = v 219 max = i 220 set = true 221 continue 222 } 223 if math32.IsNaN(v) || math32.IsInf(v, 1) { 224 max = i 225 return max 226 } 227 if v > f { 228 max = i 229 f = v 230 } 231 } 232 return max 233 } 234 235 func ArgmaxF64(a []float64) int { 236 var set bool 237 var f float64 238 var max int 239 for i := range a { 240 v := a[i] 241 if !set { 242 f = v 243 max = i 244 set = true 245 continue 246 } 247 if math.IsNaN(v) || math.IsInf(v, 1) { 248 max = i 249 return max 250 } 251 if v > f { 252 max = i 253 f = v 254 } 255 } 256 return max 257 } 258 259 func ArgmaxStr(a []string) int { 260 var set bool 261 var f string 262 var max int 263 for i := range a { 264 v := a[i] 265 if !set { 266 f = v 267 max = i 268 set = true 269 continue 270 } 271 if v > f { 272 max = i 273 f = v 274 } 275 } 276 return max 277 } 278 279 func ArgmaxMaskedI(a []int, mask []bool) int { 280 var set bool 281 var f int 282 var max int 283 for i := range a { 284 if mask[i] { 285 continue 286 } 287 v := a[i] 288 if !set { 289 f = v 290 max = i 291 set = true 292 continue 293 } 294 if v > f { 295 max = i 296 f = v 297 } 298 } 299 return max 300 } 301 302 func ArgmaxMaskedI8(a []int8, mask []bool) int { 303 var set bool 304 var f int8 305 var max int 306 for i := range a { 307 if mask[i] { 308 continue 309 } 310 v := a[i] 311 if !set { 312 f = v 313 max = i 314 set = true 315 continue 316 } 317 if v > f { 318 max = i 319 f = v 320 } 321 } 322 return max 323 } 324 325 func ArgmaxMaskedI16(a []int16, mask []bool) int { 326 var set bool 327 var f int16 328 var max int 329 for i := range a { 330 if mask[i] { 331 continue 332 } 333 v := a[i] 334 if !set { 335 f = v 336 max = i 337 set = true 338 continue 339 } 340 if v > f { 341 max = i 342 f = v 343 } 344 } 345 return max 346 } 347 348 func ArgmaxMaskedI32(a []int32, mask []bool) int { 349 var set bool 350 var f int32 351 var max int 352 for i := range a { 353 if mask[i] { 354 continue 355 } 356 v := a[i] 357 if !set { 358 f = v 359 max = i 360 set = true 361 continue 362 } 363 if v > f { 364 max = i 365 f = v 366 } 367 } 368 return max 369 } 370 371 func ArgmaxMaskedI64(a []int64, mask []bool) int { 372 var set bool 373 var f int64 374 var max int 375 for i := range a { 376 if mask[i] { 377 continue 378 } 379 v := a[i] 380 if !set { 381 f = v 382 max = i 383 set = true 384 continue 385 } 386 if v > f { 387 max = i 388 f = v 389 } 390 } 391 return max 392 } 393 394 func ArgmaxMaskedU(a []uint, mask []bool) int { 395 var set bool 396 var f uint 397 var max int 398 for i := range a { 399 if mask[i] { 400 continue 401 } 402 v := a[i] 403 if !set { 404 f = v 405 max = i 406 set = true 407 continue 408 } 409 if v > f { 410 max = i 411 f = v 412 } 413 } 414 return max 415 } 416 417 func ArgmaxMaskedU8(a []uint8, mask []bool) int { 418 var set bool 419 var f uint8 420 var max int 421 for i := range a { 422 if mask[i] { 423 continue 424 } 425 v := a[i] 426 if !set { 427 f = v 428 max = i 429 set = true 430 continue 431 } 432 if v > f { 433 max = i 434 f = v 435 } 436 } 437 return max 438 } 439 440 func ArgmaxMaskedU16(a []uint16, mask []bool) int { 441 var set bool 442 var f uint16 443 var max int 444 for i := range a { 445 if mask[i] { 446 continue 447 } 448 v := a[i] 449 if !set { 450 f = v 451 max = i 452 set = true 453 continue 454 } 455 if v > f { 456 max = i 457 f = v 458 } 459 } 460 return max 461 } 462 463 func ArgmaxMaskedU32(a []uint32, mask []bool) int { 464 var set bool 465 var f uint32 466 var max int 467 for i := range a { 468 if mask[i] { 469 continue 470 } 471 v := a[i] 472 if !set { 473 f = v 474 max = i 475 set = true 476 continue 477 } 478 if v > f { 479 max = i 480 f = v 481 } 482 } 483 return max 484 } 485 486 func ArgmaxMaskedU64(a []uint64, mask []bool) int { 487 var set bool 488 var f uint64 489 var max int 490 for i := range a { 491 if mask[i] { 492 continue 493 } 494 v := a[i] 495 if !set { 496 f = v 497 max = i 498 set = true 499 continue 500 } 501 if v > f { 502 max = i 503 f = v 504 } 505 } 506 return max 507 } 508 509 func ArgmaxMaskedF32(a []float32, mask []bool) int { 510 var set bool 511 var f float32 512 var max int 513 for i := range a { 514 if mask[i] { 515 continue 516 } 517 v := a[i] 518 if !set { 519 f = v 520 max = i 521 set = true 522 continue 523 } 524 if math32.IsNaN(v) || math32.IsInf(v, 1) { 525 max = i 526 return max 527 } 528 if v > f { 529 max = i 530 f = v 531 } 532 } 533 return max 534 } 535 536 func ArgmaxMaskedF64(a []float64, mask []bool) int { 537 var set bool 538 var f float64 539 var max int 540 for i := range a { 541 if mask[i] { 542 continue 543 } 544 v := a[i] 545 if !set { 546 f = v 547 max = i 548 set = true 549 continue 550 } 551 if math.IsNaN(v) || math.IsInf(v, 1) { 552 max = i 553 return max 554 } 555 if v > f { 556 max = i 557 f = v 558 } 559 } 560 return max 561 } 562 563 func ArgmaxMaskedStr(a []string, mask []bool) int { 564 var set bool 565 var f string 566 var max int 567 for i := range a { 568 if mask[i] { 569 continue 570 } 571 v := a[i] 572 if !set { 573 f = v 574 max = i 575 set = true 576 continue 577 } 578 if v > f { 579 max = i 580 f = v 581 } 582 } 583 return max 584 } 585 586 func ArgminI(a []int) int { 587 var set bool 588 var f int 589 var min int 590 for i := range a { 591 v := a[i] 592 if !set { 593 f = v 594 min = i 595 set = true 596 continue 597 } 598 if v < f { 599 min = i 600 f = v 601 } 602 } 603 return min 604 } 605 606 func ArgminI8(a []int8) int { 607 var set bool 608 var f int8 609 var min int 610 for i := range a { 611 v := a[i] 612 if !set { 613 f = v 614 min = i 615 set = true 616 continue 617 } 618 if v < f { 619 min = i 620 f = v 621 } 622 } 623 return min 624 } 625 626 func ArgminI16(a []int16) int { 627 var set bool 628 var f int16 629 var min int 630 for i := range a { 631 v := a[i] 632 if !set { 633 f = v 634 min = i 635 set = true 636 continue 637 } 638 if v < f { 639 min = i 640 f = v 641 } 642 } 643 return min 644 } 645 646 func ArgminI32(a []int32) int { 647 var set bool 648 var f int32 649 var min int 650 for i := range a { 651 v := a[i] 652 if !set { 653 f = v 654 min = i 655 set = true 656 continue 657 } 658 if v < f { 659 min = i 660 f = v 661 } 662 } 663 return min 664 } 665 666 func ArgminI64(a []int64) int { 667 var set bool 668 var f int64 669 var min int 670 for i := range a { 671 v := a[i] 672 if !set { 673 f = v 674 min = i 675 set = true 676 continue 677 } 678 if v < f { 679 min = i 680 f = v 681 } 682 } 683 return min 684 } 685 686 func ArgminU(a []uint) int { 687 var set bool 688 var f uint 689 var min int 690 for i := range a { 691 v := a[i] 692 if !set { 693 f = v 694 min = i 695 set = true 696 continue 697 } 698 if v < f { 699 min = i 700 f = v 701 } 702 } 703 return min 704 } 705 706 func ArgminU8(a []uint8) int { 707 var set bool 708 var f uint8 709 var min int 710 for i := range a { 711 v := a[i] 712 if !set { 713 f = v 714 min = i 715 set = true 716 continue 717 } 718 if v < f { 719 min = i 720 f = v 721 } 722 } 723 return min 724 } 725 726 func ArgminU16(a []uint16) int { 727 var set bool 728 var f uint16 729 var min int 730 for i := range a { 731 v := a[i] 732 if !set { 733 f = v 734 min = i 735 set = true 736 continue 737 } 738 if v < f { 739 min = i 740 f = v 741 } 742 } 743 return min 744 } 745 746 func ArgminU32(a []uint32) int { 747 var set bool 748 var f uint32 749 var min int 750 for i := range a { 751 v := a[i] 752 if !set { 753 f = v 754 min = i 755 set = true 756 continue 757 } 758 if v < f { 759 min = i 760 f = v 761 } 762 } 763 return min 764 } 765 766 func ArgminU64(a []uint64) int { 767 var set bool 768 var f uint64 769 var min int 770 for i := range a { 771 v := a[i] 772 if !set { 773 f = v 774 min = i 775 set = true 776 continue 777 } 778 if v < f { 779 min = i 780 f = v 781 } 782 } 783 return min 784 } 785 786 func ArgminF32(a []float32) int { 787 var set bool 788 var f float32 789 var min int 790 for i := range a { 791 v := a[i] 792 if !set { 793 f = v 794 min = i 795 set = true 796 continue 797 } 798 if math32.IsNaN(v) || math32.IsInf(v, -1) { 799 min = i 800 return min 801 } 802 if v < f { 803 min = i 804 f = v 805 } 806 } 807 return min 808 } 809 810 func ArgminF64(a []float64) int { 811 var set bool 812 var f float64 813 var min int 814 for i := range a { 815 v := a[i] 816 if !set { 817 f = v 818 min = i 819 set = true 820 continue 821 } 822 if math.IsNaN(v) || math.IsInf(v, -1) { 823 min = i 824 return min 825 } 826 if v < f { 827 min = i 828 f = v 829 } 830 } 831 return min 832 } 833 834 func ArgminStr(a []string) int { 835 var set bool 836 var f string 837 var min int 838 for i := range a { 839 v := a[i] 840 if !set { 841 f = v 842 min = i 843 set = true 844 continue 845 } 846 if v < f { 847 min = i 848 f = v 849 } 850 } 851 return min 852 } 853 854 func ArgminMaskedI(a []int, mask []bool) int { 855 var set bool 856 var f int 857 var min int 858 for i := range a { 859 if mask[i] { 860 continue 861 } 862 v := a[i] 863 if !set { 864 f = v 865 min = i 866 set = true 867 continue 868 } 869 if v < f { 870 min = i 871 f = v 872 } 873 } 874 return min 875 } 876 877 func ArgminMaskedI8(a []int8, mask []bool) int { 878 var set bool 879 var f int8 880 var min int 881 for i := range a { 882 if mask[i] { 883 continue 884 } 885 v := a[i] 886 if !set { 887 f = v 888 min = i 889 set = true 890 continue 891 } 892 if v < f { 893 min = i 894 f = v 895 } 896 } 897 return min 898 } 899 900 func ArgminMaskedI16(a []int16, mask []bool) int { 901 var set bool 902 var f int16 903 var min int 904 for i := range a { 905 if mask[i] { 906 continue 907 } 908 v := a[i] 909 if !set { 910 f = v 911 min = i 912 set = true 913 continue 914 } 915 if v < f { 916 min = i 917 f = v 918 } 919 } 920 return min 921 } 922 923 func ArgminMaskedI32(a []int32, mask []bool) int { 924 var set bool 925 var f int32 926 var min int 927 for i := range a { 928 if mask[i] { 929 continue 930 } 931 v := a[i] 932 if !set { 933 f = v 934 min = i 935 set = true 936 continue 937 } 938 if v < f { 939 min = i 940 f = v 941 } 942 } 943 return min 944 } 945 946 func ArgminMaskedI64(a []int64, mask []bool) int { 947 var set bool 948 var f int64 949 var min int 950 for i := range a { 951 if mask[i] { 952 continue 953 } 954 v := a[i] 955 if !set { 956 f = v 957 min = i 958 set = true 959 continue 960 } 961 if v < f { 962 min = i 963 f = v 964 } 965 } 966 return min 967 } 968 969 func ArgminMaskedU(a []uint, mask []bool) int { 970 var set bool 971 var f uint 972 var min int 973 for i := range a { 974 if mask[i] { 975 continue 976 } 977 v := a[i] 978 if !set { 979 f = v 980 min = i 981 set = true 982 continue 983 } 984 if v < f { 985 min = i 986 f = v 987 } 988 } 989 return min 990 } 991 992 func ArgminMaskedU8(a []uint8, mask []bool) int { 993 var set bool 994 var f uint8 995 var min int 996 for i := range a { 997 if mask[i] { 998 continue 999 } 1000 v := a[i] 1001 if !set { 1002 f = v 1003 min = i 1004 set = true 1005 continue 1006 } 1007 if v < f { 1008 min = i 1009 f = v 1010 } 1011 } 1012 return min 1013 } 1014 1015 func ArgminMaskedU16(a []uint16, mask []bool) int { 1016 var set bool 1017 var f uint16 1018 var min int 1019 for i := range a { 1020 if mask[i] { 1021 continue 1022 } 1023 v := a[i] 1024 if !set { 1025 f = v 1026 min = i 1027 set = true 1028 continue 1029 } 1030 if v < f { 1031 min = i 1032 f = v 1033 } 1034 } 1035 return min 1036 } 1037 1038 func ArgminMaskedU32(a []uint32, mask []bool) int { 1039 var set bool 1040 var f uint32 1041 var min int 1042 for i := range a { 1043 if mask[i] { 1044 continue 1045 } 1046 v := a[i] 1047 if !set { 1048 f = v 1049 min = i 1050 set = true 1051 continue 1052 } 1053 if v < f { 1054 min = i 1055 f = v 1056 } 1057 } 1058 return min 1059 } 1060 1061 func ArgminMaskedU64(a []uint64, mask []bool) int { 1062 var set bool 1063 var f uint64 1064 var min int 1065 for i := range a { 1066 if mask[i] { 1067 continue 1068 } 1069 v := a[i] 1070 if !set { 1071 f = v 1072 min = i 1073 set = true 1074 continue 1075 } 1076 if v < f { 1077 min = i 1078 f = v 1079 } 1080 } 1081 return min 1082 } 1083 1084 func ArgminMaskedF32(a []float32, mask []bool) int { 1085 var set bool 1086 var f float32 1087 var min int 1088 for i := range a { 1089 if mask[i] { 1090 continue 1091 } 1092 v := a[i] 1093 if !set { 1094 f = v 1095 min = i 1096 set = true 1097 continue 1098 } 1099 if math32.IsNaN(v) || math32.IsInf(v, -1) { 1100 min = i 1101 return min 1102 } 1103 if v < f { 1104 min = i 1105 f = v 1106 } 1107 } 1108 return min 1109 } 1110 1111 func ArgminMaskedF64(a []float64, mask []bool) int { 1112 var set bool 1113 var f float64 1114 var min int 1115 for i := range a { 1116 if mask[i] { 1117 continue 1118 } 1119 v := a[i] 1120 if !set { 1121 f = v 1122 min = i 1123 set = true 1124 continue 1125 } 1126 if math.IsNaN(v) || math.IsInf(v, -1) { 1127 min = i 1128 return min 1129 } 1130 if v < f { 1131 min = i 1132 f = v 1133 } 1134 } 1135 return min 1136 } 1137 1138 func ArgminMaskedStr(a []string, mask []bool) int { 1139 var set bool 1140 var f string 1141 var min int 1142 for i := range a { 1143 if mask[i] { 1144 continue 1145 } 1146 v := a[i] 1147 if !set { 1148 f = v 1149 min = i 1150 set = true 1151 continue 1152 } 1153 if v < f { 1154 min = i 1155 f = v 1156 } 1157 } 1158 return min 1159 }