本文整理汇总了Golang中github.com/hrautila/linalg.IndexOpts.LDvt方法的典型用法代码示例。如果您正苦于以下问题:Golang IndexOpts.LDvt方法的具体用法?Golang IndexOpts.LDvt怎么用?Golang IndexOpts.LDvt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/hrautila/linalg.IndexOpts
的用法示例。
在下文中一共展示了IndexOpts.LDvt方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: checkGesvd
func checkGesvd(ind *linalg.IndexOpts, pars *linalg.Parameters, A, S, U, Vt matrix.Matrix) error {
arows := ind.LDa
if ind.M < 0 {
ind.M = A.Rows()
}
if ind.N < 0 {
ind.N = A.Cols()
}
if ind.M == 0 || ind.N == 0 {
return nil
}
if pars.Jobu == linalg.PJobO && pars.Jobvt == linalg.PJobO {
return onError("Gesvd: jobu and jobvt cannot both have value PJobO")
}
if pars.Jobu == linalg.PJobAll || pars.Jobu == linalg.PJobS {
if U == nil {
return onError("Gesvd: missing matrix U")
}
if ind.LDu == 0 {
ind.LDu = max(1, U.LeadingIndex())
}
if ind.LDu < max(1, ind.M) {
return onError("Gesvd: ldU")
}
} else {
if ind.LDu == 0 {
ind.LDu = 1
}
if ind.LDu < 1 {
return onError("Gesvd: ldU")
}
}
if pars.Jobvt == linalg.PJobAll || pars.Jobvt == linalg.PJobS {
if Vt == nil {
return onError("Gesvd: missing matrix Vt")
}
if ind.LDvt == 0 {
ind.LDvt = max(1, Vt.LeadingIndex())
}
if pars.Jobvt == linalg.PJobAll && ind.LDvt < max(1, ind.N) {
return onError("Gesvd: ldVt")
} else if pars.Jobvt != linalg.PJobAll && ind.LDvt < max(1, min(ind.M, ind.N)) {
return onError("Gesvd: ldVt")
}
} else {
if ind.LDvt == 0 {
ind.LDvt = 1
}
if ind.LDvt < 1 {
return onError("Gesvd: ldVt")
}
}
if ind.OffsetA < 0 {
return onError("Gesvd: offsetA")
}
sizeA := A.NumElements()
if ind.LDa == 0 {
ind.LDa = max(1, A.LeadingIndex())
arows = max(1, A.Rows())
}
if sizeA < ind.OffsetA+(ind.N-1)*arows+ind.M {
return onError("Gesvd: sizeA")
}
if ind.OffsetS < 0 {
return onError("Gesvd: offsetS")
}
sizeS := S.NumElements()
if sizeS < ind.OffsetS+min(ind.M, ind.N) {
return onError("Gesvd: sizeA")
}
/*
if U != nil {
if ind.OffsetU < 0 {
return onError("Gesvd: OffsetU")
}
sizeU := U.NumElements()
if pars.Jobu == linalg.PJobAll && sizeU < ind.LDu*(ind.M-1) {
return onError("Gesvd: sizeU")
} else if pars.Jobu == linalg.PJobS && sizeU < ind.LDu*(min(ind.M,ind.N)-1) {
return onError("Gesvd: sizeU")
}
}
if Vt != nil {
if ind.OffsetVt < 0 {
return onError("Gesvd: OffsetVt")
}
sizeVt := Vt.NumElements()
if pars.Jobvt == linalg.PJobAll && sizeVt < ind.N {
return onError("Gesvd: sizeVt")
} else if pars.Jobvt == linalg.PJobS && sizeVt < min(ind.M, ind.N) {
return onError("Gesvd: sizeVt")
}
}
*/
return nil
}