if you have scala plugin installed in idea, i have this scala DSL module
added to mahout on this branch
https://github.com/dlyubimov/mahout-commits/tree/dev-0.9.x-scala

file 
/home/dmitriy/projects/asf/mahout-commits/math-scala/src/test/scala/mahout/math/MatrixOpsTest.scala

this test fails if used with chol(a, true) or if rightMultiply(eye(4)):

  test("chol") {

    // try to solve Ax=b with cholesky:
    // this requires
    // (LL')x = B
    // L'x= (L^-1)B
    // x=(L'^-1)(L^-1)B

    val a = dense((1, 2, 3), (2, 3, 4), (3, 4, 5.5))

    // make sure it is symmetric for a valid solution
    a := a.t %*% a

    printf("A= \n%s\n", a)

    val b = dense((9, 8, 7)).t

    printf("b = \n%s\n", b)

    // fails if chol(a,true)
    val ch = chol(a)

    printf("L = \n%s\n", ch.getL)

    printf("(L^-1)b =\n%s\n", ch.solveLeft(b))

    val x = ch.solveRight(eye(3)) %*% ch.solveLeft(b)

    printf("x = \n%s\n", x.toString)

    val axmb = (a %*% x) - b

    printf("AX - B = \n%s\n", axmb.toString)

    assert(axmb.norm < 1e-10)

  }




On Wed, Jul 17, 2013 at 2:28 PM, Ted Dunning <[email protected]> wrote:

> These problems are very strange.
>
> I am now looking at the tests for Cholesky and it seems that they cover all
> of the sorts of things that you are talking about.
>
> I can fix the size compatibility test and will add a test that implements
> your other issue to see if that helps me understand what is happening.
>
>
> On Wed, Jul 17, 2013 at 1:02 PM, Dmitriy Lyubimov <[email protected]>
> wrote:
>
> > btw, another nitpicking, solveRight(eye(n) ) and solveLeft() do not check
> > for cardinality of argument, throwing ArrayOutOfBounds. yes the burden of
> > dumbness is on the user but the burden of explanation is on
> implementation
> > :)
> >
>

Reply via email to