小编And*_*Mao的帖子

在Java中计算多元正常CDF

有谁知道一个可靠,准确的库来计算Java中的多变量法线(MVN)CDF?我正在寻找像MATLAB的mvncdf函数.我需要能够达到10或更多的尺寸.大多数统计/数学库都没有此功能.能够计算对数概率是一个加号.

这篇文章中,似乎没有提到其他语言的免费实现.虽然直接java实现会摇滚,但我会接受其他语言中不需要许可证的实现(例如,不是MATLAB或IMSL),并且可以用最少的开销从Java轻松调用.

(这个问题是StackExchange数学上的一个帖子的衍生物,我试图计算正态随机变量排序的概率......如果你有兴趣尝试用其他数学方法直接解决问题,请检查出来.)

java math statistics distribution numeric

6
推荐指数
1
解决办法
3082
查看次数

如何将本地GIT/Maven项目/文件夹导入eclipse?

所以我做了git clone从远程git仓库获取maven项目.大!我一直在命令行工作,做git pull,commit等等.太棒了!现在我想将这个项目导入eclipse,并能够通过安装的egit在eclipse中使用git.所以我做了一个:

mvn eclipse:eclipse -Dwtpversion=2.0
Run Code Online (Sandbox Code Playgroud)

之后我可以通过常规将项目导入eclipse:

Import -> General -> Existing Projects into Workspace
Run Code Online (Sandbox Code Playgroud)

但GIT选项不会出现在Team !!! :( :( :(

如何导入此项目并同时具有git选项?

java eclipse git maven egit

6
推荐指数
1
解决办法
1万
查看次数

实例化每个范围/组单例 - 陷入Guice依赖地狱

这个问题是对带有注入类的框架使用guice的延续,正确的初始化方法是什么?我试图实现,并尝试其他方法来解决这个问题,但到目前为止还没有任何工作.

主要问题是这个.我有一个,InterfaceAInterfaceB在API的不同部分公开.有迹象表明,实现这两个接口的两个阶级,TestClassRealClass,让这取决于我是否在测试或做别的事情,我可以做到以下几点:

bind(InterfaceA.class).to(TestClass.class);
bind(InterfaceB.class).to(TestClass.class); 
Run Code Online (Sandbox Code Playgroud)

或者,用于生产:

bind(InterfaceA.class).to(RealClass.class);
bind(InterfaceB.class).to(RealClass.class);
Run Code Online (Sandbox Code Playgroud)

我有两个使用这些类的要求:

  1. 我需要和所有注射相同的实例TestClass或被RealClass约束; 所以,就像单身模式一样,除了:InterfaceAInterfaceB
  2. 单例仅用于特定范围或子注入器,其中许多是在程序执行期间创建的.

默认的无范围方法会导致为每个接口注入创建RealClass/的多个实例TestClass.我不希望这样,所以我尝试使用范围,子注入器和其他方法来实现它.没有任何效果:

  • 儿童注射方法:我创建了一个新的注射器,并尝试结合TestClassRealClass以单一实例在该注射器.问题是,是否TestClassRealClass正在使用中的父喷射器构造,并且因为它是一个单件,它已经被实例化(除非Stage.DEVELOPMENT).例如,InterfaceA无法TestClass在父注入器中绑定到它,然后将其重新绑定为子注入器中的单例.
  • 范围方法:我创建一个自定义范围和注释TestClassRealClass.然后,我进入并退出此范围以获取该范围内的单个实例.问题是我的代码是多线程的,并且从一个线程改变范围会影响全局注入器可以看到的内容并且创建其他实例.
  • 结合儿童注射器和范围方法.我尝试为每个使用此自定义作用域创建子注入器,但随后RealClass在父作业中绑定失败

    No scope is bound to name.package.WhateverScope.
    
    Run Code Online (Sandbox Code Playgroud)

    因为它似乎坚持认为它始终WhateverScope可用,而不仅仅是在儿童注射器中.

所有这些问题似乎都是由于我需要能够配置是否在父级中使用TestClass或者RealClass在父级中,然后能够稍后将它们实例化为特定的一组对象的单例.我正在把头发拉出来完成如何完成!

顺便说一句,Guice范围的文档很糟糕,几乎无法理解.这篇文章是唯一让我在任何地方的文章:

java dependency-injection multiple-inheritance guice

6
推荐指数
1
解决办法
1663
查看次数

可以精确表示为浮点数/双精度数的整数范围

什么是(连续的)整数的确切范围,可以表示为double(resp.浮点?)我问的原因是因为我对这样问题感到好奇,因为会发生精度损失.

那是

  1. 什么是最小正整数m,m+1不能精确表示为double(resp.浮点数)?
  2. 什么是最大的负整数-n,-n-1不能精确表示为double(resp.浮点数)?(可能与上面相同).

这意味着,每一个之间的整数-nm具有精确的浮点表示.我基本上都在寻找[-n, m]浮动和双打的范围.

我们将范围限制为标准IEEE 754 32位和64位浮点表示.我知道浮点数有24位精度,双精度数有53位(都带有隐藏的前导位),但由于浮点表示的复杂性,我正在寻找权威的答案.请不要挥手!

(理想的答案将证明,所有的整数从0m的表达,这m+1是没有的.)

c# java floating-point double integer

6
推荐指数
1
解决办法
1819
查看次数

如何设计流星智能包以透明地将应用程序分成不同的实例?

对于那些非常熟悉Meteor架构的人来说,这是一个问题.

我正在尝试设计一个智能包,可以透明地运行Meteor应用程序的几个"副本".也就是说,鉴于现有的Meteor应用程序和几个预定义的用户组,该软件包可以半自动地"隔离"应用程序 - 以对每组用户来说运行它,看起来只有那些用户正在使用该应用程序.

据我所知,此功能可以为任何应用程序定制设计.但是,我正在寻找一种智能包最简单的方法,在任何现有应用程序的基础上提供此功能,同时考虑到Meteor的使用Collection和所有.因此,它应该或多或少地满足以下要求:

  • 它应该与常规Meteor应用程序一样高效.
  • 转换现有Meteor应用程序以使用此系统应该需要最少的代码修改.
  • 该软件包不应该修改或覆盖Meteor,并且相对适合未来.

以下是我为此问题考虑的一些方法和相应的缺点:

  • 使用常规Meteor应用程序的所有集合,并使用表示用户所在组的附加id标记每个文档.每个用户的发布/订阅仅拉取具有相同组ID的文档.
  • Meteor.Collection以使其了解这些不同组的方式覆盖(或实现相同的接口),并且从客户端的角度来看,其行为就像当前用户的组是整个应用程序一样.

我正在寻找真正了解Meteor系统的人的好主意.如何设计此功能的方式是绝大多数Meteor应用程序可以轻松转换为使用它(即避免疯狂的黑客攻击)但在Meteor上实现是否简单有效?

(如果你是纽约市地区的流星大师,我很乐意带你出去吃饭来讨论这个!)

architecture package meteor meteorite

6
推荐指数
1
解决办法
714
查看次数

使用LINQ to SQL读取庞大的表:耗尽内存与慢速分页

我有一个庞大的表,我需要阅读某个订单并计算一些汇总统计数据.该表已经有一个正确顺序的聚集索引,因此获取记录本身非常快.我正在尝试使用LINQ to SQL来简化我需要编写的代码.问题是我不想将所有对象加载到内存中,因为DataContext似乎可以保留它们 - 但是尝试对它们进行分页会导致可怕的性能问题.

这是故障.最初的尝试是这样的:

var logs = 
    (from record in dataContext.someTable 
     where [index is appropriate]
     select record);

foreach( linqEntity l in logs )
{
    // Do stuff with data from l
}
Run Code Online (Sandbox Code Playgroud)

这是非常快的,并且流速很好,但问题是应用程序的内存使用量不断上升.我的猜测是LINQ to SQL实体被保留在内存中而没有正确处理.因此,在创建了很多对象C#时读取内存不足后,我尝试了以下方法.这似乎是许多人使用的常见Skip/ Take范例,具有节省内存的附加功能.

请注意,这_conn是预先创建的,并且为每个查询创建临时数据上下文,从而导致关联的实体被垃圾回收.

int skipAmount = 0;
bool finished = false;

while (!finished)
{
    // Trick to allow for automatic garbage collection while iterating through the DB
    using (var tempDataContext = new MyDataContext(_conn) {CommandTimeout = …
Run Code Online (Sandbox Code Playgroud)

c# sql linq database skip-take

5
推荐指数
1
解决办法
6416
查看次数

从多个Java线程调用不可重入的本机共享库

我有一些Java代码调用一些本机代码,最初是用Fortran编写的,使用JNA.(这是一个数值库,很多数学人在Fortran中编写代码.)它被编译成一个.so库,见下文:

在我的代码中测试了所有单元,我得到了很好的结果,但后来我尝试使用来自多个线程的代码,一切都开始失败,出现了奇怪的错误.然后我研究了一些关于重入Fortran代码的东西,并意识到我使用的库有一些全局变量(SAVEFortran中的关键字,当再次调用函数时,它记住变量的值:fortran SAVE语句)

现在我正在用synchronized块包装调用库,但这显着地阻碍了性能.在我看来,重新设计库可能需要付出很大的努力才能重入(它有几千行数字代码,并且不清楚当子程序运行时值如何延续.)有谁知道解决问题的最佳方法是什么?我的想象力表明......

  • 有没有办法让每个Java线程在内存中加载共享库的单独副本,以便全局变量有效地是线程本地的?这甚至可能吗?我不确定JNA的直接绑定或库绑定是如何工作的,如果有办法以这种方式使用它.
  • 即使从不同的VM调用它,它仍然会被搞砸吗?我该如何检查以确定?
  • 有没有办法让get gfortran(gcc)以可重入的方式编译Fortran代码?
  • 是否有一些快速而肮脏的方法使Fortran代码可以重入?我搜索了RECURSIVE关键字,它显然将变量保存在堆栈中,但这似乎与现有代码不兼容.
  • 还有其他可能的解决方

我确认多个虚拟机可以正常运行; 这是有道理的,因为他们不共享记忆.仍然是一个PITA,虽然比线程更不方便.

java fortran shared-libraries jna reentrancy

5
推荐指数
1
解决办法
976
查看次数

Meteor的DDP在同步非常大的集合方面效率如何?

Meteor的DDP协议非常适用于将一小部分数据从服务器同步到基于浏览器的客户端,这本身就限制了处理的数据量.

但是,请考虑Meteor用于将大型集合从一个服务器同步到另一个服务器的情况,或者仅使用DDP协议本身将一个MongoDB与另一个服务器同步.

在这种情况下(计算上)DDP的效率如何?它如何扩展到几个客户?性能仅限于带宽还是DDP也会受到一些CPU限制?现在可以通过DDP合理同步的最大数据量是多少?DDP是否是这样做的错误方法(参见下面的参考资料)?

一些额外的想法:

  • 据我所知,当前版本的DDP跟踪每个客户的整个集合,因此它不能渐近非常高效.
  • 创建智能集合是为了提高服务器到客户端同步集合的性能.但是我不清楚这是否会改善DDP或其他.

也可以看看:

编辑:

经过一些实证经验,我必须得出结论,答案是"效率不高".有关说明,请参阅/sf/answers/1528487411/.

与Meteor开发人员的讨论表明,将来通过修订DDP和发布 - 订阅API来解决此问题,合并框将被删除,客户端将处理合并.这将节省服务器上的CPU /内存,并允许通过线路发送更大的数据集.

publish-subscribe database-replication meteor ddp

5
推荐指数
1
解决办法
1633
查看次数

为什么Javascript比较运算符在数学上不一致?

在很久以前的数学课上,我被教导过

a == b 当且仅当 a <= b且b <= a时.

Javascript似乎不这么认为:

> new Date(400) <= new Date(400)
true
> new Date(400) >= new Date(400)
true
> new Date(400) == new Date(400)
false
Run Code Online (Sandbox Code Playgroud)

有人可以解释导致这种结果的类型强制规则吗?模糊等于运算符似乎==应该相信两个Dates具有相等的值.

javascript datetime date type-conversion

5
推荐指数
1
解决办法
257
查看次数

在两个不同的数据文件上运行相同的 IPython 笔记本代码,并进行比较

当对两组不同的数据进行相同的分析时,有没有一种好的方法可以在 IPython Notebook (Jupyter) 中模块化和重用代码?

例如,我有一个笔记本,其中有很多单元格对数据文件进行分析。我有另一个相同格式的数据文件,我想运行相同的分析并比较输出。这些选项看起来都没有特别有吸引力:

  • 将单元格复制并粘贴到第二个笔记本。分析代码现在是重复的并且更难更新。
  • 将分析代码移至模块中并为两个文件运行它。这将丢失当前生成的数字的逐个单元格格式,并将它们简单地混杂在一个巨大的单元格中。
  • 将这两个文件加载到一个笔记本中并并行运行分析。这还涉及大量复制和粘贴,并且不能很好地推广到 3 或 4 个不同的数据文件。

有一个更好的方法吗?

matplotlib ipython jupyter jupyter-notebook

5
推荐指数
1
解决办法
1450
查看次数