本文整理汇总了Golang中C.mdata_t类的典型用法代码示例。如果您正苦于以下问题:Golang mdata_t类的具体用法?Golang mdata_t怎么用?Golang mdata_t使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了mdata_t类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: updtrmv
func updtrmv(A, X, Y *cmat.FloatMatrix, alpha float64, bits, N, M int) error {
var Am C.mdata_t
var Xm, Ym C.mvec_t
xr, _ := X.Size()
yr, _ := Y.Size()
Am.md = (*C.double)(unsafe.Pointer(&A.Data()[0]))
Am.step = C.int(A.Stride())
Xm.md = (*C.double)(unsafe.Pointer(&X.Data()[0]))
Ym.md = (*C.double)(unsafe.Pointer(&Y.Data()[0]))
Ym.inc = C.int(1)
Xm.inc = C.int(1)
// if row vectors, change increment
if xr == 1 {
Xm.inc = C.int(X.Stride())
}
if yr == 1 {
Ym.inc = C.int(Y.Stride())
}
C.__d_update_trmv_unb(
(*C.mdata_t)(unsafe.Pointer(&Am)),
(*C.mvec_t)(unsafe.Pointer(&Xm)),
(*C.mvec_t)(unsafe.Pointer(&Ym)),
C.double(alpha), C.int(bits), C.int(N), C.int(M))
return nil
}
示例2: gemv
func gemv(Y, A, X *cmat.FloatMatrix, alpha, beta float64, bits, S, L, R, E int) {
var Am C.mdata_t
var Xm, Ym C.mvec_t
xr, _ := X.Size()
yr, _ := Y.Size()
Am.md = (*C.double)(unsafe.Pointer(&A.Data()[0]))
Am.step = C.int(A.Stride())
Xm.md = (*C.double)(unsafe.Pointer(&X.Data()[0]))
Ym.md = (*C.double)(unsafe.Pointer(&Y.Data()[0]))
Ym.inc = C.int(1)
Xm.inc = C.int(1)
// if row vectors, change increment
if xr == 1 {
Xm.inc = C.int(X.Stride())
}
if yr == 1 {
Ym.inc = C.int(Y.Stride())
}
C.__d_gemv_unb(
(*C.mvec_t)(unsafe.Pointer(&Ym)),
(*C.mdata_t)(unsafe.Pointer(&Am)),
(*C.mvec_t)(unsafe.Pointer(&Xm)),
C.double(alpha),
/*C.double(beta),*/
C.int(bits),
C.int(S), C.int(L), C.int(R), C.int(E))
}
示例3: minvscale
func minvscale(A *cmat.FloatMatrix, alpha float64, M, N int) {
var a C.mdata_t
a.md = (*C.double)(unsafe.Pointer(&A.Data()[0]))
a.step = C.int(A.Stride())
C.__d_blk_invscale(
(*C.mdata_t)(unsafe.Pointer(&a)), C.double(alpha), C.int(M), C.int(N))
return
}
示例4: DTrmUpdBlk
// Generic triangular matrix update; blocked
// S is the start column and row in C; E is the end column and row in C
func DTrmUpdBlk(C, A, B []float64, alpha, beta float64, flags Flags, ldC, ldA, ldB, N, S, E, H, NB int) {
var Cm C.mdata_t
var Am C.mdata_t
var Bm C.mdata_t
if C == nil || A == nil || B == nil {
return
}
if N == 0 || E-S <= 0 {
return
}
Cm.md = (*C.double)(unsafe.Pointer(&C[0]))
Cm.step = C.int(ldC)
Am.md = (*C.double)(unsafe.Pointer(&A[0]))
Am.step = C.int(ldA)
Bm.md = (*C.double)(unsafe.Pointer(&B[0]))
Bm.step = C.int(ldB)
C.dmmat_trmupd_blk(
(*C.mdata_t)(unsafe.Pointer(&Cm)),
(*C.mdata_t)(unsafe.Pointer(&Am)),
(*C.mdata_t)(unsafe.Pointer(&Bm)),
C.double(alpha), C.double(beta),
C.int(flags), C.int(N), C.int(S), C.int(E), C.int(H), C.int(NB))
}
示例5: DTrimvUnblkMV
// blas TRMV; unblocked
func DTrimvUnblkMV(X, A []float64, flags Flags, incX, ldA, N int) {
var Xv C.mvec_t
var Am C.mdata_t
if A == nil || X == nil {
return
}
Xv.md = (*C.double)(unsafe.Pointer(&X[0]))
Xv.inc = C.int(incX)
Am.md = (*C.double)(unsafe.Pointer(&A[0]))
Am.step = C.int(ldA)
C.dmvec_trid_unb(
(*C.mvec_t)(unsafe.Pointer(&Xv)),
(*C.mdata_t)(unsafe.Pointer(&Am)),
C.int(flags), C.int(N))
}
示例6: DSymmRankMV
// blas SYR; blocked version
func DSymmRankMV(A, X []float64, alpha float64, flags Flags, ldA, incX, S, L, NB int) {
var Xv C.mvec_t
var Am C.mdata_t
if A == nil || X == nil {
return
}
Xv.md = (*C.double)(unsafe.Pointer(&X[0]))
Xv.inc = C.int(incX)
Am.md = (*C.double)(unsafe.Pointer(&A[0]))
Am.step = C.int(ldA)
C.dmvec_symv_rank(
(*C.mdata_t)(unsafe.Pointer(&Am)),
(*C.mvec_t)(unsafe.Pointer(&Xv)),
C.double(alpha), C.int(flags),
C.int(S), C.int(L), C.int(NB))
}
示例7: DSolveLowerBlocked
func DSolveLowerBlocked(X, A []float64, unit bool, incX, ldA, N, NB int) {
var Xv C.mvec_t
var Am C.mdata_t
Xv.md = (*C.double)(unsafe.Pointer(&X[0]))
Xv.inc = C.int(incX)
Am.md = (*C.double)(unsafe.Pointer(&A[0]))
Am.step = C.int(ldA)
var flags Flags = LOWER
if unit {
flags |= UNIT
}
C.dmvec_solve_blocked(
(*C.mvec_t)(unsafe.Pointer(&Xv)),
(*C.mdata_t)(unsafe.Pointer(&Am)),
C.int(flags), C.int(N), C.int(NB))
}
示例8: DSolveBlkMV
// blas TSMV; blocked version
func DSolveBlkMV(X, A []float64, flags Flags, incX, ldA, N, NB int) {
var Xv C.mvec_t
var Am C.mdata_t
if A == nil || X == nil {
return
}
Xv.md = (*C.double)(unsafe.Pointer(&X[0]))
Xv.inc = C.int(incX)
Am.md = (*C.double)(unsafe.Pointer(&A[0]))
Am.step = C.int(ldA)
C.dmvec_solve_blocked(
(*C.mvec_t)(unsafe.Pointer(&Xv)),
(*C.mdata_t)(unsafe.Pointer(&Am)),
C.int(flags), C.int(N), C.int(NB))
}
示例9: DTrimvLowerTransA
func DTrimvLowerTransA(X, A []float64, unit bool, incX, ldA, N, NB int) {
var Xv C.mvec_t
var Am C.mdata_t
Xv.md = (*C.double)(unsafe.Pointer(&X[0]))
Xv.inc = C.int(incX)
Am.md = (*C.double)(unsafe.Pointer(&A[0]))
Am.step = C.int(ldA)
var flags Flags = LOWER | TRANSA
if unit {
flags |= UNIT
}
C.dmvec_trid_unb(
(*C.mvec_t)(unsafe.Pointer(&Xv)),
(*C.mdata_t)(unsafe.Pointer(&Am)),
C.int(flags), C.int(N))
}
示例10: trmv
func trmv(X, A *cmat.FloatMatrix, alpha float64, bits, N int) error {
var Am C.mdata_t
var Xm C.mvec_t
xr, _ := X.Size()
Am.md = (*C.double)(unsafe.Pointer(&A.Data()[0]))
Am.step = C.int(A.Stride())
Xm.md = (*C.double)(unsafe.Pointer(&X.Data()[0]))
Xm.inc = C.int(1)
// if row vectors, change increment
if xr == 1 {
Xm.inc = C.int(X.Stride())
}
C.__d_trmv_unb(
(*C.mvec_t)(unsafe.Pointer(&Xm)),
(*C.mdata_t)(unsafe.Pointer(&Am)),
C.double(alpha), C.int(bits), C.int(N))
return nil
}
示例11: gemm
func gemm(Cc, Ac, Bc *cmat.FloatMatrix, alpha, beta float64, bits, P, S, L, R, E int, conf *gomas.Config) {
var Am, Cm, Bm C.mdata_t
Am.md = (*C.double)(unsafe.Pointer(&Ac.Data()[0]))
Am.step = C.int(Ac.Stride())
Bm.md = (*C.double)(unsafe.Pointer(&Bc.Data()[0]))
Bm.step = C.int(Bc.Stride())
Cm.md = (*C.double)(unsafe.Pointer(&Cc.Data()[0]))
Cm.step = C.int(Cc.Stride())
C.__d_gemm_inner(
(*C.mdata_t)(unsafe.Pointer(&Cm)),
(*C.mdata_t)(unsafe.Pointer(&Am)),
(*C.mdata_t)(unsafe.Pointer(&Bm)),
C.double(alpha), C.double(beta), C.int(bits),
C.int(P), C.int(S), C.int(L), C.int(R), C.int(E),
C.int(conf.KB), C.int(conf.NB), C.int(conf.MB))
}
示例12: DTrmUpdMV
// generic triangular matrix rank update; A = A + alpha*X*Y.T
func DTrmUpdMV(A, X, Y []float64, alpha float64, flags Flags, ldA, incX, incY, S, L, NB int) {
var Xv C.mvec_t
var Yv C.mvec_t
var Am C.mdata_t
if A == nil || X == nil || Y == nil {
return
}
Xv.md = (*C.double)(unsafe.Pointer(&X[0]))
Xv.inc = C.int(incX)
Yv.md = (*C.double)(unsafe.Pointer(&Y[0]))
Yv.inc = C.int(incY)
Am.md = (*C.double)(unsafe.Pointer(&A[0]))
Am.step = C.int(ldA)
C.dmvec_trmv_upd(
(*C.mdata_t)(unsafe.Pointer(&Am)),
(*C.mvec_t)(unsafe.Pointer(&Xv)),
(*C.mvec_t)(unsafe.Pointer(&Yv)),
C.double(alpha), C.int(flags),
C.int(S), C.int(L), C.int(NB))
}
示例13: DMultMV
// blas GEMV; blocked version
// Y = alpha*A*X + beta*Y; Y is M*1, X is N*1 and A is M*N
func DMultMV(Y, A, X []float64, alpha, beta float64, flags Flags, incY, ldA, incX, S, L, R, E, H, MB int) {
var Yv C.mvec_t
var Xv C.mvec_t
var Am C.mdata_t
if Y == nil || A == nil || X == nil {
return
}
Yv.md = (*C.double)(unsafe.Pointer(&Y[0]))
Yv.inc = C.int(incY)
Xv.md = (*C.double)(unsafe.Pointer(&X[0]))
Xv.inc = C.int(incX)
Am.md = (*C.double)(unsafe.Pointer(&A[0]))
Am.step = C.int(ldA)
C.dmult_gemv_blocked(
(*C.mvec_t)(unsafe.Pointer(&Yv)),
(*C.mdata_t)(unsafe.Pointer(&Am)),
(*C.mvec_t)(unsafe.Pointer(&Xv)),
C.double(alpha), C.double(beta), C.int(flags),
C.int(S), C.int(L), C.int(R), C.int(E),
C.int(H), C.int(MB))
}
示例14: DRankMV
// blas GER; blocked version
// A = A + alpha * x * y.T; A is M*N, x is M*1, Y is N*1, 0 < R < E <= M, 0 < S < L <= N
func DRankMV(A, X, Y []float64, alpha float64, ldA, incX, incY, S, L, R, E, NB, MB int) {
var Yv C.mvec_t
var Xv C.mvec_t
var Am C.mdata_t
if A == nil || X == nil || Y == nil {
return
}
Yv.md = (*C.double)(unsafe.Pointer(&Y[0]))
Yv.inc = C.int(incY)
Xv.md = (*C.double)(unsafe.Pointer(&X[0]))
Xv.inc = C.int(incX)
Am.md = (*C.double)(unsafe.Pointer(&A[0]))
Am.step = C.int(ldA)
C.dmvec_rank(
(*C.mdata_t)(unsafe.Pointer(&Am)),
(*C.mvec_t)(unsafe.Pointer(&Xv)),
(*C.mvec_t)(unsafe.Pointer(&Yv)),
C.double(alpha),
C.int(S), C.int(L), C.int(R), C.int(E),
C.int(NB), C.int(MB))
}
示例15: DMultSymmOld
func DMultSymmOld(C, A, B []float64, alpha, beta float64, flags Flags, ldC, ldA, ldB, P, S, L, R, E, H, NB, MB int) {
var Cm C.mdata_t
var Am C.mdata_t
var Bm C.mdata_t
Cm.md = (*C.double)(unsafe.Pointer(&C[0]))
Cm.step = C.int(ldC)
Am.md = (*C.double)(unsafe.Pointer(&A[0]))
Am.step = C.int(ldA)
Bm.md = (*C.double)(unsafe.Pointer(&B[0]))
Bm.step = C.int(ldB)
C.dmult_symm_blocked(
(*C.mdata_t)(unsafe.Pointer(&Cm)),
(*C.mdata_t)(unsafe.Pointer(&Am)),
(*C.mdata_t)(unsafe.Pointer(&Bm)),
C.double(alpha), C.double(beta), C.int(flags),
C.int(P), C.int(S), C.int(L), C.int(R), C.int(E),
C.int(H), C.int(NB), C.int(MB))
}