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 <crist...@umn.edu>:

> 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 <cris...@umn.edu>:
>>
>> 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

Reply via email to