You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
psblas3/base/serial
Salvatore Filippone e42460b161 psblas-typext
Modified the spmat_types to contain type-bound procedures for CSMM and
CSSM. 
Modified the PSBLAS and psb_map accordingly.
16 years ago
..
aux psblas: 17 years ago
coo psblas2-dev: 17 years ago
csr psblas2-dev: 17 years ago
dp psblas: 17 years ago
f77 Started playing around with type extensions and typebound 17 years ago
jad psblas2-dev: 17 years ago
Makefile psblas: 17 years ago
README.serial *** empty log message *** 17 years ago
psb_ccoins.f90 psblas2-dev: 17 years ago
psb_ccsmm.f90 psblas-typext 16 years ago
psb_ccsmv.f90 psblas-typext 16 years ago
psb_ccsnmi.f90 psblas2-dev: 17 years ago
psb_ccsprt.f90 psblas2-dev: 17 years ago
psb_ccssm.f90 psblas-typext 16 years ago
psb_ccssv.f90 psblas-typext 16 years ago
psb_cest.f90 psblas-2.2-maint: 17 years ago
psb_cfixcoo.f90 psblas: 17 years ago
psb_cgelp.f90 psblas2-dev: 17 years ago
psb_cipcoo2csc.f90 psblas2-dev/base/serial 17 years ago
psb_cipcoo2csr.f90 psblas2-dev: 17 years ago
psb_cipcsr2coo.f90 psblas2-dev: 17 years ago
psb_cneigh.f90 psblas2-dev: 17 years ago
psb_cnumbmm.f90 psblas2-dev: 17 years ago
psb_crwextd.f90 psblas2-dev: 17 years ago
psb_cspclip.f90 psblas2-dev: 17 years ago
psb_cspcnv.f90 psblas2-dev: 17 years ago
psb_cspgetrow.f90 psblas2-dev: 17 years ago
psb_cspgtblk.f90 psblas2-dev: 17 years ago
psb_cspgtdiag.f90 psblas2-dev: 17 years ago
psb_cspscal.f90 psblas2-dev: 17 years ago
psb_csymbmm.f90 psblas2-dev: 17 years ago
psb_ctransc.f90 psblas2-dev: 17 years ago
psb_ctransp.f90 psblas2-dev: 17 years ago
psb_dcoins.f90 psblas2-dev: 17 years ago
psb_dcsmm.f90 psblas-typext 16 years ago
psb_dcsmv.f90 psblas-typext 16 years ago
psb_dcsnmi.f90 psblas2: 17 years ago
psb_dcsprt.f90 Merged precision fix for csprt from trunk. 17 years ago
psb_dcsrp.f90 psblas-dev: 17 years ago
psb_dcsrws.f90 psblas-dev: 17 years ago
psb_dcssm.f90 psblas-typext 16 years ago
psb_dcssv.f90 psblas-typext 16 years ago
psb_dfixcoo.f90 psblas: 17 years ago
psb_dgelp.f90 psblas-dev: 17 years ago
psb_dipcoo2csc.f90 psblas2-dev/base: 17 years ago
psb_dipcoo2csr.f90 psblas-2.2-maint: 17 years ago
psb_dipcsr2coo.f90 psblas-2.2-maint: 17 years ago
psb_dneigh.f90 psblas-dev: 17 years ago
psb_dnumbmm.f90 psblas-2.2-maint: 17 years ago
psb_drwextd.f90 psblas-2.2-maint: 17 years ago
psb_dspclip.f90 psblas: 17 years ago
psb_dspcnv.f90 psblas2-dev: 17 years ago
psb_dspgetrow.f90 psblas-2.2-maint: 17 years ago
psb_dspgtblk.f90 psblas: 17 years ago
psb_dspgtdiag.f90 psblas-dev: 17 years ago
psb_dspscal.f90 psblas2-dev: 17 years ago
psb_dspsetbld.f90 psblas2-dev: 17 years ago
psb_dspshift.f90 psblas2-dev: 17 years ago
psb_dsymbmm.f90 psblas-2.2-maint: 17 years ago
psb_dtransp.f90 psblas2-dev: 17 years ago
psb_getifield.f90 psblas: 17 years ago
psb_getrow_mod.f90 psblas2-dev: 17 years ago
psb_ip_reord_mod.f90 psblas: 17 years ago
psb_lsame.f90 psblas-2.2-maint: 17 years ago
psb_regen_mod.f90 psblas2-dev: 17 years ago
psb_scoins.f90 psblas2-dev: 17 years ago
psb_scsmm.f90 psblas-typext 16 years ago
psb_scsmv.f90 psblas-typext 16 years ago
psb_scsnmi.f90 psblas2-dev: 17 years ago
psb_scsprt.f90 psblas2-dev: 17 years ago
psb_scssm.f90 psblas-typext 16 years ago
psb_scssv.f90 psblas-typext 16 years ago
psb_setifield.f90 psblas: 17 years ago
psb_sfixcoo.f90 psblas: 17 years ago
psb_sgelp.f90 psblas2-dev: 17 years ago
psb_sipcoo2csc.f90 psblas2-dev/base/serial 17 years ago
psb_sipcoo2csr.f90 psblas2-dev: 17 years ago
psb_sipcsr2coo.f90 psblas2-dev: 17 years ago
psb_sneigh.f90 psblas2-dev: 17 years ago
psb_snumbmm.f90 psblas2-dev: 17 years ago
psb_srwextd.f90 psblas2-dev: 17 years ago
psb_sspclip.f90 psblas2-dev: 17 years ago
psb_sspcnv.f90 psblas2-dev: 17 years ago
psb_sspgetrow.f90 psblas2-dev: 17 years ago
psb_sspgtblk.f90 psblas2-dev: 17 years ago
psb_sspgtdiag.f90 psblas2-dev: 17 years ago
psb_sspscal.f90 psblas2-dev: 17 years ago
psb_ssymbmm.f90 psblas2-dev: 17 years ago
psb_stransp.f90 psblas2-dev: 17 years ago
psb_update_mod.f90 psblas2-dev: 17 years ago
psb_zcoins.f90 psblas2-dev: 17 years ago
psb_zcsmm.f90 psblas-typext 16 years ago
psb_zcsmv.f90 psblas-typext 16 years ago
psb_zcsnmi.f90 psblas2-dev: 17 years ago
psb_zcsprt.f90 Merged precision fix for csprt from trunk. 17 years ago
psb_zcsrp.f90 psblas-dev: 17 years ago
psb_zcsrws.f90 psblas-dev: 17 years ago
psb_zcssm.f90 psblas-typext 16 years ago
psb_zcssv.f90 psblas-typext 16 years ago
psb_zfixcoo.f90 psblas: 17 years ago
psb_zgelp.f90 psblas-dev: 17 years ago
psb_zipcoo2csc.f90 psblas2-dev/base: 17 years ago
psb_zipcoo2csr.f90 psblas-2.2-maint: 17 years ago
psb_zipcsr2coo.f90 psblas-2.2-maint: 17 years ago
psb_zneigh.f90 psblas-dev: 17 years ago
psb_znumbmm.f90 psblas-2.2-maint: 17 years ago
psb_zrwextd.f90 psblas-2.2-maint: 17 years ago
psb_zspclip.f90 psblas: 17 years ago
psb_zspcnv.f90 psblas2-dev: 17 years ago
psb_zspgetrow.f90 psblas-2.2-maint: 17 years ago
psb_zspgtblk.f90 psblas: 17 years ago
psb_zspgtdiag.f90 psblas-dev: 17 years ago
psb_zspscal.f90 psblas2-dev: 17 years ago
psb_zspsetbld.f90 psblas2-dev: 17 years ago
psb_zspshift.f90 psblas2-dev: 17 years ago
psb_zsymbmm.f90 psblas-2.2-maint: 17 years ago
psb_ztransc.f90 psblas-2.2-maint: 17 years ago
psb_ztransp.f90 psblas2-dev: 17 years ago

README.serial

Most of the subdirectories here contain material that was originally
distributed through the serial sparse blas SPARKER project, plus a
number of extensions of our own design. The original file spblas.f can
be downloaded from matisa.cc.rl.ac.uk; of course any bugs in our 
implementation are our own to fix.  

The main reference for the serial
sparse BLAS is: 
Duff, I., Marrone, M., Radicati, G., and Vittoli, C.
Level 3 basic linear algebra subprograms for sparse matrices: a user 
level interface
ACM Trans. Math. Softw., 23(3), 379-401, 1997.

We also include  SMMP by Randolph E. Bank and
Craig C. Douglas  na.bank@na-net.ornl.gov and
na.cdouglas@na-net.ornl.gov;  we wrapped  it in a Fortran 95 interface
with dynamic memory allocation. 



How do you add a new storage format? Here is your checklist. 
1.  You have to invent a name for it, a name that can fit into 3
    letters.
2.  You have to decide whether you need fields into INFOA() for it, and
    invent their names/positions accordingly.
3.  You have to add an estimate (as good as possible) for the memory
    occupation into psb_cest.
4.  You have to be able to generate it. For our purposes, the minimum
    effort that still meets the requirements is the ability to convert
    to/from COOrdinate; the relevant code (properly encapsulated in
    subroutines) should be added into psb_spcnv; you can take Xcocr as
    the model. You may or may not be able to do it "in place";
    ipcoo2csr & friends do just that; if you can, please add it because
    it may come in handy.
5.  If you need to sort entries, it usually better to use imsrx than
    isrx. This is because coefficients lists are likely to contain
    multiple ordered sublists ("runs"), and the merge sort algorithm
    implemented in imsrx is capable of taking advantage of them,
    whereas the isrx quicksort cannot. 
6.  You have to be able to convert it back to COOrdinate. This is
    usually not hard, because the code that does the MV multiply is
    already (maybe implicitly) walking through the coefficients while
    keeping track of both row and column index, thus it suffices to
    copy them as you meet them, and then call psb_fixcoo (which sorts
    and compacts the output) on the result. 
7.  You have to embed the MV and SV codes in the infrastructure; this
    is done first in the xSWMM and xSWSM routines that do a select on
    the FIDA value. Below this level you're free to do as you please. 
8.  You have to extend the output capability of psb_Xcsprt. Again this
    is  easy for the same reasons as in 6. 
9.  You have to extend psb_Xcsrws for DIAG preconditioner. 
10. Provide an UPDATE functionality, and add it to psb_update_mod;
    currently JAD is out of this. 
11. You have to provide the query facilities used in PSB_XSPINFO
    (included  in base/modules/psb_spmat_type). 
12. You have to provide the functionality to extract a block of
    rows in psb_getrow_mod.f90. This is used in the GETROW/GETBLK/CLIP
    chain; GETROW is (all that is) used by the ILU factorization. 
13. You have to provide the GETDIAG functionality. 
14. RWEXTD: what do we do here? Should we switch to/from COO?????
    The current interface is ugly! 
15. CSC is currently a second class citizen; it is only needed for
    interfacing UMFPACK in the mld2p4 preconditioners. 

Is this complete? I sure hope so....