我或多或少有以下设置.在~/path/to/my/packages我有两个包package1.m和package2.m.例如,每个包的大纲如下:
BeginPackage["package1`"]
Unprotect@@Names["package1`*"];
ClearAll@@Names["package1`*"];
Begin["`Private`"]
vecNorm[vec_?VectorQ]:=Module[{},Return[Sqrt[vec.vec]]];
End[]
Protect@@Names["package1`*"];
EndPackage[]
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是我想使用vecNormin package1.min中定义的package2.m.如何package1从内部加载(安全)package2?
目前,我手动加载两个包,如下所示:
SetDirectory[StringJoin[NotebookDirectory[], "packages"]];
Needs["package1`"]
Needs["package2`"]
Run Code Online (Sandbox Code Playgroud)
从保存的笔记本中~/path/to/my.我想手动加载只有 package2这反过来将会自动,安全地加载package1.一般来说,我想要一个尽可能少地改变mathematica路径等的解决方案.实现这一目标的最佳做法是什么?
PS:安全地我的意思是,在将来,当我定义package3哪些也将使用vecNorm并且将加载时package1,不会发生冲突.
自从最新的Ubuntu版本(karmic koala)以来,我注意到内部R包在启动REvolution包时做广告.它似乎是用于高性能矩阵计算的库集合.而且它显然确实有效.例如,在带有REvolution的矩阵转置上:
> system.time(t(matrix(rnorm(10000000),ncol=1000)))
   user  system elapsed 
  1.280   0.150   1.556 
Run Code Online (Sandbox Code Playgroud)
没有革命:
> system.time(t(matrix(rnorm(10000000),ncol=1000)))
   user  system elapsed 
  1.320   0.170   1.725 
Run Code Online (Sandbox Code Playgroud)
有人用吗?它真的有效吗?哪种具体类型的计算有所改进?如何?有什么缺点?
谢谢 :-)
哪些数学包可以在 C# 中使用?我知道 Lutz Roeder 的 Mapack 软件包,您知道类似的软件包吗?我主要对数值分析感兴趣:数值积分、线性和非线性方程求解。
谢谢。