all_solvers = [
    "MUSIC",
    "RAP-MUSIC",
    "TRAP-MUSIC",
    "FLEX-MUSIC",
    "FLEX-AP",
    "AP",
    "FLEX-SSM",
    "SSM",
    "MNE",
    "wMNE",
    "dSPM",
    "dSPM-MNE",
    "FISTA",
    "L1L2",
    "MxNE-BCD",
    "GFT-L1",
    "Self-Regularized-eLORETA",
    "GPT",
    "GBF",
    "LORETA",
    "sLORETA",
    "eLORETA",
    "LAURA",
    "Backus-Gilbert",
    "S-MAP",
    "Champagne",
    "Low-SNR-Champagne",
    "EM-Champagne",
    "MM-Champagne",
    "Convexity-Champagne",
    "MacKay-Champagne",
    "HS-Champagne",
    "Patch-Champagne",
    "Hierarchical-Patch-Champagne",
    "FUN",
    "nl-champagne",
    "OmniChampagne",
    "Flex-Champagne",
    "Flex-NL-Champagne",
    "BCS",
    "Gamma-MAP",
    "Source-MAP",
    "Gamma-MAP-MSP",
    "Source-MAP-MSP",
    "MVAB",
    "LCMV",
    "LCMV-MVPURE",
    "DICS",
    "SMV",
    "WNMV",
    "HOCMV",
    "ESMV",
    "ESMV-MVPURE",
    "MCMV",
    "HOCMCMV",
    "ReciPSIICOS",
    "SAM",
    "Adapt-Flex-ESMV",
    "Flex-ESMV",
    "Flex-ESMV-MVPURE",
    "Deblur-Flex-ESMV",
    "Safe-Flex-ESMV",
    "Sharp-Flex-ESMV",
    "SSP-ESMV",
    "IR-ESMV",
    "SSP-IR-ESMV",
    "Unit-Noise-Gain",
    "CovCNN",
    "FC",
    "LSTM",
    "CNN",
    "OMP",
    "COSAMP",
    "REMBO",
    "SP",
    "SubSMP",
    "EPIFOCUS",
    "APSE",
    "Adaptive-AP",
    "Flex-MUSIC-2",
    "Generalized-Iterative",
    "ECD",
    "SESAME",
    "TV",
    "VB-SBL",
    "Random-Noise",
]

# only the best solvers without too much overlap with the other solvers
SOLVERS_AUTOINVERSE = {
    "DIPOLE": [
        "Convexity-Champagne",
        "MCMV",
        "LCMV",
        "HOCMCMV",
        "ESMV",
        "OMP",
        "SP",
        "RAP-MUSIC",
        "AP",
        "SSM",
        "MUSIC",
        "EPIFOCUS",
        "APSE",
    ],
    "PATCH": [
        "eLORETA",
        "Convexity-Champagne",
        "Patch-Champagne",
        "Low-SNR-Champagne",
        "FLEX-AP",
        "FLEX-MUSIC",
        "FLEX-SSM",
        "APSE",
    ],
    "BROAD": [
        "MNE",
        "dSPM",
        "FISTA",
        "GBF",
        "eLORETA",
        "Convexity-Champagne",
        "LAURA",
        "APSE",
    ],
    "NOPRIOR": [
        "MNE",
        "eLORETA",
        "LAURA",
        "GPT",
        "Convexity-Champagne",
        "Low-SNR-Champagne",
        "Patch-Champagne",
        "FLEX-AP",
        "FLEX-MUSIC",
        "FLEX-SSM",
        "dSPM",
        "FISTA",
        "APSE",
    ],
}
