forked from dtromb/gogsl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
root.go
executable file
·103 lines (80 loc) · 3.4 KB
/
root.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
////////// AUTOMATICALLY GENERATED CODE - DO NOT EDIT //////////
package root
/*
#cgo pkg-config: --define-variable=prefix=. gsl
#include <gsl/gsl_roots.h>
*/
import "C"
import "unsafe"
import "github.com/dtromb/gogsl"
type GslRootFsolver struct {
gogsl.GslReference
}
type GslRootFsolverType struct {
gogsl.GslReference
}
type GslRootFdfsolver struct {
gogsl.GslReference
}
type GslRootFdfsolverType struct {
gogsl.GslReference
}
func FsolverAlloc(t *GslRootFsolverType) *GslRootFsolver {
_ref := C.gsl_root_fsolver_alloc((*C.gsl_root_fsolver_type)(unsafe.Pointer(t.Ptr())))
_result := &GslRootFsolver{}
gogsl.InitializeGslReference(_result, uintptr(unsafe.Pointer(_ref)))
return _result
}
func FdfsolverAlloc(t *GslRootFdfsolverType) *GslRootFdfsolver {
_ref := C.gsl_root_fdfsolver_alloc((*C.gsl_root_fdfsolver_type)(unsafe.Pointer(t.Ptr())))
_result := &GslRootFdfsolver{}
gogsl.InitializeGslReference(_result, uintptr(unsafe.Pointer(_ref)))
return _result
}
func FsolverSet(s *GslRootFsolver, f *gogsl.GslFunction, xLower float64, xUpper float64) int32 {
gogsl.InitializeGslFunction(f)
return int32(C.gsl_root_fsolver_set((*C.gsl_root_fsolver)(unsafe.Pointer(s.Ptr())), (*C.gsl_function)(unsafe.Pointer(f.CPtr())), C.double(xLower), C.double(xUpper)))
}
func FdfsolverSet(s *GslRootFdfsolver, fdf *gogsl.GslFunctionFdf, root float64) int32 {
gogsl.InitializeGslFunctionFdf(fdf)
return int32(C.gsl_root_fdfsolver_set((*C.gsl_root_fdfsolver)(unsafe.Pointer(s.Ptr())), (*C.gsl_function_fdf)(unsafe.Pointer(fdf.CPtr())), C.double(root)))
}
func (x *GslRootFsolver) Dispose() {
C.gsl_root_fsolver_free((*C.gsl_root_fsolver)(unsafe.Pointer(x.Ptr())))
}
func (x *GslRootFdfsolver) Dispose() {
C.gsl_root_fdfsolver_free((*C.gsl_root_fdfsolver)(unsafe.Pointer(x.Ptr())))
}
func FsolverName(s *GslRootFsolver) string {
return C.GoString(C.gsl_root_fsolver_name((*C.gsl_root_fsolver)(unsafe.Pointer(s.Ptr()))))
}
func FdfsolverName(s *GslRootFdfsolver) string {
return C.GoString(C.gsl_root_fdfsolver_name((*C.gsl_root_fdfsolver)(unsafe.Pointer(s.Ptr()))))
}
func FsolverIterate(s *GslRootFsolver) int32 {
return int32(C.gsl_root_fsolver_iterate((*C.gsl_root_fsolver)(unsafe.Pointer(s.Ptr()))))
}
func FdfsolverIterate(s *GslRootFdfsolver) int32 {
return int32(C.gsl_root_fdfsolver_iterate((*C.gsl_root_fdfsolver)(unsafe.Pointer(s.Ptr()))))
}
func FsolverRoot(s *GslRootFsolver) float64 {
return float64(C.gsl_root_fsolver_root((*C.gsl_root_fsolver)(unsafe.Pointer(s.Ptr()))))
}
func FdfsolverRoot(s *GslRootFdfsolver) float64 {
return float64(C.gsl_root_fdfsolver_root((*C.gsl_root_fdfsolver)(unsafe.Pointer(s.Ptr()))))
}
func FsolverXLower(s *GslRootFsolver) float64 {
return float64(C.gsl_root_fsolver_x_lower((*C.gsl_root_fsolver)(unsafe.Pointer(s.Ptr()))))
}
func FsolverXUpper(s *GslRootFsolver) float64 {
return float64(C.gsl_root_fsolver_x_upper((*C.gsl_root_fsolver)(unsafe.Pointer(s.Ptr()))))
}
func TestInterval(xLower float64, xUpper float64, epsabs float64, epsrel float64) int32 {
return int32(C.gsl_root_test_interval(C.double(xLower), C.double(xUpper), C.double(epsabs), C.double(epsrel)))
}
func TestDelta(x1 float64, x0 float64, epsabs float64, epsrel float64) int32 {
return int32(C.gsl_root_test_delta(C.double(x1), C.double(x0), C.double(epsabs), C.double(epsrel)))
}
func TestResidual(f float64, epsabs float64) int32 {
return int32(C.gsl_root_test_residual(C.double(f), C.double(epsabs)))
}