1
0
mirror of https://github.com/sjwhitworth/golearn.git synced 2025-04-26 13:49:14 +08:00

Revert "Remove (mostly) unused C print functions in linear package"

This reverts commit f9e41dec2860090e00dd1e0fb74c1beb79197ae5.
This commit is contained in:
Amit Kumar Gupta 2014-08-25 08:08:59 +00:00
parent f9e41dec28
commit 25811f833b
4 changed files with 58 additions and 0 deletions

14
linear_models/cfuncs.go Normal file
View File

@ -0,0 +1,14 @@
// +build go1.2
package linear_models
/*
void libLinearPrintFunc(char *);
void golearn_liblinear_print_func_cgo(char *c) {
libLinearPrintFunc(c);
}
*/
import "C"

View File

@ -59,6 +59,7 @@ func NewProblem(X [][]float64, y []float64, bias float64) *Problem {
}
func Train(prob *Problem, param *Parameter) *Model {
libLinearHookPrintFunc() // Sets up logging
return &Model{C.train(&prob.c_prob, &param.c_param)}
}

View File

@ -0,0 +1,27 @@
// +build go1.2
package linear_models
/*
#cgo LDFLAGS: -llinear
#cgo CFLAGS:
#include <linear.h>
typedef void (*print_func)(char *);
void golearn_liblinear_print_func_cgo(char *);
*/
import "C"
import (
"fmt"
"unsafe"
)
//export libLinearPrintFunc
func libLinearPrintFunc(str *C.char) {
fmt.Println(C.GoString(str))
}
func libLinearHookPrintFunc() {
C.set_print_string_function((C.print_func)(unsafe.Pointer(C.golearn_liblinear_print_func_cgo)))
}

View File

@ -0,0 +1,16 @@
// +build go1.1
// +build !go1.2
// +build !go1.3
package linear_models
import "C"
//export libLinearPrintFunc
func libLinearPrintFunc(str *C.char) {
// Stubbed
}
func libLinearHookPrintFunc() {
// Stubbed
}