Catching Acces Violation/Segmentation Fault
Silverling
este_aqui_ at hotmail.com.remove.underscores
Wed May 9 11:01:23 PDT 2007
> Is it an arbitrary MxN sized matrix?
Yes. It is resizeable after creation for purposes of multiplication and transpose.
> Will it use vendor-provided accelerated BLAS libraries where available?
Never heard of BLAS, but my I don't see why one couldn't change the code to use such libraries. Anyway, I'm keeping my module's dependencies down (currently depends only on std.string).
> Is it parameterized on element type?
I'm unsure of what you mean, but as I said before it is a template class. The matrices values could have any type, even other classes.
> Storage format?
Currently Type[row][col].
> Can it handle different storage schemes (e.g. sparse formats like CSC, CSR, banded, symmetric).
Not yet, but it can be altered to support them, probably not by me. I'll use it primarily to calculate view frustums (which usually don't have a lot of '0' justifying the current storage scheme) and vectorial calculus.
Implementing such schemes would only need to override the opIndex and opIndexAssign. The current implementation still accesses the matrix's data directly, but that can be easily changed (which I will, due to your idea).
I've started this module because I wanted to learn operator overloading on D. I'm having a small issue on overloading the opMul. I templatized it but I need a specialization to multipliy by a matrix. DMD is not accepting
void opMul(T:Matrix)(T mult)
meanwhile I've shifted my attention towards inverse matrix, determinant and equation system solving.
Later on I'll use it for Hamming coding (to port a script of mine from MatLab), where I'll test the matrix's behavior with type 'bool', although for memory purposes, it'll use bit arrays or (a lot of) masking.
I'll send the source if you'd like to take a peek.
More information about the Digitalmars-d-learn
mailing list