• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang rng.GslRng类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/dtromb/gogsl/rng.GslRng的典型用法代码示例。如果您正苦于以下问题:Golang GslRng类的具体用法?Golang GslRng怎么用?Golang GslRng使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了GslRng类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: Dir3d

func Dir3d(r *rng.GslRng) (float64, float64, float64) {
	var _outptr_1 C.double
	var _outptr_2 C.double
	var _outptr_3 C.double
	C.gsl_ran_dir_3d((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), &_outptr_1, &_outptr_2, &_outptr_3)
	return *(*float64)(unsafe.Pointer(&_outptr_1)), *(*float64)(unsafe.Pointer(&_outptr_2)), *(*float64)(unsafe.Pointer(&_outptr_3))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:7,代码来源:randist.go


示例2: Shuffle

func Shuffle(rng *rng.GslRng, data interface{}, n int) {
	// data must be a slice
	dataType := reflect.TypeOf(data)
	if dataType.Kind() != reflect.Slice {
		gogsl.Error("rng.Shuffle() must have a slice as its second argument", gogsl.GSL_EINVAL)
		return
	}
	baseType := dataType.Elem()
	dataVal := reflect.ValueOf(data)
	sliceN := dataVal.Len()
	if sliceN < 0 {
		gogsl.Error("shuffle length may not be negative in rng.Shuffle()", gogsl.GSL_EINVAL)
		return
	}
	if sliceN < n {
		gogsl.Error("shuffle length too large for slice in rng.Shuffle()", gogsl.GSL_EINVAL)
		return
	}
	elementLen := baseType.Size()
	addr := dataVal.Index(0).UnsafeAddr()

	//hdr := (*reflect.SliceHeader)(unsafe.Pointer(addr))
	//void gsl_ran_shuffle (const gsl_rng * r, void * base, size_t n, size_t size)
	C.gsl_ran_shuffle((*C.gsl_rng)(unsafe.Pointer(rng.Ptr())),
		unsafe.Pointer(addr),
		C.size_t(n), C.size_t(elementLen))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:27,代码来源:randist_support.go


示例3: Solve

func Solve(r *rng.GslRng, x0 interface{},
	ef GslSimanEnergyFunctionType,
	takeStep GslSimanStepFunctionType,
	distance GslSimanMetricFunctionType,
	printPosition GslSimanPrintFunctionType,
	copyfunc GslSimanCopyFunctionType,
	copyConstructor GslSimanCopyConstructFunctionType,
	destructor GslSimanDestroyFunctionType,
	params *GslSimanParams) {

	impl := &GslSimanImplementation{
		energyFn: ef,
		stepFn:   takeStep,
		metricFn: distance,
		printFn:  printPosition,
		copyFn:   copyfunc,
		ctorFn:   copyConstructor,
		freeFn:   destructor,
		holdRefs: make(map[uintptr]*GslSimanArgument),
	}

	initialArg := &GslSimanArgument{
		impl: impl,
		x:    x0,
	}
	InitializeGslSimanParams(params)
	var printFn *[0]byte
	if impl.printFn != nil {
		printFn = (*[0]byte)(C._gsl_siman_print_function_proxy)
	}
	C.gsl_siman_solve((*C.gsl_rng)(unsafe.Pointer(r.Ptr())),
		unsafe.Pointer(initialArg),
		(*[0]byte)(C._gsl_siman_energy_function_proxy),
		(*[0]byte)(C._gsl_siman_step_function_proxy),
		(*[0]byte)(C._gsl_siman_metric_function_proxy),
		printFn,
		(*[0]byte)(C._gsl_siman_copy_function_proxy),
		(*[0]byte)(C._gsl_siman_ctor_function_proxy),
		(*[0]byte)(C._gsl_siman_dtor_function_proxy),
		C.size_t(GSL_SIMAN_ARGUMENT_SIZE),
		*(*C.gsl_siman_params_t)(unsafe.Pointer(params.CPtr())))
}
开发者ID:dtromb,项目名称:gogsl,代码行数:42,代码来源:siman_support.go


示例4: Choose

// void gsl_ran_sample (const gsl_rng * r, void * dest, size_t k, void * src, size_t n, size_t size)
func Choose(rng *rng.GslRng, dest interface{}, src interface{}, n int) int {
	// data must be a slice
	destDataType := reflect.TypeOf(dest)
	if destDataType.Kind() != reflect.Slice {
		gogsl.Error("rng.Choose() must have a slice as its second argument", gogsl.GSL_EINVAL)
		return int(gogsl.GSL_EINVAL)
	}
	srcDataType := reflect.TypeOf(src)
	if srcDataType.Kind() != reflect.Slice {
		gogsl.Error("rng.Choose() must have a slice as its third argument", gogsl.GSL_EINVAL)
		return int(gogsl.GSL_EINVAL)
	}
	if destDataType != srcDataType {
		gogsl.Error("rng.Choose() source and destination data types must match", gogsl.GSL_EINVAL)
		return int(gogsl.GSL_EINVAL)
	}
	if n < 0 {
		gogsl.Error("length may not be negative in rng.Choose()", gogsl.GSL_EINVAL)
		return int(gogsl.GSL_EINVAL)
	}
	baseType := destDataType.Elem()
	destVal := reflect.ValueOf(dest)
	srcVal := reflect.ValueOf(src)
	sliceN := destVal.Len()
	if sliceN < n {
		gogsl.Error("sample length too large for slice in rng.Choose()", gogsl.GSL_EINVAL)
		return int(gogsl.GSL_EINVAL)
	}
	if srcVal.Len() < n {
		gogsl.Error("sample length too large for source in rng.Choose()", gogsl.GSL_EINVAL)
		return int(gogsl.GSL_EINVAL)
	}
	elementLen := baseType.Size()
	srcAddr := srcVal.Index(0).UnsafeAddr()
	destAddr := destVal.Index(0).UnsafeAddr()
	return int(C.gsl_ran_choose((*C.gsl_rng)(unsafe.Pointer(rng.Ptr())),
		unsafe.Pointer(destAddr), C.size_t(sliceN),
		unsafe.Pointer(srcAddr), C.size_t(srcVal.Len()),
		C.size_t(elementLen)))
}
开发者ID:dtromb,项目名称:gogsl,代码行数:41,代码来源:randist_support.go


示例5: Multinomial

func Multinomial(r *rng.GslRng, k int, n uint32, p []float64, x []uint32) {
	_slice_header_3 := (*reflect.SliceHeader)(unsafe.Pointer(&p))
	_slice_header_4 := (*reflect.SliceHeader)(unsafe.Pointer(&x))
	C.gsl_ran_multinomial((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.size_t(k), C.uint(n), (*C.double)(unsafe.Pointer(_slice_header_3.Data)), (*C.uint)(unsafe.Pointer(_slice_header_4.Data)))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:5,代码来源:randist.go


示例6: Fdist

func Fdist(r *rng.GslRng, nu1 float64, nu2 float64) float64 {
	return float64(C.gsl_ran_fdist((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.double(nu1), C.double(nu2)))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go


示例7: Bernoulli

func Bernoulli(r *rng.GslRng, p float64) uint32 {
	return uint32(C.gsl_ran_bernoulli((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.double(p)))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go


示例8: BivariateGaussian

func BivariateGaussian(r *rng.GslRng, sigmaX float64, sigmaY float64, rho float64) (float64, float64) {
	var _outptr_4 C.double
	var _outptr_5 C.double
	C.gsl_ran_bivariate_gaussian((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.double(sigmaX), C.double(sigmaY), C.double(rho), &_outptr_4, &_outptr_5)
	return *(*float64)(unsafe.Pointer(&_outptr_4)), *(*float64)(unsafe.Pointer(&_outptr_5))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:6,代码来源:randist.go


示例9: GaussianZiggurat

func GaussianZiggurat(r *rng.GslRng, sigma float64) float64 {
	return float64(C.gsl_ran_gaussian_ziggurat((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.double(sigma)))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go


示例10: Geometric

func Geometric(r *rng.GslRng, p float64) uint32 {
	return uint32(C.gsl_ran_geometric((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.double(p)))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go


示例11: Logarithmic

func Logarithmic(r *rng.GslRng, p float64) uint32 {
	return uint32(C.gsl_ran_logarithmic((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.double(p)))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go


示例12: Lognormal

func Lognormal(r *rng.GslRng, zeta float64, sigma float64) float64 {
	return float64(C.gsl_ran_lognormal((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.double(zeta), C.double(sigma)))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go


示例13: DirNd

func DirNd(r *rng.GslRng, n int) float64 {
	var _outptr_2 C.double
	C.gsl_ran_dir_nd((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.size_t(n), &_outptr_2)
	return *(*float64)(unsafe.Pointer(&_outptr_2))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:5,代码来源:randist.go


示例14: UgaussianRatioMethod

func UgaussianRatioMethod(r *rng.GslRng) float64 {
	return float64(C.gsl_ran_ugaussian_ratio_method((*C.gsl_rng)(unsafe.Pointer(r.Ptr()))))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go


示例15: Dir2dTrigMethod

func Dir2dTrigMethod(r *rng.GslRng) (float64, float64) {
	var _outptr_1 C.double
	var _outptr_2 C.double
	C.gsl_ran_dir_2d_trig_method((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), &_outptr_1, &_outptr_2)
	return *(*float64)(unsafe.Pointer(&_outptr_1)), *(*float64)(unsafe.Pointer(&_outptr_2))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:6,代码来源:randist.go


示例16: Logistic

func Logistic(r *rng.GslRng, a float64) float64 {
	return float64(C.gsl_ran_logistic((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.double(a)))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go


示例17: Tdist

func Tdist(r *rng.GslRng, nu float64) float64 {
	return float64(C.gsl_ran_tdist((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.double(nu)))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go


示例18: Ugaussian

func Ugaussian(r *rng.GslRng) float64 {
	return float64(C.gsl_ran_ugaussian((*C.gsl_rng)(unsafe.Pointer(r.Ptr()))))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go


示例19: NegativeBinomial

func NegativeBinomial(r *rng.GslRng, p float64, n float64) uint32 {
	return uint32(C.gsl_ran_negative_binomial((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.double(p), C.double(n)))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go


示例20: Weibull

func Weibull(r *rng.GslRng, a float64, b float64) float64 {
	return float64(C.gsl_ran_weibull((*C.gsl_rng)(unsafe.Pointer(r.Ptr())), C.double(a), C.double(b)))
}
开发者ID:postfix,项目名称:gsl-1,代码行数:3,代码来源:randist.go



注:本文中的github.com/dtromb/gogsl/rng.GslRng类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang sf.GslSfResult类代码示例发布时间:2022-05-23
下一篇:
Golang permutation.GslPermutation类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap