- two extreme options for design:
- bundle routines in modules functionally
- difficult to add new storage formats
- ``class'' modules for each sparse storage type
- difficult to add new methods
- chose hybrid approach
- module for each storage type containing:
- type definition
- routines to operate on that type
- module for each method to define generic procedure for that method
- contains routine for each storage type
- hybrid approach makes adding a new solver much easier, at the
expense of slightly more effort to add a new storage type
- to add new sparse storage type:
- create new ``class'' module
- add new specific routine in each solver module
- to add new solver simply create new solver module
|