Skip to content

COCG and COCR #288

@wsshin

Description

@wsshin

If I generate pull requests for the conjugate orthogonal conjugate gradient (COCG) method and conjugate A-orthogonal conjugate residual (COCR) method, will they be accepted? I notice that COCG and COCR are not in the roadmap, but these are useful methods.

COCG is a modification of CG for non-Hermitian, complex symmetric matrices. In fact, COCG is equivalent to BiCG for complex symmetric matrices: BiCG uses two matrix-vector multiplications (a.k.a. mat-vecs), A x and Aᵀ x, per iteration, but for complex symmetric A we need only one mat-vec because Aᵀ = A, and this simplification is basically what COCG is. Therefore, COCG produces the same convergence curve as BiCG for complex symmetric A, but it is twice as fast as BiCG in time. BiCGStab(l) also uses two mat-vecs per iteration, so for some problems COCG converges faster than BiCGStab(l).

Similarly, COCR is a modification of the conjugate residual (CR) method for complex symmetric matrices. (CR is a simplification of GMRES for Hermitian matrices.) COCR also uses one mat-vec per iteration, and it is known to produce less oscillatory convergence curves than COCG.

A good overview of the two methods can be found in this freely available journal article. The implementation of these two methods is as simple as CG. I need these methods for my research, so I would be happy to create pull requests implementing them, if the requests will be accepted even though they are not in the roadmap.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions