#define SCOTCH_STRAT_DIRECT                             \
    "c{rat=0.7,"                                        \
    """cpr=n{sep=/(vert>120)?m{rat=0.8,"                \
    ""                        "vert=100,"               \
    ""                        "low=h{pass=10},"         \
    ""                        "asc=f{bal=0.2}}|"        \
    ""                      "m{rat=0.8,"                \
    ""                        "vert=100,"               \
    ""                        "low=h{pass=10},"         \
    ""                        "asc=f{bal=0.2}};,"       \
    ""      "ole=f{cmin=0,cmax=100000,frat=0.08},"      \
    ""      "ose=g},"                                   \
    """unc=n{sep=/(vert>120)?(m{rat=0.8,"               \
    ""                         "vert=100,"              \
    ""                         "low=h{pass=10},"        \
    ""                         "asc=f{bal=0.2}})|"      \
    ""                        "m{rat=0.8,"              \
    ""                          "vert=100,"             \
    ""                          "low=h{pass=10},"       \
    ""                          "asc=f{bal=0.2}};,"     \
    ""      "ole=f{cmin=15,cmax=100000,frat=0.08},"     \
    ""      "ose=g}}"

#define SCOTCH_STRAT_PERSO                              \
    "c{rat=0.7,"                                        \
    """cpr=n{sep=/(vert>%ld)?m{rat=0.8,"                \
    ""                        "vert=100,"               \
    ""                        "low=h{pass=10},"         \
    ""                        "asc=f{bal=0.2}}|"        \
    ""                      "m{rat=0.8,"                \
    ""                        "vert=100,"               \
    ""                        "low=h{pass=10},"         \
    ""                        "asc=f{bal=0.2}};,"       \
    ""      "ole=f{cmin=%ld,cmax=%ld,frat=%f},"         \
    ""      "ose=g},"                                   \
    """unc=n{sep=/(vert>%ld)?(m{rat=0.8,"               \
    ""                         "vert=100,"              \
    ""                         "low=h{pass=10},"        \
    ""                         "asc=f{bal=0.2}})|"      \
    ""                        "m{rat=0.8,"              \
    ""                          "vert=100,"             \
    ""                          "low=h{pass=10},"       \
    ""                          "asc=f{bal=0.2}};,"     \
    ""      "ole=f{cmin=%ld,cmax=%ld,frat=%f},"         \
    ""      "ose=g}}"


#define SCOTCH_STRAT_DFLTSCOTCHV7                                         \
    "c{rat=0.7,"                                                        \
    "cpr=n{"                                                            \
        "sep=(/((vert)>(240))"                                          \
            "?((m{"                                                      \
                "asc=b{"                                                 \
                    "bnd=f{move=200,pass=1000,bal=0.2},"                \
                    "org=(|h{pass=10})f{move=200,pass=1000,bal=0.2},"   \
                    "width=3},"                                          \
                "low=h{pass=10},"                                       \
                "type=h,vert=100,rat=0.7}"                              \
            "|m{"                                                        \
                "asc=b{"                                                 \
                    "bnd=f{move=200,pass=1000,bal=0.2},"                \
                    "org=(|h{pass=10})f{move=200,pass=1000,bal=0.2},"   \
                    "width=3},"                                          \
                "low=h{pass=10},"                                       \
                "type=h,vert=100,rat=0.7}"                              \
            "));"                                                        \
        "),"                                                             \
        "ole=f{cmin=15,cmax=100000,frat=0},"                           \
        "ose=g{pass=3}"                                                 \
    "},"                                                                 \
    "unc=n{"                                                            \
        "sep=(/((vert)>(240))"                                          \
            "?((m{"                                                      \
                "asc=b{"                                                 \
                    "bnd=f{move=200,pass=1000,bal=0.2},"                \
                    "org=(|h{pass=10})f{move=200,pass=1000,bal=0.2},"   \
                    "width=3},"                                          \
                "low=h{pass=10},"                                       \
                "type=h,vert=100,rat=0.7}"                              \
            "|m{"                                                        \
                "asc=b{"                                                 \
                    "bnd=f{move=200,pass=1000,bal=0.2},"                \
                    "org=(|h{pass=10})f{move=200,pass=1000,bal=0.2},"   \
                    "width=3},"                                          \
                "low=h{pass=10},"                                       \
                "type=h,vert=100,rat=0.7}"                              \
            "));"                                                        \
        "),"                                                             \
        "ole=f{cmin=15,cmax=100000,frat=0},"                           \
        "ose=g{pass=3}"                                                 \
    "}}"

#define SCOTCH_STRAT_DFLTSCOTCHV8                               \
    "c{rat=0.7,"                                                \
    "cpr=h{rat=6,strat=n{"                                      \
        "halo=s,"                                               \
        "sep=(/((vert)>(240))"                                  \
            "?((m{"                                             \
                "asc=b{"                                        \
                    "bnd=f{move=200,pass=1000,bal=0.2},"        \
                    "org=f{move=200,pass=1000,bal=0.2},"        \
                    "width=3},"                                 \
                "low=h{pass=10,halo=n},"                        \
                "type=h,vert=100,rat=0.7}"                      \
            "|m{"                                               \
                "asc=b{"                                        \
                    "bnd=f{move=200,pass=1000,bal=0.2},"        \
                    "org=f{move=200,pass=1000,bal=0.2},"        \
                    "width=3},"                                 \
                "low=h{pass=10,halo=n},"                        \
                "type=h,vert=100,rat=0.7}));"                   \
        "),"                                                    \
        "ole=f{cmin=15,cmax=100000,frat=0}"                     \
            "u{strat=p{asc=a,dsc=}},"                           \
        "ose=a"                                                 \
    "}},"                                                       \
    "unc=h{rat=6,strat=n{"                                      \
        "halo=s,"                                               \
        "sep=(/((vert)>(240))"                                  \
            "?((m{"                                             \
                "asc=b{"                                        \
                    "bnd=f{move=200,pass=1000,bal=0.2},"        \
                    "org=f{move=200,pass=1000,bal=0.2},"        \
                    "width=3},"                                 \
                "low=h{pass=10,halo=n},"                        \
                "type=h,vert=100,rat=0.7}"                      \
            "|m{"                                               \
                "asc=b{"                                        \
                    "bnd=f{move=200,pass=1000,bal=0.2},"        \
                    "org=f{move=200,pass=1000,bal=0.2},"        \
                    "width=3},"                                 \
                "low=h{pass=10,halo=n},"                        \
                "type=h,vert=100,rat=0.7}));"                   \
        "),"                                                    \
        "ole=f{cmin=15,cmax=100000,frat=0}"                     \
            "u{strat=p{asc=a,dsc=}},"                           \
        "ose=a"                                                 \
    "}}"                                                        \
    "}"