Mercurial > forge
changeset 53:9a14868449af octave-forge
added spsum.m, is_sparse, is_real_sparse, is_complex_sparse
author | aadler |
---|---|
date | Fri, 16 Nov 2001 03:09:42 +0000 |
parents | 7c7ea879ed97 |
children | 284f83bc5f29 |
files | main/sparse/sp_test.m main/sparse/sparse_full.cc |
diffstat | 2 files changed, 281 insertions(+), 175 deletions(-) [+] |
line wrap: on
line diff
--- a/main/sparse/sp_test.m Wed Nov 14 15:21:33 2001 +0000 +++ b/main/sparse/sp_test.m Fri Nov 16 03:09:42 2001 +0000 @@ -122,167 +122,203 @@ i=1 ; % i= 1 + res(i)= res(i) +( is_sparse(ars) == 1 ); + i=i+1; % i= 2 + res(i)= res(i) +( is_real_sparse(ars) == 1 ); + i=i+1; % i= 3 + res(i)= res(i) +( is_complex_sparse(ars) == 0 ); + i=i+1; % i= 4 + + res(i)= res(i) +( is_sparse(acs) == 1 ); + i=i+1; % i= 5 + res(i)= res(i) +( is_real_sparse(acs) == 0 ); + i=i+1; % i= 6 + res(i)= res(i) +( is_complex_sparse(acs) == 1 ); + i=i+1; % i= 7 + + res(i)= res(i) +( is_sparse(acf) == 0 ); + i=i+1; % i= 8 + res(i)= res(i) +( is_real_sparse(acf) == 0 ); + i=i+1; % i= 9 + res(i)= res(i) +( is_complex_sparse(acf) == 0 ); + i=i+1; % i=10 + + if ~isempty(ars) + res(i)= res(i) + all( abs(spsum(ars) - sum(arf)) < 1e-12 ); + i=i+1; % i=11 + res(i)= res(i) + all( abs(spsum(ars,2) - sum(arf,2)) < 1e-12 ); + i=i+1; % i=12 + res(i)= res(i) + all( abs(spsum(acs,1) - sum(acf,1)) < 1e-12 ); + i=i+1; % i=13 + else + res(i)= res(i)+1; + i=i+1; + res(i)= res(i)+1; + i=i+1; + res(i)= res(i)+1; + i=i+1; + endif % % test sparse assembly and disassembly % res(i)= res(i) +all(all( ars == ars )); - i=i+1; % i= 2 + i=i+1; % i=14 res(i)= res(i) +all(all( ars == arf )); - i=i+1; % i= 3 + i=i+1; % i=15 res(i)= res(i) +all(all( arf == ars )); - i=i+1; % i= 4 + i=i+1; % i=16 res(i)= res(i) +all(all( acs == acs )); - i=i+1; % i= 5 + i=i+1; % i=17 res(i)= res(i) +all(all( acs == acf )); - i=i+1; % i= 6 + i=i+1; % i=18 res(i)= res(i) +all(all( acf == acs )); - i=i+1; % i= 7 + i=i+1; % i=19 [ii,jj,vv,nr,nc] = spfind( ars ); res(i)= res(i) +all(all( arf == full( sparse(ii,jj,vv,nr,nc) ) )); - i=i+1; % i= 8 + i=i+1; % i=20 [ii,jj,vv,nr,nc] = spfind( acs ); res(i)= res(i) +all(all( acf == full( sparse(ii,jj,vv,nr,nc) ) )); - i=i+1; % i= 9 + i=i+1; % i=21 res(i)= res(i) +( nnz(ars) == sum(sum( arf!=0 )) ); - i=i+1; % i=10 + i=i+1; % i=22 res(i)= res(i) + ( nnz(ars) == nnz(arf)); - i=i+1; % i=11 + i=i+1; % i=23 res(i)= res(i) +( nnz(acs) == sum(sum( acf!=0 )) ); - i=i+1; % i=12 + i=i+1; % i=24 res(i)= res(i) + ( nnz(acs) == nnz(acf)); - i=i+1; % i=13 + i=i+1; % i=25 % % test sparse op scalar operations % res(i)= res(i) +all(all( (ars==frn) == (arf==frn) )); - i=i+1; % i=14 + i=i+1; % i=26 res(i)= res(i) +all(all( (frn==ars) == (frn==arf) )); - i=i+1; % i=15 + i=i+1; % i=27 res(i)= res(i) +all(all( (frn+ars) == (frn+arf) )); - i=i+1; % i=16 + i=i+1; % i=28 res(i)= res(i) +all(all( (ars+frn) == (arf+frn) )); - i=i+1; % i=17 + i=i+1; % i=29 res(i)= res(i) +all(all( (frn-ars) == (frn-arf) )); - i=i+1; % i=18 + i=i+1; % i=30 res(i)= res(i) +all(all( (ars-frn) == (arf-frn) )); - i=i+1; % i=19 + i=i+1; % i=31 res(i)= res(i) +all(all( (frn*ars) == (frn*arf) )); - i=i+1; % i=20 + i=i+1; % i=32 res(i)= res(i) +all(all( (ars*frn) == (arf*frn) )); - i=i+1; % i=21 + i=i+1; % i=33 res(i)= res(i) +all(all( (frn.*ars) == (frn.*arf) )); - i=i+1; % i=22 + i=i+1; % i=34 res(i)= res(i) +all(all( (ars.*frn) == (arf.*frn) )); - i=i+1; % i=23 + i=i+1; % i=35 res(i)= res(i) +all(all( abs( (frn\ars) - (frn\arf) )<1e-13 )); - i=i+1; % i=24 + i=i+1; % i=36 res(i)= res(i) +all(all( abs( (ars/frn) - (arf/frn) )<1e-13 )); - i=i+1; % i=25 + i=i+1; % i=37 % % test sparse op complex scalar operations % res(i)= res(i) +all(all( (ars==fcn) == (arf==fcn) )); - i=i+1; % i=26 + i=i+1; % i=38 res(i)= res(i) +all(all( (fcn==ars) == (fcn==arf) )); - i=i+1; % i=27 + i=i+1; % i=39 res(i)= res(i) +all(all( (fcn+ars) == (fcn+arf) )); - i=i+1; % i=28 + i=i+1; % i=40 res(i)= res(i) +all(all( (ars+fcn) == (arf+fcn) )); - i=i+1; % i=29 + i=i+1; % i=41 res(i)= res(i) +all(all( (fcn-ars) == (fcn-arf) )); - i=i+1; % i=30 + i=i+1; % i=42 res(i)= res(i) +all(all( (ars-fcn) == (arf-fcn) )); - i=i+1; % i=31 + i=i+1; % i=43 res(i)= res(i) +all(all( (fcn*ars) == (fcn*arf) )); - i=i+1; % i=32 + i=i+1; % i=44 res(i)= res(i) +all(all( (ars*fcn) == (arf*fcn) )); - i=i+1; % i=33 + i=i+1; % i=45 res(i)= res(i) +all(all( (fcn.*ars) == (fcn.*arf) )); - i=i+1; % i=34 + i=i+1; % i=46 res(i)= res(i) +all(all( (ars.*fcn) == (arf.*fcn) )); - i=i+1; % i=35 + i=i+1; % i=47 res(i)= res(i) +all(all( abs( (fcn\ars) - (fcn\arf) )<1e-13 )); - i=i+1; % i=36 + i=i+1; % i=48 res(i)= res(i) +all(all( abs( (ars/fcn) - (arf/fcn) )<1e-13 )); - i=i+1; % i=37 + i=i+1; % i=49 % % test complex sparse op scalar operations % res(i)= res(i) +all(all( (acs==frn) == (acf==frn) )); - i=i+1; % i=38 + i=i+1; % i=50 res(i)= res(i) +all(all( (frn==acs) == (frn==acf) )); - i=i+1; % i=39 + i=i+1; % i=51 res(i)= res(i) +all(all( (frn+acs) == (frn+acf) )); - i=i+1; % i=40 + i=i+1; % i=52 res(i)= res(i) +all(all( (acs+frn) == (acf+frn) )); - i=i+1; % i=41 + i=i+1; % i=53 res(i)= res(i) +all(all( (frn-acs) == (frn-acf) )); - i=i+1; % i=42 + i=i+1; % i=54 res(i)= res(i) +all(all( (acs-frn) == (acf-frn) )); - i=i+1; % i=43 + i=i+1; % i=55 res(i)= res(i) +all(all( (frn*acs) == (frn*acf) )); - i=i+1; % i=44 + i=i+1; % i=56 res(i)= res(i) +all(all( (acs*frn) == (acf*frn) )); - i=i+1; % i=45 + i=i+1; % i=57 res(i)= res(i) +all(all( (frn.*acs) == (frn.*acf) )); - i=i+1; % i=46 + i=i+1; % i=58 res(i)= res(i) +all(all( (acs.*frn) == (acf.*frn) )); - i=i+1; % i=47 + i=i+1; % i=59 res(i)= res(i) +all(all( abs( (frn\acs) - (frn\acf) )<1e-13 )); - i=i+1; % i=48 + i=i+1; % i=60 res(i)= res(i) +all(all( abs( (acs/frn) - (acf/frn) )<1e-13 )); - i=i+1; % i=49 + i=i+1; % i=61 % % test complex sparse op complex scalar operations % res(i)= res(i) +all(all( (acs==fcn) == (acf==fcn) )); - i=i+1; % i=50 + i=i+1; % i=62 res(i)= res(i) +all(all( (fcn==acs) == (fcn==acf) )); - i=i+1; % i=51 + i=i+1; % i=63 res(i)= res(i) +all(all( (fcn+acs) == (fcn+acf) )); - i=i+1; % i=52 + i=i+1; % i=64 res(i)= res(i) +all(all( (acs+fcn) == (acf+fcn) )); - i=i+1; % i=53 + i=i+1; % i=65 res(i)= res(i) +all(all( (fcn-acs) == (fcn-acf) )); - i=i+1; % i=54 + i=i+1; % i=66 res(i)= res(i) +all(all( (acs-fcn) == (acf-fcn) )); - i=i+1; % i=55 + i=i+1; % i=67 res(i)= res(i) +all(all( (fcn*acs) == (fcn*acf) )); - i=i+1; % i=56 + i=i+1; % i=68 res(i)= res(i) +all(all( (acs*fcn) == (acf*fcn) )); - i=i+1; % i=57 + i=i+1; % i=69 res(i)= res(i) +all(all( (fcn.*acs) == (fcn.*acf) )); - i=i+1; % i=58 + i=i+1; % i=70 res(i)= res(i) +all(all( (acs.*fcn) == (acf.*fcn) )); - i=i+1; % i=59 + i=i+1; % i=71 res(i)= res(i) +all(all( abs( (fcn\acs) - (fcn\acf) )<1e-13 )); - i=i+1; % i=60 + i=i+1; % i=72 res(i)= res(i) +all(all( abs( (acs/fcn) - (acf/fcn) )<1e-13 )); - i=i+1; % i=61 + i=i+1; % i=73 % % sparse uary ops % res(i)= res(i) +all(all( ars.' == arf.' )); - i=i+1; % i=62 + i=i+1; % i=74 res(i)= res(i) +all(all( ars' == arf' )); - i=i+1; % i=63 + i=i+1; % i=75 res(i)= res(i) +all(all( -ars == -arf )); - i=i+1; % i=64 + i=i+1; % i=76 res(i)= res(i) +all(all( ~ars == ~arf )); - i=i+1; % i=65 + i=i+1; % i=77 % % complex sparse uary ops % res(i)= res(i) +all(all( acs.' == acf.' )); - i=i+1; % i=66 + i=i+1; % i=78 res(i)= res(i) +all(all( acs' == acf' )); - i=i+1; % i=67 + i=i+1; % i=79 res(i)= res(i) +all(all( -acs == -acf )); - i=i+1; % i=68 + i=i+1; % i=80 res(i)= res(i) +all(all( ~acs == ~acf )); - i=i+1; % i=69 + i=i+1; % i=81 % % sparse op sparse and sparse op matrix @@ -293,52 +329,52 @@ # FIXME: this breaks if drs is 1x1 rdif= abs(drs\erf - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=70 + i=i+1; % i=82 rdif= abs(drf\ers - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=71 + i=i+1; % i=83 rdif= abs(drs\ers - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=72 + i=i+1; % i=84 res(i)= res(i) +all(all( ars+brs == arf+brf )); - i=i+1; % i=73 + i=i+1; % i=85 res(i)= res(i) +all(all( arf+brs == arf+brf )); - i=i+1; % i=74 + i=i+1; % i=86 res(i)= res(i) +all(all( ars+brf == arf+brf )); - i=i+1; % i=75 + i=i+1; % i=87 res(i)= res(i) +all(all( ars-brs == arf-brf )); - i=i+1; % i=76 + i=i+1; % i=88 res(i)= res(i) +all(all( arf-brs == arf-brf )); - i=i+1; % i=77 + i=i+1; % i=89 res(i)= res(i) +all(all( ars-brf == arf-brf )); - i=i+1; % i=78 + i=i+1; % i=90 res(i)= res(i) +all(all( (ars>brs) == (arf>brf) )); - i=i+1; % i=79 + i=i+1; % i=91 res(i)= res(i) +all(all( (ars<brs) == (arf<brf) )); - i=i+1; % i=80 + i=i+1; % i=92 res(i)= res(i) +all(all( (ars!=brs) == (arf!=brf) )); - i=i+1; % i=81 + i=i+1; % i=93 res(i)= res(i) +all(all( (ars>=brs) == (arf>=brf) )); - i=i+1; % i=82 + i=i+1; % i=94 res(i)= res(i) +all(all( (ars<=brs) == (arf<=brf) )); - i=i+1; % i=83 + i=i+1; % i=95 res(i)= res(i) +all(all( (ars==brs) == (arf==brf) )); - i=i+1; % i=84 + i=i+1; % i=96 res(i)= res(i) +all(all( ars.*brs == arf.*brf )); - i=i+1; % i=85 + i=i+1; % i=97 res(i)= res(i) +all(all( arf.*brs == arf.*brf )); - i=i+1; % i=86 + i=i+1; % i=98 res(i)= res(i) +all(all( ars.*brf == arf.*brf )); - i=i+1; % i=87 + i=i+1; % i=99 res(i)= res(i) +all(all( ars*crs == arf*crf )); - i=i+1; % i=88 + i=i+1; % i=100 res(i)= res(i) +all(all( arf*crs == arf*crf )); - i=i+1; % i=89 + i=i+1; % i=101 res(i)= res(i) +all(all( ars*crf == arf*crf )); - i=i+1; % i=90 + i=i+1; % i=102 % % sparse op complex sparse and sparse op complex matrix @@ -349,53 +385,53 @@ # FIXME: this breaks if drs is 1x1 rdif= abs(drs\ecf - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=91 + i=i+1; % i=103 rdif= abs(drf\ecs - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=92 + i=i+1; % i=104 # TODO: not avail yet # rdif= abs(drs\ecs - df_ef) < abs(mag*df_ef); # res(i)= res(i) +all(all( rdif )); -# i=i+1; % i=93 +# i=i+1; % i=105 res(i)= res(i) +all(all( ars+bcs == arf+bcf )); - i=i+1; % i=94 + i=i+1; % i=106 res(i)= res(i) +all(all( arf+bcs == arf+bcf )); - i=i+1; % i=95 + i=i+1; % i=107 res(i)= res(i) +all(all( ars+bcf == arf+bcf )); - i=i+1; % i=96 + i=i+1; % i=108 res(i)= res(i) +all(all( ars-bcs == arf-bcf )); - i=i+1; % i=97 + i=i+1; % i=109 res(i)= res(i) +all(all( arf-bcs == arf-bcf )); - i=i+1; % i=98 + i=i+1; % i=110 res(i)= res(i) +all(all( ars-bcf == arf-bcf )); - i=i+1; % i=99 + i=i+1; % i=111 res(i)= res(i) +all(all( (ars>bcs) == (arf>bcf) )); - i=i+1; % i=100 + i=i+1; % i=112 res(i)= res(i) +all(all( (ars<bcs) == (arf<bcf) )); - i=i+1; % i=101 + i=i+1; % i=113 res(i)= res(i) +all(all( (ars!=bcs) == (arf!=bcf) )); - i=i+1; % i=102 + i=i+1; % i=114 res(i)= res(i) +all(all( (ars>=bcs) == (arf>=bcf) )); - i=i+1; % i=103 + i=i+1; % i=115 res(i)= res(i) +all(all( (ars<=bcs) == (arf<=bcf) )); - i=i+1; % i=104 + i=i+1; % i=116 res(i)= res(i) +all(all( (ars==bcs) == (arf==bcf) )); - i=i+1; % i=105 + i=i+1; % i=117 res(i)= res(i) +all(all( ars.*bcs == arf.*bcf )); - i=i+1; % i=106 + i=i+1; % i=118 res(i)= res(i) +all(all( arf.*bcs == arf.*bcf )); - i=i+1; % i=107 + i=i+1; % i=119 res(i)= res(i) +all(all( ars.*bcf == arf.*bcf )); - i=i+1; % i=108 + i=i+1; % i=120 res(i)= res(i) +all(all( ars*ccs == arf*ccf )); - i=i+1; % i=109 + i=i+1; % i=121 res(i)= res(i) +all(all( arf*ccs == arf*ccf )); - i=i+1; % i=110 + i=i+1; % i=122 res(i)= res(i) +all(all( ars*ccf == arf*ccf )); - i=i+1; % i=111 + i=i+1; % i=123 % % complex sparse op sparse and complex sparse op matrix @@ -406,58 +442,58 @@ # FIXME: this breaks if drs is 1x1 rdif= abs(dcs\erf - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=112 + i=i+1; % i=124 rdif= abs(dcf\ers - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=113 + i=i+1; % i=125 df_ef= dcf\erf; rdif= abs(dcs\ers - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=114 + i=i+1; % i=126 df_ef= drf\ecf; rdif= abs(drs\ecs - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=115 + i=i+1; % i=127 res(i)= res(i) +all(all( acs+brs == acf+brf )); - i=i+1; % i=116 + i=i+1; % i=128 res(i)= res(i) +all(all( acf+brs == acf+brf )); - i=i+1; % i=117 + i=i+1; % i=129 res(i)= res(i) +all(all( acs+brf == acf+brf )); - i=i+1; % i=118 + i=i+1; % i=130 res(i)= res(i) +all(all( acs-brs == acf-brf )); - i=i+1; % i=119 + i=i+1; % i=131 res(i)= res(i) +all(all( acf-brs == acf-brf )); - i=i+1; % i=120 + i=i+1; % i=132 res(i)= res(i) +all(all( acs-brf == acf-brf )); - i=i+1; % i=121 + i=i+1; % i=133 res(i)= res(i) +all(all( (acs>brs) == (acf>brf) )); - i=i+1; % i=122 + i=i+1; % i=134 res(i)= res(i) +all(all( (acs<brs) == (acf<brf) )); - i=i+1; % i=123 + i=i+1; % i=135 res(i)= res(i) +all(all( (acs!=brs) == (acf!=brf) )); - i=i+1; % i=124 + i=i+1; % i=136 res(i)= res(i) +all(all( (acs>=brs) == (acf>=brf) )); - i=i+1; % i=125 + i=i+1; % i=137 res(i)= res(i) +all(all( (acs<=brs) == (acf<=brf) )); - i=i+1; % i=126 + i=i+1; % i=138 res(i)= res(i) +all(all( (acs==brs) == (acf==brf) )); - i=i+1; % i=127 + i=i+1; % i=139 res(i)= res(i) +all(all( acs.*brs == acf.*brf )); - i=i+1; % i=128 + i=i+1; % i=140 res(i)= res(i) +all(all( acf.*brs == acf.*brf )); - i=i+1; % i=129 + i=i+1; % i=141 res(i)= res(i) +all(all( acs.*brf == acf.*brf )); - i=i+1; % i=130 + i=i+1; % i=142 res(i)= res(i) +all(all( acs*crs == acf*crf )); - i=i+1; % i=131 + i=i+1; % i=143 res(i)= res(i) +all(all( acf*crs == acf*crf )); - i=i+1; % i=132 + i=i+1; % i=144 res(i)= res(i) +all(all( acs*crf == acf*crf )); - i=i+1; % i=133 + i=i+1; % i=145 % % complex sparse op complex sparse and complex sparse op complex matrix @@ -468,52 +504,52 @@ # FIXME: this breaks if drs is 1x1 rdif= abs(dcs\ecf - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=134 + i=i+1; % i=146 rdif= abs(dcf\ecs - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=135 + i=i+1; % i=147 rdif= abs(dcs\ecs - df_ef) < abs(mag*df_ef); res(i)= res(i) +all(all( rdif )); - i=i+1; % i=136 + i=i+1; % i=148 res(i)= res(i) +all(all( acs+bcs == acf+bcf )); - i=i+1; % i=137 + i=i+1; % i=149 res(i)= res(i) +all(all( acf+bcs == acf+bcf )); - i=i+1; % i=138 + i=i+1; % i=150 res(i)= res(i) +all(all( acs+bcf == acf+bcf )); - i=i+1; % i=139 + i=i+1; % i=151 res(i)= res(i) +all(all( acs-bcs == acf-bcf )); - i=i+1; % i=140 + i=i+1; % i=152 res(i)= res(i) +all(all( acf-bcs == acf-bcf )); - i=i+1; % i=141 + i=i+1; % i=153 res(i)= res(i) +all(all( acs-bcf == acf-bcf )); - i=i+1; % i=142 + i=i+1; % i=154 res(i)= res(i) +all(all( (acs>bcs) == (acf>bcf) )); - i=i+1; % i=143 + i=i+1; % i=155 res(i)= res(i) +all(all( (acs<bcs) == (acf<bcf) )); - i=i+1; % i=144 + i=i+1; % i=156 res(i)= res(i) +all(all( (acs!=bcs) == (acf!=bcf) )); - i=i+1; % i=145 + i=i+1; % i=157 res(i)= res(i) +all(all( (acs>=bcs) == (acf>=bcf) )); - i=i+1; % i=146 + i=i+1; % i=158 res(i)= res(i) +all(all( (acs<=bcs) == (acf<=bcf) )); - i=i+1; % i=147 + i=i+1; % i=159 res(i)= res(i) +all(all( (acs==bcs) == (acf==bcf) )); - i=i+1; % i=148 + i=i+1; % i=160 res(i)= res(i) +all(all( acs.*bcs == acf.*bcf )); - i=i+1; % i=149 + i=i+1; % i=161 res(i)= res(i) +all(all( acf.*bcs == acf.*bcf )); - i=i+1; % i=150 + i=i+1; % i=162 res(i)= res(i) +all(all( acs.*bcf == acf.*bcf )); - i=i+1; % i=151 - res(i)= res(i) +all(all( acs*ccs == acf*ccf )); - i=i+1; % i=152 - res(i)= res(i) +all(all( acf*ccs == acf*ccf )); - i=i+1; % i=153 - res(i)= res(i) +all(all( acs*ccf == acf*ccf )); - i=i+1; % i=154 + i=i+1; % i=163 + res(i)= res(i) +all(all( abs( acs*ccs - acf*ccf ) < 1e-16 )); + i=i+1; % i=164 + res(i)= res(i) +all(all( abs( acf*ccs - acf*ccf ) < 1e-16 )); + i=i+1; % i=165 + res(i)= res(i) +all(all( abs( acs*ccf - acf*ccf ) < 1e-16 )); + i=i+1; % i=166 % % sparse select operations @@ -522,17 +558,17 @@ r1= ars(sel1); r2=arf(sel1); res(i)= res(i) +all( r1(:) == r2(:) ); % res(i)= res(i) +all( ars(sel1) == arf(sel1 )); - i=i+1; % i=155 + i=i+1; % i=167 res(i)= res(i) +all( ars(:) == arf(:)); - i=i+1; % i=156 + i=i+1; % i=168 res(i)= res(i) +all(all( ars(sely,selx) == arf(sely,selx) )); - i=i+1; % i=157 + i=i+1; % i=169 res(i)= res(i) +all(all( ars( : ,selx) == arf( : ,selx) )); - i=i+1; % i=158 + i=i+1; % i=170 res(i)= res(i) +all(all( ars(sely, : ) == arf(sely, : ) )); - i=i+1; % i=159 + i=i+1; % i=171 res(i)= res(i) +all(all( ars(:,:) == arf(:,:) )); - i=i+1; % i=160 + i=i+1; % i=172 % % sparse select operations @@ -556,7 +592,7 @@ res(i)= res(i) + all( [ ... all(all( abs(Ls2*Us2 - Lf2*Uf2 )< mag )) ; ... 1 ] ); - i=i+1; % i=161 + i=i+1; % i=173 if OCTAVE [Ls4,Us4,PsR,PsC] = splu( drs ); @@ -574,13 +610,13 @@ all(all( Us4 .* UU == Us4 )) ] ); end - i=i+1; % i=162 + i=i+1; % i=174 dsi = spinv( drs ); mag= 1e-10; res(i)= res(i) + all(all( ... abs( inv(drf) - dsi ) <= mag*(1+abs(inv(drf))) )); - i=i+1; % i=163 + i=i+1; % i=175 if OCTAVE res(i)= res(i) +all( spfind(ars) == find(arf) ); @@ -590,11 +626,11 @@ [I,J,S]= find(ars); [N,M] = size(ars); end - i=i+1; % i=164 + i=i+1; % i=176 asnew= sparse(I,J,S,N,M); res(i)= res(i) +all( all( asnew == ars )); - i=i+1; % i=165 + i=i+1; % i=177 % % complex sparse LU and inverse @@ -613,7 +649,7 @@ res(i)= res(i) + all( [ ... all(all( abs(Ls2*Us2 - Lf2*Uf2 )< mag )) ; ... 1 ] ); - i=i+1; % i=166 + i=i+1; % i=178 if OCTAVE [Ls4,Us4,PsR,PsC] = splu( dcs ); @@ -630,13 +666,13 @@ all(all( Ls4 .* LL == Ls4 )) ; all(all( Us4 .* UU == Us4 )) ] ); end - i=i+1; % i=167 + i=i+1; % i=179 dci = spinv( dcs ); mag= 1e-10; res(i)= res(i) + all(all( ... abs( inv(dcf) - dci ) <= mag*(1+abs(inv(dcf))) )); - i=i+1; % i=168 + i=i+1; % i=180 if OCTAVE res(i)= res(i) +all( spfind(acs) == find(acf) ); @@ -646,11 +682,11 @@ [I,J,S]= find(acs); [N,M] = size(acs); end - i=i+1; % i=169 + i=i+1; % i=181 asnew= sparse(I,J,S,N,M); res(i)= res(i) +all( all( asnew == acs )); - i=i+1; % i=170 + i=i+1; % i=182 % test sparse assembly using 'sum' or 'unique' tf1= zeros(N,M); @@ -667,15 +703,15 @@ % test normal assembly res(i)= res(i) +all( all( sparse(rr,cc,1,N,M) == tf1 )); - i=i+1; % i=171 + i=i+1; % i=183 % test 'unique' assembly res(i)= res(i) +all( all( sparse(rr,cc,1,N,M,'unique') == tf1 )); - i=i+1; % i=172 + i=i+1; % i=184 % test 'sum' assembly res(i)= res(i) +all( all( sparse(rr,cc,1,N,M,'sum') == tf2 )); - i=i+1; % i=173 + i=i+1; % i=185 end @@ -696,6 +732,9 @@ % % $Log$ +% Revision 1.4 2001/11/16 03:09:42 aadler +% added spsum.m, is_sparse, is_real_sparse, is_complex_sparse +% % Revision 1.3 2001/11/04 19:54:49 aadler % fix bug with multiple entries in sparse creation. % Added "summation" mode for matrix creation
--- a/main/sparse/sparse_full.cc Wed Nov 14 15:21:33 2001 +0000 +++ b/main/sparse/sparse_full.cc Fri Nov 16 03:09:42 2001 +0000 @@ -66,6 +66,70 @@ } // +// is_sparse and friends +// +DEFUN_DLD (is_sparse, args, , +"FM= is_sparse (X)\n" +" Return true if X is a sparse storage matrix\n" +" see also is_real_sparse , is_complex_sparse") +{ + octave_value_list retval; + + if (args.length() != 1) { + print_usage ("is_sparse"); + return retval; + } + + if (args(0).type_name () == "sparse" || + args(0).type_name () == "complex_sparse") { + retval(0)= 1.0; + } else + retval(0)= 0.0; + + return retval; +} + +DEFUN_DLD (is_real_sparse, args, , +"FM= is_real_sparse (X)\n" +" Return true if X is a real matrix with sparse storage\n" +" see also is_sparse , is_complex_sparse") +{ + octave_value_list retval; + + if (args.length() != 1) { + print_usage ("is_real_sparse"); + return retval; + } + + if (args(0).type_name () == "sparse" ) { + retval(0)= 1.0; + } else + retval(0)= 0.0; + + return retval; +} + +DEFUN_DLD (is_complex_sparse, args, , +"FM= is_complex_sparse (X)\n" +" Return true if X is a real matrix with sparse storage\n" +" see also is_sparse , is_real_sparse") +{ + octave_value_list retval; + + if (args.length() != 1) { + print_usage ("is_complex_sparse"); + return retval; + } + + if (args(0).type_name () == "complex_sparse" ) { + retval(0)= 1.0; + } else + retval(0)= 0.0; + + return retval; +} + +// // nnz // DEFUN_DLD (nnz, args, , @@ -214,6 +278,9 @@ /* * $Log$ + * Revision 1.3 2001/11/16 03:09:42 aadler + * added spsum.m, is_sparse, is_real_sparse, is_complex_sparse + * * Revision 1.2 2001/10/12 02:24:28 aadler * Mods to fix bugs * add support for all zero sparse matrices