我对 ILNUmerics 非常感兴趣,并想尝试免费版本,但我遇到了麻烦。
我从一个控制台应用程序开始,并试图运行“hello ilnumerics”控制台应用程序,但我注意到 VS 无法找到 MKL 库。
我在 Windwos 8 下使用 VS2012(通过 2010 年中期 MacBook Pro 上的 Bootcamp;是否相关);我已经从 Project 解决方案安装了 NuGet Packages 扩展。然后右键单击解决方案资源管理器中的引用,“管理 Nu Get 包”,从在线/搜索找到各种版本的数字。我选择了“ILNumerics”并安装。我的项目中添加了“ILNumerics”和“ILNumerics.Native”。然后我可以在解决方案资源管理器的“参考”下看到 ILNumerics,还可以得到两个新文件夹 /bin32/ 和 /bin64/,它们都包含两个名为 libiomp5md.dll 和 mkl_custom.dll 的 DLL。我检查了他们的“复制到输出目录”属性,它们都设置为“如果更新则复制”。
显然 mkl_custom 没有找到。我编写了以下代码,取自快速入门指南:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ILNumerics;
namespace ConsoleApplication3
{
class Program : ILMath
{
static void Main(string[] args)
{
ILArray<double> A = array<double>
(new double[] { 1,1,1,1,1,2,3,4,1,3,6,10,1,4,10,20} ,4, 4);
ILArray<double> B = counter(4, 2);
ILArray<double> Result = linsolve(A, B);
Console.Out.WriteLine("A: " + Environment.NewLine +
A.ToString());
Console.Out.WriteLine("B: " + Environment.NewLine + B.ToString());
Console.ReadKey();
}
}
}
我得到了这个异常: ILNumerics.dll 中发生了“System.DllNotFoundException”类型的未处理异常
附加信息:无法加载 DLL 'mkl_custom':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)
如果我不调用 linsolve,则 ILArray 的 ToString 方法确实有效:如果我评论 // ILArray Result = linsolve(A, B);
我在屏幕上打印了两个矩阵。
我还尝试计算矩阵的行列式并得到相同的异常:显然任何时候我调用 mkl_custom VS 都无法找到它。
请问有什么帮助/提示吗?
此外,是否有必要通过 NuGet 在添加到解决方案的任何项目上安装 ILNumerics?是否可以在本地安装一次,然后在必要时添加参考?