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  }