gorgonia.org/tensor@v0.9.24/internal/execution/generic_arith_mixed.go (about) 1 // Code generated by genlib2. DO NOT EDIT. 2 3 package execution 4 5 import ( 6 "math" 7 "math/cmplx" 8 9 "github.com/chewxy/math32" 10 ) 11 12 func AddSVI(a int, b []int) { 13 for i := range b { 14 b[i] = a + b[i] 15 } 16 } 17 18 func AddSVI8(a int8, b []int8) { 19 for i := range b { 20 b[i] = a + b[i] 21 } 22 } 23 24 func AddSVI16(a int16, b []int16) { 25 for i := range b { 26 b[i] = a + b[i] 27 } 28 } 29 30 func AddSVI32(a int32, b []int32) { 31 for i := range b { 32 b[i] = a + b[i] 33 } 34 } 35 36 func AddSVI64(a int64, b []int64) { 37 for i := range b { 38 b[i] = a + b[i] 39 } 40 } 41 42 func AddSVU(a uint, b []uint) { 43 for i := range b { 44 b[i] = a + b[i] 45 } 46 } 47 48 func AddSVU8(a uint8, b []uint8) { 49 for i := range b { 50 b[i] = a + b[i] 51 } 52 } 53 54 func AddSVU16(a uint16, b []uint16) { 55 for i := range b { 56 b[i] = a + b[i] 57 } 58 } 59 60 func AddSVU32(a uint32, b []uint32) { 61 for i := range b { 62 b[i] = a + b[i] 63 } 64 } 65 66 func AddSVU64(a uint64, b []uint64) { 67 for i := range b { 68 b[i] = a + b[i] 69 } 70 } 71 72 func AddSVF32(a float32, b []float32) { 73 for i := range b { 74 b[i] = a + b[i] 75 } 76 } 77 78 func AddSVF64(a float64, b []float64) { 79 for i := range b { 80 b[i] = a + b[i] 81 } 82 } 83 84 func AddSVC64(a complex64, b []complex64) { 85 for i := range b { 86 b[i] = a + b[i] 87 } 88 } 89 90 func AddSVC128(a complex128, b []complex128) { 91 for i := range b { 92 b[i] = a + b[i] 93 } 94 } 95 96 func AddSVStr(a string, b []string) { 97 for i := range b { 98 b[i] = a + b[i] 99 } 100 } 101 102 func SubSVI(a int, b []int) { 103 for i := range b { 104 b[i] = a - b[i] 105 } 106 } 107 108 func SubSVI8(a int8, b []int8) { 109 for i := range b { 110 b[i] = a - b[i] 111 } 112 } 113 114 func SubSVI16(a int16, b []int16) { 115 for i := range b { 116 b[i] = a - b[i] 117 } 118 } 119 120 func SubSVI32(a int32, b []int32) { 121 for i := range b { 122 b[i] = a - b[i] 123 } 124 } 125 126 func SubSVI64(a int64, b []int64) { 127 for i := range b { 128 b[i] = a - b[i] 129 } 130 } 131 132 func SubSVU(a uint, b []uint) { 133 for i := range b { 134 b[i] = a - b[i] 135 } 136 } 137 138 func SubSVU8(a uint8, b []uint8) { 139 for i := range b { 140 b[i] = a - b[i] 141 } 142 } 143 144 func SubSVU16(a uint16, b []uint16) { 145 for i := range b { 146 b[i] = a - b[i] 147 } 148 } 149 150 func SubSVU32(a uint32, b []uint32) { 151 for i := range b { 152 b[i] = a - b[i] 153 } 154 } 155 156 func SubSVU64(a uint64, b []uint64) { 157 for i := range b { 158 b[i] = a - b[i] 159 } 160 } 161 162 func SubSVF32(a float32, b []float32) { 163 for i := range b { 164 b[i] = a - b[i] 165 } 166 } 167 168 func SubSVF64(a float64, b []float64) { 169 for i := range b { 170 b[i] = a - b[i] 171 } 172 } 173 174 func SubSVC64(a complex64, b []complex64) { 175 for i := range b { 176 b[i] = a - b[i] 177 } 178 } 179 180 func SubSVC128(a complex128, b []complex128) { 181 for i := range b { 182 b[i] = a - b[i] 183 } 184 } 185 186 func MulSVI(a int, b []int) { 187 for i := range b { 188 b[i] = a * b[i] 189 } 190 } 191 192 func MulSVI8(a int8, b []int8) { 193 for i := range b { 194 b[i] = a * b[i] 195 } 196 } 197 198 func MulSVI16(a int16, b []int16) { 199 for i := range b { 200 b[i] = a * b[i] 201 } 202 } 203 204 func MulSVI32(a int32, b []int32) { 205 for i := range b { 206 b[i] = a * b[i] 207 } 208 } 209 210 func MulSVI64(a int64, b []int64) { 211 for i := range b { 212 b[i] = a * b[i] 213 } 214 } 215 216 func MulSVU(a uint, b []uint) { 217 for i := range b { 218 b[i] = a * b[i] 219 } 220 } 221 222 func MulSVU8(a uint8, b []uint8) { 223 for i := range b { 224 b[i] = a * b[i] 225 } 226 } 227 228 func MulSVU16(a uint16, b []uint16) { 229 for i := range b { 230 b[i] = a * b[i] 231 } 232 } 233 234 func MulSVU32(a uint32, b []uint32) { 235 for i := range b { 236 b[i] = a * b[i] 237 } 238 } 239 240 func MulSVU64(a uint64, b []uint64) { 241 for i := range b { 242 b[i] = a * b[i] 243 } 244 } 245 246 func MulSVF32(a float32, b []float32) { 247 for i := range b { 248 b[i] = a * b[i] 249 } 250 } 251 252 func MulSVF64(a float64, b []float64) { 253 for i := range b { 254 b[i] = a * b[i] 255 } 256 } 257 258 func MulSVC64(a complex64, b []complex64) { 259 for i := range b { 260 b[i] = a * b[i] 261 } 262 } 263 264 func MulSVC128(a complex128, b []complex128) { 265 for i := range b { 266 b[i] = a * b[i] 267 } 268 } 269 270 func DivSVI(a int, b []int) (err error) { 271 var errs errorIndices 272 for i := range b { 273 if b[i] == 0 { 274 errs = append(errs, i) 275 b[i] = 0 276 continue 277 } 278 b[i] = a / b[i] 279 } 280 if err != nil { 281 return 282 } 283 if len(errs) > 0 { 284 return errs 285 } 286 return nil 287 } 288 289 func DivSVI8(a int8, b []int8) (err error) { 290 var errs errorIndices 291 for i := range b { 292 if b[i] == 0 { 293 errs = append(errs, i) 294 b[i] = 0 295 continue 296 } 297 b[i] = a / b[i] 298 } 299 if err != nil { 300 return 301 } 302 if len(errs) > 0 { 303 return errs 304 } 305 return nil 306 } 307 308 func DivSVI16(a int16, b []int16) (err error) { 309 var errs errorIndices 310 for i := range b { 311 if b[i] == 0 { 312 errs = append(errs, i) 313 b[i] = 0 314 continue 315 } 316 b[i] = a / b[i] 317 } 318 if err != nil { 319 return 320 } 321 if len(errs) > 0 { 322 return errs 323 } 324 return nil 325 } 326 327 func DivSVI32(a int32, b []int32) (err error) { 328 var errs errorIndices 329 for i := range b { 330 if b[i] == 0 { 331 errs = append(errs, i) 332 b[i] = 0 333 continue 334 } 335 b[i] = a / b[i] 336 } 337 if err != nil { 338 return 339 } 340 if len(errs) > 0 { 341 return errs 342 } 343 return nil 344 } 345 346 func DivSVI64(a int64, b []int64) (err error) { 347 var errs errorIndices 348 for i := range b { 349 if b[i] == 0 { 350 errs = append(errs, i) 351 b[i] = 0 352 continue 353 } 354 b[i] = a / b[i] 355 } 356 if err != nil { 357 return 358 } 359 if len(errs) > 0 { 360 return errs 361 } 362 return nil 363 } 364 365 func DivSVU(a uint, b []uint) (err error) { 366 var errs errorIndices 367 for i := range b { 368 if b[i] == 0 { 369 errs = append(errs, i) 370 b[i] = 0 371 continue 372 } 373 b[i] = a / b[i] 374 } 375 if err != nil { 376 return 377 } 378 if len(errs) > 0 { 379 return errs 380 } 381 return nil 382 } 383 384 func DivSVU8(a uint8, b []uint8) (err error) { 385 var errs errorIndices 386 for i := range b { 387 if b[i] == 0 { 388 errs = append(errs, i) 389 b[i] = 0 390 continue 391 } 392 b[i] = a / b[i] 393 } 394 if err != nil { 395 return 396 } 397 if len(errs) > 0 { 398 return errs 399 } 400 return nil 401 } 402 403 func DivSVU16(a uint16, b []uint16) (err error) { 404 var errs errorIndices 405 for i := range b { 406 if b[i] == 0 { 407 errs = append(errs, i) 408 b[i] = 0 409 continue 410 } 411 b[i] = a / b[i] 412 } 413 if err != nil { 414 return 415 } 416 if len(errs) > 0 { 417 return errs 418 } 419 return nil 420 } 421 422 func DivSVU32(a uint32, b []uint32) (err error) { 423 var errs errorIndices 424 for i := range b { 425 if b[i] == 0 { 426 errs = append(errs, i) 427 b[i] = 0 428 continue 429 } 430 b[i] = a / b[i] 431 } 432 if err != nil { 433 return 434 } 435 if len(errs) > 0 { 436 return errs 437 } 438 return nil 439 } 440 441 func DivSVU64(a uint64, b []uint64) (err error) { 442 var errs errorIndices 443 for i := range b { 444 if b[i] == 0 { 445 errs = append(errs, i) 446 b[i] = 0 447 continue 448 } 449 b[i] = a / b[i] 450 } 451 if err != nil { 452 return 453 } 454 if len(errs) > 0 { 455 return errs 456 } 457 return nil 458 } 459 460 func DivSVF32(a float32, b []float32) { 461 for i := range b { 462 b[i] = a / b[i] 463 } 464 } 465 466 func DivSVF64(a float64, b []float64) { 467 for i := range b { 468 b[i] = a / b[i] 469 } 470 } 471 472 func DivSVC64(a complex64, b []complex64) { 473 for i := range b { 474 b[i] = a / b[i] 475 } 476 } 477 478 func DivSVC128(a complex128, b []complex128) { 479 for i := range b { 480 b[i] = a / b[i] 481 } 482 } 483 484 func PowSVF32(a float32, b []float32) { 485 for i := range b { 486 b[i] = math32.Pow(a, b[i]) 487 } 488 } 489 490 func PowSVF64(a float64, b []float64) { 491 for i := range b { 492 b[i] = math.Pow(a, b[i]) 493 } 494 } 495 496 func PowSVC64(a complex64, b []complex64) { 497 for i := range b { 498 b[i] = complex64(cmplx.Pow(complex128(a), complex128(b[i]))) 499 } 500 } 501 502 func PowSVC128(a complex128, b []complex128) { 503 for i := range b { 504 b[i] = cmplx.Pow(a, b[i]) 505 } 506 } 507 508 func ModSVI(a int, b []int) { 509 for i := range b { 510 b[i] = a % b[i] 511 } 512 } 513 514 func ModSVI8(a int8, b []int8) { 515 for i := range b { 516 b[i] = a % b[i] 517 } 518 } 519 520 func ModSVI16(a int16, b []int16) { 521 for i := range b { 522 b[i] = a % b[i] 523 } 524 } 525 526 func ModSVI32(a int32, b []int32) { 527 for i := range b { 528 b[i] = a % b[i] 529 } 530 } 531 532 func ModSVI64(a int64, b []int64) { 533 for i := range b { 534 b[i] = a % b[i] 535 } 536 } 537 538 func ModSVU(a uint, b []uint) { 539 for i := range b { 540 b[i] = a % b[i] 541 } 542 } 543 544 func ModSVU8(a uint8, b []uint8) { 545 for i := range b { 546 b[i] = a % b[i] 547 } 548 } 549 550 func ModSVU16(a uint16, b []uint16) { 551 for i := range b { 552 b[i] = a % b[i] 553 } 554 } 555 556 func ModSVU32(a uint32, b []uint32) { 557 for i := range b { 558 b[i] = a % b[i] 559 } 560 } 561 562 func ModSVU64(a uint64, b []uint64) { 563 for i := range b { 564 b[i] = a % b[i] 565 } 566 } 567 568 func ModSVF32(a float32, b []float32) { 569 for i := range b { 570 b[i] = math32.Mod(a, b[i]) 571 } 572 } 573 574 func ModSVF64(a float64, b []float64) { 575 for i := range b { 576 b[i] = math.Mod(a, b[i]) 577 } 578 } 579 580 func AddIncrSVI(a int, b []int, incr []int) { 581 for i := range incr { 582 incr[i] += a + b[i] 583 } 584 } 585 586 func AddIncrSVI8(a int8, b []int8, incr []int8) { 587 for i := range incr { 588 incr[i] += a + b[i] 589 } 590 } 591 592 func AddIncrSVI16(a int16, b []int16, incr []int16) { 593 for i := range incr { 594 incr[i] += a + b[i] 595 } 596 } 597 598 func AddIncrSVI32(a int32, b []int32, incr []int32) { 599 for i := range incr { 600 incr[i] += a + b[i] 601 } 602 } 603 604 func AddIncrSVI64(a int64, b []int64, incr []int64) { 605 for i := range incr { 606 incr[i] += a + b[i] 607 } 608 } 609 610 func AddIncrSVU(a uint, b []uint, incr []uint) { 611 for i := range incr { 612 incr[i] += a + b[i] 613 } 614 } 615 616 func AddIncrSVU8(a uint8, b []uint8, incr []uint8) { 617 for i := range incr { 618 incr[i] += a + b[i] 619 } 620 } 621 622 func AddIncrSVU16(a uint16, b []uint16, incr []uint16) { 623 for i := range incr { 624 incr[i] += a + b[i] 625 } 626 } 627 628 func AddIncrSVU32(a uint32, b []uint32, incr []uint32) { 629 for i := range incr { 630 incr[i] += a + b[i] 631 } 632 } 633 634 func AddIncrSVU64(a uint64, b []uint64, incr []uint64) { 635 for i := range incr { 636 incr[i] += a + b[i] 637 } 638 } 639 640 func AddIncrSVF32(a float32, b []float32, incr []float32) { 641 for i := range incr { 642 incr[i] += a + b[i] 643 } 644 } 645 646 func AddIncrSVF64(a float64, b []float64, incr []float64) { 647 for i := range incr { 648 incr[i] += a + b[i] 649 } 650 } 651 652 func AddIncrSVC64(a complex64, b []complex64, incr []complex64) { 653 for i := range incr { 654 incr[i] += a + b[i] 655 } 656 } 657 658 func AddIncrSVC128(a complex128, b []complex128, incr []complex128) { 659 for i := range incr { 660 incr[i] += a + b[i] 661 } 662 } 663 664 func AddIncrSVStr(a string, b []string, incr []string) { 665 for i := range incr { 666 incr[i] += a + b[i] 667 } 668 } 669 670 func SubIncrSVI(a int, b []int, incr []int) { 671 for i := range incr { 672 incr[i] += a - b[i] 673 } 674 } 675 676 func SubIncrSVI8(a int8, b []int8, incr []int8) { 677 for i := range incr { 678 incr[i] += a - b[i] 679 } 680 } 681 682 func SubIncrSVI16(a int16, b []int16, incr []int16) { 683 for i := range incr { 684 incr[i] += a - b[i] 685 } 686 } 687 688 func SubIncrSVI32(a int32, b []int32, incr []int32) { 689 for i := range incr { 690 incr[i] += a - b[i] 691 } 692 } 693 694 func SubIncrSVI64(a int64, b []int64, incr []int64) { 695 for i := range incr { 696 incr[i] += a - b[i] 697 } 698 } 699 700 func SubIncrSVU(a uint, b []uint, incr []uint) { 701 for i := range incr { 702 incr[i] += a - b[i] 703 } 704 } 705 706 func SubIncrSVU8(a uint8, b []uint8, incr []uint8) { 707 for i := range incr { 708 incr[i] += a - b[i] 709 } 710 } 711 712 func SubIncrSVU16(a uint16, b []uint16, incr []uint16) { 713 for i := range incr { 714 incr[i] += a - b[i] 715 } 716 } 717 718 func SubIncrSVU32(a uint32, b []uint32, incr []uint32) { 719 for i := range incr { 720 incr[i] += a - b[i] 721 } 722 } 723 724 func SubIncrSVU64(a uint64, b []uint64, incr []uint64) { 725 for i := range incr { 726 incr[i] += a - b[i] 727 } 728 } 729 730 func SubIncrSVF32(a float32, b []float32, incr []float32) { 731 for i := range incr { 732 incr[i] += a - b[i] 733 } 734 } 735 736 func SubIncrSVF64(a float64, b []float64, incr []float64) { 737 for i := range incr { 738 incr[i] += a - b[i] 739 } 740 } 741 742 func SubIncrSVC64(a complex64, b []complex64, incr []complex64) { 743 for i := range incr { 744 incr[i] += a - b[i] 745 } 746 } 747 748 func SubIncrSVC128(a complex128, b []complex128, incr []complex128) { 749 for i := range incr { 750 incr[i] += a - b[i] 751 } 752 } 753 754 func MulIncrSVI(a int, b []int, incr []int) { 755 for i := range incr { 756 incr[i] += a * b[i] 757 } 758 } 759 760 func MulIncrSVI8(a int8, b []int8, incr []int8) { 761 for i := range incr { 762 incr[i] += a * b[i] 763 } 764 } 765 766 func MulIncrSVI16(a int16, b []int16, incr []int16) { 767 for i := range incr { 768 incr[i] += a * b[i] 769 } 770 } 771 772 func MulIncrSVI32(a int32, b []int32, incr []int32) { 773 for i := range incr { 774 incr[i] += a * b[i] 775 } 776 } 777 778 func MulIncrSVI64(a int64, b []int64, incr []int64) { 779 for i := range incr { 780 incr[i] += a * b[i] 781 } 782 } 783 784 func MulIncrSVU(a uint, b []uint, incr []uint) { 785 for i := range incr { 786 incr[i] += a * b[i] 787 } 788 } 789 790 func MulIncrSVU8(a uint8, b []uint8, incr []uint8) { 791 for i := range incr { 792 incr[i] += a * b[i] 793 } 794 } 795 796 func MulIncrSVU16(a uint16, b []uint16, incr []uint16) { 797 for i := range incr { 798 incr[i] += a * b[i] 799 } 800 } 801 802 func MulIncrSVU32(a uint32, b []uint32, incr []uint32) { 803 for i := range incr { 804 incr[i] += a * b[i] 805 } 806 } 807 808 func MulIncrSVU64(a uint64, b []uint64, incr []uint64) { 809 for i := range incr { 810 incr[i] += a * b[i] 811 } 812 } 813 814 func MulIncrSVF32(a float32, b []float32, incr []float32) { 815 for i := range incr { 816 incr[i] += a * b[i] 817 } 818 } 819 820 func MulIncrSVF64(a float64, b []float64, incr []float64) { 821 for i := range incr { 822 incr[i] += a * b[i] 823 } 824 } 825 826 func MulIncrSVC64(a complex64, b []complex64, incr []complex64) { 827 for i := range incr { 828 incr[i] += a * b[i] 829 } 830 } 831 832 func MulIncrSVC128(a complex128, b []complex128, incr []complex128) { 833 for i := range incr { 834 incr[i] += a * b[i] 835 } 836 } 837 838 func DivIncrSVI(a int, b []int, incr []int) (err error) { 839 var errs errorIndices 840 for i := range incr { 841 if b[i] == 0 { 842 errs = append(errs, i) 843 incr[i] = 0 844 continue 845 } 846 incr[i] += a / b[i] 847 } 848 if err != nil { 849 return 850 } 851 if len(errs) > 0 { 852 return errs 853 } 854 return nil 855 } 856 857 func DivIncrSVI8(a int8, b []int8, incr []int8) (err error) { 858 var errs errorIndices 859 for i := range incr { 860 if b[i] == 0 { 861 errs = append(errs, i) 862 incr[i] = 0 863 continue 864 } 865 incr[i] += a / b[i] 866 } 867 if err != nil { 868 return 869 } 870 if len(errs) > 0 { 871 return errs 872 } 873 return nil 874 } 875 876 func DivIncrSVI16(a int16, b []int16, incr []int16) (err error) { 877 var errs errorIndices 878 for i := range incr { 879 if b[i] == 0 { 880 errs = append(errs, i) 881 incr[i] = 0 882 continue 883 } 884 incr[i] += a / b[i] 885 } 886 if err != nil { 887 return 888 } 889 if len(errs) > 0 { 890 return errs 891 } 892 return nil 893 } 894 895 func DivIncrSVI32(a int32, b []int32, incr []int32) (err error) { 896 var errs errorIndices 897 for i := range incr { 898 if b[i] == 0 { 899 errs = append(errs, i) 900 incr[i] = 0 901 continue 902 } 903 incr[i] += a / b[i] 904 } 905 if err != nil { 906 return 907 } 908 if len(errs) > 0 { 909 return errs 910 } 911 return nil 912 } 913 914 func DivIncrSVI64(a int64, b []int64, incr []int64) (err error) { 915 var errs errorIndices 916 for i := range incr { 917 if b[i] == 0 { 918 errs = append(errs, i) 919 incr[i] = 0 920 continue 921 } 922 incr[i] += a / b[i] 923 } 924 if err != nil { 925 return 926 } 927 if len(errs) > 0 { 928 return errs 929 } 930 return nil 931 } 932 933 func DivIncrSVU(a uint, b []uint, incr []uint) (err error) { 934 var errs errorIndices 935 for i := range incr { 936 if b[i] == 0 { 937 errs = append(errs, i) 938 incr[i] = 0 939 continue 940 } 941 incr[i] += a / b[i] 942 } 943 if err != nil { 944 return 945 } 946 if len(errs) > 0 { 947 return errs 948 } 949 return nil 950 } 951 952 func DivIncrSVU8(a uint8, b []uint8, incr []uint8) (err error) { 953 var errs errorIndices 954 for i := range incr { 955 if b[i] == 0 { 956 errs = append(errs, i) 957 incr[i] = 0 958 continue 959 } 960 incr[i] += a / b[i] 961 } 962 if err != nil { 963 return 964 } 965 if len(errs) > 0 { 966 return errs 967 } 968 return nil 969 } 970 971 func DivIncrSVU16(a uint16, b []uint16, incr []uint16) (err error) { 972 var errs errorIndices 973 for i := range incr { 974 if b[i] == 0 { 975 errs = append(errs, i) 976 incr[i] = 0 977 continue 978 } 979 incr[i] += a / b[i] 980 } 981 if err != nil { 982 return 983 } 984 if len(errs) > 0 { 985 return errs 986 } 987 return nil 988 } 989 990 func DivIncrSVU32(a uint32, b []uint32, incr []uint32) (err error) { 991 var errs errorIndices 992 for i := range incr { 993 if b[i] == 0 { 994 errs = append(errs, i) 995 incr[i] = 0 996 continue 997 } 998 incr[i] += a / b[i] 999 } 1000 if err != nil { 1001 return 1002 } 1003 if len(errs) > 0 { 1004 return errs 1005 } 1006 return nil 1007 } 1008 1009 func DivIncrSVU64(a uint64, b []uint64, incr []uint64) (err error) { 1010 var errs errorIndices 1011 for i := range incr { 1012 if b[i] == 0 { 1013 errs = append(errs, i) 1014 incr[i] = 0 1015 continue 1016 } 1017 incr[i] += a / b[i] 1018 } 1019 if err != nil { 1020 return 1021 } 1022 if len(errs) > 0 { 1023 return errs 1024 } 1025 return nil 1026 } 1027 1028 func DivIncrSVF32(a float32, b []float32, incr []float32) { 1029 for i := range incr { 1030 incr[i] += a / b[i] 1031 } 1032 } 1033 1034 func DivIncrSVF64(a float64, b []float64, incr []float64) { 1035 for i := range incr { 1036 incr[i] += a / b[i] 1037 } 1038 } 1039 1040 func DivIncrSVC64(a complex64, b []complex64, incr []complex64) { 1041 for i := range incr { 1042 incr[i] += a / b[i] 1043 } 1044 } 1045 1046 func DivIncrSVC128(a complex128, b []complex128, incr []complex128) { 1047 for i := range incr { 1048 incr[i] += a / b[i] 1049 } 1050 } 1051 1052 func PowIncrSVF32(a float32, b []float32, incr []float32) { 1053 for i := range incr { 1054 incr[i] += math32.Pow(a, b[i]) 1055 } 1056 } 1057 1058 func PowIncrSVF64(a float64, b []float64, incr []float64) { 1059 for i := range incr { 1060 incr[i] += math.Pow(a, b[i]) 1061 } 1062 } 1063 1064 func PowIncrSVC64(a complex64, b []complex64, incr []complex64) { 1065 for i := range incr { 1066 incr[i] += complex64(cmplx.Pow(complex128(a), complex128(b[i]))) 1067 } 1068 } 1069 1070 func PowIncrSVC128(a complex128, b []complex128, incr []complex128) { 1071 for i := range incr { 1072 incr[i] += cmplx.Pow(a, b[i]) 1073 } 1074 } 1075 1076 func ModIncrSVI(a int, b []int, incr []int) { 1077 for i := range incr { 1078 incr[i] += a % b[i] 1079 } 1080 } 1081 1082 func ModIncrSVI8(a int8, b []int8, incr []int8) { 1083 for i := range incr { 1084 incr[i] += a % b[i] 1085 } 1086 } 1087 1088 func ModIncrSVI16(a int16, b []int16, incr []int16) { 1089 for i := range incr { 1090 incr[i] += a % b[i] 1091 } 1092 } 1093 1094 func ModIncrSVI32(a int32, b []int32, incr []int32) { 1095 for i := range incr { 1096 incr[i] += a % b[i] 1097 } 1098 } 1099 1100 func ModIncrSVI64(a int64, b []int64, incr []int64) { 1101 for i := range incr { 1102 incr[i] += a % b[i] 1103 } 1104 } 1105 1106 func ModIncrSVU(a uint, b []uint, incr []uint) { 1107 for i := range incr { 1108 incr[i] += a % b[i] 1109 } 1110 } 1111 1112 func ModIncrSVU8(a uint8, b []uint8, incr []uint8) { 1113 for i := range incr { 1114 incr[i] += a % b[i] 1115 } 1116 } 1117 1118 func ModIncrSVU16(a uint16, b []uint16, incr []uint16) { 1119 for i := range incr { 1120 incr[i] += a % b[i] 1121 } 1122 } 1123 1124 func ModIncrSVU32(a uint32, b []uint32, incr []uint32) { 1125 for i := range incr { 1126 incr[i] += a % b[i] 1127 } 1128 } 1129 1130 func ModIncrSVU64(a uint64, b []uint64, incr []uint64) { 1131 for i := range incr { 1132 incr[i] += a % b[i] 1133 } 1134 } 1135 1136 func ModIncrSVF32(a float32, b []float32, incr []float32) { 1137 for i := range incr { 1138 incr[i] += math32.Mod(a, b[i]) 1139 } 1140 } 1141 1142 func ModIncrSVF64(a float64, b []float64, incr []float64) { 1143 for i := range incr { 1144 incr[i] += math.Mod(a, b[i]) 1145 } 1146 } 1147 1148 func AddIterSVI(a int, b []int, bit Iterator) (err error) { 1149 var i int 1150 var validi bool 1151 for { 1152 if i, validi, err = bit.NextValidity(); err != nil { 1153 err = handleNoOp(err) 1154 break 1155 } 1156 if validi { 1157 b[i] = a + b[i] 1158 } 1159 } 1160 return 1161 } 1162 1163 func AddIterSVI8(a int8, b []int8, bit Iterator) (err error) { 1164 var i int 1165 var validi bool 1166 for { 1167 if i, validi, err = bit.NextValidity(); err != nil { 1168 err = handleNoOp(err) 1169 break 1170 } 1171 if validi { 1172 b[i] = a + b[i] 1173 } 1174 } 1175 return 1176 } 1177 1178 func AddIterSVI16(a int16, b []int16, bit Iterator) (err error) { 1179 var i int 1180 var validi bool 1181 for { 1182 if i, validi, err = bit.NextValidity(); err != nil { 1183 err = handleNoOp(err) 1184 break 1185 } 1186 if validi { 1187 b[i] = a + b[i] 1188 } 1189 } 1190 return 1191 } 1192 1193 func AddIterSVI32(a int32, b []int32, bit Iterator) (err error) { 1194 var i int 1195 var validi bool 1196 for { 1197 if i, validi, err = bit.NextValidity(); err != nil { 1198 err = handleNoOp(err) 1199 break 1200 } 1201 if validi { 1202 b[i] = a + b[i] 1203 } 1204 } 1205 return 1206 } 1207 1208 func AddIterSVI64(a int64, b []int64, bit Iterator) (err error) { 1209 var i int 1210 var validi bool 1211 for { 1212 if i, validi, err = bit.NextValidity(); err != nil { 1213 err = handleNoOp(err) 1214 break 1215 } 1216 if validi { 1217 b[i] = a + b[i] 1218 } 1219 } 1220 return 1221 } 1222 1223 func AddIterSVU(a uint, b []uint, bit Iterator) (err error) { 1224 var i int 1225 var validi bool 1226 for { 1227 if i, validi, err = bit.NextValidity(); err != nil { 1228 err = handleNoOp(err) 1229 break 1230 } 1231 if validi { 1232 b[i] = a + b[i] 1233 } 1234 } 1235 return 1236 } 1237 1238 func AddIterSVU8(a uint8, b []uint8, bit Iterator) (err error) { 1239 var i int 1240 var validi bool 1241 for { 1242 if i, validi, err = bit.NextValidity(); err != nil { 1243 err = handleNoOp(err) 1244 break 1245 } 1246 if validi { 1247 b[i] = a + b[i] 1248 } 1249 } 1250 return 1251 } 1252 1253 func AddIterSVU16(a uint16, b []uint16, bit Iterator) (err error) { 1254 var i int 1255 var validi bool 1256 for { 1257 if i, validi, err = bit.NextValidity(); err != nil { 1258 err = handleNoOp(err) 1259 break 1260 } 1261 if validi { 1262 b[i] = a + b[i] 1263 } 1264 } 1265 return 1266 } 1267 1268 func AddIterSVU32(a uint32, b []uint32, bit Iterator) (err error) { 1269 var i int 1270 var validi bool 1271 for { 1272 if i, validi, err = bit.NextValidity(); err != nil { 1273 err = handleNoOp(err) 1274 break 1275 } 1276 if validi { 1277 b[i] = a + b[i] 1278 } 1279 } 1280 return 1281 } 1282 1283 func AddIterSVU64(a uint64, b []uint64, bit Iterator) (err error) { 1284 var i int 1285 var validi bool 1286 for { 1287 if i, validi, err = bit.NextValidity(); err != nil { 1288 err = handleNoOp(err) 1289 break 1290 } 1291 if validi { 1292 b[i] = a + b[i] 1293 } 1294 } 1295 return 1296 } 1297 1298 func AddIterSVF32(a float32, b []float32, bit Iterator) (err error) { 1299 var i int 1300 var validi bool 1301 for { 1302 if i, validi, err = bit.NextValidity(); err != nil { 1303 err = handleNoOp(err) 1304 break 1305 } 1306 if validi { 1307 b[i] = a + b[i] 1308 } 1309 } 1310 return 1311 } 1312 1313 func AddIterSVF64(a float64, b []float64, bit Iterator) (err error) { 1314 var i int 1315 var validi bool 1316 for { 1317 if i, validi, err = bit.NextValidity(); err != nil { 1318 err = handleNoOp(err) 1319 break 1320 } 1321 if validi { 1322 b[i] = a + b[i] 1323 } 1324 } 1325 return 1326 } 1327 1328 func AddIterSVC64(a complex64, b []complex64, bit Iterator) (err error) { 1329 var i int 1330 var validi bool 1331 for { 1332 if i, validi, err = bit.NextValidity(); err != nil { 1333 err = handleNoOp(err) 1334 break 1335 } 1336 if validi { 1337 b[i] = a + b[i] 1338 } 1339 } 1340 return 1341 } 1342 1343 func AddIterSVC128(a complex128, b []complex128, bit Iterator) (err error) { 1344 var i int 1345 var validi bool 1346 for { 1347 if i, validi, err = bit.NextValidity(); err != nil { 1348 err = handleNoOp(err) 1349 break 1350 } 1351 if validi { 1352 b[i] = a + b[i] 1353 } 1354 } 1355 return 1356 } 1357 1358 func AddIterSVStr(a string, b []string, bit Iterator) (err error) { 1359 var i int 1360 var validi bool 1361 for { 1362 if i, validi, err = bit.NextValidity(); err != nil { 1363 err = handleNoOp(err) 1364 break 1365 } 1366 if validi { 1367 b[i] = a + b[i] 1368 } 1369 } 1370 return 1371 } 1372 1373 func SubIterSVI(a int, b []int, bit Iterator) (err error) { 1374 var i int 1375 var validi bool 1376 for { 1377 if i, validi, err = bit.NextValidity(); err != nil { 1378 err = handleNoOp(err) 1379 break 1380 } 1381 if validi { 1382 b[i] = a - b[i] 1383 } 1384 } 1385 return 1386 } 1387 1388 func SubIterSVI8(a int8, b []int8, bit Iterator) (err error) { 1389 var i int 1390 var validi bool 1391 for { 1392 if i, validi, err = bit.NextValidity(); err != nil { 1393 err = handleNoOp(err) 1394 break 1395 } 1396 if validi { 1397 b[i] = a - b[i] 1398 } 1399 } 1400 return 1401 } 1402 1403 func SubIterSVI16(a int16, b []int16, bit Iterator) (err error) { 1404 var i int 1405 var validi bool 1406 for { 1407 if i, validi, err = bit.NextValidity(); err != nil { 1408 err = handleNoOp(err) 1409 break 1410 } 1411 if validi { 1412 b[i] = a - b[i] 1413 } 1414 } 1415 return 1416 } 1417 1418 func SubIterSVI32(a int32, b []int32, bit Iterator) (err error) { 1419 var i int 1420 var validi bool 1421 for { 1422 if i, validi, err = bit.NextValidity(); err != nil { 1423 err = handleNoOp(err) 1424 break 1425 } 1426 if validi { 1427 b[i] = a - b[i] 1428 } 1429 } 1430 return 1431 } 1432 1433 func SubIterSVI64(a int64, b []int64, bit Iterator) (err error) { 1434 var i int 1435 var validi bool 1436 for { 1437 if i, validi, err = bit.NextValidity(); err != nil { 1438 err = handleNoOp(err) 1439 break 1440 } 1441 if validi { 1442 b[i] = a - b[i] 1443 } 1444 } 1445 return 1446 } 1447 1448 func SubIterSVU(a uint, b []uint, bit Iterator) (err error) { 1449 var i int 1450 var validi bool 1451 for { 1452 if i, validi, err = bit.NextValidity(); err != nil { 1453 err = handleNoOp(err) 1454 break 1455 } 1456 if validi { 1457 b[i] = a - b[i] 1458 } 1459 } 1460 return 1461 } 1462 1463 func SubIterSVU8(a uint8, b []uint8, bit Iterator) (err error) { 1464 var i int 1465 var validi bool 1466 for { 1467 if i, validi, err = bit.NextValidity(); err != nil { 1468 err = handleNoOp(err) 1469 break 1470 } 1471 if validi { 1472 b[i] = a - b[i] 1473 } 1474 } 1475 return 1476 } 1477 1478 func SubIterSVU16(a uint16, b []uint16, bit Iterator) (err error) { 1479 var i int 1480 var validi bool 1481 for { 1482 if i, validi, err = bit.NextValidity(); err != nil { 1483 err = handleNoOp(err) 1484 break 1485 } 1486 if validi { 1487 b[i] = a - b[i] 1488 } 1489 } 1490 return 1491 } 1492 1493 func SubIterSVU32(a uint32, b []uint32, bit Iterator) (err error) { 1494 var i int 1495 var validi bool 1496 for { 1497 if i, validi, err = bit.NextValidity(); err != nil { 1498 err = handleNoOp(err) 1499 break 1500 } 1501 if validi { 1502 b[i] = a - b[i] 1503 } 1504 } 1505 return 1506 } 1507 1508 func SubIterSVU64(a uint64, b []uint64, bit Iterator) (err error) { 1509 var i int 1510 var validi bool 1511 for { 1512 if i, validi, err = bit.NextValidity(); err != nil { 1513 err = handleNoOp(err) 1514 break 1515 } 1516 if validi { 1517 b[i] = a - b[i] 1518 } 1519 } 1520 return 1521 } 1522 1523 func SubIterSVF32(a float32, b []float32, bit Iterator) (err error) { 1524 var i int 1525 var validi bool 1526 for { 1527 if i, validi, err = bit.NextValidity(); err != nil { 1528 err = handleNoOp(err) 1529 break 1530 } 1531 if validi { 1532 b[i] = a - b[i] 1533 } 1534 } 1535 return 1536 } 1537 1538 func SubIterSVF64(a float64, b []float64, bit Iterator) (err error) { 1539 var i int 1540 var validi bool 1541 for { 1542 if i, validi, err = bit.NextValidity(); err != nil { 1543 err = handleNoOp(err) 1544 break 1545 } 1546 if validi { 1547 b[i] = a - b[i] 1548 } 1549 } 1550 return 1551 } 1552 1553 func SubIterSVC64(a complex64, b []complex64, bit Iterator) (err error) { 1554 var i int 1555 var validi bool 1556 for { 1557 if i, validi, err = bit.NextValidity(); err != nil { 1558 err = handleNoOp(err) 1559 break 1560 } 1561 if validi { 1562 b[i] = a - b[i] 1563 } 1564 } 1565 return 1566 } 1567 1568 func SubIterSVC128(a complex128, b []complex128, bit Iterator) (err error) { 1569 var i int 1570 var validi bool 1571 for { 1572 if i, validi, err = bit.NextValidity(); err != nil { 1573 err = handleNoOp(err) 1574 break 1575 } 1576 if validi { 1577 b[i] = a - b[i] 1578 } 1579 } 1580 return 1581 } 1582 1583 func MulIterSVI(a int, b []int, bit Iterator) (err error) { 1584 var i int 1585 var validi bool 1586 for { 1587 if i, validi, err = bit.NextValidity(); err != nil { 1588 err = handleNoOp(err) 1589 break 1590 } 1591 if validi { 1592 b[i] = a * b[i] 1593 } 1594 } 1595 return 1596 } 1597 1598 func MulIterSVI8(a int8, b []int8, bit Iterator) (err error) { 1599 var i int 1600 var validi bool 1601 for { 1602 if i, validi, err = bit.NextValidity(); err != nil { 1603 err = handleNoOp(err) 1604 break 1605 } 1606 if validi { 1607 b[i] = a * b[i] 1608 } 1609 } 1610 return 1611 } 1612 1613 func MulIterSVI16(a int16, b []int16, bit Iterator) (err error) { 1614 var i int 1615 var validi bool 1616 for { 1617 if i, validi, err = bit.NextValidity(); err != nil { 1618 err = handleNoOp(err) 1619 break 1620 } 1621 if validi { 1622 b[i] = a * b[i] 1623 } 1624 } 1625 return 1626 } 1627 1628 func MulIterSVI32(a int32, b []int32, bit Iterator) (err error) { 1629 var i int 1630 var validi bool 1631 for { 1632 if i, validi, err = bit.NextValidity(); err != nil { 1633 err = handleNoOp(err) 1634 break 1635 } 1636 if validi { 1637 b[i] = a * b[i] 1638 } 1639 } 1640 return 1641 } 1642 1643 func MulIterSVI64(a int64, b []int64, bit Iterator) (err error) { 1644 var i int 1645 var validi bool 1646 for { 1647 if i, validi, err = bit.NextValidity(); err != nil { 1648 err = handleNoOp(err) 1649 break 1650 } 1651 if validi { 1652 b[i] = a * b[i] 1653 } 1654 } 1655 return 1656 } 1657 1658 func MulIterSVU(a uint, b []uint, bit Iterator) (err error) { 1659 var i int 1660 var validi bool 1661 for { 1662 if i, validi, err = bit.NextValidity(); err != nil { 1663 err = handleNoOp(err) 1664 break 1665 } 1666 if validi { 1667 b[i] = a * b[i] 1668 } 1669 } 1670 return 1671 } 1672 1673 func MulIterSVU8(a uint8, b []uint8, bit Iterator) (err error) { 1674 var i int 1675 var validi bool 1676 for { 1677 if i, validi, err = bit.NextValidity(); err != nil { 1678 err = handleNoOp(err) 1679 break 1680 } 1681 if validi { 1682 b[i] = a * b[i] 1683 } 1684 } 1685 return 1686 } 1687 1688 func MulIterSVU16(a uint16, b []uint16, bit Iterator) (err error) { 1689 var i int 1690 var validi bool 1691 for { 1692 if i, validi, err = bit.NextValidity(); err != nil { 1693 err = handleNoOp(err) 1694 break 1695 } 1696 if validi { 1697 b[i] = a * b[i] 1698 } 1699 } 1700 return 1701 } 1702 1703 func MulIterSVU32(a uint32, b []uint32, bit Iterator) (err error) { 1704 var i int 1705 var validi bool 1706 for { 1707 if i, validi, err = bit.NextValidity(); err != nil { 1708 err = handleNoOp(err) 1709 break 1710 } 1711 if validi { 1712 b[i] = a * b[i] 1713 } 1714 } 1715 return 1716 } 1717 1718 func MulIterSVU64(a uint64, b []uint64, bit Iterator) (err error) { 1719 var i int 1720 var validi bool 1721 for { 1722 if i, validi, err = bit.NextValidity(); err != nil { 1723 err = handleNoOp(err) 1724 break 1725 } 1726 if validi { 1727 b[i] = a * b[i] 1728 } 1729 } 1730 return 1731 } 1732 1733 func MulIterSVF32(a float32, b []float32, bit Iterator) (err error) { 1734 var i int 1735 var validi bool 1736 for { 1737 if i, validi, err = bit.NextValidity(); err != nil { 1738 err = handleNoOp(err) 1739 break 1740 } 1741 if validi { 1742 b[i] = a * b[i] 1743 } 1744 } 1745 return 1746 } 1747 1748 func MulIterSVF64(a float64, b []float64, bit Iterator) (err error) { 1749 var i int 1750 var validi bool 1751 for { 1752 if i, validi, err = bit.NextValidity(); err != nil { 1753 err = handleNoOp(err) 1754 break 1755 } 1756 if validi { 1757 b[i] = a * b[i] 1758 } 1759 } 1760 return 1761 } 1762 1763 func MulIterSVC64(a complex64, b []complex64, bit Iterator) (err error) { 1764 var i int 1765 var validi bool 1766 for { 1767 if i, validi, err = bit.NextValidity(); err != nil { 1768 err = handleNoOp(err) 1769 break 1770 } 1771 if validi { 1772 b[i] = a * b[i] 1773 } 1774 } 1775 return 1776 } 1777 1778 func MulIterSVC128(a complex128, b []complex128, bit Iterator) (err error) { 1779 var i int 1780 var validi bool 1781 for { 1782 if i, validi, err = bit.NextValidity(); err != nil { 1783 err = handleNoOp(err) 1784 break 1785 } 1786 if validi { 1787 b[i] = a * b[i] 1788 } 1789 } 1790 return 1791 } 1792 1793 func DivIterSVI(a int, b []int, bit Iterator) (err error) { 1794 var errs errorIndices 1795 var i int 1796 var validi bool 1797 for { 1798 if i, validi, err = bit.NextValidity(); err != nil { 1799 err = handleNoOp(err) 1800 break 1801 } 1802 if validi { 1803 if b[i] == 0 { 1804 errs = append(errs, i) 1805 b[i] = 0 1806 continue 1807 } 1808 b[i] = a / b[i] 1809 } 1810 } 1811 if err != nil { 1812 return 1813 } 1814 if len(errs) > 0 { 1815 return errs 1816 } 1817 return nil 1818 } 1819 1820 func DivIterSVI8(a int8, b []int8, bit Iterator) (err error) { 1821 var errs errorIndices 1822 var i int 1823 var validi bool 1824 for { 1825 if i, validi, err = bit.NextValidity(); err != nil { 1826 err = handleNoOp(err) 1827 break 1828 } 1829 if validi { 1830 if b[i] == 0 { 1831 errs = append(errs, i) 1832 b[i] = 0 1833 continue 1834 } 1835 b[i] = a / b[i] 1836 } 1837 } 1838 if err != nil { 1839 return 1840 } 1841 if len(errs) > 0 { 1842 return errs 1843 } 1844 return nil 1845 } 1846 1847 func DivIterSVI16(a int16, b []int16, bit Iterator) (err error) { 1848 var errs errorIndices 1849 var i int 1850 var validi bool 1851 for { 1852 if i, validi, err = bit.NextValidity(); err != nil { 1853 err = handleNoOp(err) 1854 break 1855 } 1856 if validi { 1857 if b[i] == 0 { 1858 errs = append(errs, i) 1859 b[i] = 0 1860 continue 1861 } 1862 b[i] = a / b[i] 1863 } 1864 } 1865 if err != nil { 1866 return 1867 } 1868 if len(errs) > 0 { 1869 return errs 1870 } 1871 return nil 1872 } 1873 1874 func DivIterSVI32(a int32, b []int32, bit Iterator) (err error) { 1875 var errs errorIndices 1876 var i int 1877 var validi bool 1878 for { 1879 if i, validi, err = bit.NextValidity(); err != nil { 1880 err = handleNoOp(err) 1881 break 1882 } 1883 if validi { 1884 if b[i] == 0 { 1885 errs = append(errs, i) 1886 b[i] = 0 1887 continue 1888 } 1889 b[i] = a / b[i] 1890 } 1891 } 1892 if err != nil { 1893 return 1894 } 1895 if len(errs) > 0 { 1896 return errs 1897 } 1898 return nil 1899 } 1900 1901 func DivIterSVI64(a int64, b []int64, bit Iterator) (err error) { 1902 var errs errorIndices 1903 var i int 1904 var validi bool 1905 for { 1906 if i, validi, err = bit.NextValidity(); err != nil { 1907 err = handleNoOp(err) 1908 break 1909 } 1910 if validi { 1911 if b[i] == 0 { 1912 errs = append(errs, i) 1913 b[i] = 0 1914 continue 1915 } 1916 b[i] = a / b[i] 1917 } 1918 } 1919 if err != nil { 1920 return 1921 } 1922 if len(errs) > 0 { 1923 return errs 1924 } 1925 return nil 1926 } 1927 1928 func DivIterSVU(a uint, b []uint, bit Iterator) (err error) { 1929 var errs errorIndices 1930 var i int 1931 var validi bool 1932 for { 1933 if i, validi, err = bit.NextValidity(); err != nil { 1934 err = handleNoOp(err) 1935 break 1936 } 1937 if validi { 1938 if b[i] == 0 { 1939 errs = append(errs, i) 1940 b[i] = 0 1941 continue 1942 } 1943 b[i] = a / b[i] 1944 } 1945 } 1946 if err != nil { 1947 return 1948 } 1949 if len(errs) > 0 { 1950 return errs 1951 } 1952 return nil 1953 } 1954 1955 func DivIterSVU8(a uint8, b []uint8, bit Iterator) (err error) { 1956 var errs errorIndices 1957 var i int 1958 var validi bool 1959 for { 1960 if i, validi, err = bit.NextValidity(); err != nil { 1961 err = handleNoOp(err) 1962 break 1963 } 1964 if validi { 1965 if b[i] == 0 { 1966 errs = append(errs, i) 1967 b[i] = 0 1968 continue 1969 } 1970 b[i] = a / b[i] 1971 } 1972 } 1973 if err != nil { 1974 return 1975 } 1976 if len(errs) > 0 { 1977 return errs 1978 } 1979 return nil 1980 } 1981 1982 func DivIterSVU16(a uint16, b []uint16, bit Iterator) (err error) { 1983 var errs errorIndices 1984 var i int 1985 var validi bool 1986 for { 1987 if i, validi, err = bit.NextValidity(); err != nil { 1988 err = handleNoOp(err) 1989 break 1990 } 1991 if validi { 1992 if b[i] == 0 { 1993 errs = append(errs, i) 1994 b[i] = 0 1995 continue 1996 } 1997 b[i] = a / b[i] 1998 } 1999 } 2000 if err != nil { 2001 return 2002 } 2003 if len(errs) > 0 { 2004 return errs 2005 } 2006 return nil 2007 } 2008 2009 func DivIterSVU32(a uint32, b []uint32, bit Iterator) (err error) { 2010 var errs errorIndices 2011 var i int 2012 var validi bool 2013 for { 2014 if i, validi, err = bit.NextValidity(); err != nil { 2015 err = handleNoOp(err) 2016 break 2017 } 2018 if validi { 2019 if b[i] == 0 { 2020 errs = append(errs, i) 2021 b[i] = 0 2022 continue 2023 } 2024 b[i] = a / b[i] 2025 } 2026 } 2027 if err != nil { 2028 return 2029 } 2030 if len(errs) > 0 { 2031 return errs 2032 } 2033 return nil 2034 } 2035 2036 func DivIterSVU64(a uint64, b []uint64, bit Iterator) (err error) { 2037 var errs errorIndices 2038 var i int 2039 var validi bool 2040 for { 2041 if i, validi, err = bit.NextValidity(); err != nil { 2042 err = handleNoOp(err) 2043 break 2044 } 2045 if validi { 2046 if b[i] == 0 { 2047 errs = append(errs, i) 2048 b[i] = 0 2049 continue 2050 } 2051 b[i] = a / b[i] 2052 } 2053 } 2054 if err != nil { 2055 return 2056 } 2057 if len(errs) > 0 { 2058 return errs 2059 } 2060 return nil 2061 } 2062 2063 func DivIterSVF32(a float32, b []float32, bit Iterator) (err error) { 2064 var i int 2065 var validi bool 2066 for { 2067 if i, validi, err = bit.NextValidity(); err != nil { 2068 err = handleNoOp(err) 2069 break 2070 } 2071 if validi { 2072 b[i] = a / b[i] 2073 } 2074 } 2075 return 2076 } 2077 2078 func DivIterSVF64(a float64, b []float64, bit Iterator) (err error) { 2079 var i int 2080 var validi bool 2081 for { 2082 if i, validi, err = bit.NextValidity(); err != nil { 2083 err = handleNoOp(err) 2084 break 2085 } 2086 if validi { 2087 b[i] = a / b[i] 2088 } 2089 } 2090 return 2091 } 2092 2093 func DivIterSVC64(a complex64, b []complex64, bit Iterator) (err error) { 2094 var i int 2095 var validi bool 2096 for { 2097 if i, validi, err = bit.NextValidity(); err != nil { 2098 err = handleNoOp(err) 2099 break 2100 } 2101 if validi { 2102 b[i] = a / b[i] 2103 } 2104 } 2105 return 2106 } 2107 2108 func DivIterSVC128(a complex128, b []complex128, bit Iterator) (err error) { 2109 var i int 2110 var validi bool 2111 for { 2112 if i, validi, err = bit.NextValidity(); err != nil { 2113 err = handleNoOp(err) 2114 break 2115 } 2116 if validi { 2117 b[i] = a / b[i] 2118 } 2119 } 2120 return 2121 } 2122 2123 func PowIterSVF32(a float32, b []float32, bit Iterator) (err error) { 2124 var i int 2125 var validi bool 2126 for { 2127 if i, validi, err = bit.NextValidity(); err != nil { 2128 err = handleNoOp(err) 2129 break 2130 } 2131 if validi { 2132 b[i] = math32.Pow(a, b[i]) 2133 } 2134 } 2135 return 2136 } 2137 2138 func PowIterSVF64(a float64, b []float64, bit Iterator) (err error) { 2139 var i int 2140 var validi bool 2141 for { 2142 if i, validi, err = bit.NextValidity(); err != nil { 2143 err = handleNoOp(err) 2144 break 2145 } 2146 if validi { 2147 b[i] = math.Pow(a, b[i]) 2148 } 2149 } 2150 return 2151 } 2152 2153 func PowIterSVC64(a complex64, b []complex64, bit Iterator) (err error) { 2154 var i int 2155 var validi bool 2156 for { 2157 if i, validi, err = bit.NextValidity(); err != nil { 2158 err = handleNoOp(err) 2159 break 2160 } 2161 if validi { 2162 b[i] = complex64(cmplx.Pow(complex128(a), complex128(b[i]))) 2163 } 2164 } 2165 return 2166 } 2167 2168 func PowIterSVC128(a complex128, b []complex128, bit Iterator) (err error) { 2169 var i int 2170 var validi bool 2171 for { 2172 if i, validi, err = bit.NextValidity(); err != nil { 2173 err = handleNoOp(err) 2174 break 2175 } 2176 if validi { 2177 b[i] = cmplx.Pow(a, b[i]) 2178 } 2179 } 2180 return 2181 } 2182 2183 func ModIterSVI(a int, b []int, bit Iterator) (err error) { 2184 var i int 2185 var validi bool 2186 for { 2187 if i, validi, err = bit.NextValidity(); err != nil { 2188 err = handleNoOp(err) 2189 break 2190 } 2191 if validi { 2192 b[i] = a % b[i] 2193 } 2194 } 2195 return 2196 } 2197 2198 func ModIterSVI8(a int8, b []int8, bit Iterator) (err error) { 2199 var i int 2200 var validi bool 2201 for { 2202 if i, validi, err = bit.NextValidity(); err != nil { 2203 err = handleNoOp(err) 2204 break 2205 } 2206 if validi { 2207 b[i] = a % b[i] 2208 } 2209 } 2210 return 2211 } 2212 2213 func ModIterSVI16(a int16, b []int16, bit Iterator) (err error) { 2214 var i int 2215 var validi bool 2216 for { 2217 if i, validi, err = bit.NextValidity(); err != nil { 2218 err = handleNoOp(err) 2219 break 2220 } 2221 if validi { 2222 b[i] = a % b[i] 2223 } 2224 } 2225 return 2226 } 2227 2228 func ModIterSVI32(a int32, b []int32, bit Iterator) (err error) { 2229 var i int 2230 var validi bool 2231 for { 2232 if i, validi, err = bit.NextValidity(); err != nil { 2233 err = handleNoOp(err) 2234 break 2235 } 2236 if validi { 2237 b[i] = a % b[i] 2238 } 2239 } 2240 return 2241 } 2242 2243 func ModIterSVI64(a int64, b []int64, bit Iterator) (err error) { 2244 var i int 2245 var validi bool 2246 for { 2247 if i, validi, err = bit.NextValidity(); err != nil { 2248 err = handleNoOp(err) 2249 break 2250 } 2251 if validi { 2252 b[i] = a % b[i] 2253 } 2254 } 2255 return 2256 } 2257 2258 func ModIterSVU(a uint, b []uint, bit Iterator) (err error) { 2259 var i int 2260 var validi bool 2261 for { 2262 if i, validi, err = bit.NextValidity(); err != nil { 2263 err = handleNoOp(err) 2264 break 2265 } 2266 if validi { 2267 b[i] = a % b[i] 2268 } 2269 } 2270 return 2271 } 2272 2273 func ModIterSVU8(a uint8, b []uint8, bit Iterator) (err error) { 2274 var i int 2275 var validi bool 2276 for { 2277 if i, validi, err = bit.NextValidity(); err != nil { 2278 err = handleNoOp(err) 2279 break 2280 } 2281 if validi { 2282 b[i] = a % b[i] 2283 } 2284 } 2285 return 2286 } 2287 2288 func ModIterSVU16(a uint16, b []uint16, bit Iterator) (err error) { 2289 var i int 2290 var validi bool 2291 for { 2292 if i, validi, err = bit.NextValidity(); err != nil { 2293 err = handleNoOp(err) 2294 break 2295 } 2296 if validi { 2297 b[i] = a % b[i] 2298 } 2299 } 2300 return 2301 } 2302 2303 func ModIterSVU32(a uint32, b []uint32, bit Iterator) (err error) { 2304 var i int 2305 var validi bool 2306 for { 2307 if i, validi, err = bit.NextValidity(); err != nil { 2308 err = handleNoOp(err) 2309 break 2310 } 2311 if validi { 2312 b[i] = a % b[i] 2313 } 2314 } 2315 return 2316 } 2317 2318 func ModIterSVU64(a uint64, b []uint64, bit Iterator) (err error) { 2319 var i int 2320 var validi bool 2321 for { 2322 if i, validi, err = bit.NextValidity(); err != nil { 2323 err = handleNoOp(err) 2324 break 2325 } 2326 if validi { 2327 b[i] = a % b[i] 2328 } 2329 } 2330 return 2331 } 2332 2333 func ModIterSVF32(a float32, b []float32, bit Iterator) (err error) { 2334 var i int 2335 var validi bool 2336 for { 2337 if i, validi, err = bit.NextValidity(); err != nil { 2338 err = handleNoOp(err) 2339 break 2340 } 2341 if validi { 2342 b[i] = math32.Mod(a, b[i]) 2343 } 2344 } 2345 return 2346 } 2347 2348 func ModIterSVF64(a float64, b []float64, bit Iterator) (err error) { 2349 var i int 2350 var validi bool 2351 for { 2352 if i, validi, err = bit.NextValidity(); err != nil { 2353 err = handleNoOp(err) 2354 break 2355 } 2356 if validi { 2357 b[i] = math.Mod(a, b[i]) 2358 } 2359 } 2360 return 2361 } 2362 2363 func AddIterIncrSVI(a int, b []int, incr []int, bit Iterator, iit Iterator) (err error) { 2364 var i, k int 2365 var validi, validk bool 2366 for { 2367 if i, validi, err = bit.NextValidity(); err != nil { 2368 err = handleNoOp(err) 2369 break 2370 } 2371 if k, validk, err = iit.NextValidity(); err != nil { 2372 err = handleNoOp(err) 2373 break 2374 } 2375 if validi && validk { 2376 incr[k] += a + b[i] 2377 } 2378 } 2379 return 2380 } 2381 2382 func AddIterIncrSVI8(a int8, b []int8, incr []int8, bit Iterator, iit Iterator) (err error) { 2383 var i, k int 2384 var validi, validk bool 2385 for { 2386 if i, validi, err = bit.NextValidity(); err != nil { 2387 err = handleNoOp(err) 2388 break 2389 } 2390 if k, validk, err = iit.NextValidity(); err != nil { 2391 err = handleNoOp(err) 2392 break 2393 } 2394 if validi && validk { 2395 incr[k] += a + b[i] 2396 } 2397 } 2398 return 2399 } 2400 2401 func AddIterIncrSVI16(a int16, b []int16, incr []int16, bit Iterator, iit Iterator) (err error) { 2402 var i, k int 2403 var validi, validk bool 2404 for { 2405 if i, validi, err = bit.NextValidity(); err != nil { 2406 err = handleNoOp(err) 2407 break 2408 } 2409 if k, validk, err = iit.NextValidity(); err != nil { 2410 err = handleNoOp(err) 2411 break 2412 } 2413 if validi && validk { 2414 incr[k] += a + b[i] 2415 } 2416 } 2417 return 2418 } 2419 2420 func AddIterIncrSVI32(a int32, b []int32, incr []int32, bit Iterator, iit Iterator) (err error) { 2421 var i, k int 2422 var validi, validk bool 2423 for { 2424 if i, validi, err = bit.NextValidity(); err != nil { 2425 err = handleNoOp(err) 2426 break 2427 } 2428 if k, validk, err = iit.NextValidity(); err != nil { 2429 err = handleNoOp(err) 2430 break 2431 } 2432 if validi && validk { 2433 incr[k] += a + b[i] 2434 } 2435 } 2436 return 2437 } 2438 2439 func AddIterIncrSVI64(a int64, b []int64, incr []int64, bit Iterator, iit Iterator) (err error) { 2440 var i, k int 2441 var validi, validk bool 2442 for { 2443 if i, validi, err = bit.NextValidity(); err != nil { 2444 err = handleNoOp(err) 2445 break 2446 } 2447 if k, validk, err = iit.NextValidity(); err != nil { 2448 err = handleNoOp(err) 2449 break 2450 } 2451 if validi && validk { 2452 incr[k] += a + b[i] 2453 } 2454 } 2455 return 2456 } 2457 2458 func AddIterIncrSVU(a uint, b []uint, incr []uint, bit Iterator, iit Iterator) (err error) { 2459 var i, k int 2460 var validi, validk bool 2461 for { 2462 if i, validi, err = bit.NextValidity(); err != nil { 2463 err = handleNoOp(err) 2464 break 2465 } 2466 if k, validk, err = iit.NextValidity(); err != nil { 2467 err = handleNoOp(err) 2468 break 2469 } 2470 if validi && validk { 2471 incr[k] += a + b[i] 2472 } 2473 } 2474 return 2475 } 2476 2477 func AddIterIncrSVU8(a uint8, b []uint8, incr []uint8, bit Iterator, iit Iterator) (err error) { 2478 var i, k int 2479 var validi, validk bool 2480 for { 2481 if i, validi, err = bit.NextValidity(); err != nil { 2482 err = handleNoOp(err) 2483 break 2484 } 2485 if k, validk, err = iit.NextValidity(); err != nil { 2486 err = handleNoOp(err) 2487 break 2488 } 2489 if validi && validk { 2490 incr[k] += a + b[i] 2491 } 2492 } 2493 return 2494 } 2495 2496 func AddIterIncrSVU16(a uint16, b []uint16, incr []uint16, bit Iterator, iit Iterator) (err error) { 2497 var i, k int 2498 var validi, validk bool 2499 for { 2500 if i, validi, err = bit.NextValidity(); err != nil { 2501 err = handleNoOp(err) 2502 break 2503 } 2504 if k, validk, err = iit.NextValidity(); err != nil { 2505 err = handleNoOp(err) 2506 break 2507 } 2508 if validi && validk { 2509 incr[k] += a + b[i] 2510 } 2511 } 2512 return 2513 } 2514 2515 func AddIterIncrSVU32(a uint32, b []uint32, incr []uint32, bit Iterator, iit Iterator) (err error) { 2516 var i, k int 2517 var validi, validk bool 2518 for { 2519 if i, validi, err = bit.NextValidity(); err != nil { 2520 err = handleNoOp(err) 2521 break 2522 } 2523 if k, validk, err = iit.NextValidity(); err != nil { 2524 err = handleNoOp(err) 2525 break 2526 } 2527 if validi && validk { 2528 incr[k] += a + b[i] 2529 } 2530 } 2531 return 2532 } 2533 2534 func AddIterIncrSVU64(a uint64, b []uint64, incr []uint64, bit Iterator, iit Iterator) (err error) { 2535 var i, k int 2536 var validi, validk bool 2537 for { 2538 if i, validi, err = bit.NextValidity(); err != nil { 2539 err = handleNoOp(err) 2540 break 2541 } 2542 if k, validk, err = iit.NextValidity(); err != nil { 2543 err = handleNoOp(err) 2544 break 2545 } 2546 if validi && validk { 2547 incr[k] += a + b[i] 2548 } 2549 } 2550 return 2551 } 2552 2553 func AddIterIncrSVF32(a float32, b []float32, incr []float32, bit Iterator, iit Iterator) (err error) { 2554 var i, k int 2555 var validi, validk bool 2556 for { 2557 if i, validi, err = bit.NextValidity(); err != nil { 2558 err = handleNoOp(err) 2559 break 2560 } 2561 if k, validk, err = iit.NextValidity(); err != nil { 2562 err = handleNoOp(err) 2563 break 2564 } 2565 if validi && validk { 2566 incr[k] += a + b[i] 2567 } 2568 } 2569 return 2570 } 2571 2572 func AddIterIncrSVF64(a float64, b []float64, incr []float64, bit Iterator, iit Iterator) (err error) { 2573 var i, k int 2574 var validi, validk bool 2575 for { 2576 if i, validi, err = bit.NextValidity(); err != nil { 2577 err = handleNoOp(err) 2578 break 2579 } 2580 if k, validk, err = iit.NextValidity(); err != nil { 2581 err = handleNoOp(err) 2582 break 2583 } 2584 if validi && validk { 2585 incr[k] += a + b[i] 2586 } 2587 } 2588 return 2589 } 2590 2591 func AddIterIncrSVC64(a complex64, b []complex64, incr []complex64, bit Iterator, iit Iterator) (err error) { 2592 var i, k int 2593 var validi, validk bool 2594 for { 2595 if i, validi, err = bit.NextValidity(); err != nil { 2596 err = handleNoOp(err) 2597 break 2598 } 2599 if k, validk, err = iit.NextValidity(); err != nil { 2600 err = handleNoOp(err) 2601 break 2602 } 2603 if validi && validk { 2604 incr[k] += a + b[i] 2605 } 2606 } 2607 return 2608 } 2609 2610 func AddIterIncrSVC128(a complex128, b []complex128, incr []complex128, bit Iterator, iit Iterator) (err error) { 2611 var i, k int 2612 var validi, validk bool 2613 for { 2614 if i, validi, err = bit.NextValidity(); err != nil { 2615 err = handleNoOp(err) 2616 break 2617 } 2618 if k, validk, err = iit.NextValidity(); err != nil { 2619 err = handleNoOp(err) 2620 break 2621 } 2622 if validi && validk { 2623 incr[k] += a + b[i] 2624 } 2625 } 2626 return 2627 } 2628 2629 func AddIterIncrSVStr(a string, b []string, incr []string, bit Iterator, iit Iterator) (err error) { 2630 var i, k int 2631 var validi, validk bool 2632 for { 2633 if i, validi, err = bit.NextValidity(); err != nil { 2634 err = handleNoOp(err) 2635 break 2636 } 2637 if k, validk, err = iit.NextValidity(); err != nil { 2638 err = handleNoOp(err) 2639 break 2640 } 2641 if validi && validk { 2642 incr[k] += a + b[i] 2643 } 2644 } 2645 return 2646 } 2647 2648 func SubIterIncrSVI(a int, b []int, incr []int, bit Iterator, iit Iterator) (err error) { 2649 var i, k int 2650 var validi, validk bool 2651 for { 2652 if i, validi, err = bit.NextValidity(); err != nil { 2653 err = handleNoOp(err) 2654 break 2655 } 2656 if k, validk, err = iit.NextValidity(); err != nil { 2657 err = handleNoOp(err) 2658 break 2659 } 2660 if validi && validk { 2661 incr[k] += a - b[i] 2662 } 2663 } 2664 return 2665 } 2666 2667 func SubIterIncrSVI8(a int8, b []int8, incr []int8, bit Iterator, iit Iterator) (err error) { 2668 var i, k int 2669 var validi, validk bool 2670 for { 2671 if i, validi, err = bit.NextValidity(); err != nil { 2672 err = handleNoOp(err) 2673 break 2674 } 2675 if k, validk, err = iit.NextValidity(); err != nil { 2676 err = handleNoOp(err) 2677 break 2678 } 2679 if validi && validk { 2680 incr[k] += a - b[i] 2681 } 2682 } 2683 return 2684 } 2685 2686 func SubIterIncrSVI16(a int16, b []int16, incr []int16, bit Iterator, iit Iterator) (err error) { 2687 var i, k int 2688 var validi, validk bool 2689 for { 2690 if i, validi, err = bit.NextValidity(); err != nil { 2691 err = handleNoOp(err) 2692 break 2693 } 2694 if k, validk, err = iit.NextValidity(); err != nil { 2695 err = handleNoOp(err) 2696 break 2697 } 2698 if validi && validk { 2699 incr[k] += a - b[i] 2700 } 2701 } 2702 return 2703 } 2704 2705 func SubIterIncrSVI32(a int32, b []int32, incr []int32, bit Iterator, iit Iterator) (err error) { 2706 var i, k int 2707 var validi, validk bool 2708 for { 2709 if i, validi, err = bit.NextValidity(); err != nil { 2710 err = handleNoOp(err) 2711 break 2712 } 2713 if k, validk, err = iit.NextValidity(); err != nil { 2714 err = handleNoOp(err) 2715 break 2716 } 2717 if validi && validk { 2718 incr[k] += a - b[i] 2719 } 2720 } 2721 return 2722 } 2723 2724 func SubIterIncrSVI64(a int64, b []int64, incr []int64, bit Iterator, iit Iterator) (err error) { 2725 var i, k int 2726 var validi, validk bool 2727 for { 2728 if i, validi, err = bit.NextValidity(); err != nil { 2729 err = handleNoOp(err) 2730 break 2731 } 2732 if k, validk, err = iit.NextValidity(); err != nil { 2733 err = handleNoOp(err) 2734 break 2735 } 2736 if validi && validk { 2737 incr[k] += a - b[i] 2738 } 2739 } 2740 return 2741 } 2742 2743 func SubIterIncrSVU(a uint, b []uint, incr []uint, bit Iterator, iit Iterator) (err error) { 2744 var i, k int 2745 var validi, validk bool 2746 for { 2747 if i, validi, err = bit.NextValidity(); err != nil { 2748 err = handleNoOp(err) 2749 break 2750 } 2751 if k, validk, err = iit.NextValidity(); err != nil { 2752 err = handleNoOp(err) 2753 break 2754 } 2755 if validi && validk { 2756 incr[k] += a - b[i] 2757 } 2758 } 2759 return 2760 } 2761 2762 func SubIterIncrSVU8(a uint8, b []uint8, incr []uint8, bit Iterator, iit Iterator) (err error) { 2763 var i, k int 2764 var validi, validk bool 2765 for { 2766 if i, validi, err = bit.NextValidity(); err != nil { 2767 err = handleNoOp(err) 2768 break 2769 } 2770 if k, validk, err = iit.NextValidity(); err != nil { 2771 err = handleNoOp(err) 2772 break 2773 } 2774 if validi && validk { 2775 incr[k] += a - b[i] 2776 } 2777 } 2778 return 2779 } 2780 2781 func SubIterIncrSVU16(a uint16, b []uint16, incr []uint16, bit Iterator, iit Iterator) (err error) { 2782 var i, k int 2783 var validi, validk bool 2784 for { 2785 if i, validi, err = bit.NextValidity(); err != nil { 2786 err = handleNoOp(err) 2787 break 2788 } 2789 if k, validk, err = iit.NextValidity(); err != nil { 2790 err = handleNoOp(err) 2791 break 2792 } 2793 if validi && validk { 2794 incr[k] += a - b[i] 2795 } 2796 } 2797 return 2798 } 2799 2800 func SubIterIncrSVU32(a uint32, b []uint32, incr []uint32, bit Iterator, iit Iterator) (err error) { 2801 var i, k int 2802 var validi, validk bool 2803 for { 2804 if i, validi, err = bit.NextValidity(); err != nil { 2805 err = handleNoOp(err) 2806 break 2807 } 2808 if k, validk, err = iit.NextValidity(); err != nil { 2809 err = handleNoOp(err) 2810 break 2811 } 2812 if validi && validk { 2813 incr[k] += a - b[i] 2814 } 2815 } 2816 return 2817 } 2818 2819 func SubIterIncrSVU64(a uint64, b []uint64, incr []uint64, bit Iterator, iit Iterator) (err error) { 2820 var i, k int 2821 var validi, validk bool 2822 for { 2823 if i, validi, err = bit.NextValidity(); err != nil { 2824 err = handleNoOp(err) 2825 break 2826 } 2827 if k, validk, err = iit.NextValidity(); err != nil { 2828 err = handleNoOp(err) 2829 break 2830 } 2831 if validi && validk { 2832 incr[k] += a - b[i] 2833 } 2834 } 2835 return 2836 } 2837 2838 func SubIterIncrSVF32(a float32, b []float32, incr []float32, bit Iterator, iit Iterator) (err error) { 2839 var i, k int 2840 var validi, validk bool 2841 for { 2842 if i, validi, err = bit.NextValidity(); err != nil { 2843 err = handleNoOp(err) 2844 break 2845 } 2846 if k, validk, err = iit.NextValidity(); err != nil { 2847 err = handleNoOp(err) 2848 break 2849 } 2850 if validi && validk { 2851 incr[k] += a - b[i] 2852 } 2853 } 2854 return 2855 } 2856 2857 func SubIterIncrSVF64(a float64, b []float64, incr []float64, bit Iterator, iit Iterator) (err error) { 2858 var i, k int 2859 var validi, validk bool 2860 for { 2861 if i, validi, err = bit.NextValidity(); err != nil { 2862 err = handleNoOp(err) 2863 break 2864 } 2865 if k, validk, err = iit.NextValidity(); err != nil { 2866 err = handleNoOp(err) 2867 break 2868 } 2869 if validi && validk { 2870 incr[k] += a - b[i] 2871 } 2872 } 2873 return 2874 } 2875 2876 func SubIterIncrSVC64(a complex64, b []complex64, incr []complex64, bit Iterator, iit Iterator) (err error) { 2877 var i, k int 2878 var validi, validk bool 2879 for { 2880 if i, validi, err = bit.NextValidity(); err != nil { 2881 err = handleNoOp(err) 2882 break 2883 } 2884 if k, validk, err = iit.NextValidity(); err != nil { 2885 err = handleNoOp(err) 2886 break 2887 } 2888 if validi && validk { 2889 incr[k] += a - b[i] 2890 } 2891 } 2892 return 2893 } 2894 2895 func SubIterIncrSVC128(a complex128, b []complex128, incr []complex128, bit Iterator, iit Iterator) (err error) { 2896 var i, k int 2897 var validi, validk bool 2898 for { 2899 if i, validi, err = bit.NextValidity(); err != nil { 2900 err = handleNoOp(err) 2901 break 2902 } 2903 if k, validk, err = iit.NextValidity(); err != nil { 2904 err = handleNoOp(err) 2905 break 2906 } 2907 if validi && validk { 2908 incr[k] += a - b[i] 2909 } 2910 } 2911 return 2912 } 2913 2914 func MulIterIncrSVI(a int, b []int, incr []int, bit Iterator, iit Iterator) (err error) { 2915 var i, k int 2916 var validi, validk bool 2917 for { 2918 if i, validi, err = bit.NextValidity(); err != nil { 2919 err = handleNoOp(err) 2920 break 2921 } 2922 if k, validk, err = iit.NextValidity(); err != nil { 2923 err = handleNoOp(err) 2924 break 2925 } 2926 if validi && validk { 2927 incr[k] += a * b[i] 2928 } 2929 } 2930 return 2931 } 2932 2933 func MulIterIncrSVI8(a int8, b []int8, incr []int8, bit Iterator, iit Iterator) (err error) { 2934 var i, k int 2935 var validi, validk bool 2936 for { 2937 if i, validi, err = bit.NextValidity(); err != nil { 2938 err = handleNoOp(err) 2939 break 2940 } 2941 if k, validk, err = iit.NextValidity(); err != nil { 2942 err = handleNoOp(err) 2943 break 2944 } 2945 if validi && validk { 2946 incr[k] += a * b[i] 2947 } 2948 } 2949 return 2950 } 2951 2952 func MulIterIncrSVI16(a int16, b []int16, incr []int16, bit Iterator, iit Iterator) (err error) { 2953 var i, k int 2954 var validi, validk bool 2955 for { 2956 if i, validi, err = bit.NextValidity(); err != nil { 2957 err = handleNoOp(err) 2958 break 2959 } 2960 if k, validk, err = iit.NextValidity(); err != nil { 2961 err = handleNoOp(err) 2962 break 2963 } 2964 if validi && validk { 2965 incr[k] += a * b[i] 2966 } 2967 } 2968 return 2969 } 2970 2971 func MulIterIncrSVI32(a int32, b []int32, incr []int32, bit Iterator, iit Iterator) (err error) { 2972 var i, k int 2973 var validi, validk bool 2974 for { 2975 if i, validi, err = bit.NextValidity(); err != nil { 2976 err = handleNoOp(err) 2977 break 2978 } 2979 if k, validk, err = iit.NextValidity(); err != nil { 2980 err = handleNoOp(err) 2981 break 2982 } 2983 if validi && validk { 2984 incr[k] += a * b[i] 2985 } 2986 } 2987 return 2988 } 2989 2990 func MulIterIncrSVI64(a int64, b []int64, incr []int64, bit Iterator, iit Iterator) (err error) { 2991 var i, k int 2992 var validi, validk bool 2993 for { 2994 if i, validi, err = bit.NextValidity(); err != nil { 2995 err = handleNoOp(err) 2996 break 2997 } 2998 if k, validk, err = iit.NextValidity(); err != nil { 2999 err = handleNoOp(err) 3000 break 3001 } 3002 if validi && validk { 3003 incr[k] += a * b[i] 3004 } 3005 } 3006 return 3007 } 3008 3009 func MulIterIncrSVU(a uint, b []uint, incr []uint, bit Iterator, iit Iterator) (err error) { 3010 var i, k int 3011 var validi, validk bool 3012 for { 3013 if i, validi, err = bit.NextValidity(); err != nil { 3014 err = handleNoOp(err) 3015 break 3016 } 3017 if k, validk, err = iit.NextValidity(); err != nil { 3018 err = handleNoOp(err) 3019 break 3020 } 3021 if validi && validk { 3022 incr[k] += a * b[i] 3023 } 3024 } 3025 return 3026 } 3027 3028 func MulIterIncrSVU8(a uint8, b []uint8, incr []uint8, bit Iterator, iit Iterator) (err error) { 3029 var i, k int 3030 var validi, validk bool 3031 for { 3032 if i, validi, err = bit.NextValidity(); err != nil { 3033 err = handleNoOp(err) 3034 break 3035 } 3036 if k, validk, err = iit.NextValidity(); err != nil { 3037 err = handleNoOp(err) 3038 break 3039 } 3040 if validi && validk { 3041 incr[k] += a * b[i] 3042 } 3043 } 3044 return 3045 } 3046 3047 func MulIterIncrSVU16(a uint16, b []uint16, incr []uint16, bit Iterator, iit Iterator) (err error) { 3048 var i, k int 3049 var validi, validk bool 3050 for { 3051 if i, validi, err = bit.NextValidity(); err != nil { 3052 err = handleNoOp(err) 3053 break 3054 } 3055 if k, validk, err = iit.NextValidity(); err != nil { 3056 err = handleNoOp(err) 3057 break 3058 } 3059 if validi && validk { 3060 incr[k] += a * b[i] 3061 } 3062 } 3063 return 3064 } 3065 3066 func MulIterIncrSVU32(a uint32, b []uint32, incr []uint32, bit Iterator, iit Iterator) (err error) { 3067 var i, k int 3068 var validi, validk bool 3069 for { 3070 if i, validi, err = bit.NextValidity(); err != nil { 3071 err = handleNoOp(err) 3072 break 3073 } 3074 if k, validk, err = iit.NextValidity(); err != nil { 3075 err = handleNoOp(err) 3076 break 3077 } 3078 if validi && validk { 3079 incr[k] += a * b[i] 3080 } 3081 } 3082 return 3083 } 3084 3085 func MulIterIncrSVU64(a uint64, b []uint64, incr []uint64, bit Iterator, iit Iterator) (err error) { 3086 var i, k int 3087 var validi, validk bool 3088 for { 3089 if i, validi, err = bit.NextValidity(); err != nil { 3090 err = handleNoOp(err) 3091 break 3092 } 3093 if k, validk, err = iit.NextValidity(); err != nil { 3094 err = handleNoOp(err) 3095 break 3096 } 3097 if validi && validk { 3098 incr[k] += a * b[i] 3099 } 3100 } 3101 return 3102 } 3103 3104 func MulIterIncrSVF32(a float32, b []float32, incr []float32, bit Iterator, iit Iterator) (err error) { 3105 var i, k int 3106 var validi, validk bool 3107 for { 3108 if i, validi, err = bit.NextValidity(); err != nil { 3109 err = handleNoOp(err) 3110 break 3111 } 3112 if k, validk, err = iit.NextValidity(); err != nil { 3113 err = handleNoOp(err) 3114 break 3115 } 3116 if validi && validk { 3117 incr[k] += a * b[i] 3118 } 3119 } 3120 return 3121 } 3122 3123 func MulIterIncrSVF64(a float64, b []float64, incr []float64, bit Iterator, iit Iterator) (err error) { 3124 var i, k int 3125 var validi, validk bool 3126 for { 3127 if i, validi, err = bit.NextValidity(); err != nil { 3128 err = handleNoOp(err) 3129 break 3130 } 3131 if k, validk, err = iit.NextValidity(); err != nil { 3132 err = handleNoOp(err) 3133 break 3134 } 3135 if validi && validk { 3136 incr[k] += a * b[i] 3137 } 3138 } 3139 return 3140 } 3141 3142 func MulIterIncrSVC64(a complex64, b []complex64, incr []complex64, bit Iterator, iit Iterator) (err error) { 3143 var i, k int 3144 var validi, validk bool 3145 for { 3146 if i, validi, err = bit.NextValidity(); err != nil { 3147 err = handleNoOp(err) 3148 break 3149 } 3150 if k, validk, err = iit.NextValidity(); err != nil { 3151 err = handleNoOp(err) 3152 break 3153 } 3154 if validi && validk { 3155 incr[k] += a * b[i] 3156 } 3157 } 3158 return 3159 } 3160 3161 func MulIterIncrSVC128(a complex128, b []complex128, incr []complex128, bit Iterator, iit Iterator) (err error) { 3162 var i, k int 3163 var validi, validk bool 3164 for { 3165 if i, validi, err = bit.NextValidity(); err != nil { 3166 err = handleNoOp(err) 3167 break 3168 } 3169 if k, validk, err = iit.NextValidity(); err != nil { 3170 err = handleNoOp(err) 3171 break 3172 } 3173 if validi && validk { 3174 incr[k] += a * b[i] 3175 } 3176 } 3177 return 3178 } 3179 3180 func DivIterIncrSVI(a int, b []int, incr []int, bit Iterator, iit Iterator) (err error) { 3181 var errs errorIndices 3182 var i, k int 3183 var validi, validk bool 3184 for { 3185 if i, validi, err = bit.NextValidity(); err != nil { 3186 err = handleNoOp(err) 3187 break 3188 } 3189 if k, validk, err = iit.NextValidity(); err != nil { 3190 err = handleNoOp(err) 3191 break 3192 } 3193 if validi && validk { 3194 if b[i] == 0 { 3195 errs = append(errs, i) 3196 incr[i] = 0 3197 continue 3198 } 3199 incr[k] += a / b[i] 3200 } 3201 } 3202 if err != nil { 3203 return 3204 } 3205 if len(errs) > 0 { 3206 return errs 3207 } 3208 return nil 3209 } 3210 3211 func DivIterIncrSVI8(a int8, b []int8, incr []int8, bit Iterator, iit Iterator) (err error) { 3212 var errs errorIndices 3213 var i, k int 3214 var validi, validk bool 3215 for { 3216 if i, validi, err = bit.NextValidity(); err != nil { 3217 err = handleNoOp(err) 3218 break 3219 } 3220 if k, validk, err = iit.NextValidity(); err != nil { 3221 err = handleNoOp(err) 3222 break 3223 } 3224 if validi && validk { 3225 if b[i] == 0 { 3226 errs = append(errs, i) 3227 incr[i] = 0 3228 continue 3229 } 3230 incr[k] += a / b[i] 3231 } 3232 } 3233 if err != nil { 3234 return 3235 } 3236 if len(errs) > 0 { 3237 return errs 3238 } 3239 return nil 3240 } 3241 3242 func DivIterIncrSVI16(a int16, b []int16, incr []int16, bit Iterator, iit Iterator) (err error) { 3243 var errs errorIndices 3244 var i, k int 3245 var validi, validk bool 3246 for { 3247 if i, validi, err = bit.NextValidity(); err != nil { 3248 err = handleNoOp(err) 3249 break 3250 } 3251 if k, validk, err = iit.NextValidity(); err != nil { 3252 err = handleNoOp(err) 3253 break 3254 } 3255 if validi && validk { 3256 if b[i] == 0 { 3257 errs = append(errs, i) 3258 incr[i] = 0 3259 continue 3260 } 3261 incr[k] += a / b[i] 3262 } 3263 } 3264 if err != nil { 3265 return 3266 } 3267 if len(errs) > 0 { 3268 return errs 3269 } 3270 return nil 3271 } 3272 3273 func DivIterIncrSVI32(a int32, b []int32, incr []int32, bit Iterator, iit Iterator) (err error) { 3274 var errs errorIndices 3275 var i, k int 3276 var validi, validk bool 3277 for { 3278 if i, validi, err = bit.NextValidity(); err != nil { 3279 err = handleNoOp(err) 3280 break 3281 } 3282 if k, validk, err = iit.NextValidity(); err != nil { 3283 err = handleNoOp(err) 3284 break 3285 } 3286 if validi && validk { 3287 if b[i] == 0 { 3288 errs = append(errs, i) 3289 incr[i] = 0 3290 continue 3291 } 3292 incr[k] += a / b[i] 3293 } 3294 } 3295 if err != nil { 3296 return 3297 } 3298 if len(errs) > 0 { 3299 return errs 3300 } 3301 return nil 3302 } 3303 3304 func DivIterIncrSVI64(a int64, b []int64, incr []int64, bit Iterator, iit Iterator) (err error) { 3305 var errs errorIndices 3306 var i, k int 3307 var validi, validk bool 3308 for { 3309 if i, validi, err = bit.NextValidity(); err != nil { 3310 err = handleNoOp(err) 3311 break 3312 } 3313 if k, validk, err = iit.NextValidity(); err != nil { 3314 err = handleNoOp(err) 3315 break 3316 } 3317 if validi && validk { 3318 if b[i] == 0 { 3319 errs = append(errs, i) 3320 incr[i] = 0 3321 continue 3322 } 3323 incr[k] += a / b[i] 3324 } 3325 } 3326 if err != nil { 3327 return 3328 } 3329 if len(errs) > 0 { 3330 return errs 3331 } 3332 return nil 3333 } 3334 3335 func DivIterIncrSVU(a uint, b []uint, incr []uint, bit Iterator, iit Iterator) (err error) { 3336 var errs errorIndices 3337 var i, k int 3338 var validi, validk bool 3339 for { 3340 if i, validi, err = bit.NextValidity(); err != nil { 3341 err = handleNoOp(err) 3342 break 3343 } 3344 if k, validk, err = iit.NextValidity(); err != nil { 3345 err = handleNoOp(err) 3346 break 3347 } 3348 if validi && validk { 3349 if b[i] == 0 { 3350 errs = append(errs, i) 3351 incr[i] = 0 3352 continue 3353 } 3354 incr[k] += a / b[i] 3355 } 3356 } 3357 if err != nil { 3358 return 3359 } 3360 if len(errs) > 0 { 3361 return errs 3362 } 3363 return nil 3364 } 3365 3366 func DivIterIncrSVU8(a uint8, b []uint8, incr []uint8, bit Iterator, iit Iterator) (err error) { 3367 var errs errorIndices 3368 var i, k int 3369 var validi, validk bool 3370 for { 3371 if i, validi, err = bit.NextValidity(); err != nil { 3372 err = handleNoOp(err) 3373 break 3374 } 3375 if k, validk, err = iit.NextValidity(); err != nil { 3376 err = handleNoOp(err) 3377 break 3378 } 3379 if validi && validk { 3380 if b[i] == 0 { 3381 errs = append(errs, i) 3382 incr[i] = 0 3383 continue 3384 } 3385 incr[k] += a / b[i] 3386 } 3387 } 3388 if err != nil { 3389 return 3390 } 3391 if len(errs) > 0 { 3392 return errs 3393 } 3394 return nil 3395 } 3396 3397 func DivIterIncrSVU16(a uint16, b []uint16, incr []uint16, bit Iterator, iit Iterator) (err error) { 3398 var errs errorIndices 3399 var i, k int 3400 var validi, validk bool 3401 for { 3402 if i, validi, err = bit.NextValidity(); err != nil { 3403 err = handleNoOp(err) 3404 break 3405 } 3406 if k, validk, err = iit.NextValidity(); err != nil { 3407 err = handleNoOp(err) 3408 break 3409 } 3410 if validi && validk { 3411 if b[i] == 0 { 3412 errs = append(errs, i) 3413 incr[i] = 0 3414 continue 3415 } 3416 incr[k] += a / b[i] 3417 } 3418 } 3419 if err != nil { 3420 return 3421 } 3422 if len(errs) > 0 { 3423 return errs 3424 } 3425 return nil 3426 } 3427 3428 func DivIterIncrSVU32(a uint32, b []uint32, incr []uint32, bit Iterator, iit Iterator) (err error) { 3429 var errs errorIndices 3430 var i, k int 3431 var validi, validk bool 3432 for { 3433 if i, validi, err = bit.NextValidity(); err != nil { 3434 err = handleNoOp(err) 3435 break 3436 } 3437 if k, validk, err = iit.NextValidity(); err != nil { 3438 err = handleNoOp(err) 3439 break 3440 } 3441 if validi && validk { 3442 if b[i] == 0 { 3443 errs = append(errs, i) 3444 incr[i] = 0 3445 continue 3446 } 3447 incr[k] += a / b[i] 3448 } 3449 } 3450 if err != nil { 3451 return 3452 } 3453 if len(errs) > 0 { 3454 return errs 3455 } 3456 return nil 3457 } 3458 3459 func DivIterIncrSVU64(a uint64, b []uint64, incr []uint64, bit Iterator, iit Iterator) (err error) { 3460 var errs errorIndices 3461 var i, k int 3462 var validi, validk bool 3463 for { 3464 if i, validi, err = bit.NextValidity(); err != nil { 3465 err = handleNoOp(err) 3466 break 3467 } 3468 if k, validk, err = iit.NextValidity(); err != nil { 3469 err = handleNoOp(err) 3470 break 3471 } 3472 if validi && validk { 3473 if b[i] == 0 { 3474 errs = append(errs, i) 3475 incr[i] = 0 3476 continue 3477 } 3478 incr[k] += a / b[i] 3479 } 3480 } 3481 if err != nil { 3482 return 3483 } 3484 if len(errs) > 0 { 3485 return errs 3486 } 3487 return nil 3488 } 3489 3490 func DivIterIncrSVF32(a float32, b []float32, incr []float32, bit Iterator, iit Iterator) (err error) { 3491 var i, k int 3492 var validi, validk bool 3493 for { 3494 if i, validi, err = bit.NextValidity(); err != nil { 3495 err = handleNoOp(err) 3496 break 3497 } 3498 if k, validk, err = iit.NextValidity(); err != nil { 3499 err = handleNoOp(err) 3500 break 3501 } 3502 if validi && validk { 3503 incr[k] += a / b[i] 3504 } 3505 } 3506 return 3507 } 3508 3509 func DivIterIncrSVF64(a float64, b []float64, incr []float64, bit Iterator, iit Iterator) (err error) { 3510 var i, k int 3511 var validi, validk bool 3512 for { 3513 if i, validi, err = bit.NextValidity(); err != nil { 3514 err = handleNoOp(err) 3515 break 3516 } 3517 if k, validk, err = iit.NextValidity(); err != nil { 3518 err = handleNoOp(err) 3519 break 3520 } 3521 if validi && validk { 3522 incr[k] += a / b[i] 3523 } 3524 } 3525 return 3526 } 3527 3528 func DivIterIncrSVC64(a complex64, b []complex64, incr []complex64, bit Iterator, iit Iterator) (err error) { 3529 var i, k int 3530 var validi, validk bool 3531 for { 3532 if i, validi, err = bit.NextValidity(); err != nil { 3533 err = handleNoOp(err) 3534 break 3535 } 3536 if k, validk, err = iit.NextValidity(); err != nil { 3537 err = handleNoOp(err) 3538 break 3539 } 3540 if validi && validk { 3541 incr[k] += a / b[i] 3542 } 3543 } 3544 return 3545 } 3546 3547 func DivIterIncrSVC128(a complex128, b []complex128, incr []complex128, bit Iterator, iit Iterator) (err error) { 3548 var i, k int 3549 var validi, validk bool 3550 for { 3551 if i, validi, err = bit.NextValidity(); err != nil { 3552 err = handleNoOp(err) 3553 break 3554 } 3555 if k, validk, err = iit.NextValidity(); err != nil { 3556 err = handleNoOp(err) 3557 break 3558 } 3559 if validi && validk { 3560 incr[k] += a / b[i] 3561 } 3562 } 3563 return 3564 } 3565 3566 func PowIterIncrSVF32(a float32, b []float32, incr []float32, bit Iterator, iit Iterator) (err error) { 3567 var i, k int 3568 var validi, validk bool 3569 for { 3570 if i, validi, err = bit.NextValidity(); err != nil { 3571 err = handleNoOp(err) 3572 break 3573 } 3574 if k, validk, err = iit.NextValidity(); err != nil { 3575 err = handleNoOp(err) 3576 break 3577 } 3578 if validi && validk { 3579 incr[k] += math32.Pow(a, b[i]) 3580 } 3581 } 3582 return 3583 } 3584 3585 func PowIterIncrSVF64(a float64, b []float64, incr []float64, bit Iterator, iit Iterator) (err error) { 3586 var i, k int 3587 var validi, validk bool 3588 for { 3589 if i, validi, err = bit.NextValidity(); err != nil { 3590 err = handleNoOp(err) 3591 break 3592 } 3593 if k, validk, err = iit.NextValidity(); err != nil { 3594 err = handleNoOp(err) 3595 break 3596 } 3597 if validi && validk { 3598 incr[k] += math.Pow(a, b[i]) 3599 } 3600 } 3601 return 3602 } 3603 3604 func PowIterIncrSVC64(a complex64, b []complex64, incr []complex64, bit Iterator, iit Iterator) (err error) { 3605 var i, k int 3606 var validi, validk bool 3607 for { 3608 if i, validi, err = bit.NextValidity(); err != nil { 3609 err = handleNoOp(err) 3610 break 3611 } 3612 if k, validk, err = iit.NextValidity(); err != nil { 3613 err = handleNoOp(err) 3614 break 3615 } 3616 if validi && validk { 3617 incr[k] += complex64(cmplx.Pow(complex128(a), complex128(b[i]))) 3618 } 3619 } 3620 return 3621 } 3622 3623 func PowIterIncrSVC128(a complex128, b []complex128, incr []complex128, bit Iterator, iit Iterator) (err error) { 3624 var i, k int 3625 var validi, validk bool 3626 for { 3627 if i, validi, err = bit.NextValidity(); err != nil { 3628 err = handleNoOp(err) 3629 break 3630 } 3631 if k, validk, err = iit.NextValidity(); err != nil { 3632 err = handleNoOp(err) 3633 break 3634 } 3635 if validi && validk { 3636 incr[k] += cmplx.Pow(a, b[i]) 3637 } 3638 } 3639 return 3640 } 3641 3642 func ModIterIncrSVI(a int, b []int, incr []int, bit Iterator, iit Iterator) (err error) { 3643 var i, k int 3644 var validi, validk bool 3645 for { 3646 if i, validi, err = bit.NextValidity(); err != nil { 3647 err = handleNoOp(err) 3648 break 3649 } 3650 if k, validk, err = iit.NextValidity(); err != nil { 3651 err = handleNoOp(err) 3652 break 3653 } 3654 if validi && validk { 3655 incr[k] += a % b[i] 3656 } 3657 } 3658 return 3659 } 3660 3661 func ModIterIncrSVI8(a int8, b []int8, incr []int8, bit Iterator, iit Iterator) (err error) { 3662 var i, k int 3663 var validi, validk bool 3664 for { 3665 if i, validi, err = bit.NextValidity(); err != nil { 3666 err = handleNoOp(err) 3667 break 3668 } 3669 if k, validk, err = iit.NextValidity(); err != nil { 3670 err = handleNoOp(err) 3671 break 3672 } 3673 if validi && validk { 3674 incr[k] += a % b[i] 3675 } 3676 } 3677 return 3678 } 3679 3680 func ModIterIncrSVI16(a int16, b []int16, incr []int16, bit Iterator, iit Iterator) (err error) { 3681 var i, k int 3682 var validi, validk bool 3683 for { 3684 if i, validi, err = bit.NextValidity(); err != nil { 3685 err = handleNoOp(err) 3686 break 3687 } 3688 if k, validk, err = iit.NextValidity(); err != nil { 3689 err = handleNoOp(err) 3690 break 3691 } 3692 if validi && validk { 3693 incr[k] += a % b[i] 3694 } 3695 } 3696 return 3697 } 3698 3699 func ModIterIncrSVI32(a int32, b []int32, incr []int32, bit Iterator, iit Iterator) (err error) { 3700 var i, k int 3701 var validi, validk bool 3702 for { 3703 if i, validi, err = bit.NextValidity(); err != nil { 3704 err = handleNoOp(err) 3705 break 3706 } 3707 if k, validk, err = iit.NextValidity(); err != nil { 3708 err = handleNoOp(err) 3709 break 3710 } 3711 if validi && validk { 3712 incr[k] += a % b[i] 3713 } 3714 } 3715 return 3716 } 3717 3718 func ModIterIncrSVI64(a int64, b []int64, incr []int64, bit Iterator, iit Iterator) (err error) { 3719 var i, k int 3720 var validi, validk bool 3721 for { 3722 if i, validi, err = bit.NextValidity(); err != nil { 3723 err = handleNoOp(err) 3724 break 3725 } 3726 if k, validk, err = iit.NextValidity(); err != nil { 3727 err = handleNoOp(err) 3728 break 3729 } 3730 if validi && validk { 3731 incr[k] += a % b[i] 3732 } 3733 } 3734 return 3735 } 3736 3737 func ModIterIncrSVU(a uint, b []uint, incr []uint, bit Iterator, iit Iterator) (err error) { 3738 var i, k int 3739 var validi, validk bool 3740 for { 3741 if i, validi, err = bit.NextValidity(); err != nil { 3742 err = handleNoOp(err) 3743 break 3744 } 3745 if k, validk, err = iit.NextValidity(); err != nil { 3746 err = handleNoOp(err) 3747 break 3748 } 3749 if validi && validk { 3750 incr[k] += a % b[i] 3751 } 3752 } 3753 return 3754 } 3755 3756 func ModIterIncrSVU8(a uint8, b []uint8, incr []uint8, bit Iterator, iit Iterator) (err error) { 3757 var i, k int 3758 var validi, validk bool 3759 for { 3760 if i, validi, err = bit.NextValidity(); err != nil { 3761 err = handleNoOp(err) 3762 break 3763 } 3764 if k, validk, err = iit.NextValidity(); err != nil { 3765 err = handleNoOp(err) 3766 break 3767 } 3768 if validi && validk { 3769 incr[k] += a % b[i] 3770 } 3771 } 3772 return 3773 } 3774 3775 func ModIterIncrSVU16(a uint16, b []uint16, incr []uint16, bit Iterator, iit Iterator) (err error) { 3776 var i, k int 3777 var validi, validk bool 3778 for { 3779 if i, validi, err = bit.NextValidity(); err != nil { 3780 err = handleNoOp(err) 3781 break 3782 } 3783 if k, validk, err = iit.NextValidity(); err != nil { 3784 err = handleNoOp(err) 3785 break 3786 } 3787 if validi && validk { 3788 incr[k] += a % b[i] 3789 } 3790 } 3791 return 3792 } 3793 3794 func ModIterIncrSVU32(a uint32, b []uint32, incr []uint32, bit Iterator, iit Iterator) (err error) { 3795 var i, k int 3796 var validi, validk bool 3797 for { 3798 if i, validi, err = bit.NextValidity(); err != nil { 3799 err = handleNoOp(err) 3800 break 3801 } 3802 if k, validk, err = iit.NextValidity(); err != nil { 3803 err = handleNoOp(err) 3804 break 3805 } 3806 if validi && validk { 3807 incr[k] += a % b[i] 3808 } 3809 } 3810 return 3811 } 3812 3813 func ModIterIncrSVU64(a uint64, b []uint64, incr []uint64, bit Iterator, iit Iterator) (err error) { 3814 var i, k int 3815 var validi, validk bool 3816 for { 3817 if i, validi, err = bit.NextValidity(); err != nil { 3818 err = handleNoOp(err) 3819 break 3820 } 3821 if k, validk, err = iit.NextValidity(); err != nil { 3822 err = handleNoOp(err) 3823 break 3824 } 3825 if validi && validk { 3826 incr[k] += a % b[i] 3827 } 3828 } 3829 return 3830 } 3831 3832 func ModIterIncrSVF32(a float32, b []float32, incr []float32, bit Iterator, iit Iterator) (err error) { 3833 var i, k int 3834 var validi, validk bool 3835 for { 3836 if i, validi, err = bit.NextValidity(); err != nil { 3837 err = handleNoOp(err) 3838 break 3839 } 3840 if k, validk, err = iit.NextValidity(); err != nil { 3841 err = handleNoOp(err) 3842 break 3843 } 3844 if validi && validk { 3845 incr[k] += math32.Mod(a, b[i]) 3846 } 3847 } 3848 return 3849 } 3850 3851 func ModIterIncrSVF64(a float64, b []float64, incr []float64, bit Iterator, iit Iterator) (err error) { 3852 var i, k int 3853 var validi, validk bool 3854 for { 3855 if i, validi, err = bit.NextValidity(); err != nil { 3856 err = handleNoOp(err) 3857 break 3858 } 3859 if k, validk, err = iit.NextValidity(); err != nil { 3860 err = handleNoOp(err) 3861 break 3862 } 3863 if validi && validk { 3864 incr[k] += math.Mod(a, b[i]) 3865 } 3866 } 3867 return 3868 } 3869 3870 func AddVSI(a []int, b int) { 3871 for i := range a { 3872 a[i] = a[i] + b 3873 } 3874 } 3875 3876 func AddVSI8(a []int8, b int8) { 3877 for i := range a { 3878 a[i] = a[i] + b 3879 } 3880 } 3881 3882 func AddVSI16(a []int16, b int16) { 3883 for i := range a { 3884 a[i] = a[i] + b 3885 } 3886 } 3887 3888 func AddVSI32(a []int32, b int32) { 3889 for i := range a { 3890 a[i] = a[i] + b 3891 } 3892 } 3893 3894 func AddVSI64(a []int64, b int64) { 3895 for i := range a { 3896 a[i] = a[i] + b 3897 } 3898 } 3899 3900 func AddVSU(a []uint, b uint) { 3901 for i := range a { 3902 a[i] = a[i] + b 3903 } 3904 } 3905 3906 func AddVSU8(a []uint8, b uint8) { 3907 for i := range a { 3908 a[i] = a[i] + b 3909 } 3910 } 3911 3912 func AddVSU16(a []uint16, b uint16) { 3913 for i := range a { 3914 a[i] = a[i] + b 3915 } 3916 } 3917 3918 func AddVSU32(a []uint32, b uint32) { 3919 for i := range a { 3920 a[i] = a[i] + b 3921 } 3922 } 3923 3924 func AddVSU64(a []uint64, b uint64) { 3925 for i := range a { 3926 a[i] = a[i] + b 3927 } 3928 } 3929 3930 func AddVSF32(a []float32, b float32) { 3931 for i := range a { 3932 a[i] = a[i] + b 3933 } 3934 } 3935 3936 func AddVSF64(a []float64, b float64) { 3937 for i := range a { 3938 a[i] = a[i] + b 3939 } 3940 } 3941 3942 func AddVSC64(a []complex64, b complex64) { 3943 for i := range a { 3944 a[i] = a[i] + b 3945 } 3946 } 3947 3948 func AddVSC128(a []complex128, b complex128) { 3949 for i := range a { 3950 a[i] = a[i] + b 3951 } 3952 } 3953 3954 func AddVSStr(a []string, b string) { 3955 for i := range a { 3956 a[i] = a[i] + b 3957 } 3958 } 3959 3960 func SubVSI(a []int, b int) { 3961 for i := range a { 3962 a[i] = a[i] - b 3963 } 3964 } 3965 3966 func SubVSI8(a []int8, b int8) { 3967 for i := range a { 3968 a[i] = a[i] - b 3969 } 3970 } 3971 3972 func SubVSI16(a []int16, b int16) { 3973 for i := range a { 3974 a[i] = a[i] - b 3975 } 3976 } 3977 3978 func SubVSI32(a []int32, b int32) { 3979 for i := range a { 3980 a[i] = a[i] - b 3981 } 3982 } 3983 3984 func SubVSI64(a []int64, b int64) { 3985 for i := range a { 3986 a[i] = a[i] - b 3987 } 3988 } 3989 3990 func SubVSU(a []uint, b uint) { 3991 for i := range a { 3992 a[i] = a[i] - b 3993 } 3994 } 3995 3996 func SubVSU8(a []uint8, b uint8) { 3997 for i := range a { 3998 a[i] = a[i] - b 3999 } 4000 } 4001 4002 func SubVSU16(a []uint16, b uint16) { 4003 for i := range a { 4004 a[i] = a[i] - b 4005 } 4006 } 4007 4008 func SubVSU32(a []uint32, b uint32) { 4009 for i := range a { 4010 a[i] = a[i] - b 4011 } 4012 } 4013 4014 func SubVSU64(a []uint64, b uint64) { 4015 for i := range a { 4016 a[i] = a[i] - b 4017 } 4018 } 4019 4020 func SubVSF32(a []float32, b float32) { 4021 for i := range a { 4022 a[i] = a[i] - b 4023 } 4024 } 4025 4026 func SubVSF64(a []float64, b float64) { 4027 for i := range a { 4028 a[i] = a[i] - b 4029 } 4030 } 4031 4032 func SubVSC64(a []complex64, b complex64) { 4033 for i := range a { 4034 a[i] = a[i] - b 4035 } 4036 } 4037 4038 func SubVSC128(a []complex128, b complex128) { 4039 for i := range a { 4040 a[i] = a[i] - b 4041 } 4042 } 4043 4044 func MulVSI(a []int, b int) { 4045 for i := range a { 4046 a[i] = a[i] * b 4047 } 4048 } 4049 4050 func MulVSI8(a []int8, b int8) { 4051 for i := range a { 4052 a[i] = a[i] * b 4053 } 4054 } 4055 4056 func MulVSI16(a []int16, b int16) { 4057 for i := range a { 4058 a[i] = a[i] * b 4059 } 4060 } 4061 4062 func MulVSI32(a []int32, b int32) { 4063 for i := range a { 4064 a[i] = a[i] * b 4065 } 4066 } 4067 4068 func MulVSI64(a []int64, b int64) { 4069 for i := range a { 4070 a[i] = a[i] * b 4071 } 4072 } 4073 4074 func MulVSU(a []uint, b uint) { 4075 for i := range a { 4076 a[i] = a[i] * b 4077 } 4078 } 4079 4080 func MulVSU8(a []uint8, b uint8) { 4081 for i := range a { 4082 a[i] = a[i] * b 4083 } 4084 } 4085 4086 func MulVSU16(a []uint16, b uint16) { 4087 for i := range a { 4088 a[i] = a[i] * b 4089 } 4090 } 4091 4092 func MulVSU32(a []uint32, b uint32) { 4093 for i := range a { 4094 a[i] = a[i] * b 4095 } 4096 } 4097 4098 func MulVSU64(a []uint64, b uint64) { 4099 for i := range a { 4100 a[i] = a[i] * b 4101 } 4102 } 4103 4104 func MulVSF32(a []float32, b float32) { 4105 for i := range a { 4106 a[i] = a[i] * b 4107 } 4108 } 4109 4110 func MulVSF64(a []float64, b float64) { 4111 for i := range a { 4112 a[i] = a[i] * b 4113 } 4114 } 4115 4116 func MulVSC64(a []complex64, b complex64) { 4117 for i := range a { 4118 a[i] = a[i] * b 4119 } 4120 } 4121 4122 func MulVSC128(a []complex128, b complex128) { 4123 for i := range a { 4124 a[i] = a[i] * b 4125 } 4126 } 4127 4128 func DivVSI(a []int, b int) (err error) { 4129 var errs errorIndices 4130 for i := range a { 4131 if b == 0 { 4132 errs = append(errs, i) 4133 a[i] = 0 4134 continue 4135 } 4136 a[i] = a[i] / b 4137 } 4138 if err != nil { 4139 return 4140 } 4141 if len(errs) > 0 { 4142 return errs 4143 } 4144 return nil 4145 } 4146 4147 func DivVSI8(a []int8, b int8) (err error) { 4148 var errs errorIndices 4149 for i := range a { 4150 if b == 0 { 4151 errs = append(errs, i) 4152 a[i] = 0 4153 continue 4154 } 4155 a[i] = a[i] / b 4156 } 4157 if err != nil { 4158 return 4159 } 4160 if len(errs) > 0 { 4161 return errs 4162 } 4163 return nil 4164 } 4165 4166 func DivVSI16(a []int16, b int16) (err error) { 4167 var errs errorIndices 4168 for i := range a { 4169 if b == 0 { 4170 errs = append(errs, i) 4171 a[i] = 0 4172 continue 4173 } 4174 a[i] = a[i] / b 4175 } 4176 if err != nil { 4177 return 4178 } 4179 if len(errs) > 0 { 4180 return errs 4181 } 4182 return nil 4183 } 4184 4185 func DivVSI32(a []int32, b int32) (err error) { 4186 var errs errorIndices 4187 for i := range a { 4188 if b == 0 { 4189 errs = append(errs, i) 4190 a[i] = 0 4191 continue 4192 } 4193 a[i] = a[i] / b 4194 } 4195 if err != nil { 4196 return 4197 } 4198 if len(errs) > 0 { 4199 return errs 4200 } 4201 return nil 4202 } 4203 4204 func DivVSI64(a []int64, b int64) (err error) { 4205 var errs errorIndices 4206 for i := range a { 4207 if b == 0 { 4208 errs = append(errs, i) 4209 a[i] = 0 4210 continue 4211 } 4212 a[i] = a[i] / b 4213 } 4214 if err != nil { 4215 return 4216 } 4217 if len(errs) > 0 { 4218 return errs 4219 } 4220 return nil 4221 } 4222 4223 func DivVSU(a []uint, b uint) (err error) { 4224 var errs errorIndices 4225 for i := range a { 4226 if b == 0 { 4227 errs = append(errs, i) 4228 a[i] = 0 4229 continue 4230 } 4231 a[i] = a[i] / b 4232 } 4233 if err != nil { 4234 return 4235 } 4236 if len(errs) > 0 { 4237 return errs 4238 } 4239 return nil 4240 } 4241 4242 func DivVSU8(a []uint8, b uint8) (err error) { 4243 var errs errorIndices 4244 for i := range a { 4245 if b == 0 { 4246 errs = append(errs, i) 4247 a[i] = 0 4248 continue 4249 } 4250 a[i] = a[i] / b 4251 } 4252 if err != nil { 4253 return 4254 } 4255 if len(errs) > 0 { 4256 return errs 4257 } 4258 return nil 4259 } 4260 4261 func DivVSU16(a []uint16, b uint16) (err error) { 4262 var errs errorIndices 4263 for i := range a { 4264 if b == 0 { 4265 errs = append(errs, i) 4266 a[i] = 0 4267 continue 4268 } 4269 a[i] = a[i] / b 4270 } 4271 if err != nil { 4272 return 4273 } 4274 if len(errs) > 0 { 4275 return errs 4276 } 4277 return nil 4278 } 4279 4280 func DivVSU32(a []uint32, b uint32) (err error) { 4281 var errs errorIndices 4282 for i := range a { 4283 if b == 0 { 4284 errs = append(errs, i) 4285 a[i] = 0 4286 continue 4287 } 4288 a[i] = a[i] / b 4289 } 4290 if err != nil { 4291 return 4292 } 4293 if len(errs) > 0 { 4294 return errs 4295 } 4296 return nil 4297 } 4298 4299 func DivVSU64(a []uint64, b uint64) (err error) { 4300 var errs errorIndices 4301 for i := range a { 4302 if b == 0 { 4303 errs = append(errs, i) 4304 a[i] = 0 4305 continue 4306 } 4307 a[i] = a[i] / b 4308 } 4309 if err != nil { 4310 return 4311 } 4312 if len(errs) > 0 { 4313 return errs 4314 } 4315 return nil 4316 } 4317 4318 func DivVSF32(a []float32, b float32) { 4319 for i := range a { 4320 a[i] = a[i] / b 4321 } 4322 } 4323 4324 func DivVSF64(a []float64, b float64) { 4325 for i := range a { 4326 a[i] = a[i] / b 4327 } 4328 } 4329 4330 func DivVSC64(a []complex64, b complex64) { 4331 for i := range a { 4332 a[i] = a[i] / b 4333 } 4334 } 4335 4336 func DivVSC128(a []complex128, b complex128) { 4337 for i := range a { 4338 a[i] = a[i] / b 4339 } 4340 } 4341 4342 func PowVSF32(a []float32, b float32) { 4343 for i := range a { 4344 a[i] = math32.Pow(a[i], b) 4345 } 4346 } 4347 4348 func PowVSF64(a []float64, b float64) { 4349 for i := range a { 4350 a[i] = math.Pow(a[i], b) 4351 } 4352 } 4353 4354 func PowVSC64(a []complex64, b complex64) { 4355 for i := range a { 4356 a[i] = complex64(cmplx.Pow(complex128(a[i]), complex128(b))) 4357 } 4358 } 4359 4360 func PowVSC128(a []complex128, b complex128) { 4361 for i := range a { 4362 a[i] = cmplx.Pow(a[i], b) 4363 } 4364 } 4365 4366 func ModVSI(a []int, b int) { 4367 for i := range a { 4368 a[i] = a[i] % b 4369 } 4370 } 4371 4372 func ModVSI8(a []int8, b int8) { 4373 for i := range a { 4374 a[i] = a[i] % b 4375 } 4376 } 4377 4378 func ModVSI16(a []int16, b int16) { 4379 for i := range a { 4380 a[i] = a[i] % b 4381 } 4382 } 4383 4384 func ModVSI32(a []int32, b int32) { 4385 for i := range a { 4386 a[i] = a[i] % b 4387 } 4388 } 4389 4390 func ModVSI64(a []int64, b int64) { 4391 for i := range a { 4392 a[i] = a[i] % b 4393 } 4394 } 4395 4396 func ModVSU(a []uint, b uint) { 4397 for i := range a { 4398 a[i] = a[i] % b 4399 } 4400 } 4401 4402 func ModVSU8(a []uint8, b uint8) { 4403 for i := range a { 4404 a[i] = a[i] % b 4405 } 4406 } 4407 4408 func ModVSU16(a []uint16, b uint16) { 4409 for i := range a { 4410 a[i] = a[i] % b 4411 } 4412 } 4413 4414 func ModVSU32(a []uint32, b uint32) { 4415 for i := range a { 4416 a[i] = a[i] % b 4417 } 4418 } 4419 4420 func ModVSU64(a []uint64, b uint64) { 4421 for i := range a { 4422 a[i] = a[i] % b 4423 } 4424 } 4425 4426 func ModVSF32(a []float32, b float32) { 4427 for i := range a { 4428 a[i] = math32.Mod(a[i], b) 4429 } 4430 } 4431 4432 func ModVSF64(a []float64, b float64) { 4433 for i := range a { 4434 a[i] = math.Mod(a[i], b) 4435 } 4436 } 4437 4438 func AddIncrVSI(a []int, b int, incr []int) { 4439 for i := range incr { 4440 incr[i] += a[i] + b 4441 } 4442 } 4443 4444 func AddIncrVSI8(a []int8, b int8, incr []int8) { 4445 for i := range incr { 4446 incr[i] += a[i] + b 4447 } 4448 } 4449 4450 func AddIncrVSI16(a []int16, b int16, incr []int16) { 4451 for i := range incr { 4452 incr[i] += a[i] + b 4453 } 4454 } 4455 4456 func AddIncrVSI32(a []int32, b int32, incr []int32) { 4457 for i := range incr { 4458 incr[i] += a[i] + b 4459 } 4460 } 4461 4462 func AddIncrVSI64(a []int64, b int64, incr []int64) { 4463 for i := range incr { 4464 incr[i] += a[i] + b 4465 } 4466 } 4467 4468 func AddIncrVSU(a []uint, b uint, incr []uint) { 4469 for i := range incr { 4470 incr[i] += a[i] + b 4471 } 4472 } 4473 4474 func AddIncrVSU8(a []uint8, b uint8, incr []uint8) { 4475 for i := range incr { 4476 incr[i] += a[i] + b 4477 } 4478 } 4479 4480 func AddIncrVSU16(a []uint16, b uint16, incr []uint16) { 4481 for i := range incr { 4482 incr[i] += a[i] + b 4483 } 4484 } 4485 4486 func AddIncrVSU32(a []uint32, b uint32, incr []uint32) { 4487 for i := range incr { 4488 incr[i] += a[i] + b 4489 } 4490 } 4491 4492 func AddIncrVSU64(a []uint64, b uint64, incr []uint64) { 4493 for i := range incr { 4494 incr[i] += a[i] + b 4495 } 4496 } 4497 4498 func AddIncrVSF32(a []float32, b float32, incr []float32) { 4499 for i := range incr { 4500 incr[i] += a[i] + b 4501 } 4502 } 4503 4504 func AddIncrVSF64(a []float64, b float64, incr []float64) { 4505 for i := range incr { 4506 incr[i] += a[i] + b 4507 } 4508 } 4509 4510 func AddIncrVSC64(a []complex64, b complex64, incr []complex64) { 4511 for i := range incr { 4512 incr[i] += a[i] + b 4513 } 4514 } 4515 4516 func AddIncrVSC128(a []complex128, b complex128, incr []complex128) { 4517 for i := range incr { 4518 incr[i] += a[i] + b 4519 } 4520 } 4521 4522 func AddIncrVSStr(a []string, b string, incr []string) { 4523 for i := range incr { 4524 incr[i] += a[i] + b 4525 } 4526 } 4527 4528 func SubIncrVSI(a []int, b int, incr []int) { 4529 for i := range incr { 4530 incr[i] += a[i] - b 4531 } 4532 } 4533 4534 func SubIncrVSI8(a []int8, b int8, incr []int8) { 4535 for i := range incr { 4536 incr[i] += a[i] - b 4537 } 4538 } 4539 4540 func SubIncrVSI16(a []int16, b int16, incr []int16) { 4541 for i := range incr { 4542 incr[i] += a[i] - b 4543 } 4544 } 4545 4546 func SubIncrVSI32(a []int32, b int32, incr []int32) { 4547 for i := range incr { 4548 incr[i] += a[i] - b 4549 } 4550 } 4551 4552 func SubIncrVSI64(a []int64, b int64, incr []int64) { 4553 for i := range incr { 4554 incr[i] += a[i] - b 4555 } 4556 } 4557 4558 func SubIncrVSU(a []uint, b uint, incr []uint) { 4559 for i := range incr { 4560 incr[i] += a[i] - b 4561 } 4562 } 4563 4564 func SubIncrVSU8(a []uint8, b uint8, incr []uint8) { 4565 for i := range incr { 4566 incr[i] += a[i] - b 4567 } 4568 } 4569 4570 func SubIncrVSU16(a []uint16, b uint16, incr []uint16) { 4571 for i := range incr { 4572 incr[i] += a[i] - b 4573 } 4574 } 4575 4576 func SubIncrVSU32(a []uint32, b uint32, incr []uint32) { 4577 for i := range incr { 4578 incr[i] += a[i] - b 4579 } 4580 } 4581 4582 func SubIncrVSU64(a []uint64, b uint64, incr []uint64) { 4583 for i := range incr { 4584 incr[i] += a[i] - b 4585 } 4586 } 4587 4588 func SubIncrVSF32(a []float32, b float32, incr []float32) { 4589 for i := range incr { 4590 incr[i] += a[i] - b 4591 } 4592 } 4593 4594 func SubIncrVSF64(a []float64, b float64, incr []float64) { 4595 for i := range incr { 4596 incr[i] += a[i] - b 4597 } 4598 } 4599 4600 func SubIncrVSC64(a []complex64, b complex64, incr []complex64) { 4601 for i := range incr { 4602 incr[i] += a[i] - b 4603 } 4604 } 4605 4606 func SubIncrVSC128(a []complex128, b complex128, incr []complex128) { 4607 for i := range incr { 4608 incr[i] += a[i] - b 4609 } 4610 } 4611 4612 func MulIncrVSI(a []int, b int, incr []int) { 4613 for i := range incr { 4614 incr[i] += a[i] * b 4615 } 4616 } 4617 4618 func MulIncrVSI8(a []int8, b int8, incr []int8) { 4619 for i := range incr { 4620 incr[i] += a[i] * b 4621 } 4622 } 4623 4624 func MulIncrVSI16(a []int16, b int16, incr []int16) { 4625 for i := range incr { 4626 incr[i] += a[i] * b 4627 } 4628 } 4629 4630 func MulIncrVSI32(a []int32, b int32, incr []int32) { 4631 for i := range incr { 4632 incr[i] += a[i] * b 4633 } 4634 } 4635 4636 func MulIncrVSI64(a []int64, b int64, incr []int64) { 4637 for i := range incr { 4638 incr[i] += a[i] * b 4639 } 4640 } 4641 4642 func MulIncrVSU(a []uint, b uint, incr []uint) { 4643 for i := range incr { 4644 incr[i] += a[i] * b 4645 } 4646 } 4647 4648 func MulIncrVSU8(a []uint8, b uint8, incr []uint8) { 4649 for i := range incr { 4650 incr[i] += a[i] * b 4651 } 4652 } 4653 4654 func MulIncrVSU16(a []uint16, b uint16, incr []uint16) { 4655 for i := range incr { 4656 incr[i] += a[i] * b 4657 } 4658 } 4659 4660 func MulIncrVSU32(a []uint32, b uint32, incr []uint32) { 4661 for i := range incr { 4662 incr[i] += a[i] * b 4663 } 4664 } 4665 4666 func MulIncrVSU64(a []uint64, b uint64, incr []uint64) { 4667 for i := range incr { 4668 incr[i] += a[i] * b 4669 } 4670 } 4671 4672 func MulIncrVSF32(a []float32, b float32, incr []float32) { 4673 for i := range incr { 4674 incr[i] += a[i] * b 4675 } 4676 } 4677 4678 func MulIncrVSF64(a []float64, b float64, incr []float64) { 4679 for i := range incr { 4680 incr[i] += a[i] * b 4681 } 4682 } 4683 4684 func MulIncrVSC64(a []complex64, b complex64, incr []complex64) { 4685 for i := range incr { 4686 incr[i] += a[i] * b 4687 } 4688 } 4689 4690 func MulIncrVSC128(a []complex128, b complex128, incr []complex128) { 4691 for i := range incr { 4692 incr[i] += a[i] * b 4693 } 4694 } 4695 4696 func DivIncrVSI(a []int, b int, incr []int) (err error) { 4697 var errs errorIndices 4698 for i := range incr { 4699 if b == 0 { 4700 errs = append(errs, i) 4701 incr[i] = 0 4702 continue 4703 } 4704 incr[i] += a[i] / b 4705 } 4706 if err != nil { 4707 return 4708 } 4709 if len(errs) > 0 { 4710 return errs 4711 } 4712 return nil 4713 } 4714 4715 func DivIncrVSI8(a []int8, b int8, incr []int8) (err error) { 4716 var errs errorIndices 4717 for i := range incr { 4718 if b == 0 { 4719 errs = append(errs, i) 4720 incr[i] = 0 4721 continue 4722 } 4723 incr[i] += a[i] / b 4724 } 4725 if err != nil { 4726 return 4727 } 4728 if len(errs) > 0 { 4729 return errs 4730 } 4731 return nil 4732 } 4733 4734 func DivIncrVSI16(a []int16, b int16, incr []int16) (err error) { 4735 var errs errorIndices 4736 for i := range incr { 4737 if b == 0 { 4738 errs = append(errs, i) 4739 incr[i] = 0 4740 continue 4741 } 4742 incr[i] += a[i] / b 4743 } 4744 if err != nil { 4745 return 4746 } 4747 if len(errs) > 0 { 4748 return errs 4749 } 4750 return nil 4751 } 4752 4753 func DivIncrVSI32(a []int32, b int32, incr []int32) (err error) { 4754 var errs errorIndices 4755 for i := range incr { 4756 if b == 0 { 4757 errs = append(errs, i) 4758 incr[i] = 0 4759 continue 4760 } 4761 incr[i] += a[i] / b 4762 } 4763 if err != nil { 4764 return 4765 } 4766 if len(errs) > 0 { 4767 return errs 4768 } 4769 return nil 4770 } 4771 4772 func DivIncrVSI64(a []int64, b int64, incr []int64) (err error) { 4773 var errs errorIndices 4774 for i := range incr { 4775 if b == 0 { 4776 errs = append(errs, i) 4777 incr[i] = 0 4778 continue 4779 } 4780 incr[i] += a[i] / b 4781 } 4782 if err != nil { 4783 return 4784 } 4785 if len(errs) > 0 { 4786 return errs 4787 } 4788 return nil 4789 } 4790 4791 func DivIncrVSU(a []uint, b uint, incr []uint) (err error) { 4792 var errs errorIndices 4793 for i := range incr { 4794 if b == 0 { 4795 errs = append(errs, i) 4796 incr[i] = 0 4797 continue 4798 } 4799 incr[i] += a[i] / b 4800 } 4801 if err != nil { 4802 return 4803 } 4804 if len(errs) > 0 { 4805 return errs 4806 } 4807 return nil 4808 } 4809 4810 func DivIncrVSU8(a []uint8, b uint8, incr []uint8) (err error) { 4811 var errs errorIndices 4812 for i := range incr { 4813 if b == 0 { 4814 errs = append(errs, i) 4815 incr[i] = 0 4816 continue 4817 } 4818 incr[i] += a[i] / b 4819 } 4820 if err != nil { 4821 return 4822 } 4823 if len(errs) > 0 { 4824 return errs 4825 } 4826 return nil 4827 } 4828 4829 func DivIncrVSU16(a []uint16, b uint16, incr []uint16) (err error) { 4830 var errs errorIndices 4831 for i := range incr { 4832 if b == 0 { 4833 errs = append(errs, i) 4834 incr[i] = 0 4835 continue 4836 } 4837 incr[i] += a[i] / b 4838 } 4839 if err != nil { 4840 return 4841 } 4842 if len(errs) > 0 { 4843 return errs 4844 } 4845 return nil 4846 } 4847 4848 func DivIncrVSU32(a []uint32, b uint32, incr []uint32) (err error) { 4849 var errs errorIndices 4850 for i := range incr { 4851 if b == 0 { 4852 errs = append(errs, i) 4853 incr[i] = 0 4854 continue 4855 } 4856 incr[i] += a[i] / b 4857 } 4858 if err != nil { 4859 return 4860 } 4861 if len(errs) > 0 { 4862 return errs 4863 } 4864 return nil 4865 } 4866 4867 func DivIncrVSU64(a []uint64, b uint64, incr []uint64) (err error) { 4868 var errs errorIndices 4869 for i := range incr { 4870 if b == 0 { 4871 errs = append(errs, i) 4872 incr[i] = 0 4873 continue 4874 } 4875 incr[i] += a[i] / b 4876 } 4877 if err != nil { 4878 return 4879 } 4880 if len(errs) > 0 { 4881 return errs 4882 } 4883 return nil 4884 } 4885 4886 func DivIncrVSF32(a []float32, b float32, incr []float32) { 4887 for i := range incr { 4888 incr[i] += a[i] / b 4889 } 4890 } 4891 4892 func DivIncrVSF64(a []float64, b float64, incr []float64) { 4893 for i := range incr { 4894 incr[i] += a[i] / b 4895 } 4896 } 4897 4898 func DivIncrVSC64(a []complex64, b complex64, incr []complex64) { 4899 for i := range incr { 4900 incr[i] += a[i] / b 4901 } 4902 } 4903 4904 func DivIncrVSC128(a []complex128, b complex128, incr []complex128) { 4905 for i := range incr { 4906 incr[i] += a[i] / b 4907 } 4908 } 4909 4910 func PowIncrVSF32(a []float32, b float32, incr []float32) { 4911 for i := range incr { 4912 incr[i] += math32.Pow(a[i], b) 4913 } 4914 } 4915 4916 func PowIncrVSF64(a []float64, b float64, incr []float64) { 4917 for i := range incr { 4918 incr[i] += math.Pow(a[i], b) 4919 } 4920 } 4921 4922 func PowIncrVSC64(a []complex64, b complex64, incr []complex64) { 4923 for i := range incr { 4924 incr[i] += complex64(cmplx.Pow(complex128(a[i]), complex128(b))) 4925 } 4926 } 4927 4928 func PowIncrVSC128(a []complex128, b complex128, incr []complex128) { 4929 for i := range incr { 4930 incr[i] += cmplx.Pow(a[i], b) 4931 } 4932 } 4933 4934 func ModIncrVSI(a []int, b int, incr []int) { 4935 for i := range incr { 4936 incr[i] += a[i] % b 4937 } 4938 } 4939 4940 func ModIncrVSI8(a []int8, b int8, incr []int8) { 4941 for i := range incr { 4942 incr[i] += a[i] % b 4943 } 4944 } 4945 4946 func ModIncrVSI16(a []int16, b int16, incr []int16) { 4947 for i := range incr { 4948 incr[i] += a[i] % b 4949 } 4950 } 4951 4952 func ModIncrVSI32(a []int32, b int32, incr []int32) { 4953 for i := range incr { 4954 incr[i] += a[i] % b 4955 } 4956 } 4957 4958 func ModIncrVSI64(a []int64, b int64, incr []int64) { 4959 for i := range incr { 4960 incr[i] += a[i] % b 4961 } 4962 } 4963 4964 func ModIncrVSU(a []uint, b uint, incr []uint) { 4965 for i := range incr { 4966 incr[i] += a[i] % b 4967 } 4968 } 4969 4970 func ModIncrVSU8(a []uint8, b uint8, incr []uint8) { 4971 for i := range incr { 4972 incr[i] += a[i] % b 4973 } 4974 } 4975 4976 func ModIncrVSU16(a []uint16, b uint16, incr []uint16) { 4977 for i := range incr { 4978 incr[i] += a[i] % b 4979 } 4980 } 4981 4982 func ModIncrVSU32(a []uint32, b uint32, incr []uint32) { 4983 for i := range incr { 4984 incr[i] += a[i] % b 4985 } 4986 } 4987 4988 func ModIncrVSU64(a []uint64, b uint64, incr []uint64) { 4989 for i := range incr { 4990 incr[i] += a[i] % b 4991 } 4992 } 4993 4994 func ModIncrVSF32(a []float32, b float32, incr []float32) { 4995 for i := range incr { 4996 incr[i] += math32.Mod(a[i], b) 4997 } 4998 } 4999 5000 func ModIncrVSF64(a []float64, b float64, incr []float64) { 5001 for i := range incr { 5002 incr[i] += math.Mod(a[i], b) 5003 } 5004 } 5005 5006 func AddIterVSI(a []int, b int, ait Iterator) (err error) { 5007 var i int 5008 var validi bool 5009 for { 5010 if i, validi, err = ait.NextValidity(); err != nil { 5011 err = handleNoOp(err) 5012 break 5013 } 5014 if validi { 5015 a[i] = a[i] + b 5016 } 5017 } 5018 return 5019 } 5020 5021 func AddIterVSI8(a []int8, b int8, ait Iterator) (err error) { 5022 var i int 5023 var validi bool 5024 for { 5025 if i, validi, err = ait.NextValidity(); err != nil { 5026 err = handleNoOp(err) 5027 break 5028 } 5029 if validi { 5030 a[i] = a[i] + b 5031 } 5032 } 5033 return 5034 } 5035 5036 func AddIterVSI16(a []int16, b int16, ait Iterator) (err error) { 5037 var i int 5038 var validi bool 5039 for { 5040 if i, validi, err = ait.NextValidity(); err != nil { 5041 err = handleNoOp(err) 5042 break 5043 } 5044 if validi { 5045 a[i] = a[i] + b 5046 } 5047 } 5048 return 5049 } 5050 5051 func AddIterVSI32(a []int32, b int32, ait Iterator) (err error) { 5052 var i int 5053 var validi bool 5054 for { 5055 if i, validi, err = ait.NextValidity(); err != nil { 5056 err = handleNoOp(err) 5057 break 5058 } 5059 if validi { 5060 a[i] = a[i] + b 5061 } 5062 } 5063 return 5064 } 5065 5066 func AddIterVSI64(a []int64, b int64, ait Iterator) (err error) { 5067 var i int 5068 var validi bool 5069 for { 5070 if i, validi, err = ait.NextValidity(); err != nil { 5071 err = handleNoOp(err) 5072 break 5073 } 5074 if validi { 5075 a[i] = a[i] + b 5076 } 5077 } 5078 return 5079 } 5080 5081 func AddIterVSU(a []uint, b uint, ait Iterator) (err error) { 5082 var i int 5083 var validi bool 5084 for { 5085 if i, validi, err = ait.NextValidity(); err != nil { 5086 err = handleNoOp(err) 5087 break 5088 } 5089 if validi { 5090 a[i] = a[i] + b 5091 } 5092 } 5093 return 5094 } 5095 5096 func AddIterVSU8(a []uint8, b uint8, ait Iterator) (err error) { 5097 var i int 5098 var validi bool 5099 for { 5100 if i, validi, err = ait.NextValidity(); err != nil { 5101 err = handleNoOp(err) 5102 break 5103 } 5104 if validi { 5105 a[i] = a[i] + b 5106 } 5107 } 5108 return 5109 } 5110 5111 func AddIterVSU16(a []uint16, b uint16, ait Iterator) (err error) { 5112 var i int 5113 var validi bool 5114 for { 5115 if i, validi, err = ait.NextValidity(); err != nil { 5116 err = handleNoOp(err) 5117 break 5118 } 5119 if validi { 5120 a[i] = a[i] + b 5121 } 5122 } 5123 return 5124 } 5125 5126 func AddIterVSU32(a []uint32, b uint32, ait Iterator) (err error) { 5127 var i int 5128 var validi bool 5129 for { 5130 if i, validi, err = ait.NextValidity(); err != nil { 5131 err = handleNoOp(err) 5132 break 5133 } 5134 if validi { 5135 a[i] = a[i] + b 5136 } 5137 } 5138 return 5139 } 5140 5141 func AddIterVSU64(a []uint64, b uint64, ait Iterator) (err error) { 5142 var i int 5143 var validi bool 5144 for { 5145 if i, validi, err = ait.NextValidity(); err != nil { 5146 err = handleNoOp(err) 5147 break 5148 } 5149 if validi { 5150 a[i] = a[i] + b 5151 } 5152 } 5153 return 5154 } 5155 5156 func AddIterVSF32(a []float32, b float32, ait Iterator) (err error) { 5157 var i int 5158 var validi bool 5159 for { 5160 if i, validi, err = ait.NextValidity(); err != nil { 5161 err = handleNoOp(err) 5162 break 5163 } 5164 if validi { 5165 a[i] = a[i] + b 5166 } 5167 } 5168 return 5169 } 5170 5171 func AddIterVSF64(a []float64, b float64, ait Iterator) (err error) { 5172 var i int 5173 var validi bool 5174 for { 5175 if i, validi, err = ait.NextValidity(); err != nil { 5176 err = handleNoOp(err) 5177 break 5178 } 5179 if validi { 5180 a[i] = a[i] + b 5181 } 5182 } 5183 return 5184 } 5185 5186 func AddIterVSC64(a []complex64, b complex64, ait Iterator) (err error) { 5187 var i int 5188 var validi bool 5189 for { 5190 if i, validi, err = ait.NextValidity(); err != nil { 5191 err = handleNoOp(err) 5192 break 5193 } 5194 if validi { 5195 a[i] = a[i] + b 5196 } 5197 } 5198 return 5199 } 5200 5201 func AddIterVSC128(a []complex128, b complex128, ait Iterator) (err error) { 5202 var i int 5203 var validi bool 5204 for { 5205 if i, validi, err = ait.NextValidity(); err != nil { 5206 err = handleNoOp(err) 5207 break 5208 } 5209 if validi { 5210 a[i] = a[i] + b 5211 } 5212 } 5213 return 5214 } 5215 5216 func AddIterVSStr(a []string, b string, ait Iterator) (err error) { 5217 var i int 5218 var validi bool 5219 for { 5220 if i, validi, err = ait.NextValidity(); err != nil { 5221 err = handleNoOp(err) 5222 break 5223 } 5224 if validi { 5225 a[i] = a[i] + b 5226 } 5227 } 5228 return 5229 } 5230 5231 func SubIterVSI(a []int, b int, ait Iterator) (err error) { 5232 var i int 5233 var validi bool 5234 for { 5235 if i, validi, err = ait.NextValidity(); err != nil { 5236 err = handleNoOp(err) 5237 break 5238 } 5239 if validi { 5240 a[i] = a[i] - b 5241 } 5242 } 5243 return 5244 } 5245 5246 func SubIterVSI8(a []int8, b int8, ait Iterator) (err error) { 5247 var i int 5248 var validi bool 5249 for { 5250 if i, validi, err = ait.NextValidity(); err != nil { 5251 err = handleNoOp(err) 5252 break 5253 } 5254 if validi { 5255 a[i] = a[i] - b 5256 } 5257 } 5258 return 5259 } 5260 5261 func SubIterVSI16(a []int16, b int16, ait Iterator) (err error) { 5262 var i int 5263 var validi bool 5264 for { 5265 if i, validi, err = ait.NextValidity(); err != nil { 5266 err = handleNoOp(err) 5267 break 5268 } 5269 if validi { 5270 a[i] = a[i] - b 5271 } 5272 } 5273 return 5274 } 5275 5276 func SubIterVSI32(a []int32, b int32, ait Iterator) (err error) { 5277 var i int 5278 var validi bool 5279 for { 5280 if i, validi, err = ait.NextValidity(); err != nil { 5281 err = handleNoOp(err) 5282 break 5283 } 5284 if validi { 5285 a[i] = a[i] - b 5286 } 5287 } 5288 return 5289 } 5290 5291 func SubIterVSI64(a []int64, b int64, ait Iterator) (err error) { 5292 var i int 5293 var validi bool 5294 for { 5295 if i, validi, err = ait.NextValidity(); err != nil { 5296 err = handleNoOp(err) 5297 break 5298 } 5299 if validi { 5300 a[i] = a[i] - b 5301 } 5302 } 5303 return 5304 } 5305 5306 func SubIterVSU(a []uint, b uint, ait Iterator) (err error) { 5307 var i int 5308 var validi bool 5309 for { 5310 if i, validi, err = ait.NextValidity(); err != nil { 5311 err = handleNoOp(err) 5312 break 5313 } 5314 if validi { 5315 a[i] = a[i] - b 5316 } 5317 } 5318 return 5319 } 5320 5321 func SubIterVSU8(a []uint8, b uint8, ait Iterator) (err error) { 5322 var i int 5323 var validi bool 5324 for { 5325 if i, validi, err = ait.NextValidity(); err != nil { 5326 err = handleNoOp(err) 5327 break 5328 } 5329 if validi { 5330 a[i] = a[i] - b 5331 } 5332 } 5333 return 5334 } 5335 5336 func SubIterVSU16(a []uint16, b uint16, ait Iterator) (err error) { 5337 var i int 5338 var validi bool 5339 for { 5340 if i, validi, err = ait.NextValidity(); err != nil { 5341 err = handleNoOp(err) 5342 break 5343 } 5344 if validi { 5345 a[i] = a[i] - b 5346 } 5347 } 5348 return 5349 } 5350 5351 func SubIterVSU32(a []uint32, b uint32, ait Iterator) (err error) { 5352 var i int 5353 var validi bool 5354 for { 5355 if i, validi, err = ait.NextValidity(); err != nil { 5356 err = handleNoOp(err) 5357 break 5358 } 5359 if validi { 5360 a[i] = a[i] - b 5361 } 5362 } 5363 return 5364 } 5365 5366 func SubIterVSU64(a []uint64, b uint64, ait Iterator) (err error) { 5367 var i int 5368 var validi bool 5369 for { 5370 if i, validi, err = ait.NextValidity(); err != nil { 5371 err = handleNoOp(err) 5372 break 5373 } 5374 if validi { 5375 a[i] = a[i] - b 5376 } 5377 } 5378 return 5379 } 5380 5381 func SubIterVSF32(a []float32, b float32, ait Iterator) (err error) { 5382 var i int 5383 var validi bool 5384 for { 5385 if i, validi, err = ait.NextValidity(); err != nil { 5386 err = handleNoOp(err) 5387 break 5388 } 5389 if validi { 5390 a[i] = a[i] - b 5391 } 5392 } 5393 return 5394 } 5395 5396 func SubIterVSF64(a []float64, b float64, ait Iterator) (err error) { 5397 var i int 5398 var validi bool 5399 for { 5400 if i, validi, err = ait.NextValidity(); err != nil { 5401 err = handleNoOp(err) 5402 break 5403 } 5404 if validi { 5405 a[i] = a[i] - b 5406 } 5407 } 5408 return 5409 } 5410 5411 func SubIterVSC64(a []complex64, b complex64, ait Iterator) (err error) { 5412 var i int 5413 var validi bool 5414 for { 5415 if i, validi, err = ait.NextValidity(); err != nil { 5416 err = handleNoOp(err) 5417 break 5418 } 5419 if validi { 5420 a[i] = a[i] - b 5421 } 5422 } 5423 return 5424 } 5425 5426 func SubIterVSC128(a []complex128, b complex128, ait Iterator) (err error) { 5427 var i int 5428 var validi bool 5429 for { 5430 if i, validi, err = ait.NextValidity(); err != nil { 5431 err = handleNoOp(err) 5432 break 5433 } 5434 if validi { 5435 a[i] = a[i] - b 5436 } 5437 } 5438 return 5439 } 5440 5441 func MulIterVSI(a []int, b int, ait Iterator) (err error) { 5442 var i int 5443 var validi bool 5444 for { 5445 if i, validi, err = ait.NextValidity(); err != nil { 5446 err = handleNoOp(err) 5447 break 5448 } 5449 if validi { 5450 a[i] = a[i] * b 5451 } 5452 } 5453 return 5454 } 5455 5456 func MulIterVSI8(a []int8, b int8, ait Iterator) (err error) { 5457 var i int 5458 var validi bool 5459 for { 5460 if i, validi, err = ait.NextValidity(); err != nil { 5461 err = handleNoOp(err) 5462 break 5463 } 5464 if validi { 5465 a[i] = a[i] * b 5466 } 5467 } 5468 return 5469 } 5470 5471 func MulIterVSI16(a []int16, b int16, ait Iterator) (err error) { 5472 var i int 5473 var validi bool 5474 for { 5475 if i, validi, err = ait.NextValidity(); err != nil { 5476 err = handleNoOp(err) 5477 break 5478 } 5479 if validi { 5480 a[i] = a[i] * b 5481 } 5482 } 5483 return 5484 } 5485 5486 func MulIterVSI32(a []int32, b int32, ait Iterator) (err error) { 5487 var i int 5488 var validi bool 5489 for { 5490 if i, validi, err = ait.NextValidity(); err != nil { 5491 err = handleNoOp(err) 5492 break 5493 } 5494 if validi { 5495 a[i] = a[i] * b 5496 } 5497 } 5498 return 5499 } 5500 5501 func MulIterVSI64(a []int64, b int64, ait Iterator) (err error) { 5502 var i int 5503 var validi bool 5504 for { 5505 if i, validi, err = ait.NextValidity(); err != nil { 5506 err = handleNoOp(err) 5507 break 5508 } 5509 if validi { 5510 a[i] = a[i] * b 5511 } 5512 } 5513 return 5514 } 5515 5516 func MulIterVSU(a []uint, b uint, ait Iterator) (err error) { 5517 var i int 5518 var validi bool 5519 for { 5520 if i, validi, err = ait.NextValidity(); err != nil { 5521 err = handleNoOp(err) 5522 break 5523 } 5524 if validi { 5525 a[i] = a[i] * b 5526 } 5527 } 5528 return 5529 } 5530 5531 func MulIterVSU8(a []uint8, b uint8, ait Iterator) (err error) { 5532 var i int 5533 var validi bool 5534 for { 5535 if i, validi, err = ait.NextValidity(); err != nil { 5536 err = handleNoOp(err) 5537 break 5538 } 5539 if validi { 5540 a[i] = a[i] * b 5541 } 5542 } 5543 return 5544 } 5545 5546 func MulIterVSU16(a []uint16, b uint16, ait Iterator) (err error) { 5547 var i int 5548 var validi bool 5549 for { 5550 if i, validi, err = ait.NextValidity(); err != nil { 5551 err = handleNoOp(err) 5552 break 5553 } 5554 if validi { 5555 a[i] = a[i] * b 5556 } 5557 } 5558 return 5559 } 5560 5561 func MulIterVSU32(a []uint32, b uint32, ait Iterator) (err error) { 5562 var i int 5563 var validi bool 5564 for { 5565 if i, validi, err = ait.NextValidity(); err != nil { 5566 err = handleNoOp(err) 5567 break 5568 } 5569 if validi { 5570 a[i] = a[i] * b 5571 } 5572 } 5573 return 5574 } 5575 5576 func MulIterVSU64(a []uint64, b uint64, ait Iterator) (err error) { 5577 var i int 5578 var validi bool 5579 for { 5580 if i, validi, err = ait.NextValidity(); err != nil { 5581 err = handleNoOp(err) 5582 break 5583 } 5584 if validi { 5585 a[i] = a[i] * b 5586 } 5587 } 5588 return 5589 } 5590 5591 func MulIterVSF32(a []float32, b float32, ait Iterator) (err error) { 5592 var i int 5593 var validi bool 5594 for { 5595 if i, validi, err = ait.NextValidity(); err != nil { 5596 err = handleNoOp(err) 5597 break 5598 } 5599 if validi { 5600 a[i] = a[i] * b 5601 } 5602 } 5603 return 5604 } 5605 5606 func MulIterVSF64(a []float64, b float64, ait Iterator) (err error) { 5607 var i int 5608 var validi bool 5609 for { 5610 if i, validi, err = ait.NextValidity(); err != nil { 5611 err = handleNoOp(err) 5612 break 5613 } 5614 if validi { 5615 a[i] = a[i] * b 5616 } 5617 } 5618 return 5619 } 5620 5621 func MulIterVSC64(a []complex64, b complex64, ait Iterator) (err error) { 5622 var i int 5623 var validi bool 5624 for { 5625 if i, validi, err = ait.NextValidity(); err != nil { 5626 err = handleNoOp(err) 5627 break 5628 } 5629 if validi { 5630 a[i] = a[i] * b 5631 } 5632 } 5633 return 5634 } 5635 5636 func MulIterVSC128(a []complex128, b complex128, ait Iterator) (err error) { 5637 var i int 5638 var validi bool 5639 for { 5640 if i, validi, err = ait.NextValidity(); err != nil { 5641 err = handleNoOp(err) 5642 break 5643 } 5644 if validi { 5645 a[i] = a[i] * b 5646 } 5647 } 5648 return 5649 } 5650 5651 func DivIterVSI(a []int, b int, ait Iterator) (err error) { 5652 var errs errorIndices 5653 var i int 5654 var validi bool 5655 for { 5656 if i, validi, err = ait.NextValidity(); err != nil { 5657 err = handleNoOp(err) 5658 break 5659 } 5660 if validi { 5661 if b == 0 { 5662 errs = append(errs, i) 5663 a[i] = 0 5664 continue 5665 } 5666 a[i] = a[i] / b 5667 } 5668 } 5669 if err != nil { 5670 return 5671 } 5672 if len(errs) > 0 { 5673 return errs 5674 } 5675 return nil 5676 } 5677 5678 func DivIterVSI8(a []int8, b int8, ait Iterator) (err error) { 5679 var errs errorIndices 5680 var i int 5681 var validi bool 5682 for { 5683 if i, validi, err = ait.NextValidity(); err != nil { 5684 err = handleNoOp(err) 5685 break 5686 } 5687 if validi { 5688 if b == 0 { 5689 errs = append(errs, i) 5690 a[i] = 0 5691 continue 5692 } 5693 a[i] = a[i] / b 5694 } 5695 } 5696 if err != nil { 5697 return 5698 } 5699 if len(errs) > 0 { 5700 return errs 5701 } 5702 return nil 5703 } 5704 5705 func DivIterVSI16(a []int16, b int16, ait Iterator) (err error) { 5706 var errs errorIndices 5707 var i int 5708 var validi bool 5709 for { 5710 if i, validi, err = ait.NextValidity(); err != nil { 5711 err = handleNoOp(err) 5712 break 5713 } 5714 if validi { 5715 if b == 0 { 5716 errs = append(errs, i) 5717 a[i] = 0 5718 continue 5719 } 5720 a[i] = a[i] / b 5721 } 5722 } 5723 if err != nil { 5724 return 5725 } 5726 if len(errs) > 0 { 5727 return errs 5728 } 5729 return nil 5730 } 5731 5732 func DivIterVSI32(a []int32, b int32, ait Iterator) (err error) { 5733 var errs errorIndices 5734 var i int 5735 var validi bool 5736 for { 5737 if i, validi, err = ait.NextValidity(); err != nil { 5738 err = handleNoOp(err) 5739 break 5740 } 5741 if validi { 5742 if b == 0 { 5743 errs = append(errs, i) 5744 a[i] = 0 5745 continue 5746 } 5747 a[i] = a[i] / b 5748 } 5749 } 5750 if err != nil { 5751 return 5752 } 5753 if len(errs) > 0 { 5754 return errs 5755 } 5756 return nil 5757 } 5758 5759 func DivIterVSI64(a []int64, b int64, ait Iterator) (err error) { 5760 var errs errorIndices 5761 var i int 5762 var validi bool 5763 for { 5764 if i, validi, err = ait.NextValidity(); err != nil { 5765 err = handleNoOp(err) 5766 break 5767 } 5768 if validi { 5769 if b == 0 { 5770 errs = append(errs, i) 5771 a[i] = 0 5772 continue 5773 } 5774 a[i] = a[i] / b 5775 } 5776 } 5777 if err != nil { 5778 return 5779 } 5780 if len(errs) > 0 { 5781 return errs 5782 } 5783 return nil 5784 } 5785 5786 func DivIterVSU(a []uint, b uint, ait Iterator) (err error) { 5787 var errs errorIndices 5788 var i int 5789 var validi bool 5790 for { 5791 if i, validi, err = ait.NextValidity(); err != nil { 5792 err = handleNoOp(err) 5793 break 5794 } 5795 if validi { 5796 if b == 0 { 5797 errs = append(errs, i) 5798 a[i] = 0 5799 continue 5800 } 5801 a[i] = a[i] / b 5802 } 5803 } 5804 if err != nil { 5805 return 5806 } 5807 if len(errs) > 0 { 5808 return errs 5809 } 5810 return nil 5811 } 5812 5813 func DivIterVSU8(a []uint8, b uint8, ait Iterator) (err error) { 5814 var errs errorIndices 5815 var i int 5816 var validi bool 5817 for { 5818 if i, validi, err = ait.NextValidity(); err != nil { 5819 err = handleNoOp(err) 5820 break 5821 } 5822 if validi { 5823 if b == 0 { 5824 errs = append(errs, i) 5825 a[i] = 0 5826 continue 5827 } 5828 a[i] = a[i] / b 5829 } 5830 } 5831 if err != nil { 5832 return 5833 } 5834 if len(errs) > 0 { 5835 return errs 5836 } 5837 return nil 5838 } 5839 5840 func DivIterVSU16(a []uint16, b uint16, ait Iterator) (err error) { 5841 var errs errorIndices 5842 var i int 5843 var validi bool 5844 for { 5845 if i, validi, err = ait.NextValidity(); err != nil { 5846 err = handleNoOp(err) 5847 break 5848 } 5849 if validi { 5850 if b == 0 { 5851 errs = append(errs, i) 5852 a[i] = 0 5853 continue 5854 } 5855 a[i] = a[i] / b 5856 } 5857 } 5858 if err != nil { 5859 return 5860 } 5861 if len(errs) > 0 { 5862 return errs 5863 } 5864 return nil 5865 } 5866 5867 func DivIterVSU32(a []uint32, b uint32, ait Iterator) (err error) { 5868 var errs errorIndices 5869 var i int 5870 var validi bool 5871 for { 5872 if i, validi, err = ait.NextValidity(); err != nil { 5873 err = handleNoOp(err) 5874 break 5875 } 5876 if validi { 5877 if b == 0 { 5878 errs = append(errs, i) 5879 a[i] = 0 5880 continue 5881 } 5882 a[i] = a[i] / b 5883 } 5884 } 5885 if err != nil { 5886 return 5887 } 5888 if len(errs) > 0 { 5889 return errs 5890 } 5891 return nil 5892 } 5893 5894 func DivIterVSU64(a []uint64, b uint64, ait Iterator) (err error) { 5895 var errs errorIndices 5896 var i int 5897 var validi bool 5898 for { 5899 if i, validi, err = ait.NextValidity(); err != nil { 5900 err = handleNoOp(err) 5901 break 5902 } 5903 if validi { 5904 if b == 0 { 5905 errs = append(errs, i) 5906 a[i] = 0 5907 continue 5908 } 5909 a[i] = a[i] / b 5910 } 5911 } 5912 if err != nil { 5913 return 5914 } 5915 if len(errs) > 0 { 5916 return errs 5917 } 5918 return nil 5919 } 5920 5921 func DivIterVSF32(a []float32, b float32, ait Iterator) (err error) { 5922 var i int 5923 var validi bool 5924 for { 5925 if i, validi, err = ait.NextValidity(); err != nil { 5926 err = handleNoOp(err) 5927 break 5928 } 5929 if validi { 5930 a[i] = a[i] / b 5931 } 5932 } 5933 return 5934 } 5935 5936 func DivIterVSF64(a []float64, b float64, ait Iterator) (err error) { 5937 var i int 5938 var validi bool 5939 for { 5940 if i, validi, err = ait.NextValidity(); err != nil { 5941 err = handleNoOp(err) 5942 break 5943 } 5944 if validi { 5945 a[i] = a[i] / b 5946 } 5947 } 5948 return 5949 } 5950 5951 func DivIterVSC64(a []complex64, b complex64, ait Iterator) (err error) { 5952 var i int 5953 var validi bool 5954 for { 5955 if i, validi, err = ait.NextValidity(); err != nil { 5956 err = handleNoOp(err) 5957 break 5958 } 5959 if validi { 5960 a[i] = a[i] / b 5961 } 5962 } 5963 return 5964 } 5965 5966 func DivIterVSC128(a []complex128, b complex128, ait Iterator) (err error) { 5967 var i int 5968 var validi bool 5969 for { 5970 if i, validi, err = ait.NextValidity(); err != nil { 5971 err = handleNoOp(err) 5972 break 5973 } 5974 if validi { 5975 a[i] = a[i] / b 5976 } 5977 } 5978 return 5979 } 5980 5981 func PowIterVSF32(a []float32, b float32, ait Iterator) (err error) { 5982 var i int 5983 var validi bool 5984 for { 5985 if i, validi, err = ait.NextValidity(); err != nil { 5986 err = handleNoOp(err) 5987 break 5988 } 5989 if validi { 5990 a[i] = math32.Pow(a[i], b) 5991 } 5992 } 5993 return 5994 } 5995 5996 func PowIterVSF64(a []float64, b float64, ait Iterator) (err error) { 5997 var i int 5998 var validi bool 5999 for { 6000 if i, validi, err = ait.NextValidity(); err != nil { 6001 err = handleNoOp(err) 6002 break 6003 } 6004 if validi { 6005 a[i] = math.Pow(a[i], b) 6006 } 6007 } 6008 return 6009 } 6010 6011 func PowIterVSC64(a []complex64, b complex64, ait Iterator) (err error) { 6012 var i int 6013 var validi bool 6014 for { 6015 if i, validi, err = ait.NextValidity(); err != nil { 6016 err = handleNoOp(err) 6017 break 6018 } 6019 if validi { 6020 a[i] = complex64(cmplx.Pow(complex128(a[i]), complex128(b))) 6021 } 6022 } 6023 return 6024 } 6025 6026 func PowIterVSC128(a []complex128, b complex128, ait Iterator) (err error) { 6027 var i int 6028 var validi bool 6029 for { 6030 if i, validi, err = ait.NextValidity(); err != nil { 6031 err = handleNoOp(err) 6032 break 6033 } 6034 if validi { 6035 a[i] = cmplx.Pow(a[i], b) 6036 } 6037 } 6038 return 6039 } 6040 6041 func ModIterVSI(a []int, b int, ait Iterator) (err error) { 6042 var i int 6043 var validi bool 6044 for { 6045 if i, validi, err = ait.NextValidity(); err != nil { 6046 err = handleNoOp(err) 6047 break 6048 } 6049 if validi { 6050 a[i] = a[i] % b 6051 } 6052 } 6053 return 6054 } 6055 6056 func ModIterVSI8(a []int8, b int8, ait Iterator) (err error) { 6057 var i int 6058 var validi bool 6059 for { 6060 if i, validi, err = ait.NextValidity(); err != nil { 6061 err = handleNoOp(err) 6062 break 6063 } 6064 if validi { 6065 a[i] = a[i] % b 6066 } 6067 } 6068 return 6069 } 6070 6071 func ModIterVSI16(a []int16, b int16, ait Iterator) (err error) { 6072 var i int 6073 var validi bool 6074 for { 6075 if i, validi, err = ait.NextValidity(); err != nil { 6076 err = handleNoOp(err) 6077 break 6078 } 6079 if validi { 6080 a[i] = a[i] % b 6081 } 6082 } 6083 return 6084 } 6085 6086 func ModIterVSI32(a []int32, b int32, ait Iterator) (err error) { 6087 var i int 6088 var validi bool 6089 for { 6090 if i, validi, err = ait.NextValidity(); err != nil { 6091 err = handleNoOp(err) 6092 break 6093 } 6094 if validi { 6095 a[i] = a[i] % b 6096 } 6097 } 6098 return 6099 } 6100 6101 func ModIterVSI64(a []int64, b int64, ait Iterator) (err error) { 6102 var i int 6103 var validi bool 6104 for { 6105 if i, validi, err = ait.NextValidity(); err != nil { 6106 err = handleNoOp(err) 6107 break 6108 } 6109 if validi { 6110 a[i] = a[i] % b 6111 } 6112 } 6113 return 6114 } 6115 6116 func ModIterVSU(a []uint, b uint, ait Iterator) (err error) { 6117 var i int 6118 var validi bool 6119 for { 6120 if i, validi, err = ait.NextValidity(); err != nil { 6121 err = handleNoOp(err) 6122 break 6123 } 6124 if validi { 6125 a[i] = a[i] % b 6126 } 6127 } 6128 return 6129 } 6130 6131 func ModIterVSU8(a []uint8, b uint8, ait Iterator) (err error) { 6132 var i int 6133 var validi bool 6134 for { 6135 if i, validi, err = ait.NextValidity(); err != nil { 6136 err = handleNoOp(err) 6137 break 6138 } 6139 if validi { 6140 a[i] = a[i] % b 6141 } 6142 } 6143 return 6144 } 6145 6146 func ModIterVSU16(a []uint16, b uint16, ait Iterator) (err error) { 6147 var i int 6148 var validi bool 6149 for { 6150 if i, validi, err = ait.NextValidity(); err != nil { 6151 err = handleNoOp(err) 6152 break 6153 } 6154 if validi { 6155 a[i] = a[i] % b 6156 } 6157 } 6158 return 6159 } 6160 6161 func ModIterVSU32(a []uint32, b uint32, ait Iterator) (err error) { 6162 var i int 6163 var validi bool 6164 for { 6165 if i, validi, err = ait.NextValidity(); err != nil { 6166 err = handleNoOp(err) 6167 break 6168 } 6169 if validi { 6170 a[i] = a[i] % b 6171 } 6172 } 6173 return 6174 } 6175 6176 func ModIterVSU64(a []uint64, b uint64, ait Iterator) (err error) { 6177 var i int 6178 var validi bool 6179 for { 6180 if i, validi, err = ait.NextValidity(); err != nil { 6181 err = handleNoOp(err) 6182 break 6183 } 6184 if validi { 6185 a[i] = a[i] % b 6186 } 6187 } 6188 return 6189 } 6190 6191 func ModIterVSF32(a []float32, b float32, ait Iterator) (err error) { 6192 var i int 6193 var validi bool 6194 for { 6195 if i, validi, err = ait.NextValidity(); err != nil { 6196 err = handleNoOp(err) 6197 break 6198 } 6199 if validi { 6200 a[i] = math32.Mod(a[i], b) 6201 } 6202 } 6203 return 6204 } 6205 6206 func ModIterVSF64(a []float64, b float64, ait Iterator) (err error) { 6207 var i int 6208 var validi bool 6209 for { 6210 if i, validi, err = ait.NextValidity(); err != nil { 6211 err = handleNoOp(err) 6212 break 6213 } 6214 if validi { 6215 a[i] = math.Mod(a[i], b) 6216 } 6217 } 6218 return 6219 } 6220 6221 func AddIterIncrVSI(a []int, b int, incr []int, ait Iterator, iit Iterator) (err error) { 6222 var i, k int 6223 var validi, validk bool 6224 for { 6225 if i, validi, err = ait.NextValidity(); err != nil { 6226 err = handleNoOp(err) 6227 break 6228 } 6229 if k, validk, err = iit.NextValidity(); err != nil { 6230 err = handleNoOp(err) 6231 break 6232 } 6233 if validi && validk { 6234 incr[k] += a[i] + b 6235 } 6236 } 6237 return 6238 } 6239 6240 func AddIterIncrVSI8(a []int8, b int8, incr []int8, ait Iterator, iit Iterator) (err error) { 6241 var i, k int 6242 var validi, validk bool 6243 for { 6244 if i, validi, err = ait.NextValidity(); err != nil { 6245 err = handleNoOp(err) 6246 break 6247 } 6248 if k, validk, err = iit.NextValidity(); err != nil { 6249 err = handleNoOp(err) 6250 break 6251 } 6252 if validi && validk { 6253 incr[k] += a[i] + b 6254 } 6255 } 6256 return 6257 } 6258 6259 func AddIterIncrVSI16(a []int16, b int16, incr []int16, ait Iterator, iit Iterator) (err error) { 6260 var i, k int 6261 var validi, validk bool 6262 for { 6263 if i, validi, err = ait.NextValidity(); err != nil { 6264 err = handleNoOp(err) 6265 break 6266 } 6267 if k, validk, err = iit.NextValidity(); err != nil { 6268 err = handleNoOp(err) 6269 break 6270 } 6271 if validi && validk { 6272 incr[k] += a[i] + b 6273 } 6274 } 6275 return 6276 } 6277 6278 func AddIterIncrVSI32(a []int32, b int32, incr []int32, ait Iterator, iit Iterator) (err error) { 6279 var i, k int 6280 var validi, validk bool 6281 for { 6282 if i, validi, err = ait.NextValidity(); err != nil { 6283 err = handleNoOp(err) 6284 break 6285 } 6286 if k, validk, err = iit.NextValidity(); err != nil { 6287 err = handleNoOp(err) 6288 break 6289 } 6290 if validi && validk { 6291 incr[k] += a[i] + b 6292 } 6293 } 6294 return 6295 } 6296 6297 func AddIterIncrVSI64(a []int64, b int64, incr []int64, ait Iterator, iit Iterator) (err error) { 6298 var i, k int 6299 var validi, validk bool 6300 for { 6301 if i, validi, err = ait.NextValidity(); err != nil { 6302 err = handleNoOp(err) 6303 break 6304 } 6305 if k, validk, err = iit.NextValidity(); err != nil { 6306 err = handleNoOp(err) 6307 break 6308 } 6309 if validi && validk { 6310 incr[k] += a[i] + b 6311 } 6312 } 6313 return 6314 } 6315 6316 func AddIterIncrVSU(a []uint, b uint, incr []uint, ait Iterator, iit Iterator) (err error) { 6317 var i, k int 6318 var validi, validk bool 6319 for { 6320 if i, validi, err = ait.NextValidity(); err != nil { 6321 err = handleNoOp(err) 6322 break 6323 } 6324 if k, validk, err = iit.NextValidity(); err != nil { 6325 err = handleNoOp(err) 6326 break 6327 } 6328 if validi && validk { 6329 incr[k] += a[i] + b 6330 } 6331 } 6332 return 6333 } 6334 6335 func AddIterIncrVSU8(a []uint8, b uint8, incr []uint8, ait Iterator, iit Iterator) (err error) { 6336 var i, k int 6337 var validi, validk bool 6338 for { 6339 if i, validi, err = ait.NextValidity(); err != nil { 6340 err = handleNoOp(err) 6341 break 6342 } 6343 if k, validk, err = iit.NextValidity(); err != nil { 6344 err = handleNoOp(err) 6345 break 6346 } 6347 if validi && validk { 6348 incr[k] += a[i] + b 6349 } 6350 } 6351 return 6352 } 6353 6354 func AddIterIncrVSU16(a []uint16, b uint16, incr []uint16, ait Iterator, iit Iterator) (err error) { 6355 var i, k int 6356 var validi, validk bool 6357 for { 6358 if i, validi, err = ait.NextValidity(); err != nil { 6359 err = handleNoOp(err) 6360 break 6361 } 6362 if k, validk, err = iit.NextValidity(); err != nil { 6363 err = handleNoOp(err) 6364 break 6365 } 6366 if validi && validk { 6367 incr[k] += a[i] + b 6368 } 6369 } 6370 return 6371 } 6372 6373 func AddIterIncrVSU32(a []uint32, b uint32, incr []uint32, ait Iterator, iit Iterator) (err error) { 6374 var i, k int 6375 var validi, validk bool 6376 for { 6377 if i, validi, err = ait.NextValidity(); err != nil { 6378 err = handleNoOp(err) 6379 break 6380 } 6381 if k, validk, err = iit.NextValidity(); err != nil { 6382 err = handleNoOp(err) 6383 break 6384 } 6385 if validi && validk { 6386 incr[k] += a[i] + b 6387 } 6388 } 6389 return 6390 } 6391 6392 func AddIterIncrVSU64(a []uint64, b uint64, incr []uint64, ait Iterator, iit Iterator) (err error) { 6393 var i, k int 6394 var validi, validk bool 6395 for { 6396 if i, validi, err = ait.NextValidity(); err != nil { 6397 err = handleNoOp(err) 6398 break 6399 } 6400 if k, validk, err = iit.NextValidity(); err != nil { 6401 err = handleNoOp(err) 6402 break 6403 } 6404 if validi && validk { 6405 incr[k] += a[i] + b 6406 } 6407 } 6408 return 6409 } 6410 6411 func AddIterIncrVSF32(a []float32, b float32, incr []float32, ait Iterator, iit Iterator) (err error) { 6412 var i, k int 6413 var validi, validk bool 6414 for { 6415 if i, validi, err = ait.NextValidity(); err != nil { 6416 err = handleNoOp(err) 6417 break 6418 } 6419 if k, validk, err = iit.NextValidity(); err != nil { 6420 err = handleNoOp(err) 6421 break 6422 } 6423 if validi && validk { 6424 incr[k] += a[i] + b 6425 } 6426 } 6427 return 6428 } 6429 6430 func AddIterIncrVSF64(a []float64, b float64, incr []float64, ait Iterator, iit Iterator) (err error) { 6431 var i, k int 6432 var validi, validk bool 6433 for { 6434 if i, validi, err = ait.NextValidity(); err != nil { 6435 err = handleNoOp(err) 6436 break 6437 } 6438 if k, validk, err = iit.NextValidity(); err != nil { 6439 err = handleNoOp(err) 6440 break 6441 } 6442 if validi && validk { 6443 incr[k] += a[i] + b 6444 } 6445 } 6446 return 6447 } 6448 6449 func AddIterIncrVSC64(a []complex64, b complex64, incr []complex64, ait Iterator, iit Iterator) (err error) { 6450 var i, k int 6451 var validi, validk bool 6452 for { 6453 if i, validi, err = ait.NextValidity(); err != nil { 6454 err = handleNoOp(err) 6455 break 6456 } 6457 if k, validk, err = iit.NextValidity(); err != nil { 6458 err = handleNoOp(err) 6459 break 6460 } 6461 if validi && validk { 6462 incr[k] += a[i] + b 6463 } 6464 } 6465 return 6466 } 6467 6468 func AddIterIncrVSC128(a []complex128, b complex128, incr []complex128, ait Iterator, iit Iterator) (err error) { 6469 var i, k int 6470 var validi, validk bool 6471 for { 6472 if i, validi, err = ait.NextValidity(); err != nil { 6473 err = handleNoOp(err) 6474 break 6475 } 6476 if k, validk, err = iit.NextValidity(); err != nil { 6477 err = handleNoOp(err) 6478 break 6479 } 6480 if validi && validk { 6481 incr[k] += a[i] + b 6482 } 6483 } 6484 return 6485 } 6486 6487 func AddIterIncrVSStr(a []string, b string, incr []string, ait Iterator, iit Iterator) (err error) { 6488 var i, k int 6489 var validi, validk bool 6490 for { 6491 if i, validi, err = ait.NextValidity(); err != nil { 6492 err = handleNoOp(err) 6493 break 6494 } 6495 if k, validk, err = iit.NextValidity(); err != nil { 6496 err = handleNoOp(err) 6497 break 6498 } 6499 if validi && validk { 6500 incr[k] += a[i] + b 6501 } 6502 } 6503 return 6504 } 6505 6506 func SubIterIncrVSI(a []int, b int, incr []int, ait Iterator, iit Iterator) (err error) { 6507 var i, k int 6508 var validi, validk bool 6509 for { 6510 if i, validi, err = ait.NextValidity(); err != nil { 6511 err = handleNoOp(err) 6512 break 6513 } 6514 if k, validk, err = iit.NextValidity(); err != nil { 6515 err = handleNoOp(err) 6516 break 6517 } 6518 if validi && validk { 6519 incr[k] += a[i] - b 6520 } 6521 } 6522 return 6523 } 6524 6525 func SubIterIncrVSI8(a []int8, b int8, incr []int8, ait Iterator, iit Iterator) (err error) { 6526 var i, k int 6527 var validi, validk bool 6528 for { 6529 if i, validi, err = ait.NextValidity(); err != nil { 6530 err = handleNoOp(err) 6531 break 6532 } 6533 if k, validk, err = iit.NextValidity(); err != nil { 6534 err = handleNoOp(err) 6535 break 6536 } 6537 if validi && validk { 6538 incr[k] += a[i] - b 6539 } 6540 } 6541 return 6542 } 6543 6544 func SubIterIncrVSI16(a []int16, b int16, incr []int16, ait Iterator, iit Iterator) (err error) { 6545 var i, k int 6546 var validi, validk bool 6547 for { 6548 if i, validi, err = ait.NextValidity(); err != nil { 6549 err = handleNoOp(err) 6550 break 6551 } 6552 if k, validk, err = iit.NextValidity(); err != nil { 6553 err = handleNoOp(err) 6554 break 6555 } 6556 if validi && validk { 6557 incr[k] += a[i] - b 6558 } 6559 } 6560 return 6561 } 6562 6563 func SubIterIncrVSI32(a []int32, b int32, incr []int32, ait Iterator, iit Iterator) (err error) { 6564 var i, k int 6565 var validi, validk bool 6566 for { 6567 if i, validi, err = ait.NextValidity(); err != nil { 6568 err = handleNoOp(err) 6569 break 6570 } 6571 if k, validk, err = iit.NextValidity(); err != nil { 6572 err = handleNoOp(err) 6573 break 6574 } 6575 if validi && validk { 6576 incr[k] += a[i] - b 6577 } 6578 } 6579 return 6580 } 6581 6582 func SubIterIncrVSI64(a []int64, b int64, incr []int64, ait Iterator, iit Iterator) (err error) { 6583 var i, k int 6584 var validi, validk bool 6585 for { 6586 if i, validi, err = ait.NextValidity(); err != nil { 6587 err = handleNoOp(err) 6588 break 6589 } 6590 if k, validk, err = iit.NextValidity(); err != nil { 6591 err = handleNoOp(err) 6592 break 6593 } 6594 if validi && validk { 6595 incr[k] += a[i] - b 6596 } 6597 } 6598 return 6599 } 6600 6601 func SubIterIncrVSU(a []uint, b uint, incr []uint, ait Iterator, iit Iterator) (err error) { 6602 var i, k int 6603 var validi, validk bool 6604 for { 6605 if i, validi, err = ait.NextValidity(); err != nil { 6606 err = handleNoOp(err) 6607 break 6608 } 6609 if k, validk, err = iit.NextValidity(); err != nil { 6610 err = handleNoOp(err) 6611 break 6612 } 6613 if validi && validk { 6614 incr[k] += a[i] - b 6615 } 6616 } 6617 return 6618 } 6619 6620 func SubIterIncrVSU8(a []uint8, b uint8, incr []uint8, ait Iterator, iit Iterator) (err error) { 6621 var i, k int 6622 var validi, validk bool 6623 for { 6624 if i, validi, err = ait.NextValidity(); err != nil { 6625 err = handleNoOp(err) 6626 break 6627 } 6628 if k, validk, err = iit.NextValidity(); err != nil { 6629 err = handleNoOp(err) 6630 break 6631 } 6632 if validi && validk { 6633 incr[k] += a[i] - b 6634 } 6635 } 6636 return 6637 } 6638 6639 func SubIterIncrVSU16(a []uint16, b uint16, incr []uint16, ait Iterator, iit Iterator) (err error) { 6640 var i, k int 6641 var validi, validk bool 6642 for { 6643 if i, validi, err = ait.NextValidity(); err != nil { 6644 err = handleNoOp(err) 6645 break 6646 } 6647 if k, validk, err = iit.NextValidity(); err != nil { 6648 err = handleNoOp(err) 6649 break 6650 } 6651 if validi && validk { 6652 incr[k] += a[i] - b 6653 } 6654 } 6655 return 6656 } 6657 6658 func SubIterIncrVSU32(a []uint32, b uint32, incr []uint32, ait Iterator, iit Iterator) (err error) { 6659 var i, k int 6660 var validi, validk bool 6661 for { 6662 if i, validi, err = ait.NextValidity(); err != nil { 6663 err = handleNoOp(err) 6664 break 6665 } 6666 if k, validk, err = iit.NextValidity(); err != nil { 6667 err = handleNoOp(err) 6668 break 6669 } 6670 if validi && validk { 6671 incr[k] += a[i] - b 6672 } 6673 } 6674 return 6675 } 6676 6677 func SubIterIncrVSU64(a []uint64, b uint64, incr []uint64, ait Iterator, iit Iterator) (err error) { 6678 var i, k int 6679 var validi, validk bool 6680 for { 6681 if i, validi, err = ait.NextValidity(); err != nil { 6682 err = handleNoOp(err) 6683 break 6684 } 6685 if k, validk, err = iit.NextValidity(); err != nil { 6686 err = handleNoOp(err) 6687 break 6688 } 6689 if validi && validk { 6690 incr[k] += a[i] - b 6691 } 6692 } 6693 return 6694 } 6695 6696 func SubIterIncrVSF32(a []float32, b float32, incr []float32, ait Iterator, iit Iterator) (err error) { 6697 var i, k int 6698 var validi, validk bool 6699 for { 6700 if i, validi, err = ait.NextValidity(); err != nil { 6701 err = handleNoOp(err) 6702 break 6703 } 6704 if k, validk, err = iit.NextValidity(); err != nil { 6705 err = handleNoOp(err) 6706 break 6707 } 6708 if validi && validk { 6709 incr[k] += a[i] - b 6710 } 6711 } 6712 return 6713 } 6714 6715 func SubIterIncrVSF64(a []float64, b float64, incr []float64, ait Iterator, iit Iterator) (err error) { 6716 var i, k int 6717 var validi, validk bool 6718 for { 6719 if i, validi, err = ait.NextValidity(); err != nil { 6720 err = handleNoOp(err) 6721 break 6722 } 6723 if k, validk, err = iit.NextValidity(); err != nil { 6724 err = handleNoOp(err) 6725 break 6726 } 6727 if validi && validk { 6728 incr[k] += a[i] - b 6729 } 6730 } 6731 return 6732 } 6733 6734 func SubIterIncrVSC64(a []complex64, b complex64, incr []complex64, ait Iterator, iit Iterator) (err error) { 6735 var i, k int 6736 var validi, validk bool 6737 for { 6738 if i, validi, err = ait.NextValidity(); err != nil { 6739 err = handleNoOp(err) 6740 break 6741 } 6742 if k, validk, err = iit.NextValidity(); err != nil { 6743 err = handleNoOp(err) 6744 break 6745 } 6746 if validi && validk { 6747 incr[k] += a[i] - b 6748 } 6749 } 6750 return 6751 } 6752 6753 func SubIterIncrVSC128(a []complex128, b complex128, incr []complex128, ait Iterator, iit Iterator) (err error) { 6754 var i, k int 6755 var validi, validk bool 6756 for { 6757 if i, validi, err = ait.NextValidity(); err != nil { 6758 err = handleNoOp(err) 6759 break 6760 } 6761 if k, validk, err = iit.NextValidity(); err != nil { 6762 err = handleNoOp(err) 6763 break 6764 } 6765 if validi && validk { 6766 incr[k] += a[i] - b 6767 } 6768 } 6769 return 6770 } 6771 6772 func MulIterIncrVSI(a []int, b int, incr []int, ait Iterator, iit Iterator) (err error) { 6773 var i, k int 6774 var validi, validk bool 6775 for { 6776 if i, validi, err = ait.NextValidity(); err != nil { 6777 err = handleNoOp(err) 6778 break 6779 } 6780 if k, validk, err = iit.NextValidity(); err != nil { 6781 err = handleNoOp(err) 6782 break 6783 } 6784 if validi && validk { 6785 incr[k] += a[i] * b 6786 } 6787 } 6788 return 6789 } 6790 6791 func MulIterIncrVSI8(a []int8, b int8, incr []int8, ait Iterator, iit Iterator) (err error) { 6792 var i, k int 6793 var validi, validk bool 6794 for { 6795 if i, validi, err = ait.NextValidity(); err != nil { 6796 err = handleNoOp(err) 6797 break 6798 } 6799 if k, validk, err = iit.NextValidity(); err != nil { 6800 err = handleNoOp(err) 6801 break 6802 } 6803 if validi && validk { 6804 incr[k] += a[i] * b 6805 } 6806 } 6807 return 6808 } 6809 6810 func MulIterIncrVSI16(a []int16, b int16, incr []int16, ait Iterator, iit Iterator) (err error) { 6811 var i, k int 6812 var validi, validk bool 6813 for { 6814 if i, validi, err = ait.NextValidity(); err != nil { 6815 err = handleNoOp(err) 6816 break 6817 } 6818 if k, validk, err = iit.NextValidity(); err != nil { 6819 err = handleNoOp(err) 6820 break 6821 } 6822 if validi && validk { 6823 incr[k] += a[i] * b 6824 } 6825 } 6826 return 6827 } 6828 6829 func MulIterIncrVSI32(a []int32, b int32, incr []int32, ait Iterator, iit Iterator) (err error) { 6830 var i, k int 6831 var validi, validk bool 6832 for { 6833 if i, validi, err = ait.NextValidity(); err != nil { 6834 err = handleNoOp(err) 6835 break 6836 } 6837 if k, validk, err = iit.NextValidity(); err != nil { 6838 err = handleNoOp(err) 6839 break 6840 } 6841 if validi && validk { 6842 incr[k] += a[i] * b 6843 } 6844 } 6845 return 6846 } 6847 6848 func MulIterIncrVSI64(a []int64, b int64, incr []int64, ait Iterator, iit Iterator) (err error) { 6849 var i, k int 6850 var validi, validk bool 6851 for { 6852 if i, validi, err = ait.NextValidity(); err != nil { 6853 err = handleNoOp(err) 6854 break 6855 } 6856 if k, validk, err = iit.NextValidity(); err != nil { 6857 err = handleNoOp(err) 6858 break 6859 } 6860 if validi && validk { 6861 incr[k] += a[i] * b 6862 } 6863 } 6864 return 6865 } 6866 6867 func MulIterIncrVSU(a []uint, b uint, incr []uint, ait Iterator, iit Iterator) (err error) { 6868 var i, k int 6869 var validi, validk bool 6870 for { 6871 if i, validi, err = ait.NextValidity(); err != nil { 6872 err = handleNoOp(err) 6873 break 6874 } 6875 if k, validk, err = iit.NextValidity(); err != nil { 6876 err = handleNoOp(err) 6877 break 6878 } 6879 if validi && validk { 6880 incr[k] += a[i] * b 6881 } 6882 } 6883 return 6884 } 6885 6886 func MulIterIncrVSU8(a []uint8, b uint8, incr []uint8, ait Iterator, iit Iterator) (err error) { 6887 var i, k int 6888 var validi, validk bool 6889 for { 6890 if i, validi, err = ait.NextValidity(); err != nil { 6891 err = handleNoOp(err) 6892 break 6893 } 6894 if k, validk, err = iit.NextValidity(); err != nil { 6895 err = handleNoOp(err) 6896 break 6897 } 6898 if validi && validk { 6899 incr[k] += a[i] * b 6900 } 6901 } 6902 return 6903 } 6904 6905 func MulIterIncrVSU16(a []uint16, b uint16, incr []uint16, ait Iterator, iit Iterator) (err error) { 6906 var i, k int 6907 var validi, validk bool 6908 for { 6909 if i, validi, err = ait.NextValidity(); err != nil { 6910 err = handleNoOp(err) 6911 break 6912 } 6913 if k, validk, err = iit.NextValidity(); err != nil { 6914 err = handleNoOp(err) 6915 break 6916 } 6917 if validi && validk { 6918 incr[k] += a[i] * b 6919 } 6920 } 6921 return 6922 } 6923 6924 func MulIterIncrVSU32(a []uint32, b uint32, incr []uint32, ait Iterator, iit Iterator) (err error) { 6925 var i, k int 6926 var validi, validk bool 6927 for { 6928 if i, validi, err = ait.NextValidity(); err != nil { 6929 err = handleNoOp(err) 6930 break 6931 } 6932 if k, validk, err = iit.NextValidity(); err != nil { 6933 err = handleNoOp(err) 6934 break 6935 } 6936 if validi && validk { 6937 incr[k] += a[i] * b 6938 } 6939 } 6940 return 6941 } 6942 6943 func MulIterIncrVSU64(a []uint64, b uint64, incr []uint64, ait Iterator, iit Iterator) (err error) { 6944 var i, k int 6945 var validi, validk bool 6946 for { 6947 if i, validi, err = ait.NextValidity(); err != nil { 6948 err = handleNoOp(err) 6949 break 6950 } 6951 if k, validk, err = iit.NextValidity(); err != nil { 6952 err = handleNoOp(err) 6953 break 6954 } 6955 if validi && validk { 6956 incr[k] += a[i] * b 6957 } 6958 } 6959 return 6960 } 6961 6962 func MulIterIncrVSF32(a []float32, b float32, incr []float32, ait Iterator, iit Iterator) (err error) { 6963 var i, k int 6964 var validi, validk bool 6965 for { 6966 if i, validi, err = ait.NextValidity(); err != nil { 6967 err = handleNoOp(err) 6968 break 6969 } 6970 if k, validk, err = iit.NextValidity(); err != nil { 6971 err = handleNoOp(err) 6972 break 6973 } 6974 if validi && validk { 6975 incr[k] += a[i] * b 6976 } 6977 } 6978 return 6979 } 6980 6981 func MulIterIncrVSF64(a []float64, b float64, incr []float64, ait Iterator, iit Iterator) (err error) { 6982 var i, k int 6983 var validi, validk bool 6984 for { 6985 if i, validi, err = ait.NextValidity(); err != nil { 6986 err = handleNoOp(err) 6987 break 6988 } 6989 if k, validk, err = iit.NextValidity(); err != nil { 6990 err = handleNoOp(err) 6991 break 6992 } 6993 if validi && validk { 6994 incr[k] += a[i] * b 6995 } 6996 } 6997 return 6998 } 6999 7000 func MulIterIncrVSC64(a []complex64, b complex64, incr []complex64, ait Iterator, iit Iterator) (err error) { 7001 var i, k int 7002 var validi, validk bool 7003 for { 7004 if i, validi, err = ait.NextValidity(); err != nil { 7005 err = handleNoOp(err) 7006 break 7007 } 7008 if k, validk, err = iit.NextValidity(); err != nil { 7009 err = handleNoOp(err) 7010 break 7011 } 7012 if validi && validk { 7013 incr[k] += a[i] * b 7014 } 7015 } 7016 return 7017 } 7018 7019 func MulIterIncrVSC128(a []complex128, b complex128, incr []complex128, ait Iterator, iit Iterator) (err error) { 7020 var i, k int 7021 var validi, validk bool 7022 for { 7023 if i, validi, err = ait.NextValidity(); err != nil { 7024 err = handleNoOp(err) 7025 break 7026 } 7027 if k, validk, err = iit.NextValidity(); err != nil { 7028 err = handleNoOp(err) 7029 break 7030 } 7031 if validi && validk { 7032 incr[k] += a[i] * b 7033 } 7034 } 7035 return 7036 } 7037 7038 func DivIterIncrVSI(a []int, b int, incr []int, ait Iterator, iit Iterator) (err error) { 7039 var errs errorIndices 7040 var i, k int 7041 var validi, validk bool 7042 for { 7043 if i, validi, err = ait.NextValidity(); err != nil { 7044 err = handleNoOp(err) 7045 break 7046 } 7047 if k, validk, err = iit.NextValidity(); err != nil { 7048 err = handleNoOp(err) 7049 break 7050 } 7051 if validi && validk { 7052 if b == 0 { 7053 errs = append(errs, i) 7054 incr[i] = 0 7055 continue 7056 } 7057 incr[k] += a[i] / b 7058 } 7059 } 7060 if err != nil { 7061 return 7062 } 7063 if len(errs) > 0 { 7064 return errs 7065 } 7066 return nil 7067 } 7068 7069 func DivIterIncrVSI8(a []int8, b int8, incr []int8, ait Iterator, iit Iterator) (err error) { 7070 var errs errorIndices 7071 var i, k int 7072 var validi, validk bool 7073 for { 7074 if i, validi, err = ait.NextValidity(); err != nil { 7075 err = handleNoOp(err) 7076 break 7077 } 7078 if k, validk, err = iit.NextValidity(); err != nil { 7079 err = handleNoOp(err) 7080 break 7081 } 7082 if validi && validk { 7083 if b == 0 { 7084 errs = append(errs, i) 7085 incr[i] = 0 7086 continue 7087 } 7088 incr[k] += a[i] / b 7089 } 7090 } 7091 if err != nil { 7092 return 7093 } 7094 if len(errs) > 0 { 7095 return errs 7096 } 7097 return nil 7098 } 7099 7100 func DivIterIncrVSI16(a []int16, b int16, incr []int16, ait Iterator, iit Iterator) (err error) { 7101 var errs errorIndices 7102 var i, k int 7103 var validi, validk bool 7104 for { 7105 if i, validi, err = ait.NextValidity(); err != nil { 7106 err = handleNoOp(err) 7107 break 7108 } 7109 if k, validk, err = iit.NextValidity(); err != nil { 7110 err = handleNoOp(err) 7111 break 7112 } 7113 if validi && validk { 7114 if b == 0 { 7115 errs = append(errs, i) 7116 incr[i] = 0 7117 continue 7118 } 7119 incr[k] += a[i] / b 7120 } 7121 } 7122 if err != nil { 7123 return 7124 } 7125 if len(errs) > 0 { 7126 return errs 7127 } 7128 return nil 7129 } 7130 7131 func DivIterIncrVSI32(a []int32, b int32, incr []int32, ait Iterator, iit Iterator) (err error) { 7132 var errs errorIndices 7133 var i, k int 7134 var validi, validk bool 7135 for { 7136 if i, validi, err = ait.NextValidity(); err != nil { 7137 err = handleNoOp(err) 7138 break 7139 } 7140 if k, validk, err = iit.NextValidity(); err != nil { 7141 err = handleNoOp(err) 7142 break 7143 } 7144 if validi && validk { 7145 if b == 0 { 7146 errs = append(errs, i) 7147 incr[i] = 0 7148 continue 7149 } 7150 incr[k] += a[i] / b 7151 } 7152 } 7153 if err != nil { 7154 return 7155 } 7156 if len(errs) > 0 { 7157 return errs 7158 } 7159 return nil 7160 } 7161 7162 func DivIterIncrVSI64(a []int64, b int64, incr []int64, ait Iterator, iit Iterator) (err error) { 7163 var errs errorIndices 7164 var i, k int 7165 var validi, validk bool 7166 for { 7167 if i, validi, err = ait.NextValidity(); err != nil { 7168 err = handleNoOp(err) 7169 break 7170 } 7171 if k, validk, err = iit.NextValidity(); err != nil { 7172 err = handleNoOp(err) 7173 break 7174 } 7175 if validi && validk { 7176 if b == 0 { 7177 errs = append(errs, i) 7178 incr[i] = 0 7179 continue 7180 } 7181 incr[k] += a[i] / b 7182 } 7183 } 7184 if err != nil { 7185 return 7186 } 7187 if len(errs) > 0 { 7188 return errs 7189 } 7190 return nil 7191 } 7192 7193 func DivIterIncrVSU(a []uint, b uint, incr []uint, ait Iterator, iit Iterator) (err error) { 7194 var errs errorIndices 7195 var i, k int 7196 var validi, validk bool 7197 for { 7198 if i, validi, err = ait.NextValidity(); err != nil { 7199 err = handleNoOp(err) 7200 break 7201 } 7202 if k, validk, err = iit.NextValidity(); err != nil { 7203 err = handleNoOp(err) 7204 break 7205 } 7206 if validi && validk { 7207 if b == 0 { 7208 errs = append(errs, i) 7209 incr[i] = 0 7210 continue 7211 } 7212 incr[k] += a[i] / b 7213 } 7214 } 7215 if err != nil { 7216 return 7217 } 7218 if len(errs) > 0 { 7219 return errs 7220 } 7221 return nil 7222 } 7223 7224 func DivIterIncrVSU8(a []uint8, b uint8, incr []uint8, ait Iterator, iit Iterator) (err error) { 7225 var errs errorIndices 7226 var i, k int 7227 var validi, validk bool 7228 for { 7229 if i, validi, err = ait.NextValidity(); err != nil { 7230 err = handleNoOp(err) 7231 break 7232 } 7233 if k, validk, err = iit.NextValidity(); err != nil { 7234 err = handleNoOp(err) 7235 break 7236 } 7237 if validi && validk { 7238 if b == 0 { 7239 errs = append(errs, i) 7240 incr[i] = 0 7241 continue 7242 } 7243 incr[k] += a[i] / b 7244 } 7245 } 7246 if err != nil { 7247 return 7248 } 7249 if len(errs) > 0 { 7250 return errs 7251 } 7252 return nil 7253 } 7254 7255 func DivIterIncrVSU16(a []uint16, b uint16, incr []uint16, ait Iterator, iit Iterator) (err error) { 7256 var errs errorIndices 7257 var i, k int 7258 var validi, validk bool 7259 for { 7260 if i, validi, err = ait.NextValidity(); err != nil { 7261 err = handleNoOp(err) 7262 break 7263 } 7264 if k, validk, err = iit.NextValidity(); err != nil { 7265 err = handleNoOp(err) 7266 break 7267 } 7268 if validi && validk { 7269 if b == 0 { 7270 errs = append(errs, i) 7271 incr[i] = 0 7272 continue 7273 } 7274 incr[k] += a[i] / b 7275 } 7276 } 7277 if err != nil { 7278 return 7279 } 7280 if len(errs) > 0 { 7281 return errs 7282 } 7283 return nil 7284 } 7285 7286 func DivIterIncrVSU32(a []uint32, b uint32, incr []uint32, ait Iterator, iit Iterator) (err error) { 7287 var errs errorIndices 7288 var i, k int 7289 var validi, validk bool 7290 for { 7291 if i, validi, err = ait.NextValidity(); err != nil { 7292 err = handleNoOp(err) 7293 break 7294 } 7295 if k, validk, err = iit.NextValidity(); err != nil { 7296 err = handleNoOp(err) 7297 break 7298 } 7299 if validi && validk { 7300 if b == 0 { 7301 errs = append(errs, i) 7302 incr[i] = 0 7303 continue 7304 } 7305 incr[k] += a[i] / b 7306 } 7307 } 7308 if err != nil { 7309 return 7310 } 7311 if len(errs) > 0 { 7312 return errs 7313 } 7314 return nil 7315 } 7316 7317 func DivIterIncrVSU64(a []uint64, b uint64, incr []uint64, ait Iterator, iit Iterator) (err error) { 7318 var errs errorIndices 7319 var i, k int 7320 var validi, validk bool 7321 for { 7322 if i, validi, err = ait.NextValidity(); err != nil { 7323 err = handleNoOp(err) 7324 break 7325 } 7326 if k, validk, err = iit.NextValidity(); err != nil { 7327 err = handleNoOp(err) 7328 break 7329 } 7330 if validi && validk { 7331 if b == 0 { 7332 errs = append(errs, i) 7333 incr[i] = 0 7334 continue 7335 } 7336 incr[k] += a[i] / b 7337 } 7338 } 7339 if err != nil { 7340 return 7341 } 7342 if len(errs) > 0 { 7343 return errs 7344 } 7345 return nil 7346 } 7347 7348 func DivIterIncrVSF32(a []float32, b float32, incr []float32, ait Iterator, iit Iterator) (err error) { 7349 var i, k int 7350 var validi, validk bool 7351 for { 7352 if i, validi, err = ait.NextValidity(); err != nil { 7353 err = handleNoOp(err) 7354 break 7355 } 7356 if k, validk, err = iit.NextValidity(); err != nil { 7357 err = handleNoOp(err) 7358 break 7359 } 7360 if validi && validk { 7361 incr[k] += a[i] / b 7362 } 7363 } 7364 return 7365 } 7366 7367 func DivIterIncrVSF64(a []float64, b float64, incr []float64, ait Iterator, iit Iterator) (err error) { 7368 var i, k int 7369 var validi, validk bool 7370 for { 7371 if i, validi, err = ait.NextValidity(); err != nil { 7372 err = handleNoOp(err) 7373 break 7374 } 7375 if k, validk, err = iit.NextValidity(); err != nil { 7376 err = handleNoOp(err) 7377 break 7378 } 7379 if validi && validk { 7380 incr[k] += a[i] / b 7381 } 7382 } 7383 return 7384 } 7385 7386 func DivIterIncrVSC64(a []complex64, b complex64, incr []complex64, ait Iterator, iit Iterator) (err error) { 7387 var i, k int 7388 var validi, validk bool 7389 for { 7390 if i, validi, err = ait.NextValidity(); err != nil { 7391 err = handleNoOp(err) 7392 break 7393 } 7394 if k, validk, err = iit.NextValidity(); err != nil { 7395 err = handleNoOp(err) 7396 break 7397 } 7398 if validi && validk { 7399 incr[k] += a[i] / b 7400 } 7401 } 7402 return 7403 } 7404 7405 func DivIterIncrVSC128(a []complex128, b complex128, incr []complex128, ait Iterator, iit Iterator) (err error) { 7406 var i, k int 7407 var validi, validk bool 7408 for { 7409 if i, validi, err = ait.NextValidity(); err != nil { 7410 err = handleNoOp(err) 7411 break 7412 } 7413 if k, validk, err = iit.NextValidity(); err != nil { 7414 err = handleNoOp(err) 7415 break 7416 } 7417 if validi && validk { 7418 incr[k] += a[i] / b 7419 } 7420 } 7421 return 7422 } 7423 7424 func PowIterIncrVSF32(a []float32, b float32, incr []float32, ait Iterator, iit Iterator) (err error) { 7425 var i, k int 7426 var validi, validk bool 7427 for { 7428 if i, validi, err = ait.NextValidity(); err != nil { 7429 err = handleNoOp(err) 7430 break 7431 } 7432 if k, validk, err = iit.NextValidity(); err != nil { 7433 err = handleNoOp(err) 7434 break 7435 } 7436 if validi && validk { 7437 incr[k] += math32.Pow(a[i], b) 7438 } 7439 } 7440 return 7441 } 7442 7443 func PowIterIncrVSF64(a []float64, b float64, incr []float64, ait Iterator, iit Iterator) (err error) { 7444 var i, k int 7445 var validi, validk bool 7446 for { 7447 if i, validi, err = ait.NextValidity(); err != nil { 7448 err = handleNoOp(err) 7449 break 7450 } 7451 if k, validk, err = iit.NextValidity(); err != nil { 7452 err = handleNoOp(err) 7453 break 7454 } 7455 if validi && validk { 7456 incr[k] += math.Pow(a[i], b) 7457 } 7458 } 7459 return 7460 } 7461 7462 func PowIterIncrVSC64(a []complex64, b complex64, incr []complex64, ait Iterator, iit Iterator) (err error) { 7463 var i, k int 7464 var validi, validk bool 7465 for { 7466 if i, validi, err = ait.NextValidity(); err != nil { 7467 err = handleNoOp(err) 7468 break 7469 } 7470 if k, validk, err = iit.NextValidity(); err != nil { 7471 err = handleNoOp(err) 7472 break 7473 } 7474 if validi && validk { 7475 incr[k] += complex64(cmplx.Pow(complex128(a[i]), complex128(b))) 7476 } 7477 } 7478 return 7479 } 7480 7481 func PowIterIncrVSC128(a []complex128, b complex128, incr []complex128, ait Iterator, iit Iterator) (err error) { 7482 var i, k int 7483 var validi, validk bool 7484 for { 7485 if i, validi, err = ait.NextValidity(); err != nil { 7486 err = handleNoOp(err) 7487 break 7488 } 7489 if k, validk, err = iit.NextValidity(); err != nil { 7490 err = handleNoOp(err) 7491 break 7492 } 7493 if validi && validk { 7494 incr[k] += cmplx.Pow(a[i], b) 7495 } 7496 } 7497 return 7498 } 7499 7500 func ModIterIncrVSI(a []int, b int, incr []int, ait Iterator, iit Iterator) (err error) { 7501 var i, k int 7502 var validi, validk bool 7503 for { 7504 if i, validi, err = ait.NextValidity(); err != nil { 7505 err = handleNoOp(err) 7506 break 7507 } 7508 if k, validk, err = iit.NextValidity(); err != nil { 7509 err = handleNoOp(err) 7510 break 7511 } 7512 if validi && validk { 7513 incr[k] += a[i] % b 7514 } 7515 } 7516 return 7517 } 7518 7519 func ModIterIncrVSI8(a []int8, b int8, incr []int8, ait Iterator, iit Iterator) (err error) { 7520 var i, k int 7521 var validi, validk bool 7522 for { 7523 if i, validi, err = ait.NextValidity(); err != nil { 7524 err = handleNoOp(err) 7525 break 7526 } 7527 if k, validk, err = iit.NextValidity(); err != nil { 7528 err = handleNoOp(err) 7529 break 7530 } 7531 if validi && validk { 7532 incr[k] += a[i] % b 7533 } 7534 } 7535 return 7536 } 7537 7538 func ModIterIncrVSI16(a []int16, b int16, incr []int16, ait Iterator, iit Iterator) (err error) { 7539 var i, k int 7540 var validi, validk bool 7541 for { 7542 if i, validi, err = ait.NextValidity(); err != nil { 7543 err = handleNoOp(err) 7544 break 7545 } 7546 if k, validk, err = iit.NextValidity(); err != nil { 7547 err = handleNoOp(err) 7548 break 7549 } 7550 if validi && validk { 7551 incr[k] += a[i] % b 7552 } 7553 } 7554 return 7555 } 7556 7557 func ModIterIncrVSI32(a []int32, b int32, incr []int32, ait Iterator, iit Iterator) (err error) { 7558 var i, k int 7559 var validi, validk bool 7560 for { 7561 if i, validi, err = ait.NextValidity(); err != nil { 7562 err = handleNoOp(err) 7563 break 7564 } 7565 if k, validk, err = iit.NextValidity(); err != nil { 7566 err = handleNoOp(err) 7567 break 7568 } 7569 if validi && validk { 7570 incr[k] += a[i] % b 7571 } 7572 } 7573 return 7574 } 7575 7576 func ModIterIncrVSI64(a []int64, b int64, incr []int64, ait Iterator, iit Iterator) (err error) { 7577 var i, k int 7578 var validi, validk bool 7579 for { 7580 if i, validi, err = ait.NextValidity(); err != nil { 7581 err = handleNoOp(err) 7582 break 7583 } 7584 if k, validk, err = iit.NextValidity(); err != nil { 7585 err = handleNoOp(err) 7586 break 7587 } 7588 if validi && validk { 7589 incr[k] += a[i] % b 7590 } 7591 } 7592 return 7593 } 7594 7595 func ModIterIncrVSU(a []uint, b uint, incr []uint, ait Iterator, iit Iterator) (err error) { 7596 var i, k int 7597 var validi, validk bool 7598 for { 7599 if i, validi, err = ait.NextValidity(); err != nil { 7600 err = handleNoOp(err) 7601 break 7602 } 7603 if k, validk, err = iit.NextValidity(); err != nil { 7604 err = handleNoOp(err) 7605 break 7606 } 7607 if validi && validk { 7608 incr[k] += a[i] % b 7609 } 7610 } 7611 return 7612 } 7613 7614 func ModIterIncrVSU8(a []uint8, b uint8, incr []uint8, ait Iterator, iit Iterator) (err error) { 7615 var i, k int 7616 var validi, validk bool 7617 for { 7618 if i, validi, err = ait.NextValidity(); err != nil { 7619 err = handleNoOp(err) 7620 break 7621 } 7622 if k, validk, err = iit.NextValidity(); err != nil { 7623 err = handleNoOp(err) 7624 break 7625 } 7626 if validi && validk { 7627 incr[k] += a[i] % b 7628 } 7629 } 7630 return 7631 } 7632 7633 func ModIterIncrVSU16(a []uint16, b uint16, incr []uint16, ait Iterator, iit Iterator) (err error) { 7634 var i, k int 7635 var validi, validk bool 7636 for { 7637 if i, validi, err = ait.NextValidity(); err != nil { 7638 err = handleNoOp(err) 7639 break 7640 } 7641 if k, validk, err = iit.NextValidity(); err != nil { 7642 err = handleNoOp(err) 7643 break 7644 } 7645 if validi && validk { 7646 incr[k] += a[i] % b 7647 } 7648 } 7649 return 7650 } 7651 7652 func ModIterIncrVSU32(a []uint32, b uint32, incr []uint32, ait Iterator, iit Iterator) (err error) { 7653 var i, k int 7654 var validi, validk bool 7655 for { 7656 if i, validi, err = ait.NextValidity(); err != nil { 7657 err = handleNoOp(err) 7658 break 7659 } 7660 if k, validk, err = iit.NextValidity(); err != nil { 7661 err = handleNoOp(err) 7662 break 7663 } 7664 if validi && validk { 7665 incr[k] += a[i] % b 7666 } 7667 } 7668 return 7669 } 7670 7671 func ModIterIncrVSU64(a []uint64, b uint64, incr []uint64, ait Iterator, iit Iterator) (err error) { 7672 var i, k int 7673 var validi, validk bool 7674 for { 7675 if i, validi, err = ait.NextValidity(); err != nil { 7676 err = handleNoOp(err) 7677 break 7678 } 7679 if k, validk, err = iit.NextValidity(); err != nil { 7680 err = handleNoOp(err) 7681 break 7682 } 7683 if validi && validk { 7684 incr[k] += a[i] % b 7685 } 7686 } 7687 return 7688 } 7689 7690 func ModIterIncrVSF32(a []float32, b float32, incr []float32, ait Iterator, iit Iterator) (err error) { 7691 var i, k int 7692 var validi, validk bool 7693 for { 7694 if i, validi, err = ait.NextValidity(); err != nil { 7695 err = handleNoOp(err) 7696 break 7697 } 7698 if k, validk, err = iit.NextValidity(); err != nil { 7699 err = handleNoOp(err) 7700 break 7701 } 7702 if validi && validk { 7703 incr[k] += math32.Mod(a[i], b) 7704 } 7705 } 7706 return 7707 } 7708 7709 func ModIterIncrVSF64(a []float64, b float64, incr []float64, ait Iterator, iit Iterator) (err error) { 7710 var i, k int 7711 var validi, validk bool 7712 for { 7713 if i, validi, err = ait.NextValidity(); err != nil { 7714 err = handleNoOp(err) 7715 break 7716 } 7717 if k, validk, err = iit.NextValidity(); err != nil { 7718 err = handleNoOp(err) 7719 break 7720 } 7721 if validi && validk { 7722 incr[k] += math.Mod(a[i], b) 7723 } 7724 } 7725 return 7726 }