*** empty log message ***
This commit is contained in:
parent
e2251f66f1
commit
e49b73e9e9
17
matexp.h
17
matexp.h
@ -257,7 +257,6 @@ int power;
|
|||||||
NRVec<typename LA_traits<V>::elementtype> taylor2=exp_aux<M,typename LA_traits<V>::elementtype>(mat,power);
|
NRVec<typename LA_traits<V>::elementtype> taylor2=exp_aux<M,typename LA_traits<V>::elementtype>(mat,power);
|
||||||
|
|
||||||
V result(mat.nrows());
|
V result(mat.nrows());
|
||||||
cerr <<"power = "<<power<<endl;
|
|
||||||
for(int i=1; i<=(1<<power); ++i) //unfortunatelly, here we have to repeat it many times, unlike if the matrix is stored explicitly
|
for(int i=1; i<=(1<<power); ++i) //unfortunatelly, here we have to repeat it many times, unlike if the matrix is stored explicitly
|
||||||
{
|
{
|
||||||
if(i>1) vec=result; //apply again to the result of previous application
|
if(i>1) vec=result; //apply again to the result of previous application
|
||||||
@ -584,7 +583,11 @@ L100:
|
|||||||
i__1 = m;
|
i__1 = m;
|
||||||
for (j = 1; j <= i__1; ++j) {
|
for (j = 1; j <= i__1; ++j) {
|
||||||
++nmult;
|
++nmult;
|
||||||
(matvec)(&wsp[j1v - n], &wsp[j1v]);
|
{
|
||||||
|
NRVec<double> res(&wsp[j1v],n,true);
|
||||||
|
NRVec<double> rhs(&wsp[j1v - n],n,true);
|
||||||
|
mat.gemv(0.,res,transpose?'t':'n',1.,rhs);
|
||||||
|
}
|
||||||
i__2 = j;
|
i__2 = j;
|
||||||
for (i__ = 1; i__ <= i__2; ++i__) {
|
for (i__ = 1; i__ <= i__2; ++i__) {
|
||||||
hij = cblas_ddot(n, &wsp[iv + (i__ - 1) * n], 1, &wsp[j1v], 1);
|
hij = cblas_ddot(n, &wsp[iv + (i__ - 1) * n], 1, &wsp[j1v], 1);
|
||||||
@ -610,7 +613,11 @@ L100:
|
|||||||
/* L200: */
|
/* L200: */
|
||||||
}
|
}
|
||||||
++nmult;
|
++nmult;
|
||||||
(matvec)(&wsp[j1v - n], &wsp[j1v]);
|
{
|
||||||
|
NRVec<double> res(&wsp[j1v],n,true);
|
||||||
|
NRVec<double> rhs(&wsp[j1v - n],n,true);
|
||||||
|
mat.gemv(0.,res,transpose?'t':'n',1.,rhs);
|
||||||
|
}
|
||||||
avnorm = cblas_dnrm2(n, &wsp[j1v], 1);
|
avnorm = cblas_dnrm2(n, &wsp[j1v], 1);
|
||||||
|
|
||||||
/* --- set 1 for the 2-corrected scheme ... */
|
/* --- set 1 for the 2-corrected scheme ... */
|
||||||
@ -630,7 +637,7 @@ L401:
|
|||||||
if (ideg != 0) {
|
if (ideg != 0) {
|
||||||
/* --- irreducible rational Pade approximation ... */
|
/* --- irreducible rational Pade approximation ... */
|
||||||
d__1 = sgn * t_step__;
|
d__1 = sgn * t_step__;
|
||||||
dgpadm_(&ideg, &mx, &d__1, &wsp[ih], &mh, &wsp[ifree], &lfree, &iwsp[1]
|
FORNAME(dgpadm)(&ideg, &mx, &d__1, &wsp[ih], &mh, &wsp[ifree], &lfree, &iwsp[1]
|
||||||
, &iexph, &ns, &iflag);
|
, &iexph, &ns, &iflag);
|
||||||
iexph = ifree + iexph - 1;
|
iexph = ifree + iexph - 1;
|
||||||
nscale += ns;
|
nscale += ns;
|
||||||
@ -643,7 +650,7 @@ L401:
|
|||||||
}
|
}
|
||||||
wsp[iexph] = 1.;
|
wsp[iexph] = 1.;
|
||||||
d__1 = sgn * t_step__;
|
d__1 = sgn * t_step__;
|
||||||
dnchbv_(&mx, &d__1, &wsp[ih], &mh, &wsp[iexph], &wsp[ifree + mx]);
|
FORNAME(dnchbv)(&mx, &d__1, &wsp[ih], &mh, &wsp[iexph], &wsp[ifree + mx]);
|
||||||
}
|
}
|
||||||
/* L402: */
|
/* L402: */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user