Skip to content

Reconsider symbol names used in algorithm specification #368

@leburgel

Description

@leburgel

At the moment, we offer the possibility of configuring all algorithms using lower-case symbols (e.g :halfinfinite, :linsolver, :gmres...). However, since MatrixAlgebraKit allows using symbols for algorithm specification, it makes sense to just reuse their symbols without introducing new ones (implemented in #364). The MatrixAlgebraKit algorithm symbols exactly match the algorithm struct names, including capitalization. The downside is that we'll now have a mixture of different capitalizations in our symbol conventions, which can make things (more) confusing.

One solution would be to adopt the MatrixAlgebraKit convention here, and just use symbols that are exactly the algorithm struct names where possible. This makes all the more sense for symbols indicating algorithms defined outside of PEPSKit (e.g. :gmres which specifies KrylovKit.GMRES, we could avoid introducing a new symbol by just using :GMRES instead`.

The question is then if we should also capitalize the symbols linked to internal PEPSKit algorithms. We probably don't want to use the full :HalfInfiniteProjector, but we could switch to :HalfInfinite. I think this is only worth it if it would be less confusing for users. If none of the capitalized symbols actually match the algorithm struct names, then it's probably not worth to change them.

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