diff options
author | Sandeep Gupta | 2017-07-07 00:29:35 +0530 |
---|---|---|
committer | Sandeep Gupta | 2017-07-07 00:29:35 +0530 |
commit | 7a7f685a8436b456b246c49baf76bb8af930b214 (patch) | |
tree | e39f449c661d2b182a952e5b96e4e63ab80af685 /src/c/linearAlgebra/svd | |
parent | ea958d3c401761dcc24865d9639b2fab31038db8 (diff) | |
download | Scilab2C_fossee_old-7a7f685a8436b456b246c49baf76bb8af930b214.tar.gz Scilab2C_fossee_old-7a7f685a8436b456b246c49baf76bb8af930b214.tar.bz2 Scilab2C_fossee_old-7a7f685a8436b456b246c49baf76bb8af930b214.zip |
NORM
Diffstat (limited to 'src/c/linearAlgebra/svd')
-rw-r--r-- | src/c/linearAlgebra/svd/.1.c.swp | bin | 0 -> 12288 bytes | |||
-rw-r--r-- | src/c/linearAlgebra/svd/zsvda.c | 33 |
2 files changed, 21 insertions, 12 deletions
diff --git a/src/c/linearAlgebra/svd/.1.c.swp b/src/c/linearAlgebra/svd/.1.c.swp Binary files differnew file mode 100644 index 0000000..81d9e9c --- /dev/null +++ b/src/c/linearAlgebra/svd/.1.c.swp diff --git a/src/c/linearAlgebra/svd/zsvda.c b/src/c/linearAlgebra/svd/zsvda.c index 0d36022..12a07aa 100644 --- a/src/c/linearAlgebra/svd/zsvda.c +++ b/src/c/linearAlgebra/svd/zsvda.c @@ -113,7 +113,16 @@ void zsvda(doubleComplex *in1,int row,int col,int in2,int nout, doubleComplex *o out3[i+j*N] = zconjs(VT[j+i*N]); out3[j+i*N] = zconjs(VT[i+j*N]); } - } + } + /* output from zgesvd is copied to out2 variables in required format*/ + for(j=0;j<M;j++){ + for(k=0;k<N;k++){ + if(j == k) + out2[j*(Min(M,N))+k] = DoubleComplex(S[j],0); + else + out2[j*(Min(M,N))+k] = DoubleComplex(0,0); + } + } //ztransposea(VT,LDVT,Min(M,N),out3); /*for(i=0;i<N;i++){ for(j=0;j<N;j++){ @@ -124,7 +133,7 @@ void zsvda(doubleComplex *in1,int row,int col,int in2,int nout, doubleComplex *o //free(U); //free(VT); } - else{ + else{ /*svd(x,'e')*/ LDA = M; LDU = M; if(M > N){ @@ -156,18 +165,18 @@ void zsvda(doubleComplex *in1,int row,int col,int in2,int nout, doubleComplex *o for(j=0;j<N;j++){ out3[j+i*N] = zconjs(VT[i+j*Min(M,N)]); } - } + } + /* output from zgesvd is copied to out2 variables in required format*/ + for(j=0;j<Min(M,N);j++){ + for(k=0;k<Min(M,N);k++){ + if(j == k) + out2[j*(Min(M,N))+k] = DoubleComplex(S[j],0); + else + out2[j*(Min(M,N))+k] = DoubleComplex(0,0); + } + } //free(U); //free(VT); } - /* output from zgesvd is copied to out2 variables in required format*/ - for(j=0;j<Min(M,N);j++){ - for(k=0;k<Min(M,N);k++){ - if(j == k) - out2[j*(Min(M,N))+k] = DoubleComplex(S[j],0); - else - out2[j*(Min(M,N))+k] = DoubleComplex(0,0); - } - } } } |