public Result Run(InitFunc initfunc, InitFunc postinitfunc, CyclicFunc cyclicfunc, QuitFunc quitfunc)
 {
     RefDelegate initfuncwrapper = delegate() {
         return(Result.getCPtr(initfunc()).Handle);
     };
     RefDelegate postinitfuncwrapper = delegate() {
         return(Result.getCPtr(initfunc()).Handle);
     };
     RefDelegate cyclicfuncwrapper = delegate() {
         return(System.IntPtr.Zero);
     };
     RefDelegate quitfuncwrapper = delegate() {
         return(System.IntPtr.Zero);
     };
     {
         Result ret = new Result(ISMathPINVOKE.Engine_Run(swigCPtr, initfuncwrapper, postinitfuncwrapper, cyclicfuncwrapper, quitfuncwrapper), true);
         return(ret);
     }
 }