Esempio n. 1
0
// void dgetrf_(int *m, int *n, double *A, int *lda, int *ipiv, int *info);
func dgetrf(M, N int, A []float64, lda int, ipiv []int32) int {
	var info int = 0
	C.dgetrf_((*C.int)(unsafe.Pointer(&M)), (*C.int)(unsafe.Pointer(&N)),
		(*C.double)(unsafe.Pointer(&A[0])), (*C.int)(unsafe.Pointer(&lda)),
		(*C.int)(unsafe.Pointer(&ipiv[0])), (*C.int)(unsafe.Pointer(&info)))
	return info
}
Esempio n. 2
0
func dgetrfHelper(m, n int, a []float64, lda int, ipiv []C.integer) error {
	var (
		m_    = C.integer(m)
		n_    = C.integer(n)
		a_    = ptrFloat64(a)
		lda_  = C.integer(lda)
		ipiv_ = ptrInt(ipiv)
	)
	var info_ C.integer

	C.dgetrf_(&m_, &n_, a_, &lda_, ipiv_, &info_)
	return dgetrfError(int(info_))
}