cmu-phil / tetrad

Repository for the Tetrad Project, www.phil.cmu.edu/tetrad.
GNU General Public License v2.0
402 stars 110 forks source link

Matrix Toolkits for Java (MTK) doesn't play well with 64 bit Windows #59

Closed jdramsey closed 8 years ago

jdramsey commented 8 years ago

If imports starting with no.uib.cipr.matrix are commented out, the problem code is put in red in IntelliJ. Classes affected are IndTestHsic, KernelUtils, Ling, Lingam.

The compiled classes seem to run OK, but the relevant tests break when run in Maven.

I think we should support 64 bit Windows. If so, need to translate this matrix algebra to a different library.

jdramsey commented 8 years ago

I've worked on Ling and now Lingam, trying to substitute the Apache matrix library for the MTJ library. The only thing missing is a QL decomposition; I've substituted QR, but I have to think that through.

ekummerfeld commented 8 years ago

IndTestHsic appears to be using the following from those imports: Matrix objects made either with Matrix or DenseMatrix, e.g. "Matrix Kyx = new DenseMatrix(m, m);" some functions built into the Matrix object class, such as matrix multiplications, e.g. "Ky.mult(Kx, Kyx);" and .get and .numcolumns and .transpose and .copy and .set and .solve Matrices is also used e.g. "Gztzr.solve(Matrices.identity(kz), ZI);"

jdramsey commented 8 years ago

Actually all of those are doable; that might be easier than Ling to translate, although I recall there being a lot more red stuff.

jdramsey commented 8 years ago

Solve is just inverse.

ekummerfeld commented 8 years ago

That's all the red stuff that I found but I might have messed something up. Gonna do a fresh clone and intelliJ project and look again.

jdramsey commented 8 years ago

Hold on, I didn't push the stuff I just did. Give me a couple of minute.

jdramsey commented 8 years ago

OK should be there.

ekummerfeld commented 8 years ago

I just reran the maven tests and this was the result:

Tests in error: testIncompleteCholesky(edu.cmu.tetrad.test.TestIndTestHsic): unable to load from [netlib-native_system-win-x86_64.dll] test6(edu.cmu.tetrad.test.TestLing): column index (5)

Tests run: 439, Failures: 0, Errors: 2, Skipped: 0

ekummerfeld commented 8 years ago

In addition to the no.ui etc. imports that get red, TestIndTestHsic has another import that gets red.

import junit.framework.TestCase; import no.uib.cipr.matrix.DenseMatrix; import no.uib.cipr.matrix.Matrices; import no.uib.cipr.matrix.Matrix;

All of those imports get redded out.

jdramsey commented 8 years ago

I think I fixed everything. Could you try cloning again and running mvn test? It passes for me but hoping it passes for you.

jdramsey commented 8 years ago

By the way, when you go to work on the project, could you fork it and work on the fork instead of just a clone of the master repository? That way you can issue pull requests, which are a lot safer.

ekummerfeld commented 8 years ago

[INFO] BUILD SUCCESS

nice :)

jdramsey commented 8 years ago

HA! Nice. You are now compatible. :)

On Tue, Nov 17, 2015 at 4:29 PM, ekummerfeld notifications@github.com wrote:

[INFO] BUILD SUCCESS

nice :)

— Reply to this email directly or view it on GitHub https://github.com/cmu-phil/tetrad/issues/59#issuecomment-157513296.

Joseph D. Ramsey Special Faculty and Director of Research Computing Department of Philosophy 135 Baker Hall Carnegie Mellon University Pittsburgh, PA 15213

jsph.ramsey@gmail.com Office: (412) 268-8063 http://www.andrew.cmu.edu/user/jdramsey

jdramsey commented 8 years ago

I think this is closed.