concision_utils/
lib.rs

1/*
2    Appellation: concision-utils <library>
3    Contrib: @FL03
4*/
5//! A suite of utilities tailored toward neural networks.
6//!
7//! Our focus revolves around the following areas:
8//!
9//! - **Numerical Operations**: Efficient implementations of mathematical functions.
10//! - **Statistical Functions**: Tools for statistical analysis and operations.
11//! - **Signal Processing**: Functions and utilities for signal manipulation.
12//! - **Utilities**: General-purpose utilities to aid in mathematical computations.
13//!
14#![cfg_attr(not(feature = "std"), no_std)]
15
16#[cfg(feature = "alloc")]
17extern crate alloc;
18
19#[doc(inline)]
20pub use self::{error::*, ops::prelude::*, traits::prelude::*, utils::prelude::*};
21
22#[macro_use]
23pub(crate) mod macros;
24
25pub mod error;
26#[cfg(feature = "signal")]
27pub mod signal;
28pub mod stats;
29
30pub mod ops {
31    #[doc(inline)]
32    pub use self::prelude::*;
33
34    pub mod unary;
35
36    pub(crate) mod prelude {
37        #[doc(inline)]
38        pub use super::unary::*;
39    }
40}
41
42pub(crate) mod traits {
43    #[doc(inline)]
44    #[allow(unused_imports)]
45    pub(crate) use self::prelude::*;
46
47    #[cfg(feature = "complex")]
48    pub mod complex;
49    pub mod difference;
50    pub mod precision;
51    pub mod root;
52
53    pub(crate) mod prelude {
54        #[cfg(feature = "complex")]
55        #[doc(inline)]
56        pub use super::complex::*;
57        #[doc(inline)]
58        pub use super::difference::*;
59        #[doc(inline)]
60        pub use super::precision::*;
61        #[doc(inline)]
62        pub use super::root::*;
63    }
64}
65
66pub(crate) mod utils {
67    //! utilties supporting various mathematical routines for machine learning tasks.
68    #[allow(unused_imports)]
69    pub(crate) use self::prelude::*;
70
71    pub mod activate;
72    pub mod arith;
73    pub mod gradient;
74    pub mod norm;
75    pub mod patterns;
76    pub mod tensor;
77
78    pub(crate) mod prelude {
79        #[doc(inline)]
80        pub use super::activate::*;
81        #[doc(inline)]
82        pub use super::arith::*;
83        #[doc(inline)]
84        pub use super::gradient::*;
85        #[doc(inline)]
86        pub use super::norm::*;
87        #[doc(inline)]
88        pub use super::patterns::*;
89        #[doc(inline)]
90        pub use super::tensor::*;
91    }
92}
93
94pub mod prelude {
95    #[doc(no_inline)]
96    pub use crate::error::*;
97    #[cfg(feature = "signal")]
98    #[doc(no_inline)]
99    pub use crate::signal::prelude::*;
100    #[doc(no_inline)]
101    pub use crate::stats::prelude::*;
102    #[doc(no_inline)]
103    pub use crate::traits::prelude::*;
104    #[doc(no_inline)]
105    pub use crate::utils::prelude::*;
106}