From 2587da5fead7ee6fb1fa0986938966c23a252d8a Mon Sep 17 00:00:00 2001 From: giuliohome Date: Sat, 30 Aug 2014 03:05:40 +0200 Subject: [PATCH] First example of c# wrapper done (marshalling prediction to submission file) --- windows/xgboost_sharp_wrapper/xgboost.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/windows/xgboost_sharp_wrapper/xgboost.cs b/windows/xgboost_sharp_wrapper/xgboost.cs index e1656fae7..c1f07044b 100644 --- a/windows/xgboost_sharp_wrapper/xgboost.cs +++ b/windows/xgboost_sharp_wrapper/xgboost.cs @@ -50,7 +50,18 @@ public IntPtr SharpXGDMatrixCreateFromFile(string fname, int silent) * \param len used to store length of returning result */ [DllImport(dll_path + "xgboost_wrapper.dll")] - public static extern Double[] XGBoosterPredict(IntPtr handle, IntPtr dmat, int output_margin, System.UInt32 len); + public static extern IntPtr XGBoosterPredict(IntPtr handle, IntPtr dmat, int output_margin, ref System.UInt32 len); + + public float[] SharpXGBoosterPredict(IntPtr handle, IntPtr dmat, int output_margin, System.UInt32 len) + { + IntPtr buf = XGBoosterPredict(handle, dmat, output_margin, ref len); + + float[] buffer = new float[len]; + + Marshal.Copy(buf, buffer, 0, buffer.Length); + + return buffer; + } /*! * \brief load model from existing file * \param handle handle