| Line 481... |
Line 481... |
ierr = d->calcpairs_eigs_trans(d); CHKERRQ(ierr);
|
ierr = d->calcpairs_eigs_trans(d); CHKERRQ(ierr);
|
}
|
}
|
|
|
/* Some functions need the diagonal elements in T be real */
|
/* Some functions need the diagonal elements in T be real */
|
#if defined(PETSC_USE_COMPLEX)
|
#if defined(PETSC_USE_COMPLEX)
|
if (d->T) for(i=0; i<d->size_H; i++) {
|
if (d->T) for(i=0; i<d->size_H; i++)
|
s = PetscConj(d->T[d->ldT*i+i])/PetscAbsScalar(d->T[d->ldT*i+i]);
|
if (PetscImaginaryPart(d->T[d->ldT*i+i]) != 0.0) {
|
for(j=0; j<=i; j++)
|
s = PetscConj(d->T[d->ldT*i+i])/PetscAbsScalar(d->T[d->ldT*i+i]);
|
d->T[d->ldT*i+j] = PetscRealPart(d->T[d->ldT*i+j]*s),
|
for(j=0; j<=i; j++)
|
d->S[d->ldS*i+j]*= s;
|
d->T[d->ldT*i+j] = PetscRealPart(d->T[d->ldT*i+j]*s),
|
for(j=0; j<d->size_H; j++) d->pX[d->ldpX*i+j]*= s;
|
d->S[d->ldS*i+j]*= s;
|
}
|
for(j=0; j<d->size_H; j++) d->pX[d->ldpX*i+j]*= s;
|
|
}
|
#endif
|
#endif
|
|
|
PetscFunctionReturn(0);
|
PetscFunctionReturn(0);
|
}
|
}
|
|
|