问题标签 [colt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Matrix rank doesn't work as per API specs in parallel colt
I am using parallel colt wherein I need to find the rank of a matrix. The API documentation says the following about the following about DoubleAlgebra#rank
:
rank(DoubleMatrix2D A)
Returns the effective numerical rank of matrix A, obtained from Singular Value Decomposition.
But when I use it in my code, I get an IllegalArgumentException at runtime:
The API doesn't mention that a matrix needs to be dense. In my IDE (I use Intellij IDEA), when I ctrl+click the method name in my code, it goes to the source, which shows
Bottomline, everywhere I see the requirement for a DoubleMatrix2D
object, not a DenseDoubleMatrix2D
object. Any idea why the runtime exception happens?
java - 使用 Colt 对 Nullspace 进行采样
我正在编写 Java 并使用 colt 作为我的矩阵库,并希望在矩阵的内核中找到一个(任何)向量。我可以使用 sympy 在 python 中执行此操作,如下所示:
使用 sympy 我可以调用 nullspace 来获取整个 nullspace,或者使用 rref 来获取在缩减为行梯形形式时使用的枢轴,然后我自己在 nullspace 中找到一个向量。我在 Colt 中找不到计算零空间的函数,并且 trapezoidalLower 不返回枢轴。
我是要自己写 rref 还是有人知道用 Colt 实现这一目标的更高层次的方法?
java - Colt 是否提供“d 维”矩阵?
Colt 库假装提供“密集和稀疏的固定大小(不可调整大小)1,2、3 和 d 维矩阵”(部分特征/模板化多维矩阵)。
但在 API 本身我看不到任何实现,高于 3:http ://acs.lbl.gov/ACSSoftware/colt/api/cern/colt/matrix/package-summary.html
请治愈我疲倦的眼睛:)
multithreading - 如何访问 Spark GraphX .map 循环之外的值?
全新的 Apache Spark,我有点困惑如何更新.mapTriplets
GraphX 中迭代之外的值。见下文:
我猜这是由于 an 的设计,RDD
并且没有简单的方法来更新tempMatrix
值。当我运行上面的代码时,该tempMatrix.set
方法什么也不做。尝试在调试器中跟踪问题是相当困难的。
有没有人有一个简单的解决方案?谢谢!
编辑
我在上面进行了更新以显示这stationaryDistribution
是一个图表 RDD。
java - java中的向量矩阵乘法与并行colt
我想在 java 和库并行 colt 中将向量 (1 xn) 与矩阵 (mxn) 相乘。我想我之所以选择它是因为它的名字是平行的。所以你被邀请给我其他不错的java矩阵库。
但我的问题特别是向量矩阵乘法......我还没有在 DenseDoubleMatrix2D 类上找到单独的方法?我该怎么做?
谢谢!
colt - java - 如何使用java colt lib组合两个sparsematrix?
我正在使用 java colt 库来处理稀疏矩阵。输入是具有相同行号的两个稀疏矩阵,例如,
经过 v1 和 v2 的一些计算。我想将 v2 的结果附加到 v1 或者它们也可以分配给另一个新矩阵,例如,
有人知道如何用 colt 实现这一目标吗?有现成的方法吗?
java - Java中大型稀疏矩阵的Cholesky分解
我想在 Java 中对大型稀疏矩阵进行 Cholesky 分解。目前我正在使用Parallel Colt库类SparseDoubleCholeskyDecomposition但它比使用我在 C 中编写的密集矩阵代码要慢得多,我在 java 中使用 JNI。
例如,对于 5570x5570 的非零密度为 0.25% 的矩阵,使用 SparseDoubleCholeskyDecomposition 需要26.6 秒来分解,而我自己的使用密集存储的相同矩阵的代码只需要1.12 秒。但是,如果我将密度设置为 0.025%,那么 colt 库只需要 0.13 秒。
我还使用压缩行存储和 OpenMP 在 C 中编写了我自己的稀疏矩阵 Cholesky 分解,它也比 SparseDoubleCholeskyDecomposition 快很多,但仍然比我使用密集存储的算法慢。我可能可以进一步优化它,但无论如何 Cholesky 因子都很密集,因此它既不能解决速度问题,也不能解决存储问题。
但是我想要毫秒级的时间,我最终需要扩展到超过 10000x10000 的矩阵,所以即使是我自己的密集矩阵的密集代码也会变得太慢并且使用太多内存。
我有理由相信稀疏矩阵的 Cholesky 分解可以更快地完成并且使用更少的内存。也许我需要一个更好的 Java BLAS 库?是否有 Java 库可以有效地对稀疏矩阵进行 Cholesky 分解?也许我没有以最佳方式使用 Parallel Colt?
java - 自 Java 8 以来的旧库并发编译失败
数学库colt(1.2 版)依赖于库EDU.oswego.cs.dl.util.concurrent (gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro. html). 编译并发(版本 1.3.4)适用于 java 版本 7 或以前的版本。但是在 java 8 (javac 版本 1.8)上编译失败。编译器选项-source 1.4 -target 1.4
不能解决问题。
原因是,java 8 在接口 java.util.Map: 中引入了一个新方法“remove” default boolean remove(Object key, Object value)
。这个新方法与实现 java.util.Map: 的库类 ConcurrentHashMap.java 中的“remove”方法发生冲突protected Object remove(Object key, Object value)
。
一旦确定了问题的原因,我就可以通过重命名库类 ConcurrentHashMap.java 中的方法来解决问题。这是可以接受的,因为库方法仅受保护(而不是公开的)。
是否有其他可能性来确保 java 8 兼容性?
- 编译器选项?
- 注释(“@ForceOverride”)?
java - 如何减去两个稀疏向量?
我是新手SparseVector
。我也想减去两个SparseVectors
并返回结果SparseVector
。
Vector
和 和有什么不一样SparseVector
?
我试图从定义函数开始,它需要两个SparseVector
,但没有得到任何帮助我的东西!