Yes, it's entirely possible that his might work for matrices over finite fields. If not, we should see if we can modify it so that it does work.
On Thu, Feb 20, 2014 at 10:02 PM, Tim Holy <[email protected]> wrote: > It's not Gaussian elimination (it's better!), but aren't these relevant? > https://github.com/JuliaLang/julia/pull/5381 > https://github.com/JuliaLang/julia/pull/5430 > > --Tim > > On Thursday, February 20, 2014 09:12:51 PM Stefan Karpinski wrote: > > We ought to have a generic Gaussian elimination algorithm and making sure > > that it can be used for finite fields is a good test of its generality. > > This is definitely the kind of thing that can be more reasonably in Julia > > than in many other systems. The big difference is that while in this > > particular case you may have to write Gaussian elimination, at least the > > next person with their own integer matrix type won't. > > > > On Thu, Feb 20, 2014 at 7:29 PM, andrew cooke <[email protected]> wrote: > > > Indeed, but then I need to provide my own implementation. I was hoping > > > (navely in retrospect, since everyone else wants fast rather than > generic > > > code) that I could call generic code for "matrix division" with a new > > > numerical type and it would "just work". > > > > > > I think this is still the best approach - but I need to write that code > > > (Gaussian elimination) myself, in a generic way, then define my new > > > numeric > > > type, then call it. > > > > > > Which is much more work than I had hoped. > > > > > > Cheers, > > > Andrew > > > > > > On Thursday, 20 February 2014 21:14:38 UTC-3, Patrick O'Leary wrote: > > >> You can redefine the \ operator for your type to not do this. > > >> > > >> On Thursday, February 20, 2014 6:08:31 PM UTC-6, andrew cooke wrote: > > >>> While I still don't see a problem with the theory side of this, > there is > > >>> a practical problem - Gaussian Elimination in Julia seems to be > > >>> delegated > > >>> to LAPACK and arguments are promoted to Float: > > >>> > > >>> julia> [1 0; 0 1] \ [1, 2] > > >>> > > >>> 2-element Array{Float64,1}: > > >>> 1.0 > > >>> 2.0 > > >>> > > >>> Andrew > > >>> > > >>> On Thursday, 20 February 2014 19:45:28 UTC-3, andrew cooke wrote: > > >>>> A broad and a narrow question... > > >>>> > > >>>> If Julia supports the definition of new integer types can I define a > > >>>> new type for a finite field and then use existing linear algebra > > >>>> libraries > > >>>> to do maths with them? Could I define an integer type for > polynomials? > > >>>> Is > > >>>> this the kind of thing that would work in theory but not in > practice? > > >>>> Has > > >>>> anyone done this? > > >>>> > > >>>> Specifically, I need to solve a problem modulo 2 (GF(2) - addition > and > > >>>> subtraction are XOR; multiplication is AND; division is trivial). I > > >>>> was > > >>>> about to write my own Gaussian Elimination and then remembered a > > >>>> comment > > >>>> from here saying Julia is the first language where you can define > new > > >>>> integers... > > >>>> > > >>>> Am I talking rubbish? I'm not a mathematician, so I may be > completely > > >>>> muddled anyway. > > >>>> > > >>>> Thanks, > > >>>> Andrew > > >>>> > > >>>> PS I guess for best speed I should use a Uint for my 0s and 1s? > > >>>> Assuming the problem is small enough that it will still fit in > cache? >
