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#![crate_name = "concision_core"]
14#![crate_type = "lib"]
15
16#[cfg(feature = "alloc")]
17extern crate alloc;
18
19#[doc(inline)]
20pub use concision_math as math;
21
22#[doc(inline)]
23pub use self::{
24    activate::prelude::*, data::Dataset, error::*, ops::prelude::*, params::prelude::*,
25    traits::prelude::*, utils::prelude::*,
26};
27
28#[allow(unused)]
29#[macro_use]
30pub(crate) mod macros;
31#[allow(unused)]
32#[macro_use]
33pub(crate) mod seal;
34
35pub mod activate;
36pub mod data;
37pub mod error;
38pub mod init;
39pub mod params;
40
41pub mod ops {
42    #[doc(inline)]
43    pub use self::prelude::*;
44
45    pub mod fill;
46    pub mod pad;
47    pub mod reshape;
48    pub mod tensor;
49
50    pub(crate) mod prelude {
51        #[doc(inline)]
52        pub use super::fill::*;
53        #[doc(inline)]
54        pub use super::pad::*;
55        #[doc(inline)]
56        pub use super::reshape::*;
57        #[doc(inline)]
58        pub use super::tensor::*;
59    }
60}
61pub mod traits {
62    #[doc(inline)]
63    pub use self::prelude::*;
64
65    pub mod activate;
66    pub mod apply;
67    pub mod clip;
68    pub mod entropy;
69    pub mod init;
70    pub mod like;
71    pub mod mask;
72    pub mod norm;
73    pub mod propagation;
74    pub mod scalar;
75    pub mod tensor;
76
77    pub(crate) mod prelude {
78        #[doc(inline)]
79        pub use super::activate::*;
80        #[doc(inline)]
81        pub use super::apply::*;
82        #[doc(inline)]
83        pub use super::clip::*;
84        #[doc(inline)]
85        pub use super::entropy::*;
86        #[doc(inline)]
87        pub use super::init::*;
88        #[doc(inline)]
89        pub use super::like::*;
90        #[doc(inline)]
91        pub use super::mask::*;
92        #[doc(inline)]
93        pub use super::norm::*;
94        #[doc(inline)]
95        pub use super::propagation::*;
96        #[doc(inline)]
97        pub use super::scalar::*;
98        #[doc(inline)]
99        pub use super::tensor::*;
100    }
101}
102
103pub mod types {
104    // #[doc(inline)]
105    // pub use self::features::*;
106
107    // pub(crate) mod features;
108}
109
110pub mod utils {
111    #[doc(inline)]
112    pub use self::prelude::*;
113
114    pub mod gradient;
115    pub mod norm;
116    pub mod patterns;
117    pub mod tensor;
118
119    pub(crate) mod prelude {
120        #[doc(inline)]
121        pub use super::gradient::*;
122        #[doc(inline)]
123        pub use super::patterns::*;
124        #[doc(inline)]
125        pub use super::tensor::*;
126    }
127}
128
129pub mod prelude {
130    #[doc(no_inline)]
131    pub use crate::activate::prelude::*;
132    #[doc(no_inline)]
133    pub use crate::data::prelude::*;
134    #[doc(no_inline)]
135    pub use crate::error::*;
136    #[cfg(feature = "rand")]
137    #[doc(no_inline)]
138    pub use crate::init::prelude::*;
139    #[doc(no_inline)]
140    pub use crate::ops::prelude::*;
141    #[doc(no_inline)]
142    pub use crate::params::prelude::*;
143    #[doc(no_inline)]
144    pub use crate::traits::prelude::*;
145    #[doc(no_inline)]
146    pub use crate::utils::prelude::*;
147    #[doc(inline)]
148    pub use concision_math::prelude::*;
149}