go-lbfgsb
go-lbfgsb copied to clipboard
cgo argument has Go pointer to Go pointer with Go v1.6.1
It seems that the rules of passing pointer between C and Go changed golang/go#12416. Now example file generates a runtime error.
$ go run example.go
----- Go L-BFGS-B Example Program -----
----- Sphere Function -----
expected: X: [0 0 0 0 0]
F: 0
G: [0 0 0 0 0]
minimum: X: [-3.552713678800501e-15 4.440892098500626e-15 -2.6645352591003757e-15 8.881784197001252e-16 -1.7763568394002505e-15]
F: 4.338734978715565e-29
G: [-7.105427357601002e-15 8.881784197001252e-15 -5.329070518200751e-15 1.7763568394002505e-15 -3.552713678800501e-15]
status: Exit status: SUCCESS; Message: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL;
stats: iters: 2; F evals: 4; G evals: 4
----- Rosenbrock Function -----
panic: runtime error: cgo argument has Go pointer to Go pointer
goroutine 1 [running]:
panic(0x5054e0, 0xc82000a510)
/usr/lib/go-1.6/src/runtime/panic.go:464 +0x3e6
github.com/afbarnard/go-lbfgsb._cgoCheckPointer0(0x4e10a0, 0xc82000a4d0, 0x0, 0x0, 0x0, 0x2)
github.com/afbarnard/go-lbfgsb/_obj/_cgo_gotypes.go:46 +0x4d
github.com/afbarnard/go-lbfgsb.(*Lbfgsb).Minimize(0xc82008a000, 0x7f8654337358, 0xc82000a4a0, 0xc82000a490, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0, ...)
/home/idavydov/go/src/github.com/afbarnard/go-lbfgsb/lbfgsb.go:335 +0x89a
main.main()
/home/idavydov/go/src/github.com/afbarnard/go-lbfgsb/example/example.go:103 +0x75c
exit status 2