private MathematicaKernel() { string path = ConfigurationManager.AppSettings["MathKernelPath"]; if (string.IsNullOrEmpty(path)) { m_kernel = MathLinkFactory.CreateKernelLink(); } else { string[] args = new string[] { "-linkmode", "launch", "-linkname", "" }; args[3] = "\"" + path + "\""; m_kernel = MathLinkFactory.CreateKernelLink(args); } m_math = new MathKernel(m_kernel); m_math.AutoCloseLink = true; m_math.CaptureGraphics = false; m_math.CaptureMessages = true; m_math.CapturePrint = false; m_math.HandleEvents = true; m_math.Input = null; m_math.LinkArguments = null; m_math.PageWidth = byte.MaxValue; m_math.ResultFormat = MathKernel.ResultFormatType.OutputForm; m_math.UseFrontEnd = true; m_math.Compute("Needs[\"HypothesisTesting`\"];"); }
/// <summary> /// Calculates characteristic values of matrices /// (using Wolfram Mathematica). /// </summary> /// <param name="m"></param> /// <returns></returns> private Image GetEigenvalues(Matrix m) { MathKernel mk = new MathKernel(); mk.ResultFormat = MathKernel.ResultFormatType.StandardForm; mk.Compute($"Tally[Round[Eigenvalues[{m.ToWMFormat()}],10^(-10)]]"); Image image = new Image(); image.Source = ToBitmapImage((System.Drawing.Bitmap)mk.Result); return(image); }
public MathResult Execute(string script) { try { lock (m_synchronizer) { m_math.Compute(script); ParseResults(); LogMessages(); } return(m_result); } catch (Exception e) { Log.Error("Exception in MathematicaKernel.Execute(): script = \r\n{0}\r\n e = {1}", script, e); throw; } }
private static string ComputeMathCommand(string command, MathKernel kernel) { kernel.Compute(command); return(kernel.Result.ToString()); }