use ffi;
use enums;
use types::complex::FFFI;
pub fn LU_decomp(a: &mut ::MatrixF64, p: &mut ::Permutation, signum: &mut i32) -> enums::Value {
unsafe {
ffi::gsl_linalg_LU_decomp(ffi::FFI::unwrap_unique(a),
ffi::FFI::unwrap_unique(p),
signum)
}
}
pub fn complex_LU_decomp(a: &mut ::MatrixComplexF64,
p: &mut ::Permutation,
signum: &mut i32)
-> enums::Value {
unsafe {
ffi::gsl_linalg_complex_LU_decomp(ffi::FFI::unwrap_unique(a),
ffi::FFI::unwrap_unique(p),
signum)
}
}
pub fn LU_solve(lu: &::MatrixF64,
p: &::Permutation,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_LU_solve(ffi::FFI::unwrap_shared(lu),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn complex_LU_solve(lu: &::MatrixComplexF64,
p: &::Permutation,
b: &::VectorComplexF64,
x: &mut ::VectorComplexF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_complex_LU_solve(ffi::FFI::unwrap_shared(lu),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn LU_svx(lu: &::MatrixF64, p: &::Permutation, x: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_LU_svx(ffi::FFI::unwrap_shared(lu),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_unique(x))
}
}
pub fn complex_LU_svx(lu: &::MatrixComplexF64,
p: &::Permutation,
x: &mut ::VectorComplexF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_complex_LU_svx(ffi::FFI::unwrap_shared(lu),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_unique(x))
}
}
pub fn LU_refine(a: &::MatrixF64,
lu: &::MatrixF64,
p: &::Permutation,
b: &::VectorF64,
x: &mut ::VectorF64,
residual: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_LU_refine(ffi::FFI::unwrap_shared(a),
ffi::FFI::unwrap_shared(lu),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x),
ffi::FFI::unwrap_unique(residual))
}
}
pub fn complex_LU_refine(a: &mut ::MatrixComplexF64,
lu: &::MatrixComplexF64,
p: &::Permutation,
b: &::VectorComplexF64,
x: &mut ::VectorComplexF64,
residual: &mut ::VectorComplexF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_complex_LU_refine(ffi::FFI::unwrap_unique(a),
ffi::FFI::unwrap_shared(lu),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x),
ffi::FFI::unwrap_unique(residual))
}
}
pub fn LU_invert(lu: &::MatrixF64, p: &::Permutation, inverse: &mut ::MatrixF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_LU_invert(ffi::FFI::unwrap_shared(lu),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_unique(inverse))
}
}
pub fn complex_LU_invert(lu: &::MatrixComplexF64,
p: &::Permutation,
inverse: &mut ::MatrixComplexF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_complex_LU_invert(ffi::FFI::unwrap_shared(lu),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_unique(inverse))
}
}
pub fn LU_det(lu: &mut ::MatrixF64, signum: i32) -> f64 {
unsafe { ffi::gsl_linalg_LU_det(ffi::FFI::unwrap_unique(lu), signum) }
}
pub fn complex_LU_det(lu: &mut ::MatrixComplexF64, signum: i32) -> ::ComplexF64 {
unsafe { ffi::gsl_linalg_complex_LU_det(ffi::FFI::unwrap_unique(lu), signum).wrap() }
}
pub fn LU_lndet(lu: &mut ::MatrixF64) -> f64 {
unsafe { ffi::gsl_linalg_LU_lndet(ffi::FFI::unwrap_unique(lu)) }
}
pub fn complex_LU_lndet(lu: &mut ::MatrixComplexF64) -> f64 {
unsafe { ffi::gsl_linalg_complex_LU_lndet(ffi::FFI::unwrap_unique(lu)) }
}
pub fn LU_sgndet(lu: &mut ::MatrixF64, signum: i32) -> f64 {
unsafe { ffi::gsl_linalg_LU_sgndet(ffi::FFI::unwrap_unique(lu), signum) }
}
pub fn complex_LU_sgndet(lu: &mut ::MatrixComplexF64, signum: i32) -> ::ComplexF64 {
unsafe { ffi::gsl_linalg_complex_LU_sgndet(ffi::FFI::unwrap_unique(lu), signum).wrap() }
}
pub fn QR_decomp(a: &mut ::MatrixF64, tau: &mut ::VectorF64) -> enums::Value {
unsafe { ffi::gsl_linalg_QR_decomp(ffi::FFI::unwrap_unique(a), ffi::FFI::unwrap_unique(tau)) }
}
pub fn QR_solve(qr: &::MatrixF64,
tau: &::VectorF64,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QR_solve(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(tau),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn QR_svx(qr: &::MatrixF64, tau: &::VectorF64, x: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_QR_svx(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(tau),
ffi::FFI::unwrap_unique(x))
}
}
pub fn QR_lssolve(qr: &::MatrixF64,
tau: &::VectorF64,
b: &::VectorF64,
x: &mut ::VectorF64,
residual: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QR_lssolve(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(tau),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x),
ffi::FFI::unwrap_unique(residual))
}
}
pub fn QR_QTvec(qr: &::MatrixF64, tau: &::VectorF64, v: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_QR_QTvec(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(tau),
ffi::FFI::unwrap_unique(v))
}
}
pub fn QR_Qvec(qr: &::MatrixF64, tau: &::VectorF64, v: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_QR_Qvec(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(tau),
ffi::FFI::unwrap_unique(v))
}
}
pub fn QR_QTmat(qr: &::MatrixF64, tau: &::VectorF64, v: &mut ::MatrixF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_QR_QTmat(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(tau),
ffi::FFI::unwrap_unique(v))
}
}
pub fn QR_Rsolve(qr: &::MatrixF64, b: &::VectorF64, x: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_QR_Rsolve(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn QR_Rsvx(qr: &::MatrixF64, x: &mut ::VectorF64) -> enums::Value {
unsafe { ffi::gsl_linalg_QR_Rsvx(ffi::FFI::unwrap_shared(qr), ffi::FFI::unwrap_unique(x)) }
}
pub fn QR_unpack(qr: &::MatrixF64,
tau: &::VectorF64,
q: &mut ::MatrixF64,
r: &mut ::MatrixF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QR_unpack(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(tau),
ffi::FFI::unwrap_unique(q),
ffi::FFI::unwrap_unique(r))
}
}
pub fn QR_QRsolve(q: &mut ::MatrixF64,
r: &mut ::MatrixF64,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QR_QRsolve(ffi::FFI::unwrap_unique(q),
ffi::FFI::unwrap_unique(r),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn QR_update(q: &mut ::MatrixF64,
r: &mut ::MatrixF64,
mut w: ::VectorF64,
v: &::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QR_update(ffi::FFI::unwrap_unique(q),
ffi::FFI::unwrap_unique(r),
ffi::FFI::unwrap_unique(&mut w),
ffi::FFI::unwrap_shared(v))
}
}
pub fn R_solve(r: &::MatrixF64, b: &::VectorF64, x: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_R_solve(ffi::FFI::unwrap_shared(r),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn R_svx(r: &::MatrixF64, x: &mut ::VectorF64) -> enums::Value {
unsafe { ffi::gsl_linalg_R_svx(ffi::FFI::unwrap_shared(r), ffi::FFI::unwrap_unique(x)) }
}
pub fn QRPT_decomp(a: &mut ::MatrixF64,
tau: &mut ::VectorF64,
p: &mut ::Permutation,
signum: &mut i32,
norm: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QRPT_decomp(ffi::FFI::unwrap_unique(a),
ffi::FFI::unwrap_unique(tau),
ffi::FFI::unwrap_unique(p),
signum,
ffi::FFI::unwrap_unique(norm))
}
}
pub fn QRPT_decomp2(a: &::MatrixF64,
q: &mut ::MatrixF64,
r: &mut ::MatrixF64,
tau: &mut ::VectorF64,
p: &mut ::Permutation,
signum: &mut i32,
norm: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QRPT_decomp2(ffi::FFI::unwrap_shared(a),
ffi::FFI::unwrap_unique(q),
ffi::FFI::unwrap_unique(r),
ffi::FFI::unwrap_unique(tau),
ffi::FFI::unwrap_unique(p),
signum,
ffi::FFI::unwrap_unique(norm))
}
}
pub fn QRPT_solve(qr: &::MatrixF64,
tau: &::VectorF64,
p: &::Permutation,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QRPT_solve(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(tau),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn QRPT_svx(qr: &::MatrixF64,
tau: &::VectorF64,
p: &::Permutation,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QRPT_svx(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(tau),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_unique(x))
}
}
pub fn QRPT_QRsolve(q: &::MatrixF64,
r: &::MatrixF64,
p: &::Permutation,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QRPT_QRsolve(ffi::FFI::unwrap_shared(q),
ffi::FFI::unwrap_shared(r),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn QRPT_update(q: &::MatrixF64,
r: &::MatrixF64,
p: &::Permutation,
w: &mut ::VectorF64,
v: &::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QRPT_update(ffi::FFI::unwrap_shared(q),
ffi::FFI::unwrap_shared(r),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_unique(w),
ffi::FFI::unwrap_shared(v))
}
}
pub fn QRPT_Rsolve(qr: &::MatrixF64,
p: &::Permutation,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_QRPT_Rsolve(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn QRPT_Rsvx(qr: &::MatrixF64, p: &::Permutation, x: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_QRPT_Rsvx(ffi::FFI::unwrap_shared(qr),
ffi::FFI::unwrap_shared(p),
ffi::FFI::unwrap_unique(x))
}
}
pub fn SV_decomp(a: &mut ::MatrixF64,
v: &mut ::MatrixF64,
s: &mut ::VectorF64,
work: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_SV_decomp(ffi::FFI::unwrap_unique(a),
ffi::FFI::unwrap_unique(v),
ffi::FFI::unwrap_unique(s),
ffi::FFI::unwrap_unique(work))
}
}
pub fn SV_decomp_mod(a: &mut ::MatrixF64,
x: &mut ::MatrixF64,
v: &mut ::MatrixF64,
s: &mut ::VectorF64,
work: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_SV_decomp_mod(ffi::FFI::unwrap_unique(a),
ffi::FFI::unwrap_unique(x),
ffi::FFI::unwrap_unique(v),
ffi::FFI::unwrap_unique(s),
ffi::FFI::unwrap_unique(work))
}
}
pub fn SV_decomp_jacobi(a: &mut ::MatrixF64, v: &mut ::MatrixF64, s: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_SV_decomp_jacobi(ffi::FFI::unwrap_unique(a),
ffi::FFI::unwrap_unique(v),
ffi::FFI::unwrap_unique(s))
}
}
pub fn SV_solve(u: &::MatrixF64,
v: &::MatrixF64,
s: &::VectorF64,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_SV_solve(ffi::FFI::unwrap_shared(u),
ffi::FFI::unwrap_shared(v),
ffi::FFI::unwrap_shared(s),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn SV_leverage(u: &::MatrixF64, h: &mut ::VectorF64) -> enums::Value {
unsafe { ffi::gsl_linalg_SV_leverage(ffi::FFI::unwrap_shared(u), ffi::FFI::unwrap_unique(h)) }
}
pub fn cholesky_decomp(a: &mut ::MatrixF64) -> enums::Value {
unsafe { ffi::gsl_linalg_cholesky_decomp(ffi::FFI::unwrap_unique(a)) }
}
pub fn complex_cholesky_decomp(a: &mut ::MatrixComplexF64) -> enums::Value {
unsafe { ffi::gsl_linalg_complex_cholesky_decomp(ffi::FFI::unwrap_unique(a)) }
}
pub fn cholesky_solve(cholesky: &::MatrixF64,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_cholesky_solve(ffi::FFI::unwrap_shared(cholesky),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn complex_cholesky_solve(cholesky: &::MatrixComplexF64,
b: &::VectorComplexF64,
x: &mut ::VectorComplexF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_complex_cholesky_solve(ffi::FFI::unwrap_shared(cholesky),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn cholesky_svx(cholesky: &::MatrixF64, x: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_cholesky_svx(ffi::FFI::unwrap_shared(cholesky),
ffi::FFI::unwrap_unique(x))
}
}
pub fn complex_cholesky_svx(cholesky: &::MatrixComplexF64, x: &mut ::VectorComplexF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_complex_cholesky_svx(ffi::FFI::unwrap_shared(cholesky),
ffi::FFI::unwrap_unique(x))
}
}
pub fn cholesky_invert(cholesky: &mut ::MatrixF64) -> enums::Value {
unsafe { ffi::gsl_linalg_cholesky_invert(ffi::FFI::unwrap_unique(cholesky)) }
}
pub fn complex_cholesky_invert(cholesky: &mut ::MatrixComplexF64) -> enums::Value {
unsafe { ffi::gsl_linalg_complex_cholesky_invert(ffi::FFI::unwrap_unique(cholesky)) }
}
pub fn symmtd_decomp(a: &mut ::MatrixF64, tau: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_symmtd_decomp(ffi::FFI::unwrap_unique(a), ffi::FFI::unwrap_unique(tau))
}
}
pub fn symmtd_unpack(a: &::MatrixF64,
tau: &::VectorF64,
q: &mut ::MatrixF64,
diag: &mut ::VectorF64,
subdiag: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_symmtd_unpack(ffi::FFI::unwrap_shared(a),
ffi::FFI::unwrap_shared(tau),
ffi::FFI::unwrap_unique(q),
ffi::FFI::unwrap_unique(diag),
ffi::FFI::unwrap_unique(subdiag))
}
}
pub fn symmtd_unpack_T(a: &::MatrixF64,
diag: &mut ::VectorF64,
subdiag: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_symmtd_unpack_T(ffi::FFI::unwrap_shared(a),
ffi::FFI::unwrap_unique(diag),
ffi::FFI::unwrap_unique(subdiag))
}
}
pub fn hermtd_decomp(a: &mut ::MatrixComplexF64, tau: &mut ::VectorComplexF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_hermtd_decomp(ffi::FFI::unwrap_unique(a), ffi::FFI::unwrap_unique(tau))
}
}
pub fn hermtd_unpack(a: &::MatrixComplexF64,
tau: &::VectorComplexF64,
u: &mut ::MatrixComplexF64,
diag: &mut ::VectorF64,
subdiag: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_hermtd_unpack(ffi::FFI::unwrap_shared(a),
ffi::FFI::unwrap_shared(tau),
ffi::FFI::unwrap_unique(u),
ffi::FFI::unwrap_unique(diag),
ffi::FFI::unwrap_unique(subdiag))
}
}
pub fn hermtd_unpack_T(a: &::MatrixComplexF64,
diag: &mut ::VectorF64,
subdiag: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_hermtd_unpack_T(ffi::FFI::unwrap_shared(a),
ffi::FFI::unwrap_unique(diag),
ffi::FFI::unwrap_unique(subdiag))
}
}
pub fn hessenberg_decomp(a: &mut ::MatrixF64, tau: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_hessenberg_decomp(ffi::FFI::unwrap_unique(a), ffi::FFI::unwrap_unique(tau))
}
}
pub fn hessenberg_unpack(h: &mut ::MatrixF64,
tau: &mut ::VectorF64,
u: &mut ::MatrixF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_hessenberg_unpack(ffi::FFI::unwrap_unique(h),
ffi::FFI::unwrap_unique(tau),
ffi::FFI::unwrap_unique(u))
}
}
pub fn hessenberg_unpack_accum(h: &mut ::MatrixF64,
tau: &mut ::VectorF64,
v: &mut ::MatrixF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_hessenberg_unpack_accum(ffi::FFI::unwrap_unique(h),
ffi::FFI::unwrap_unique(tau),
ffi::FFI::unwrap_unique(v))
}
}
pub fn hessenberg_set_zero(h: &mut ::MatrixF64) -> enums::Value {
unsafe { ffi::gsl_linalg_hessenberg_set_zero(ffi::FFI::unwrap_unique(h)) }
}
pub fn hesstri_decomp(a: &mut ::MatrixF64,
b: &mut ::MatrixF64,
u: &mut ::MatrixF64,
v: &mut ::MatrixF64,
work: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_hesstri_decomp(ffi::FFI::unwrap_unique(a),
ffi::FFI::unwrap_unique(b),
ffi::FFI::unwrap_unique(u),
ffi::FFI::unwrap_unique(v),
ffi::FFI::unwrap_unique(work))
}
}
pub fn bidiag_decomp(a: &mut ::MatrixF64,
tau_u: &mut ::VectorF64,
tau_v: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_bidiag_decomp(ffi::FFI::unwrap_unique(a),
ffi::FFI::unwrap_unique(tau_u),
ffi::FFI::unwrap_unique(tau_v))
}
}
pub fn bidiag_unpack(a: &mut ::MatrixF64,
tau_u: &::VectorF64,
u: &mut ::MatrixF64,
tau_v: &::VectorF64,
v: &mut ::MatrixF64,
diag: &mut ::VectorF64,
superdiag: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_bidiag_unpack(ffi::FFI::unwrap_unique(a),
ffi::FFI::unwrap_shared(tau_u),
ffi::FFI::unwrap_unique(u),
ffi::FFI::unwrap_shared(tau_v),
ffi::FFI::unwrap_unique(v),
ffi::FFI::unwrap_unique(diag),
ffi::FFI::unwrap_unique(superdiag))
}
}
pub fn bidiag_unpack2(a: &mut ::MatrixF64,
tau_u: &mut ::VectorF64,
tau_v: &mut ::VectorF64,
v: &mut ::MatrixF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_bidiag_unpack2(ffi::FFI::unwrap_unique(a),
ffi::FFI::unwrap_unique(tau_u),
ffi::FFI::unwrap_unique(tau_v),
ffi::FFI::unwrap_unique(v))
}
}
pub fn bidiag_unpack_B(a: &::MatrixF64,
diag: &mut ::VectorF64,
superdiag: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_bidiag_unpack_B(ffi::FFI::unwrap_shared(a),
ffi::FFI::unwrap_unique(diag),
ffi::FFI::unwrap_unique(superdiag))
}
}
pub fn householder_transform(v: &mut ::VectorF64) -> f64 {
unsafe { ffi::gsl_linalg_householder_transform(ffi::FFI::unwrap_unique(v)) }
}
pub fn complex_householder_transform(v: &mut ::VectorComplexF64) -> ::ComplexF64 {
unsafe {
::std::mem::transmute(ffi::gsl_linalg_complex_householder_transform(ffi::FFI::unwrap_unique(v)))
}
}
pub fn householder_hm(tau: f64, v: &::VectorF64, a: &mut ::MatrixF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_householder_hm(tau, ffi::FFI::unwrap_shared(v), ffi::FFI::unwrap_unique(a))
}
}
pub fn complex_householder_hm(tau: &::ComplexF64,
v: &::VectorComplexF64,
a: &mut ::MatrixComplexF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_complex_householder_hm(::std::mem::transmute(*tau),
ffi::FFI::unwrap_shared(v),
ffi::FFI::unwrap_unique(a))
}
}
pub fn householder_mh(tau: f64, v: &::VectorF64, a: &mut ::MatrixF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_householder_mh(tau, ffi::FFI::unwrap_shared(v), ffi::FFI::unwrap_unique(a))
}
}
pub fn complex_householder_mh(tau: &::ComplexF64,
v: &::VectorComplexF64,
a: &mut ::MatrixComplexF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_complex_householder_mh(::std::mem::transmute(*tau),
ffi::FFI::unwrap_shared(v),
ffi::FFI::unwrap_unique(a))
}
}
pub fn householder_hv(tau: f64, v: &::VectorF64, w: &mut ::MatrixF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_householder_hv(tau, ffi::FFI::unwrap_shared(v), ffi::FFI::unwrap_unique(w))
}
}
pub fn complex_householder_hv(tau: &::ComplexF64,
v: &::VectorComplexF64,
w: &mut ::MatrixComplexF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_complex_householder_hv(::std::mem::transmute(*tau),
ffi::FFI::unwrap_shared(v),
ffi::FFI::unwrap_unique(w))
}
}
pub fn HH_solve(mut a: ::MatrixF64, b: &::VectorF64, x: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_HH_solve(ffi::FFI::unwrap_unique(&mut a),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn HH_svx(mut a: ::MatrixF64, x: &mut ::VectorF64) -> enums::Value {
unsafe { ffi::gsl_linalg_HH_svx(ffi::FFI::unwrap_unique(&mut a), ffi::FFI::unwrap_unique(x)) }
}
pub fn solve_tridiag(diag: &::VectorF64,
e: &::VectorF64,
f: &::VectorF64,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_solve_tridiag(ffi::FFI::unwrap_shared(diag),
ffi::FFI::unwrap_shared(e),
ffi::FFI::unwrap_shared(f),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn solve_symm_tridiag(diag: &::VectorF64,
e: &::VectorF64,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_solve_symm_tridiag(ffi::FFI::unwrap_shared(diag),
ffi::FFI::unwrap_shared(e),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn solve_cyc_tridiag(diag: &::VectorF64,
e: &::VectorF64,
f: &::VectorF64,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_solve_cyc_tridiag(ffi::FFI::unwrap_shared(diag),
ffi::FFI::unwrap_shared(e),
ffi::FFI::unwrap_shared(f),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn solve_symm_cyc_tridiag(diag: &::VectorF64,
e: &::VectorF64,
b: &::VectorF64,
x: &mut ::VectorF64)
-> enums::Value {
unsafe {
ffi::gsl_linalg_solve_symm_cyc_tridiag(ffi::FFI::unwrap_shared(diag),
ffi::FFI::unwrap_shared(e),
ffi::FFI::unwrap_shared(b),
ffi::FFI::unwrap_unique(x))
}
}
pub fn balance_matrix(a: &mut ::MatrixF64, d: &mut ::VectorF64) -> enums::Value {
unsafe {
ffi::gsl_linalg_balance_matrix(ffi::FFI::unwrap_unique(a), ffi::FFI::unwrap_unique(d))
}
}