eina_matrixsparse: welcome sparse matrix implementation and tests.
authorbarbieri <barbieri>
Fri, 4 Sep 2009 13:43:44 +0000 (13:43 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 4 Sep 2009 13:43:44 +0000 (13:43 +0000)
commit80ee93780772bd2db3de5efd65009ed8edaf6087
tree90cdb528ed2a60c5cee82427e30032fde06545ea
parentdf97e3e933d014608677643dc35a544723a98326
eina_matrixsparse: welcome sparse matrix implementation and tests.

Sparse Matrix was implemented and tested by Rafael Antognolli and
myself in order to implement optimized large sparse matrix walk in
some products, one of them WebKit-EFL optimizations.

We have done extensive tests, with good code coverage. Similar to
lists/inlists, we keep pointer to last known element and similar to
iterators we keep reference to last accessed row and cell inside
rows. This allows fast sequential access (for i... for j... m[i,j]),
that is our most common usage case.

Rows are kept in a list, with cells inside that row as another
list. It's not similar to most book implementations where cells keep
reference to their sibling cells in other rows as well, we opted to
not do that to save some pointers and make algorithms simpler, still
do great for our use case.

This code was developed on behalf of our client, that wants to remain
unnamed so far. Thanks client ;-)

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42243 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33
configure.ac
src/include/Eina.h
src/include/eina_matrixsparse.h [new file with mode: 0644]
src/include/eina_private.h
src/lib/Makefile.am
src/lib/eina_main.c
src/lib/eina_matrixsparse.c [new file with mode: 0644]
src/tests/Makefile.am
src/tests/eina_suite.c
src/tests/eina_suite.h
src/tests/eina_test_matrixsparse.c [new file with mode: 0644]