本文整理汇总了Golang中github.com/hrautila/go/opt/linalg.IndexOpts.Nx方法的典型用法代码示例。如果您正苦于以下问题:Golang IndexOpts.Nx方法的具体用法?Golang IndexOpts.Nx怎么用?Golang IndexOpts.Nx使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/hrautila/go/opt/linalg.IndexOpts
的用法示例。
在下文中一共展示了IndexOpts.Nx方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: check_level1_func
func check_level1_func(ind *linalg.IndexOpts, fn funcNum, X, Y matrix.Matrix) error {
nX, nY := 0, 0
// this is adapted from cvxopt:blas.c python blas interface
switch fn {
case fnrm2, fasum, fiamax, fscal, fset:
if ind.IncX <= 0 {
return errors.New("incX illegal, <=0")
}
if ind.OffsetX < 0 {
return errors.New("offsetX illegal, <0")
}
sizeX := X.NumElements()
if sizeX >= ind.OffsetX+1 {
// calculate default size for N based on X size
nX = 1 + (sizeX-ind.OffsetX-1)/ind.IncX
}
if sizeX < ind.OffsetX+1+(ind.Nx-1)*abs(ind.IncX) {
return errors.New("X size error")
}
if ind.Nx < 0 {
ind.Nx = nX
}
case fdot, fswap, fcopy, faxpy, faxpby:
// vector X
if ind.IncX <= 0 {
return errors.New("incX illegal, <=0")
}
if ind.OffsetX < 0 {
return errors.New("offsetX illegal, <0")
}
sizeX := X.NumElements()
if sizeX >= ind.OffsetX+1 {
// calculate default size for N based on X size
nX = 1 + (sizeX-ind.OffsetX-1)/ind.IncX
}
if sizeX < ind.OffsetX+1+(ind.Nx-1)*abs(ind.IncX) {
return errors.New("X size error")
}
if ind.Nx < 0 {
ind.Nx = nX
}
// vector Y
if ind.IncY <= 0 {
return errors.New("incY illegal, <=0")
}
if ind.OffsetY < 0 {
return errors.New("offsetY illegal, <0")
}
sizeY := Y.NumElements()
if sizeY >= ind.OffsetY+1 {
// calculate default size for N based on Y size
nY = 1 + (sizeY-ind.OffsetY-1)/ind.IncY
}
if ind.Ny < 0 {
ind.Ny = nY
}
if sizeY < ind.OffsetY+1+(ind.Ny-1)*abs(ind.IncY) {
fmt.Printf("sizeY=%d, inds: %#v\n", sizeY, ind)
return errors.New("Y size error")
}
case frotg, frotmg, frot, frotm:
}
return nil
}