Skip to main content

apple_accelerate/
lib.rs

1#![doc = include_str!("../README.md")]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![allow(clippy::missing_const_for_fn)]
4#![allow(clippy::missing_errors_doc)]
5#![allow(clippy::module_name_repetitions)]
6#![allow(clippy::must_use_candidate)]
7
8mod bridge;
9#[path = "ffi/mod.rs"]
10mod raw_ffi;
11
12pub mod blas;
13pub mod bnns;
14pub mod error;
15pub mod lapack;
16pub mod quadrature;
17pub mod simd;
18pub mod sparse;
19pub mod vdsp;
20pub mod vforce;
21pub mod vimage;
22
23#[cfg(feature = "raw-ffi")]
24#[cfg_attr(docsrs, doc(cfg(feature = "raw-ffi")))]
25pub mod ffi {
26    pub use crate::raw_ffi::*;
27}
28
29pub use crate::blas::{blas_order, blas_transpose, sdot, sgemm_row_major, sgemv_row_major};
30pub use crate::bnns::{
31    graph_optimization_preference as bnns_graph_optimization_preference,
32    relu_f32 as bnns_relu_f32,
33    sigmoid_f32 as bnns_sigmoid_f32,
34    Filter as BnnsFilter,
35    GraphCompileOptions as BnnsGraphCompileOptions,
36};
37pub use crate::error::{Error, Result};
38pub use crate::lapack::{lu_decompose_f32, solve_linear_system_f32, LuDecompositionF32};
39pub use crate::quadrature::{
40    integrate, Integrator as QuadratureIntegrator, Options as QuadratureOptions, QuadratureOutput,
41};
42pub use crate::simd::{add_f32x4, dot_f32x4, length_f32x4, normalize_f32x4, Float4};
43pub use crate::sparse::{
44    add_to_dense_f32 as sparse_add_to_dense_f32,
45    dot_dense_f32 as sparse_dot_dense_f32,
46    dot_sparse_f32 as sparse_dot_sparse_f32,
47    sparse_matrix_property,
48    sparse_status,
49    SparseIndex,
50    SparseMatrixF32,
51};
52pub use crate::vdsp::{
53    add_f32,
54    add_f64,
55    blackman_window,
56    blackman_window_f64,
57    dot_f32,
58    dot_f64,
59    fft_direction,
60    fft_radix,
61    hamming_window,
62    hamming_window_f64,
63    max_f32,
64    max_f64,
65    mean_f32,
66    mean_f64,
67    min_f32,
68    min_f64,
69    sub_f32,
70    sub_f64,
71    sum_f32,
72    sum_f64,
73    window_flags,
74    BiquadSetup,
75    FftSetup,
76};
77pub use crate::vforce::{cos_f32, exp_f32, log_f32, sin_f32, sqrt_f32};
78pub use crate::vimage::{
79    alpha_blend_argb8888,
80    box_convolve_argb8888,
81    clip_to_alpha_argb8888,
82    contrast_stretch_planar8,
83    convert_argb8888_to_planar8,
84    convert_planar8_to_argb8888,
85    premultiply_argb8888,
86    rotate_argb8888,
87    scale_argb8888,
88    unpremultiply_argb8888,
89    vimage_flags,
90    ImageBuffer,
91};