コード例 #1
0
ファイル: permutation_support.go プロジェクト: dtromb/gogsl
func (p *GslPermutation) Slice_() interface{} {
	baseType := gogsl.GOGSL_SIZE_T_TYPE
	sliceType := reflect.SliceOf(baseType)
	size := p.Len()
	hdr := &reflect.SliceHeader{Len: size, Cap: size, Data: uintptr(C.get_permutation_data((*C.gsl_permutation)(unsafe.Pointer(p.Ptr()))))}
	return reflect.NewAt(sliceType, unsafe.Pointer(hdr)).Elem().Interface()
}
コード例 #2
0
ファイル: permutation_support.go プロジェクト: dtromb/gogsl
//int gsl_permute_inverse (const size_t * p, double * data, size_t stride, size_t n)
func PermuteInverse(p *GslPermutation, data []float64, stride int, n int) {
	C.gsl_permute_inverse((*C.size_t)(C.get_permutation_data((*C.gsl_permutation)(unsafe.Pointer(p.Ptr())))),
		(*C.double)(unsafe.Pointer((*reflect.SliceHeader)(unsafe.Pointer(&data)).Data)),
		C.size_t(stride), C.size_t(n))
}