/*
 * SPDX-License-Identifier: BSD-3-Clause
 * Copyright (c) 1996-2025, The SLICOT Team (original Fortran77 code)
 * Copyright (c) 2025, slicot.c contributors (C11 translation)
 */

#define PY_SSIZE_T_CLEAN
/* Define unique symbol for NumPy Array API */
#define PY_ARRAY_UNIQUE_SYMBOL SLICOT_ARRAY_API

#include <Python.h>
#include <numpy/arrayobject.h>
#include "wrappers/py_wrappers.h"
#include "data/docstrings.h"

static PyMethodDef SlicotMethods[] = {
    {"ab01md", py_ab01md, METH_VARARGS, DOC_AB01MD},
    {"ab01nd", py_ab01nd, METH_VARARGS, DOC_AB01ND},
    {"ab01od", py_ab01od, METH_VARARGS, DOC_AB01OD},
    {"ab04md", (PyCFunction)py_ab04md, METH_VARARGS | METH_KEYWORDS, DOC_AB04MD},
    {"ab05md", py_ab05md, METH_VARARGS, DOC_AB05MD},
    {"ab05nd", py_ab05nd, METH_VARARGS, DOC_AB05ND},
    {"ab05od", py_ab05od, METH_VARARGS, DOC_AB05OD},
    {"ab05pd", py_ab05pd, METH_VARARGS, DOC_AB05PD},
    {"ab05qd", py_ab05qd, METH_VARARGS, DOC_AB05QD},
    {"ab05sd", py_ab05sd, METH_VARARGS, DOC_AB05SD},
    {"ab05rd", py_ab05rd, METH_VARARGS, DOC_AB05RD},
    {"ab07md", py_ab07md, METH_VARARGS, DOC_AB07MD},
    {"ab07nd", py_ab07nd, METH_VARARGS, DOC_AB07ND},
    {"ab08md", (PyCFunction)py_ab08md, METH_VARARGS | METH_KEYWORDS, DOC_AB08MD},
    {"ab08mz", (PyCFunction)py_ab08mz, METH_VARARGS | METH_KEYWORDS, DOC_AB08MZ},
    {"ab08nd", (PyCFunction)py_ab08nd, METH_VARARGS | METH_KEYWORDS, DOC_AB08ND},
    {"ab08nw", (PyCFunction)py_ab08nw, METH_VARARGS | METH_KEYWORDS, DOC_AB08NW},
    {"ab08nx", (PyCFunction)py_ab08nx, METH_VARARGS | METH_KEYWORDS, DOC_AB08NX},
    {"ab08ny", (PyCFunction)py_ab08ny, METH_VARARGS | METH_KEYWORDS, DOC_AB08NY},
    {"ab08nz", py_ab08nz, METH_VARARGS, DOC_AB08NZ},
    {"ab09ad", py_ab09ad, METH_VARARGS, DOC_AB09AD},
    {"ab09ax", py_ab09ax, METH_VARARGS, DOC_AB09AX},
    {"ab09bd", py_ab09bd, METH_VARARGS, DOC_AB09BD},
    {"ab09bx", py_ab09bx, METH_VARARGS, DOC_AB09BX},
    {"ab09cd", py_ab09cd, METH_VARARGS, DOC_AB09CD},
    {"ab09cx", py_ab09cx, METH_VARARGS, DOC_AB09CX},
    {"ab09dd", py_ab09dd, METH_VARARGS, DOC_AB09DD},
    {"ab09ed", py_ab09ed, METH_VARARGS, DOC_AB09ED},
    {"ab09fd", py_ab09fd, METH_VARARGS, DOC_AB09FD},
    {"ab09gd", py_ab09gd, METH_VARARGS, DOC_AB09GD},
    {"ab09hd", py_ab09hd, METH_VARARGS, DOC_AB09HD},
    {"ab09hx", py_ab09hx, METH_VARARGS, DOC_AB09HX},
    {"ab09hy", py_ab09hy, METH_VARARGS, DOC_AB09HY},
    {"ab09id", py_ab09id, METH_VARARGS, DOC_AB09ID},
    {"ab09ix", py_ab09ix, METH_VARARGS, DOC_AB09IX},
    {"ab09iy", py_ab09iy, METH_VARARGS, DOC_AB09IY},
    {"ab09jd", py_ab09jd, METH_VARARGS, DOC_AB09JD},
    {"ab09jv", py_ab09jv, METH_VARARGS, DOC_AB09JV},
    {"ab09jw", py_ab09jw, METH_VARARGS, DOC_AB09JW},
    {"ab09jx", py_ab09jx, METH_VARARGS, DOC_AB09JX},
    {"ab09kd", py_ab09kd, METH_VARARGS, DOC_AB09KD},
    {"ab09kx", py_ab09kx, METH_VARARGS, DOC_AB09KX},
    {"ab09md", py_ab09md, METH_VARARGS, DOC_AB09MD},
    {"ab09nd", py_ab09nd, METH_VARARGS, DOC_AB09ND},
    {"ab13ad", py_ab13ad, METH_VARARGS, DOC_AB13AD},
    {"ab13bd", py_ab13bd, METH_VARARGS, DOC_AB13BD},
    {"ab13cd", py_ab13cd, METH_VARARGS, DOC_AB13CD},
    {"ab13dd", py_ab13dd, METH_VARARGS, DOC_AB13DD},
    {"ab13dx", py_ab13dx, METH_VARARGS, DOC_AB13DX},
    {"ab13ed", (PyCFunction)py_ab13ed, METH_VARARGS | METH_KEYWORDS, DOC_AB13ED},
    {"ab13fd", (PyCFunction)py_ab13fd, METH_VARARGS | METH_KEYWORDS, DOC_AB13FD},
    {"ab13hd", py_ab13hd, METH_VARARGS, DOC_AB13HD},
    {"ab13id", (PyCFunction)py_ab13id, METH_VARARGS | METH_KEYWORDS, DOC_AB13ID},
    {"ab13md", (PyCFunction)py_ab13md, METH_VARARGS | METH_KEYWORDS, DOC_AB13MD},
    {"ab8nxz", py_ab8nxz, METH_VARARGS, DOC_AB8NXZ},
    {"ag07bd", py_ag07bd, METH_VARARGS, DOC_AG07BD},
    {"ag08bd", py_ag08bd, METH_VARARGS, DOC_AG08BD},
    {"ag08by", py_ag08by, METH_VARARGS, DOC_AG08BY},
    {"ag08bz", py_ag08bz, METH_VARARGS, DOC_AG08BZ},
    {"ag8byz", py_ag8byz, METH_VARARGS, DOC_AG8BYZ},
    {"bb01ad", py_bb01ad, METH_VARARGS, DOC_BB01AD},
    {"bb02ad", py_bb02ad, METH_VARARGS, DOC_BB02AD},
    {"bb03ad", py_bb03ad, METH_VARARGS, DOC_BB03AD},
    {"bb04ad", py_bb04ad, METH_VARARGS, DOC_BB04AD},
    {"bd01ad", py_bd01ad, METH_VARARGS, DOC_BD01AD},
    {"bd02ad", py_bd02ad, METH_VARARGS, DOC_BD02AD},
    {"de01od", py_de01od, METH_VARARGS, DOC_DE01OD},
    {"de01pd", py_de01pd, METH_VARARGS, DOC_DE01PD},
    {"df01md", py_df01md, METH_VARARGS, DOC_DF01MD},
    {"dg01md", py_dg01md, METH_VARARGS, DOC_DG01MD},
    {"dg01nd", py_dg01nd, METH_VARARGS, DOC_DG01ND},
    {"dg01od", py_dg01od, METH_VARARGS, DOC_DG01OD},
    {"dk01md", py_dk01md, METH_VARARGS, DOC_DK01MD},
    {"fb01qd", py_fb01qd, METH_VARARGS, DOC_FB01QD},
    {"fb01rd", py_fb01rd, METH_VARARGS, DOC_FB01RD},
    {"fb01sd", py_fb01sd, METH_VARARGS, DOC_FB01SD},
    {"fb01td", py_fb01td, METH_VARARGS, DOC_FB01TD},
    {"fb01vd", py_fb01vd, METH_VARARGS, DOC_FB01VD},
    {"fd01ad", py_fd01ad, METH_VARARGS, DOC_FD01AD},
    {"ib01ad", (PyCFunction)py_ib01ad, METH_VARARGS, DOC_IB01AD},
    {"ib01bd", (PyCFunction)py_ib01bd, METH_VARARGS, DOC_IB01BD},
    {"ib01cd", (PyCFunction)py_ib01cd, METH_VARARGS, DOC_IB01CD},
    {"ib01md", (PyCFunction)py_ib01md, METH_VARARGS | METH_KEYWORDS, DOC_IB01MD},
    {"ib01nd", (PyCFunction)py_ib01nd, METH_VARARGS, DOC_IB01ND},
    {"ib01od", (PyCFunction)py_ib01od, METH_VARARGS, DOC_IB01OD},
    {"ib01oy", (PyCFunction)py_ib01oy, METH_VARARGS, DOC_IB01OY},
    {"ib01pd", (PyCFunction)py_ib01pd, METH_VARARGS | METH_KEYWORDS, DOC_IB01PD},
    {"ib01qd", (PyCFunction)py_ib01qd, METH_VARARGS, DOC_IB01QD},
    {"ib01rd", (PyCFunction)py_ib01rd, METH_VARARGS, DOC_IB01RD},
    {"ib03ad", (PyCFunction)py_ib03ad, METH_VARARGS | METH_KEYWORDS, DOC_IB03AD},
    {"ib03bd", (PyCFunction)py_ib03bd, METH_VARARGS | METH_KEYWORDS, DOC_IB03BD},
    {"ma01ad", py_ma01ad, METH_VARARGS, DOC_MA01AD},
    {"ma01bd", py_ma01bd, METH_VARARGS, DOC_MA01BD},
    {"ma01bz", py_ma01bz, METH_VARARGS, DOC_MA01BZ},
    {"ma01cd", py_ma01cd, METH_VARARGS, DOC_MA01CD},
    {"ma01dd", py_ma01dd, METH_VARARGS, DOC_MA01DD},
    {"ma01dz", py_ma01dz, METH_VARARGS, DOC_MA01DZ},
    {"ma02ad", py_ma02ad, METH_VARARGS, DOC_MA02AD},
    {"ma02bd", py_ma02bd, METH_VARARGS, DOC_MA02BD},
    {"ma02cd", py_ma02cd, METH_VARARGS, DOC_MA02CD},
    {"ma02dd", py_ma02dd, METH_VARARGS, DOC_MA02DD},
    {"ma02ed", py_ma02ed, METH_VARARGS, DOC_MA02ED},
    {"ma02es", py_ma02es, METH_VARARGS, DOC_MA02ES},
    {"ma02gd", py_ma02gd, METH_VARARGS, DOC_MA02GD},
    {"ma02pd", py_ma02pd, METH_VARARGS, DOC_MA02PD},
    {"ma02az", py_ma02az, METH_VARARGS, DOC_MA02AZ},
    {"ma02bz", py_ma02bz, METH_VARARGS, DOC_MA02BZ},
    {"ma02cz", py_ma02cz, METH_VARARGS, DOC_MA02CZ},
    {"ma02ez", py_ma02ez, METH_VARARGS, DOC_MA02EZ},
    {"ma02gz", py_ma02gz, METH_VARARGS, DOC_MA02GZ},
    {"ma02hd", py_ma02hd, METH_VARARGS, DOC_MA02HD},
    {"ma02hz", py_ma02hz, METH_VARARGS, DOC_MA02HZ},
    {"ma02iz", py_ma02iz, METH_VARARGS, DOC_MA02IZ},
    {"ma02jd", py_ma02jd, METH_VARARGS, DOC_MA02JD},
    {"ma02jz", py_ma02jz, METH_VARARGS, DOC_MA02JZ},
    {"ma02md", py_ma02md, METH_VARARGS, DOC_MA02MD},
    {"ma02mz", py_ma02mz, METH_VARARGS, DOC_MA02MZ},
    {"ma02nz", py_ma02nz, METH_VARARGS, DOC_MA02NZ},
    {"ma02od", py_ma02od, METH_VARARGS, DOC_MA02OD},
    {"ma02oz", py_ma02oz, METH_VARARGS, DOC_MA02OZ},
    {"ma02pz", py_ma02pz, METH_VARARGS, DOC_MA02PZ},
    {"ma02rd", py_ma02rd, METH_VARARGS, DOC_MA02RD},
    {"ma02sd", py_ma02sd, METH_VARARGS, DOC_MA02SD},
    {"mb01kd", py_mb01kd, METH_VARARGS, DOC_MB01KD},
    {"mb01ld", py_mb01ld, METH_VARARGS, DOC_MB01LD},
    {"mb01md", py_mb01md, METH_VARARGS, DOC_MB01MD},
    {"mb01nd", py_mb01nd, METH_VARARGS, DOC_MB01ND},
    {"mb01oc", py_mb01oc, METH_VARARGS, DOC_MB01OC},
    {"mb01od", py_mb01od, METH_VARARGS, DOC_MB01OD},
    {"mb01oe", py_mb01oe, METH_VARARGS, DOC_MB01OE},
    {"mb01oh", py_mb01oh, METH_VARARGS, DOC_MB01OH},
    {"mb01oo", py_mb01oo, METH_VARARGS, DOC_MB01OO},
    {"mb01os", py_mb01os, METH_VARARGS, DOC_MB01OS},
    {"mb01ot", py_mb01ot, METH_VARARGS, DOC_MB01OT},
    {"mb01pd", py_mb01pd, METH_VARARGS, DOC_MB01PD},
    {"mb01qd", py_mb01qd, METH_VARARGS, DOC_MB01QD},
    {"mb01rb", py_mb01rb, METH_VARARGS, DOC_MB01RB},
    {"mb01rd", py_mb01rd, METH_VARARGS, DOC_MB01RD},
    {"mb01rh", py_mb01rh, METH_VARARGS, DOC_MB01RH},
    {"mb01rt", py_mb01rt, METH_VARARGS, DOC_MB01RT},
    {"mb01ru", py_mb01ru, METH_VARARGS, DOC_MB01RU},
    {"mb01rw", py_mb01rw, METH_VARARGS, DOC_MB01RW},
    {"mb01rx", py_mb01rx, METH_VARARGS, DOC_MB01RX},
    {"mb01ry", py_mb01ry, METH_VARARGS, DOC_MB01RY},
    {"mb01sd", (PyCFunction)py_mb01sd, METH_VARARGS, DOC_MB01SD},
    {"mb01ss", py_mb01ss, METH_VARARGS, DOC_MB01SS},
    {"mb01td", py_mb01td, METH_VARARGS, DOC_MB01TD},
    {"mb01ud", py_mb01ud, METH_VARARGS, DOC_MB01UD},
    {"mb01uw", py_mb01uw, METH_VARARGS, DOC_MB01UW},
    {"mb01ux", py_mb01ux, METH_VARARGS, DOC_MB01UX},
    {"mb01uy", py_mb01uy, METH_VARARGS, DOC_MB01UY},
    {"mb01uz", py_mb01uz, METH_VARARGS, DOC_MB01UZ},
    {"mb01xd", py_mb01xd, METH_VARARGS, DOC_MB01XD},
    {"mb01xy", py_mb01xy, METH_VARARGS, DOC_MB01XY},
    {"mb01yd", py_mb01yd, METH_VARARGS, DOC_MB01YD},
    {"mb01zd", py_mb01zd, METH_VARARGS, DOC_MB01ZD},
    {"mb01wd", (PyCFunction)py_mb01wd, METH_VARARGS | METH_KEYWORDS, DOC_MB01WD},
    {"mb02cd", py_mb02cd, METH_VARARGS, DOC_MB02CD},
    {"mb02dd", py_mb02dd, METH_VARARGS, DOC_MB02DD},
    {"mb02cu", (PyCFunction)py_mb02cu, METH_VARARGS | METH_KEYWORDS, DOC_MB02CU},
    {"mb02cv", py_mb02cv, METH_VARARGS, DOC_MB02CV},
    {"mb02cx", py_mb02cx, METH_VARARGS, DOC_MB02CX},
    {"mb02cy", py_mb02cy, METH_VARARGS, DOC_MB02CY},
    {"mb02ed", py_mb02ed, METH_VARARGS, DOC_MB02ED},
    {"mb02fd", py_mb02fd, METH_VARARGS, DOC_MB02FD},
    {"mb02gd", py_mb02gd, METH_VARARGS, DOC_MB02GD},
    {"mb02hd", py_mb02hd, METH_VARARGS, DOC_MB02HD},
    {"mb02id", (PyCFunction)py_mb02id, METH_VARARGS | METH_KEYWORDS, DOC_MB02ID},
    {"mb02jd", py_mb02jd, METH_VARARGS, DOC_MB02JD},
    {"mb02jx", py_mb02jx, METH_VARARGS, DOC_MB02JX},
    {"mb02kd", py_mb02kd, METH_VARARGS, DOC_MB02KD},
    {"mb02md", (PyCFunction)py_mb02md, METH_VARARGS | METH_KEYWORDS, DOC_MB02MD},
    {"mb02nd", py_mb02nd, METH_VARARGS, DOC_MB02ND},
    {"mb02ny", py_mb02ny, METH_VARARGS, DOC_MB02NY},
    {"mb02od", (PyCFunction)py_mb02od, METH_VARARGS | METH_KEYWORDS, DOC_MB02OD},
    {"mb02pd", (PyCFunction)py_mb02pd, METH_VARARGS, DOC_MB02PD},
    {"mb02qd", py_mb02qd, METH_VARARGS, DOC_MB02QD},
    {"mb02rd", py_mb02rd, METH_VARARGS, DOC_MB02RD},
    {"mb02rz", py_mb02rz, METH_VARARGS, DOC_MB02RZ},
    {"mb02sd", py_mb02sd, METH_VARARGS, DOC_MB02SD},
    {"mb02td", py_mb02td, METH_VARARGS, DOC_MB02TD},
    {"mb02sz", py_mb02sz, METH_VARARGS, DOC_MB02SZ},
    {"mb02tz", py_mb02tz, METH_VARARGS, DOC_MB02TZ},
    {"mb02ud", (PyCFunction)py_mb02ud, METH_VARARGS | METH_KEYWORDS, DOC_MB02UD},
    {"mb02uu", py_mb02uu, METH_VARARGS, DOC_MB02UU},
    {"mb02uv", py_mb02uv, METH_VARARGS, DOC_MB02UV},
    {"mb02uw", py_mb02uw, METH_VARARGS, DOC_MB02UW},
    {"mb02vd", py_mb02vd, METH_VARARGS, DOC_MB02VD},
    {"mb02wd", py_mb02wd, METH_VARARGS, DOC_MB02WD},
    {"mb02yd", py_mb02yd, METH_VARARGS, DOC_MB02YD},
    {"mb03ab", py_mb03ab, METH_VARARGS, DOC_MB03AB},
    {"mb03ad", py_mb03ad, METH_VARARGS, DOC_MB03AD},
    {"mb03ae", py_mb03ae, METH_VARARGS, DOC_MB03AE},
    {"mb03ag", py_mb03ag, METH_VARARGS, DOC_MB03AG},
    {"mb03ah", py_mb03ah, METH_VARARGS, DOC_MB03AH},
    {"mb03ai", py_mb03ai, METH_VARARGS, DOC_MB03AI},
    {"mb03ba", py_mb03ba, METH_VARARGS, DOC_MB03BA},
    {"mb03bc", py_mb03bc, METH_VARARGS, DOC_MB03BC},
    {"mb03bd", py_mb03bd, METH_VARARGS, DOC_MB03BD},
    {"mb03be", py_mb03be, METH_VARARGS, DOC_MB03BE},
    {"mb03bf", py_mb03bf, METH_VARARGS, DOC_MB03BF},
    {"mb03bg", py_mb03bg, METH_VARARGS, DOC_MB03BG},
    {"mb03bz", (PyCFunction)py_mb03bz, METH_VARARGS | METH_KEYWORDS, DOC_MB03BZ},
    {"mb03cd", (PyCFunction)py_mb03cd, METH_VARARGS | METH_KEYWORDS, DOC_MB03CD},
    {"mb03cz", py_mb03cz, METH_VARARGS, DOC_MB03CZ},
    {"mb03dd", py_mb03dd, METH_VARARGS, DOC_MB03DD},
    {"mb03dz", py_mb03dz, METH_VARARGS, DOC_MB03DZ},
    {"mb03ed", py_mb03ed, METH_VARARGS, DOC_MB03ED},
    {"mb03gd", py_mb03gd, METH_VARARGS, DOC_MB03GD},
    {"mb03gz", py_mb03gz, METH_VARARGS, DOC_MB03GZ},
    {"mb03hd", py_mb03hd, METH_VARARGS, DOC_MB03HD},
    {"mb03hz", py_mb03hz, METH_VARARGS, DOC_MB03HZ},
    {"mb03id", (PyCFunction)py_mb03id, METH_VARARGS | METH_KEYWORDS, DOC_MB03ID},
    {"mb03ka", (PyCFunction)py_mb03ka, METH_VARARGS | METH_KEYWORDS, DOC_MB03KA},
    {"mb03kb", (PyCFunction)py_mb03kb, METH_VARARGS | METH_KEYWORDS, DOC_MB03KB},
    {"mb03kc", py_mb03kc, METH_VARARGS, DOC_MB03KC},
    {"mb03ke", (PyCFunction)py_mb03ke, METH_VARARGS | METH_KEYWORDS, DOC_MB03KE},
    {"mb03md", py_mb03md, METH_VARARGS, DOC_MB03MD},
    {"mb03od", (PyCFunction)py_mb03od, METH_VARARGS | METH_KEYWORDS, DOC_MB03OD},
    {"mb03oy", py_mb03oy, METH_VARARGS, DOC_MB03OY},
    {"mb03pd", py_mb03pd, METH_VARARGS, DOC_MB03PD},
    {"mb03py", py_mb03py, METH_VARARGS, DOC_MB03PY},
    {"mb03qd", py_mb03qd, METH_VARARGS, DOC_MB03QD},
    {"mb03qx", py_mb03qx, METH_VARARGS, DOC_MB03QX},
    {"mb03qy", py_mb03qy, METH_VARARGS, DOC_MB03QY},
    {"mb03rd", py_mb03rd, METH_VARARGS, DOC_MB03RD},
    {"mb03rx", py_mb03rx, METH_VARARGS, DOC_MB03RX},
    {"mb03ry", py_mb03ry, METH_VARARGS, DOC_MB03RY},
    {"mb03ud", (PyCFunction)py_mb03ud, METH_VARARGS | METH_KEYWORDS, DOC_MB03UD},
    {"mb03vd", py_mb03vd, METH_VARARGS, DOC_MB03VD},
    {"mb03vw", (PyCFunction)py_mb03vw, METH_VARARGS | METH_KEYWORDS, DOC_MB03VW},
    {"mb03vy", py_mb03vy, METH_VARARGS, DOC_MB03VY},
    {"mb03wd", py_mb03wd, METH_VARARGS, DOC_MB03WD},
    {"mb03wx", py_mb03wx, METH_VARARGS, DOC_MB03WX},
    {"mb03fd", (PyCFunction)py_mb03fd, METH_VARARGS | METH_KEYWORDS, DOC_MB03FD},
    {"mb03fz", (PyCFunction)py_mb03fz, METH_VARARGS | METH_KEYWORDS, DOC_MB03FZ},
    {"mb03xd", (PyCFunction)py_mb03xd, METH_VARARGS | METH_KEYWORDS, DOC_MB03XD},
    {"mb03xp", (PyCFunction)py_mb03xp, METH_VARARGS | METH_KEYWORDS, DOC_MB03XP},
    {"mb03xu", py_mb03xu, METH_VARARGS, DOC_MB03XU},
    {"mb03ya", py_mb03ya, METH_VARARGS, DOC_MB03YA},
    {"mb03yd", (PyCFunction)py_mb03yd, METH_VARARGS | METH_KEYWORDS, DOC_MB03YD},
    {"mb03yt", py_mb03yt, METH_VARARGS, DOC_MB03YT},
    {"mb03qg", (PyCFunction)py_mb03qg, METH_VARARGS | METH_KEYWORDS, DOC_MB03QG},
    {"mb03qv", py_mb03qv, METH_VARARGS, DOC_MB03QV},
    {"mb03qw", py_mb03qw, METH_VARARGS, DOC_MB03QW},
    {"mb03iz", (PyCFunction)py_mb03iz, METH_VARARGS | METH_KEYWORDS, DOC_MB03IZ},
    {"mb03jd", (PyCFunction)py_mb03jd, METH_VARARGS | METH_KEYWORDS, DOC_MB03JD},
    {"mb03jp", (PyCFunction)py_mb03jp, METH_VARARGS | METH_KEYWORDS, DOC_MB03JP},
    {"mb03jz", (PyCFunction)py_mb03jz, METH_VARARGS | METH_KEYWORDS, DOC_MB03JZ},
    {"mb3jzp", (PyCFunction)py_mb3jzp, METH_VARARGS | METH_KEYWORDS, DOC_MB3JZP},
    {"mb3lzp", (PyCFunction)py_mb3lzp, METH_VARARGS | METH_KEYWORDS, DOC_MB3LZP},
    {"mb03rw", py_mb03rw, METH_VARARGS, DOC_MB03RW},
    {"mb03rz", (PyCFunction)py_mb03rz, METH_VARARGS | METH_KEYWORDS, DOC_MB03RZ},
    {"mb03sd", py_mb03sd, METH_VARARGS, DOC_MB03SD},
    {"mb03ts", py_mb03ts, METH_VARARGS, DOC_MB03TS},
    {"mb03td", py_mb03td, METH_VARARGS, DOC_MB03TD},
    {"mb03kd", (PyCFunction)py_mb03kd, METH_VARARGS | METH_KEYWORDS, DOC_MB03KD},
    {"mb03ld", (PyCFunction)py_mb03ld, METH_VARARGS | METH_KEYWORDS, DOC_MB03LD},
    {"mb03lf", (PyCFunction)py_mb03lf, METH_VARARGS | METH_KEYWORDS, DOC_MB03LF},
    {"mb03lp", (PyCFunction)py_mb03lp, METH_VARARGS | METH_KEYWORDS, DOC_MB03LP},
    {"mb03lz", (PyCFunction)py_mb03lz, METH_VARARGS | METH_KEYWORDS, DOC_MB03LZ},
    {"mb03xs", (PyCFunction)py_mb03xs, METH_VARARGS | METH_KEYWORDS, DOC_MB03XS},
    {"mb03xz", (PyCFunction)py_mb03xz, METH_VARARGS | METH_KEYWORDS, DOC_MB03XZ},
    {"mb03wa", py_mb03wa, METH_VARARGS, DOC_MB03WA},
    {"mb03za", py_mb03za, METH_VARARGS, DOC_MB03ZA},
    {"mb03zd", py_mb03zd, METH_VARARGS, DOC_MB03ZD},
    {"mb04az", (PyCFunction)py_mb04az, METH_VARARGS | METH_KEYWORDS, DOC_MB04AZ},
    {"mb04ad", (PyCFunction)py_mb04ad, METH_VARARGS | METH_KEYWORDS, DOC_MB04AD},
    {"mb04bd", (PyCFunction)py_mb04bd, METH_VARARGS | METH_KEYWORDS, DOC_MB04BD},
    {"mb04bz", (PyCFunction)py_mb04bz, METH_VARARGS | METH_KEYWORDS, DOC_MB04BZ},
    {"mb04bp", (PyCFunction)py_mb04bp, METH_VARARGS | METH_KEYWORDS, DOC_MB04BP},
    {"mb04cd", (PyCFunction)py_mb04cd, METH_VARARGS | METH_KEYWORDS, DOC_MB04CD},
    {"mb04db", py_mb04db, METH_VARARGS, DOC_MB04DB},
    {"mb04dd", py_mb04dd, METH_VARARGS, DOC_MB04DD},
    {"mb04di", py_mb04di, METH_VARARGS, DOC_MB04DI},
    {"mb04dl", py_mb04dl, METH_VARARGS, DOC_MB04DL},
    {"mb04dp", py_mb04dp, METH_VARARGS, DOC_MB04DP},
    {"mb04ds", (PyCFunction)py_mb04ds, METH_VARARGS | METH_KEYWORDS, DOC_MB04DS},
    {"mb04dy", (PyCFunction)py_mb04dy, METH_VARARGS | METH_KEYWORDS, DOC_MB04DY},
    {"mb04dz", py_mb04dz, METH_VARARGS, DOC_MB04DZ},
    {"mb04ed", (PyCFunction)py_mb04ed, METH_VARARGS | METH_KEYWORDS, DOC_MB04ED},
    {"mb04fd", (PyCFunction)py_mb04fd, METH_VARARGS | METH_KEYWORDS, DOC_MB04FD},
    {"mb04fp", (PyCFunction)py_mb04fp, METH_VARARGS | METH_KEYWORDS, DOC_MB04FP},
    {"mb04gd", py_mb04gd, METH_VARARGS, DOC_MB04GD},
    {"mb04hd", (PyCFunction)py_mb04hd, METH_VARARGS | METH_KEYWORDS, DOC_MB04HD},
    {"mb04id", (PyCFunction)py_mb04id, METH_VARARGS | METH_KEYWORDS, DOC_MB04ID},
    {"mb04iy", (PyCFunction)py_mb04iy, METH_VARARGS | METH_KEYWORDS, DOC_MB04IY},
    {"mb04iz", (PyCFunction)py_mb04iz, METH_VARARGS | METH_KEYWORDS, DOC_MB04IZ},
    {"mb04jd", (PyCFunction)py_mb04jd, METH_VARARGS | METH_KEYWORDS, DOC_MB04JD},
    {"mb04kd", py_mb04kd, METH_VARARGS, DOC_MB04KD},
    {"mb04ld", py_mb04ld, METH_VARARGS, DOC_MB04LD},
    {"mb04md", (PyCFunction)py_mb04md, METH_VARARGS | METH_KEYWORDS, DOC_MB04MD},
    {"mb04pa", (PyCFunction)py_mb04pa, METH_VARARGS | METH_KEYWORDS, DOC_MB04PA},
    {"mb04pu", py_mb04pu, METH_VARARGS, DOC_MB04PU},
    {"mb04pb", py_mb04pb, METH_VARARGS, DOC_MB04PB},
    {"mb04nd", py_mb04nd, METH_VARARGS, DOC_MB04ND},
    {"mb04ny", py_mb04ny, METH_VARARGS, DOC_MB04NY},
    {"mb04od", py_mb04od, METH_VARARGS, DOC_MB04OD},
    {"mb04ow", (PyCFunction)py_mb04ow, METH_VARARGS | METH_KEYWORDS, DOC_MB04OW},
    {"mb04ox", py_mb04ox, METH_VARARGS, DOC_MB04OX},
    {"mb04oy", py_mb04oy, METH_VARARGS, DOC_MB04OY},
    {"mb04py", py_mb04py, METH_VARARGS, DOC_MB04PY},
    {"mb04qb", (PyCFunction)py_mb04qb, METH_VARARGS | METH_KEYWORDS, DOC_MB04QB},
    {"mb04qc", (PyCFunction)py_mb04qc, METH_VARARGS | METH_KEYWORDS, DOC_MB04QC},
    {"mb04qf", (PyCFunction)py_mb04qf, METH_VARARGS | METH_KEYWORDS, DOC_MB04QF},
    {"mb04qu", (PyCFunction)py_mb04qu, METH_VARARGS | METH_KEYWORDS, DOC_MB04QU},
    {"mb04qs", (PyCFunction)py_mb04qs, METH_VARARGS | METH_KEYWORDS, DOC_MB04QS},
    {"mb04rb", py_mb04rb, METH_VARARGS, DOC_MB04RB},
    {"mb04rs", py_mb04rs, METH_VARARGS, DOC_MB04RS},
    {"mb04rt", py_mb04rt, METH_VARARGS, DOC_MB04RT},
    {"mb04ru", py_mb04ru, METH_VARARGS, DOC_MB04RU},
    {"mb04rv", (PyCFunction)py_mb04rv, METH_VARARGS | METH_KEYWORDS, DOC_MB04RV},
    {"mb04rw", (PyCFunction)py_mb04rw, METH_VARARGS | METH_KEYWORDS, DOC_MB04RW},
    {"mb04tb", (PyCFunction)py_mb04tb, METH_VARARGS | METH_KEYWORDS, DOC_MB04TB},
    {"mb04ts", py_mb04ts, METH_VARARGS, DOC_MB04TS},
    {"mb04tt", py_mb04tt, METH_VARARGS, DOC_MB04TT},
    {"mb04tu", (PyCFunction)py_mb04tu, METH_VARARGS | METH_KEYWORDS, DOC_MB04TU},
    {"mb04tv", (PyCFunction)py_mb04tv, METH_VARARGS | METH_KEYWORDS, DOC_MB04TV},
    {"mb04tw", (PyCFunction)py_mb04tw, METH_VARARGS | METH_KEYWORDS, DOC_MB04TW},
    {"mb04ty", (PyCFunction)py_mb04ty, METH_VARARGS | METH_KEYWORDS, DOC_MB04TY},
    {"mb04tx", (PyCFunction)py_mb04tx, METH_VARARGS | METH_KEYWORDS, DOC_MB04TX},
    {"mb04vd", (PyCFunction)py_mb04vd, METH_VARARGS | METH_KEYWORDS, DOC_MB04VD},
    {"mb04vx", (PyCFunction)py_mb04vx, METH_VARARGS | METH_KEYWORDS, DOC_MB04VX},
    {"mb04su", py_mb04su, METH_VARARGS, DOC_MB04SU},
    {"mb04ud", (PyCFunction)py_mb04ud, METH_VARARGS | METH_KEYWORDS, DOC_MB04UD},
    {"mb04wu", (PyCFunction)py_mb04wu, METH_VARARGS | METH_KEYWORDS, DOC_MB04WU},
    {"mb04wd", (PyCFunction)py_mb04wd, METH_VARARGS | METH_KEYWORDS, DOC_MB04WD},
    {"mb04wp", (PyCFunction)py_mb04wp, METH_VARARGS | METH_KEYWORDS, DOC_MB04WP},
    {"mb04wr", (PyCFunction)py_mb04wr, METH_VARARGS | METH_KEYWORDS, DOC_MB04WR},
    {"mb04yd", (PyCFunction)py_mb04yd, METH_VARARGS | METH_KEYWORDS, DOC_MB04YD},
    {"mb04xd", py_mb04xd, METH_VARARGS, DOC_MB04XD},
    {"mb04xy", (PyCFunction)py_mb04xy, METH_VARARGS | METH_KEYWORDS, DOC_MB04XY},
    {"mb04yw", py_mb04yw, METH_VARARGS, DOC_MB04YW},
    {"mb04rd", (PyCFunction)py_mb04rd, METH_VARARGS | METH_KEYWORDS, DOC_MB04RD},
    {"mb04rz", (PyCFunction)py_mb04rz, METH_VARARGS | METH_KEYWORDS, DOC_MB04RZ},
    {"mb04zd", py_mb04zd, METH_VARARGS, DOC_MB04ZD},
    {"mb4dbz", py_mb4dbz, METH_VARARGS, DOC_MB4DBZ},
    {"mb4dlz", py_mb4dlz, METH_VARARGS, DOC_MB4DLZ},
    {"mb4dpz", py_mb4dpz, METH_VARARGS, DOC_MB4DPZ},
    {"mb05md", (PyCFunction)py_mb05md, METH_VARARGS | METH_KEYWORDS, DOC_MB05MD},
    {"mb05my", py_mb05my, METH_VARARGS, DOC_MB05MY},
    {"mb05nd", (PyCFunction)py_mb05nd, METH_VARARGS | METH_KEYWORDS, DOC_MB05ND},
    {"mb05od", py_mb05od, METH_VARARGS, DOC_MB05OD},
    {"mb05oy", py_mb05oy, METH_VARARGS, DOC_MB05OY},
    {"mb3oyz", py_mb3oyz, METH_VARARGS, DOC_MB3OYZ},
    {"mb3pyz", py_mb3pyz, METH_VARARGS, DOC_MB3PYZ},
    {"mc01md", py_mc01md, METH_VARARGS, DOC_MC01MD},
    {"mc01nd", py_mc01nd, METH_VARARGS, DOC_MC01ND},
    {"mc01pd", py_mc01pd, METH_VARARGS, DOC_MC01PD},
    {"mc01sx", py_mc01sx, METH_VARARGS, DOC_MC01SX},
    {"mc01sy", py_mc01sy, METH_VARARGS, DOC_MC01SY},
    {"mc01td", py_mc01td, METH_VARARGS, DOC_MC01TD},
    {"mc01od", py_mc01od, METH_VARARGS, DOC_MC01OD},
    {"mc01py", py_mc01py, METH_VARARGS, DOC_MC01PY},
    {"mc01qd", py_mc01qd, METH_VARARGS, DOC_MC01QD},
    {"mc01rd", (PyCFunction)py_mc01rd, METH_VARARGS | METH_KEYWORDS, DOC_MC01RD},
    {"mc01sw", py_mc01sw, METH_VARARGS, DOC_MC01SW},
    {"mc01sd", py_mc01sd, METH_VARARGS, DOC_MC01SD},
    {"mc01vd", py_mc01vd, METH_VARARGS, DOC_MC01VD},
    {"mc01wd", py_mc01wd, METH_VARARGS, DOC_MC01WD},
    {"mc01xd", py_mc01xd, METH_VARARGS, DOC_MC01XD},
    {"mc03nd", py_mc03nd, METH_VARARGS, DOC_MC03ND},
    {"mc03nx", py_mc03nx, METH_VARARGS, DOC_MC03NX},
    {"mc03ny", py_mc03ny, METH_VARARGS, DOC_MC03NY},
    {"mc03md", (PyCFunction)py_mc03md, METH_VARARGS | METH_KEYWORDS, DOC_MC03MD},
    {"md03ba", (PyCFunction)py_md03ba, METH_VARARGS, DOC_MD03BA},
    {"md03bb", (PyCFunction)py_md03bb, METH_VARARGS | METH_KEYWORDS, DOC_MD03BB},
    {"md03bf", (PyCFunction)py_md03bf, METH_VARARGS, DOC_MD03BF},
    {"md03by", (PyCFunction)py_md03by, METH_VARARGS | METH_KEYWORDS, DOC_MD03BY},
    {"nf01ay", (PyCFunction)py_nf01ay, METH_VARARGS, DOC_NF01AY},
    {"nf01br", (PyCFunction)py_nf01br, METH_VARARGS, DOC_NF01BR},
    {"nf01bs", (PyCFunction)py_nf01bs, METH_VARARGS, DOC_NF01BS},
    {"nf01by", (PyCFunction)py_nf01by, METH_VARARGS, DOC_NF01BY},
    {"sb01bd", py_sb01bd, METH_VARARGS, DOC_SB01BD},
    {"sb01bx", py_sb01bx, METH_VARARGS, DOC_SB01BX},
    {"sb01by", py_sb01by, METH_VARARGS, DOC_SB01BY},
    {"sb02cx", py_sb02cx, METH_VARARGS, DOC_SB02CX},
    {"sb02mr", py_sb02mr, METH_VARARGS, DOC_SB02MR},
    {"sb02ms", py_sb02ms, METH_VARARGS, DOC_SB02MS},
    {"sb02mv", py_sb02mv, METH_VARARGS, DOC_SB02MV},
    {"sb02mw", py_sb02mw, METH_VARARGS, DOC_SB02MW},
    {"sb02ou", py_sb02ou, METH_VARARGS, DOC_SB02OU},
    {"sb02ov", py_sb02ov, METH_VARARGS, DOC_SB02OV},
    {"sb02ow", py_sb02ow, METH_VARARGS, DOC_SB02OW},
    {"sb02ox", py_sb02ox, METH_VARARGS, DOC_SB02OX},
    {"sb01dd", (PyCFunction)py_sb01dd, METH_VARARGS | METH_KEYWORDS, DOC_SB01DD},
    {"sb01fy", py_sb01fy, METH_VARARGS, DOC_SB01FY},
    {"sb01md", py_sb01md, METH_VARARGS, DOC_SB01MD},
    {"sb02md", (PyCFunction)py_sb02md, METH_VARARGS, DOC_SB02MD},
    {"sb02mt", (PyCFunction)py_sb02mt, METH_VARARGS, DOC_SB02MT},
    {"sb02mu", (PyCFunction)py_sb02mu, METH_VARARGS, DOC_SB02MU},
    {"sb02mx", (PyCFunction)py_sb02mx, METH_VARARGS, DOC_SB02MX},
    {"sb02nd", (PyCFunction)py_sb02nd, METH_VARARGS, DOC_SB02ND},
    {"sb02od", (PyCFunction)py_sb02od, METH_VARARGS, DOC_SB02OD},
    {"sb02oy", (PyCFunction)py_sb02oy, METH_VARARGS, DOC_SB02OY},
    {"sb02pd", (PyCFunction)py_sb02pd, METH_VARARGS | METH_KEYWORDS, DOC_SB02PD},
    {"sb02qd", (PyCFunction)py_sb02qd, METH_VARARGS, DOC_SB02QD},
    {"sb02rd", (PyCFunction)py_sb02rd, METH_VARARGS | METH_KEYWORDS, DOC_SB02RD},
    {"sb02ru", (PyCFunction)py_sb02ru, METH_VARARGS, DOC_SB02RU},
    {"sb02sd", py_sb02sd, METH_VARARGS, DOC_SB02SD},
    {"sb03md", py_sb03md, METH_VARARGS, DOC_SB03MD},
    {"sb03mv", (PyCFunction)py_sb03mv, METH_VARARGS | METH_KEYWORDS, DOC_SB03MV},
    {"sb03mw", (PyCFunction)py_sb03mw, METH_VARARGS | METH_KEYWORDS, DOC_SB03MW},
    {"sb03mx", py_sb03mx, METH_VARARGS, DOC_SB03MX},
    {"sb03my", py_sb03my, METH_VARARGS, DOC_SB03MY},
    {"sb03mu", py_sb03mu, METH_VARARGS, DOC_SB03MU},
    {"sb03od", (PyCFunction)py_sb03od, METH_VARARGS, DOC_SB03OD},
    {"sb03pd", py_sb03pd, METH_VARARGS, DOC_SB03PD},
    {"sb03ou", py_sb03ou, METH_VARARGS, DOC_SB03OU},
    {"sb03ov", py_sb03ov, METH_VARARGS, DOC_SB03OV},
    {"sb03sx", py_sb03sx, METH_VARARGS, DOC_SB03SX},
    {"sb03sy", py_sb03sy, METH_VARARGS, DOC_SB03SY},
    {"sb03ud", (PyCFunction)py_sb03ud, METH_VARARGS | METH_KEYWORDS, DOC_SB03UD},
    {"sb03td", (PyCFunction)py_sb03td, METH_VARARGS | METH_KEYWORDS, DOC_SB03TD},
    {"sb03qd", (PyCFunction)py_sb03qd, METH_VARARGS | METH_KEYWORDS, DOC_SB03QD},
    {"sb03qx", (PyCFunction)py_sb03qx, METH_VARARGS | METH_KEYWORDS, DOC_SB03QX},
    {"sb03qy", (PyCFunction)py_sb03qy, METH_VARARGS | METH_KEYWORDS, DOC_SB03QY},
    {"sb03rd", (PyCFunction)py_sb03rd, METH_VARARGS | METH_KEYWORDS, DOC_SB03RD},
    {"sb03sd", (PyCFunction)py_sb03sd, METH_VARARGS | METH_KEYWORDS, DOC_SB03SD},
    {"sb04md", py_sb04md, METH_VARARGS, DOC_SB04MD},
    {"sb04mr", py_sb04mr, METH_VARARGS, DOC_SB04MR},
    {"sb04mw", py_sb04mw, METH_VARARGS, DOC_SB04MW},
    {"sb04nd", (PyCFunction)py_sb04nd, METH_VARARGS | METH_KEYWORDS, DOC_SB04ND},
    {"sb04nv", py_sb04nv, METH_VARARGS, DOC_SB04NV},
    {"sb04nw", py_sb04nw, METH_VARARGS, DOC_SB04NW},
    {"sb04nx", (PyCFunction)py_sb04nx, METH_VARARGS | METH_KEYWORDS, DOC_SB04NX},
    {"sb04ny", (PyCFunction)py_sb04ny, METH_VARARGS | METH_KEYWORDS, DOC_SB04NY},
    {"sb04od", (PyCFunction)py_sb04od, METH_VARARGS | METH_KEYWORDS, DOC_SB04OD},
    {"sb04ow", py_sb04ow, METH_VARARGS, DOC_SB04OW},
    {"sb04pd", py_sb04pd, METH_VARARGS, DOC_SB04PD},
    {"sb04py", py_sb04py, METH_VARARGS, DOC_SB04PY},
    {"sb04qd", py_sb04qd, METH_VARARGS, DOC_SB04QD},
    {"sb04qr", py_sb04qr, METH_VARARGS, DOC_SB04QR},
    {"sb04rv", py_sb04rv, METH_VARARGS, DOC_SB04RV},
    {"sb04rw", py_sb04rw, METH_VARARGS, DOC_SB04RW},
    {"sb04rx", py_sb04rx, METH_VARARGS, DOC_SB04RX},
    {"sb04ry", py_sb04ry, METH_VARARGS, DOC_SB04RY},
    {"sb04rd", py_sb04rd, METH_VARARGS, DOC_SB04RD},
    {"sb08cd", (PyCFunction)py_sb08cd, METH_VARARGS | METH_KEYWORDS, DOC_SB08CD},
    {"sb08dd", py_sb08dd, METH_VARARGS, DOC_SB08DD},
    {"sb08ed", (PyCFunction)py_sb08ed, METH_VARARGS | METH_KEYWORDS, DOC_SB08ED},
    {"sb08fd", (PyCFunction)py_sb08fd, METH_VARARGS | METH_KEYWORDS, DOC_SB08FD},
    {"sb08gd", py_sb08gd, METH_VARARGS, DOC_SB08GD},
    {"sb08hd", py_sb08hd, METH_VARARGS, DOC_SB08HD},
    {"sb08md", py_sb08md, METH_VARARGS, DOC_SB08MD},
    {"sb08my", py_sb08my, METH_VARARGS, DOC_SB08MY},
    {"sb08nd", py_sb08nd, METH_VARARGS, DOC_SB08ND},
    {"sb08ny", py_sb08ny, METH_VARARGS, DOC_SB08NY},
    {"sb09md", py_sb09md, METH_VARARGS, DOC_SB09MD},
    {"sb10dd", (PyCFunction)py_sb10dd, METH_VARARGS | METH_KEYWORDS, DOC_SB10DD},
    {"sb10ed", (PyCFunction)py_sb10ed, METH_VARARGS | METH_KEYWORDS, DOC_SB10ED},
    {"sb10fd", (PyCFunction)py_sb10fd, METH_VARARGS | METH_KEYWORDS, DOC_SB10FD},
    {"sb10hd", (PyCFunction)py_sb10hd, METH_VARARGS | METH_KEYWORDS, DOC_SB10HD},
    {"sb10id", (PyCFunction)py_sb10id, METH_VARARGS | METH_KEYWORDS, DOC_SB10ID},
    {"sb10jd", (PyCFunction)py_sb10jd, METH_VARARGS | METH_KEYWORDS, DOC_SB10JD},
    {"sb10pd", (PyCFunction)py_sb10pd, METH_VARARGS | METH_KEYWORDS, DOC_SB10PD},
    {"sb10ad", py_sb10ad, METH_VARARGS, DOC_SB10AD},
    {"sb10ld", py_sb10ld, METH_VARARGS, DOC_SB10LD},
    {"sb10rd", py_sb10rd, METH_VARARGS, DOC_SB10RD},
    {"sb10sd", (PyCFunction)py_sb10sd, METH_VARARGS | METH_KEYWORDS, DOC_SB10SD},
    {"sb10td", (PyCFunction)py_sb10td, METH_VARARGS | METH_KEYWORDS, DOC_SB10TD},
    {"sb10vd", py_sb10vd, METH_VARARGS, DOC_SB10VD},
    {"sb10wd", (PyCFunction)py_sb10wd, METH_VARARGS | METH_KEYWORDS, DOC_SB10WD},
    {"sb10yd", slicot_sb10yd, METH_VARARGS, DOC_SB10YD},
    {"sb10md", slicot_sb10md, METH_VARARGS, DOC_SB10MD},
    {"sb10zd", py_sb10zd, METH_VARARGS, DOC_SB10ZD},
    {"sb10zp", py_sb10zp, METH_VARARGS, DOC_SB10ZP},
    {"sb10kd", (PyCFunction)py_sb10kd, METH_VARARGS | METH_KEYWORDS, DOC_SB10KD},
    {"sb06nd", (PyCFunction)py_sb06nd, METH_VARARGS | METH_KEYWORDS, DOC_SB06ND},
    {"sb16ad", (PyCFunction)py_sb16ad, METH_VARARGS | METH_KEYWORDS, DOC_SB16AD},
    {"sb16bd", py_sb16bd, METH_VARARGS, DOC_SB16BD},
    {"sb16cd", (PyCFunction)py_sb16cd, METH_VARARGS | METH_KEYWORDS, DOC_SB16CD},
    {"sb16cy", py_sb16cy, METH_VARARGS, DOC_SB16CY},
    {"sg02ad", (PyCFunction)py_sg02ad, METH_VARARGS, DOC_SG02AD},
    {"sg02cv", (PyCFunction)py_sg02cv, METH_VARARGS | METH_KEYWORDS, DOC_SG02CV},
    {"sg02cw", (PyCFunction)py_sg02cw, METH_VARARGS | METH_KEYWORDS, DOC_SG02CW},
    {"sg02cx", (PyCFunction)py_sg02cx, METH_VARARGS | METH_KEYWORDS, DOC_SG02CX},
    {"sg02nd", (PyCFunction)py_sg02nd, METH_VARARGS | METH_KEYWORDS, DOC_SG02ND},
    {"sg03ad", (PyCFunction)py_sg03ad, METH_VARARGS, DOC_SG03AD},
    {"sg03ax", py_sg03ax, METH_VARARGS, DOC_SG03AX},
    {"sg03ay", py_sg03ay, METH_VARARGS, DOC_SG03AY},
    {"sg03bd", py_sg03bd, METH_VARARGS, DOC_SG03BD},
    {"sg03br", py_sg03br, METH_VARARGS, DOC_SG03BR},
    {"sg03bu", py_sg03bu, METH_VARARGS, DOC_SG03BU},
    {"sg03bv", py_sg03bv, METH_VARARGS, DOC_SG03BV},
    {"sg03bw", py_sg03bw, METH_VARARGS, DOC_SG03BW},
    {"sg03bx", py_sg03bx, METH_VARARGS, DOC_SG03BX},
    {"sg03bs", py_sg03bs, METH_VARARGS, DOC_SG03BS},
    {"sg03bt", py_sg03bt, METH_VARARGS, DOC_SG03BT},
    {"sg03by", py_sg03by, METH_VARARGS, DOC_SG03BY},
    {"sg03bz", py_sg03bz, METH_VARARGS, DOC_SG03BZ},
    {"tb01id", py_tb01id, METH_VARARGS, DOC_TB01ID},
    {"tb01iz", py_tb01iz, METH_VARARGS, DOC_TB01IZ},
    {"tb01kd", py_tb01kd, METH_VARARGS, DOC_TB01KD},
    {"tb01kx", py_tb01kx, METH_VARARGS, DOC_TB01KX},
    {"tb01ld", py_tb01ld, METH_VARARGS, DOC_TB01LD},
    {"tb01md", (PyCFunction)py_tb01md, METH_VARARGS | METH_KEYWORDS, DOC_TB01MD},
    {"tb01nd", (PyCFunction)py_tb01nd, METH_VARARGS | METH_KEYWORDS, DOC_TB01ND},
    {"tb01pd", py_tb01pd, METH_VARARGS, DOC_TB01PD},
    {"tb01px", (PyCFunction)py_tb01px, METH_VARARGS | METH_KEYWORDS, DOC_TB01PX},
    {"tb01td", py_tb01td, METH_VARARGS, DOC_TB01TD},
    {"tb01ud", (PyCFunction)py_tb01ud, METH_VARARGS | METH_KEYWORDS, DOC_TB01UD},
    {"tb01ux", (PyCFunction)py_tb01ux, METH_VARARGS | METH_KEYWORDS, DOC_TB01UX},
    {"tb01uy", (PyCFunction)py_tb01uy, METH_VARARGS | METH_KEYWORDS, DOC_TB01UY},
    {"tb01vd", (PyCFunction)py_tb01vd, METH_VARARGS | METH_KEYWORDS, DOC_TB01VD},
    {"tb01vy", (PyCFunction)py_tb01vy, METH_VARARGS | METH_KEYWORDS, DOC_TB01VY},
    {"tb01ty", (PyCFunction)py_tb01ty, METH_VARARGS | METH_KEYWORDS, DOC_TB01TY},
    {"tb01wd", py_tb01wd, METH_VARARGS, DOC_TB01WD},
    {"tb01wx", (PyCFunction)py_tb01wx, METH_VARARGS | METH_KEYWORDS, DOC_TB01WX},
    {"tb01xd", py_tb01xd, METH_VARARGS, DOC_TB01XD},
    {"tb01xz", py_tb01xz, METH_VARARGS, DOC_TB01XZ},
    {"tb01zd", (PyCFunction)py_tb01zd, METH_VARARGS | METH_KEYWORDS, DOC_TB01ZD},
    {"tb03ad", (PyCFunction)py_tb03ad, METH_VARARGS | METH_KEYWORDS, DOC_TB03AD},
    {"tb03ay", py_tb03ay, METH_VARARGS, DOC_TB03AY},
    {"tb04ad", (PyCFunction)py_tb04ad, METH_VARARGS | METH_KEYWORDS, DOC_TB04AD},
    {"tb04bd", (PyCFunction)py_tb04bd, METH_VARARGS | METH_KEYWORDS, DOC_TB04BD},
    {"tb04cd", (PyCFunction)py_tb04cd, METH_VARARGS | METH_KEYWORDS, DOC_TB04CD},
    {"tb04bv", py_tb04bv, METH_VARARGS, DOC_TB04BV},
    {"tb04bw", py_tb04bw, METH_VARARGS, DOC_TB04BW},
    {"tb04bx", (PyCFunction)py_tb04bx, METH_VARARGS | METH_KEYWORDS, DOC_TB04BX},
    {"tb05ad", py_tb05ad, METH_VARARGS, DOC_TB05AD},
    {"tc01od", py_tc01od, METH_VARARGS, DOC_TC01OD},
    {"tc04ad", py_tc04ad, METH_VARARGS, DOC_TC04AD},
    {"tc05ad", py_tc05ad, METH_VARARGS, DOC_TC05AD},
    {"td03ad", py_td03ad, METH_VARARGS, DOC_TD03AD},
    {"td03ay", py_td03ay, METH_VARARGS, DOC_TD03AY},
    {"td04ad", py_td04ad, METH_VARARGS, DOC_TD04AD},
    {"td05ad", py_td05ad, METH_VARARGS, DOC_TD05AD},
    {"tf01md", py_tf01md, METH_VARARGS, DOC_TF01MD},
    {"tf01mx", py_tf01mx, METH_VARARGS, DOC_TF01MX},
    {"tf01my", py_tf01my, METH_VARARGS, DOC_TF01MY},
    {"tf01nd", py_tf01nd, METH_VARARGS, DOC_TF01ND},
    {"tf01od", py_tf01od, METH_VARARGS, DOC_TF01OD},
    {"tf01pd", py_tf01pd, METH_VARARGS, DOC_TF01PD},
    {"tf01qd", py_tf01qd, METH_VARARGS, DOC_TF01QD},
    {"tf01rd", py_tf01rd, METH_VARARGS, DOC_TF01RD},
    {"tg01ad", py_tg01ad, METH_VARARGS, DOC_TG01AD},
    {"tg01az", py_tg01az, METH_VARARGS, DOC_TG01AZ},
    {"tg01bd", py_tg01bd, METH_VARARGS, DOC_TG01BD},
    {"tg01cd", py_tg01cd, METH_VARARGS, DOC_TG01CD},
    {"tg01dd", py_tg01dd, METH_VARARGS, DOC_TG01DD},
    {"tg01ed", py_tg01ed, METH_VARARGS, DOC_TG01ED},
    {"tg01fd", py_tg01fd, METH_VARARGS, DOC_TG01FD},
    {"tg01fz", py_tg01fz, METH_VARARGS, DOC_TG01FZ},
    {"tg01gd", py_tg01gd, METH_VARARGS, DOC_TG01GD},
    {"tg01hd", (PyCFunction)py_tg01hd, METH_VARARGS | METH_KEYWORDS, DOC_TG01HD},
    {"tg01hu", (PyCFunction)py_tg01hu, METH_VARARGS | METH_KEYWORDS, DOC_TG01HU},
    {"tg01hx", (PyCFunction)py_tg01hx, METH_VARARGS | METH_KEYWORDS, DOC_TG01HX},
    {"tg01hy", (PyCFunction)py_tg01hy, METH_VARARGS | METH_KEYWORDS, DOC_TG01HY},
    {"tg01id", py_tg01id, METH_VARARGS, DOC_TG01ID},
    {"tg01jd", py_tg01jd, METH_VARARGS, DOC_TG01JD},
    {"tg01jy", (PyCFunction)py_tg01jy, METH_VARARGS | METH_KEYWORDS, DOC_TG01JY},
    {"tg01kd", (PyCFunction)py_tg01kd, METH_VARARGS | METH_KEYWORDS, DOC_TG01KD},
    {"tg01kz", (PyCFunction)py_tg01kz, METH_VARARGS | METH_KEYWORDS, DOC_TG01KZ},
    {"tg01ld", py_tg01ld, METH_VARARGS, DOC_TG01LD},
    {"tg01ly", (PyCFunction)py_tg01ly, METH_VARARGS | METH_KEYWORDS, DOC_TG01LY},
    {"tg01md", py_tg01md, METH_VARARGS, DOC_TG01MD},
    {"tg01nd", py_tg01nd, METH_VARARGS, DOC_TG01ND},
    {"tg01nx", py_tg01nx, METH_VARARGS, DOC_TG01NX},
    {"tg01oa", py_tg01oa, METH_VARARGS, DOC_TG01OA},
    {"tg01ob", py_tg01ob, METH_VARARGS, DOC_TG01OB},
    {"tg01od", py_tg01od, METH_VARARGS, DOC_TG01OD},
    {"tg01oz", py_tg01oz, METH_VARARGS, DOC_TG01OZ},
    {"tg01pd", (PyCFunction)(void(*)(void))py_tg01pd, METH_VARARGS | METH_KEYWORDS, DOC_TG01PD},
    {"tg01qd", py_tg01qd, METH_VARARGS, DOC_TG01QD},
    {"tg01wd", py_tg01wd, METH_VARARGS, DOC_TG01WD},

    {"ud01bd", py_ud01bd, METH_VARARGS, DOC_UD01BD},
    {"ud01cd", py_ud01cd, METH_VARARGS, DOC_UD01CD},
    {"ud01dd", py_ud01dd, METH_VARARGS, DOC_UD01DD},
    {"ud01md", py_ud01md, METH_VARARGS, DOC_UD01MD},
    {"ud01mz", (PyCFunction)(void(*)(void))py_ud01mz, METH_VARARGS | METH_KEYWORDS, DOC_UD01MZ},
    {"ud01nd", (PyCFunction)(void(*)(void))py_ud01nd, METH_VARARGS | METH_KEYWORDS, DOC_UD01ND},
    {"ue01md", py_ue01md, METH_VARARGS, DOC_UE01MD},

    {"md03bd", (PyCFunction)(void(*)(void))py_md03bd, METH_VARARGS | METH_KEYWORDS, DOC_MD03BD},
    {"dlatzm", py_dlatzm, METH_VARARGS, DOC_DLATZM},
    {"dgegv", py_dgegv, METH_VARARGS, DOC_DGEGV},
    {"zgegs", py_zgegs, METH_VARARGS, DOC_ZGEGS},
    {"zgegv", py_zgegv, METH_VARARGS, DOC_ZGEGV},
    {NULL, NULL, 0, NULL}
};

static struct PyModuleDef slicotmodule = {
    PyModuleDef_HEAD_INIT,
    "_slicot",
    "SLICOT C library Python bindings",
    -1,
    SlicotMethods
};

PyMODINIT_FUNC PyInit__slicot(void) {
    import_array();
    return PyModule_Create(&slicotmodule);
}
