concision_core/
lib.rs

1/*
2    Appellation: concision-core <library>
3    Contrib: @FL03
4*/
5//! This library provides the core abstractions and utilities for the Concision framework.
6//!
7//! ## Features
8//!
9//! - [ParamsBase]: A structure for defining the parameters within a neural network.
10//! - [Backward]: This trait denotes a single backward pass through a layer of a neural network.
11//! - [Forward]: This trait denotes a single forward pass through a layer of a neural network.
12//!
13#![allow(
14    clippy::module_inception,
15)]
16#![cfg_attr(not(feature = "std"), no_std)]
17
18#[cfg(feature = "alloc")]
19extern crate alloc;
20
21#[doc(inline)]
22pub use concision_utils as utils;
23
24#[doc(inline)]
25pub use self::{
26    activate::prelude::*, error::*, loss::prelude::*, ops::prelude::*, params::prelude::*,
27    traits::prelude::*, utils::prelude::*,
28};
29
30#[macro_use]
31pub(crate) mod macros {
32    #[macro_use]
33    pub mod seal;
34    #[macro_use]
35    pub mod unary;
36}
37
38pub mod activate;
39pub mod error;
40pub mod init;
41pub mod loss;
42pub mod params;
43
44pub mod ops {
45    #[doc(inline)]
46    pub use self::prelude::*;
47
48    pub mod fill;
49    pub mod pad;
50    pub mod reshape;
51    pub mod tensor;
52
53    pub(crate) mod prelude {
54        #[doc(inline)]
55        pub use super::fill::*;
56        #[doc(inline)]
57        pub use super::pad::*;
58        #[doc(inline)]
59        pub use super::reshape::*;
60        #[doc(inline)]
61        pub use super::tensor::*;
62    }
63}
64pub mod traits {
65    #[doc(inline)]
66    pub use self::prelude::*;
67
68    pub mod clip;
69    pub mod codex;
70    pub mod gradient;
71    pub mod init;
72    pub mod like;
73    pub mod mask;
74    pub mod norm;
75    pub mod propagation;
76    pub mod scalar;
77    pub mod tensor;
78    pub mod wnb;
79
80    pub(crate) mod prelude {
81        #[doc(inline)]
82        pub use super::clip::*;
83        #[doc(inline)]
84        pub use super::codex::*;
85        #[doc(inline)]
86        pub use super::gradient::*;
87        #[doc(inline)]
88        pub use super::init::*;
89        #[doc(inline)]
90        pub use super::like::*;
91        #[doc(inline)]
92        pub use super::mask::*;
93        #[doc(inline)]
94        pub use super::norm::*;
95        #[doc(inline)]
96        pub use super::propagation::*;
97        #[doc(inline)]
98        pub use super::scalar::*;
99        #[doc(inline)]
100        pub use super::tensor::*;
101        #[doc(inline)]
102        pub use super::wnb::*;
103    }
104}
105
106pub mod prelude {
107    #[doc(no_inline)]
108    pub use crate::activate::prelude::*;
109    #[doc(no_inline)]
110    pub use crate::error::*;
111    #[cfg(feature = "rand")]
112    #[doc(no_inline)]
113    pub use crate::init::prelude::*;
114    #[doc(no_inline)]
115    pub use crate::loss::prelude::*;
116    #[doc(no_inline)]
117    pub use crate::ops::prelude::*;
118    #[doc(no_inline)]
119    pub use crate::params::prelude::*;
120    #[doc(no_inline)]
121    pub use crate::traits::prelude::*;
122    #[doc(no_inline)]
123    pub use concision_utils::prelude::*;
124}