pub mod vectors {
use crate::Value;
use ffi::FFI;
use types::{Permutation, VectorF64};
#[doc(alias = "gsl_sort")]
pub fn sort(data: &mut [f64], stride: usize, n: usize) {
unsafe { sys::gsl_sort(data.as_mut_ptr(), stride, n) }
}
#[doc(alias = "gsl_sort2")]
pub fn sort2(data1: &mut [f64], stride1: usize, data2: &mut [f64], stride2: usize, n: usize) {
unsafe { sys::gsl_sort2(data1.as_mut_ptr(), stride1, data2.as_mut_ptr(), stride2, n) }
}
#[doc(alias = "gsl_sort_vector")]
pub fn sort_vector(v: &mut VectorF64) {
unsafe { sys::gsl_sort_vector(v.unwrap_unique()) }
}
#[doc(alias = "gsl_sort_vector2")]
pub fn sort_vector2(v1: &mut VectorF64, v2: &mut VectorF64) {
unsafe { sys::gsl_sort_vector2(v1.unwrap_unique(), v2.unwrap_unique()) }
}
#[doc(alias = "gsl_sort_index")]
pub fn sort_index(p: &mut [usize], data: &[f64], stride: usize, n: usize) {
unsafe { sys::gsl_sort_index(p.as_mut_ptr(), data.as_ptr(), stride, n) }
}
#[doc(alias = "gsl_sort_vector_index")]
pub fn sort_vector_index(p: &mut Permutation, v: &VectorF64) -> Result<(), Value> {
let ret = unsafe { sys::gsl_sort_vector_index(p.unwrap_unique(), v.unwrap_shared()) };
result_handler!(ret, ())
}
}
pub mod select {
use crate::Value;
use ffi::FFI;
use types::VectorF64;
#[doc(alias = "gsl_sort_smallest")]
pub fn sort_smallest(
dest: &mut [f64],
k: usize,
src: &[f64],
stride: usize,
) -> Result<(), Value> {
let ret = unsafe {
sys::gsl_sort_smallest(dest.as_mut_ptr(), k, src.as_ptr(), stride, src.len() as _)
};
result_handler!(ret, ())
}
#[doc(alias = "gsl_sort_largest")]
pub fn sort_largest(
dest: &mut [f64],
k: usize,
src: &[f64],
stride: usize,
) -> Result<(), Value> {
let ret = unsafe {
sys::gsl_sort_largest(dest.as_mut_ptr(), k, src.as_ptr(), stride, src.len() as _)
};
result_handler!(ret, ())
}
#[doc(alias = "gsl_sort_vector_smallest")]
pub fn sort_vector_smallest(dest: &mut [f64], k: usize, v: &VectorF64) -> Result<(), Value> {
let ret = unsafe { sys::gsl_sort_vector_smallest(dest.as_mut_ptr(), k, v.unwrap_shared()) };
result_handler!(ret, ())
}
#[doc(alias = "gsl_sort_vector_largest")]
pub fn sort_vector_largest(dest: &mut [f64], k: usize, v: &VectorF64) -> Result<(), Value> {
let ret = unsafe { sys::gsl_sort_vector_largest(dest.as_mut_ptr(), k, v.unwrap_shared()) };
result_handler!(ret, ())
}
#[doc(alias = "gsl_sort_smallest_index")]
pub fn sort_smallest_index(
p: &mut [usize],
k: usize,
src: &[f64],
stride: usize,
) -> Result<(), Value> {
let ret = unsafe {
sys::gsl_sort_smallest_index(p.as_mut_ptr(), k, src.as_ptr(), stride, src.len() as _)
};
result_handler!(ret, ())
}
#[doc(alias = "gsl_sort_largest_index")]
pub fn sort_largest_index(
p: &mut [usize],
k: usize,
src: &[f64],
stride: usize,
) -> Result<(), Value> {
let ret = unsafe {
sys::gsl_sort_largest_index(p.as_mut_ptr(), k, src.as_ptr(), stride, src.len() as _)
};
result_handler!(ret, ())
}
#[doc(alias = "gsl_sort_vector_smallest_index")]
pub fn sort_vector_smallest_index(
p: &mut [usize],
k: usize,
v: &VectorF64,
) -> Result<(), Value> {
let ret =
unsafe { sys::gsl_sort_vector_smallest_index(p.as_mut_ptr(), k, v.unwrap_shared()) };
result_handler!(ret, ())
}
#[doc(alias = "gsl_sort_vector_largest_index")]
pub fn sort_vector_largest_index(
p: &mut [usize],
k: usize,
v: &VectorF64,
) -> Result<(), Value> {
let ret =
unsafe { sys::gsl_sort_vector_largest_index(p.as_mut_ptr(), k, v.unwrap_shared()) };
result_handler!(ret, ())
}
}