I just realized that my test case is obviously singular, so not invertible. But I don't think it even gets to the actual inversion code before erroring, so I doubt that's the problem.
-Jim On Tuesday, March 25, 2014 10:38:45 AM UTC-5, James Crist wrote: > > Here's the gist: https://gist.github.com/jcrist/ad663d6bdc4d82896176 > > I tried to simplify everything down to just the bare essentials, but there > may be something I missed. Gives the same error as it did in the full > code though, so I think I got it all. > > I'm running version 0.2.0. > > Thanks, > > -Jim > > On Tuesday, March 25, 2014 10:21:10 AM UTC-5, Andreas Noack Jensen wrote: >> >> A gist would be helpful. By the way, which version of Julia are you >> running? >> >> >> 2014-03-25 16:19 GMT+01:00 James Crist <[email protected]>: >> >>> I'm probably not. New to this language, still figuring things out. The >>> matrix type seems to be inferred correctly though. I'll put a gist up in a >>> bit to try and get some more relevant feedback. >>> >>> >>> On Tuesday, March 25, 2014 9:54:53 AM UTC-5, Andreas Noack Jensen wrote: >>> >>>> I don't think you are right about LAPACK. The code tries to promote to >>>> a type which is stable under lu factorizing which is the intermediate step >>>> in the calculation. The problem could be that your matrix type is not >>>> inferred correctly. Please try to let your type by subtype of Number and >>>> then define your matrix by >>>> >>>> a = Mytype[mytype(1) mytype(2); mytype(3) mytype(4)] >>>> >>>> and see if it works. >>>> >>>> >>>> 2014-03-25 15:29 GMT+01:00 James Crist <[email protected]>: >>>> >>>> Yeah, I get a "ERROR: no method Triangular{..." error, because my type >>>>> doesn't subtype Number. If I do subtype number, then it wants a >>>>> conversion >>>>> function to convert it to a float, so it can use the LAPACK routines. >>>>> >>>>> -Jim >>>>> >>>>> >>>>> On Tuesday, March 25, 2014 9:22:29 AM UTC-5, Andreas Noack Jensen >>>>> wrote: >>>>> >>>>>> Have you tried to invert it? Maybe it works already. There is a >>>>>> generic inv in base/linalg/generic.jl. You'll have to define a one >>>>>> method >>>>>> for you type and maybe also a zero method. >>>>>> >>>>>> >>>>>> 2014-03-25 15:14 GMT+01:00 James Crist <[email protected]>: >>>>>> >>>>>> I have a type I've defined. It's not a number, but it has all >>>>>>> arithmetic operations defined for it. Is there a way to calculate the >>>>>>> inverse of a matrix of a user defined type? For example, if I was to >>>>>>> define: >>>>>>> >>>>>>> a = [mytype(1) mytype(2); mytype(3) mytype(4)] >>>>>>> b = inv(a) >>>>>>> >>>>>>> Looking through base, there doesn't seem to be a way to find >>>>>>> inverses of non-numeric matrices (although I may be missing it). For my >>>>>>> case, even a simple algorithm that only works well for small matrices >>>>>>> (<10x10) would be more than sufficient. If a way for doing this doesn't >>>>>>> currently exist, I'll probably try to roll my own. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Med venlig hilsen >>>>>> >>>>>> Andreas Noack Jensen >>>>>> >>>>> >>>> >>>> >>>> -- >>>> Med venlig hilsen >>>> >>>> Andreas Noack Jensen >>>> >>> >> >> >> -- >> Med venlig hilsen >> >> Andreas Noack Jensen >> >
