function wrapper_xBase
input Real A[:, size(A, 1)] "Real square system matrix";
input Real B[size(A, 1), :] "Real input matrix";
input Real gamma_real[size(A, 1)] "Eigenvalue vector, real part";
input Real gamma_imag[size(A, 1)] "Eigenvalue vector, imaginary part";
input Integer ncp "Number of complex pairs of eigenvalues";
output Real U0[size(A, 1), size(B, 2)] "U0";
output Real Z[size(B, 2), size(B, 2)] "Z";
output Real S_real[size(A, 1), size(B, 2)*(size(A, 1) - ncp)] "Eigenvector bases, real part";
output Real S_imag[size(A, 1), size(B, 2)*(size(A, 1) - ncp)] "Eigenvector bases, imaginary part";
output Integer rankB "Rank of matrix B";
end wrapper_xBase;