eryon_surface/
lib.rs

1/*
2    Appellation: eryon-surface <library>
3    Contrib: @FL03
4*/
5//! This crate focuses on materializing the surface of the headspace. Each surface is a neural
6//! network that is dynamically configured using the vertices to define the input layer while
7//! the tonic or centroid defines the network's output. The hidden layers essentially fill in
8//! the remaining space in-between the input and output layers, using barycentric coordinates
9//! as "goalposts" to guide the network's learning process. The network is trained using a
10
11extern crate eryon_core as eryon;
12
13pub(crate) use eryon_core as core;
14pub(crate) use eryon_core::nrt;
15
16#[doc(inline)]
17pub use self::{
18    activate::prelude::*, error::*, network::*, ops::prelude::*, params::prelude::*, traits::*,
19    types::prelude::*, utils::prelude::*,
20};
21
22#[doc(inline)]
23pub use self::model::{ModelConfig, ModelFeatures, SurfaceModel};
24
25#[allow(unused)]
26#[macro_use]
27pub(crate) mod macros;
28#[allow(unused)]
29#[macro_use]
30pub(crate) mod seal;
31
32pub mod activate;
33pub mod data;
34pub mod error;
35pub mod init;
36pub mod model;
37pub mod network;
38#[doc(hidden)]
39pub mod nn;
40pub mod params;
41
42pub mod ops {
43    #[doc(inline)]
44    pub use self::prelude::*;
45
46    pub mod fill;
47    pub mod pad;
48    pub mod reshape;
49    pub mod tensor;
50
51    pub(crate) mod prelude {
52        #[doc(inline)]
53        pub use super::fill::*;
54        #[doc(inline)]
55        pub use super::pad::*;
56        #[doc(inline)]
57        pub use super::reshape::*;
58        #[doc(inline)]
59        pub use super::tensor::*;
60    }
61}
62pub mod traits {
63    #[doc(inline)]
64    pub use self::{clip::*, create::*, loss::*, mask::*, norm::*, predict::*, train::*};
65
66    pub(crate) mod clip;
67    pub(crate) mod create;
68    pub(crate) mod loss;
69    pub(crate) mod mask;
70    pub(crate) mod norm;
71    pub(crate) mod predict;
72    pub(crate) mod train;
73}
74
75pub mod types {
76    #[doc(inline)]
77    pub use self::prelude::*;
78
79    pub mod points;
80
81    pub(crate) mod prelude {
82        #[doc(inline)]
83        pub use super::points::*;
84    }
85}
86
87pub mod utils {
88    #[doc(inline)]
89    pub use self::prelude::*;
90
91    pub mod gradient;
92    pub mod norm;
93    pub mod patterns;
94    pub mod tensor;
95
96    pub(crate) mod prelude {
97        pub use super::gradient::*;
98        pub use super::patterns::*;
99        pub use super::tensor::*;
100    }
101}
102
103pub mod prelude {
104    #[doc(no_inline)]
105    pub use crate::activate::prelude::*;
106    #[doc(no_inline)]
107    pub use crate::error::*;
108    #[doc(no_inline)]
109    pub use crate::model::prelude::*;
110    #[doc(no_inline)]
111    pub use crate::network::*;
112    #[doc(no_inline)]
113    pub use crate::ops::prelude::*;
114    #[doc(no_inline)]
115    pub use crate::params::prelude::*;
116    #[doc(no_inline)]
117    pub use crate::traits::*;
118    #[doc(no_inline)]
119    pub use crate::types::prelude::*;
120    #[doc(no_inline)]
121    pub use crate::utils::prelude::*;
122}