/** @def LINLEN
* @brief Size of the #linprm struct in @a int units.
*
* Size of the #linprm struct in @a int units, used by the Fortran wrappers.
*/

/** @def linini_errmsg
* @brief Deprecated.
* @deprecated Added for backwards compatibility, use #lin_errmsg directly now
* instead.
*/

/** @def lincpy_errmsg
* @brief Deprecated.
* @deprecated Added for backwards compatibility, use #lin_errmsg directly now
* instead.
*/

/** @def linfree_errmsg
* @brief Deprecated.
* @deprecated Added for backwards compatibility, use #lin_errmsg directly now
* instead.
*/

/** @def linprt_errmsg
* @brief Deprecated.
* @deprecated Added for backwards compatibility, use #lin_errmsg directly now
* instead.
*/

/** @def linset_errmsg
* @brief Deprecated.
* @deprecated Added for backwards compatibility, use #lin_errmsg directly now
* instead.
*/

/** @def linp2x_errmsg
* @brief Deprecated.
* @deprecated Added for backwards compatibility, use #lin_errmsg directly now
* instead.
*/

/** @def linx2p_errmsg
* @brief Deprecated.
* @deprecated Added for backwards compatibility, use #lin_errmsg directly now
* instead.
*/

/** @fn matinv(int n, const double mat[], double inv[])
*
* @brief Matrix inversion.
*
* @b %matinv() performs matrix inversion using LU-triangular factorization
*    with scaled partial pivoting.
*
* @param[in] n          Order of the matrix (\f$n \times n\f$).
*
* @param[in] mat        Matrix to be inverted, stored as mat[\f$i n + j\f$]
*                       where \f$i\f$ and \f$j\f$ are the row and column
*                       indices respectively.
*
* @param[out] inv       Inverse of mat with the same storage convention.
*
* @return Status return value:
*                       - 0: Success.
*                       - 2: Memory allocation failed.
*                       - 3: Singular matrix.
*/
