Skip to content

expanded application of Spectra to complex-valued matrices: problem of inequality signs in Arnoldi.h #161

@dsl2501

Description

@dsl2501

When I tried to amend the current best approximate codes to my complex-valued matrices, I finally came to be confronted with Arnoldi.h. Eigen/Spectra is constructed to do the job with real-valued matrices, prior consideration was minimal to predefine the inequality, absolute value (and norm), and the convergence criteria. I changed in several combinations of the following several lines and finally met the barrier. Would you please let me know the convergence of Arnoldi iteration and caveats for how to handle the inequality signs of complex valued numbers. Thanks.

  • Four error message for Arnoldi.h: four lines were critical, two modified and accepted, two resisted.
    Former two if (m_beta) < (m_near_0)) ---> if (std::abs(m_beta) < std::abs(m_near_0))
    if (m_beta) < (beta_thresh)) ----> if (std::abs(m_beta) < std::abs(beta_thresh))
    Latter two if (std::norm(m_beta) > Scalar(0.717) * m_op.norm(h)) did not work
    while (count < 5 && std::abs(ortho_err) > m_eps * std::abs(m_beta)) did not work

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions