16
16
#include <ae2f/Pack/Beg.h>
17
17
18
18
/// @brief
19
- /// Element of @ref ae2f_AnnMlp
20
- typedef ae2f_AnnSlp ae2f_AnnMlpEl ;
19
+ /// Element of @ref ae2f_mAnnMlp
20
+ typedef ae2f_mAnnSlp ae2f_mAnnMlpEl ;
21
21
22
22
#if ae2f_WhenCXX (!) 0
23
23
24
- struct ae2f_AnnMlp : ae2f_AnnSlp {
25
- #include "Mlp.h.cxx/Mlp .hh"
24
+ struct ae2f_mAnnMlp {
25
+ #include "Mlp.h.cxx/mMlp .hh"
26
26
};
27
27
28
28
#else
29
29
30
- /// @class ae2f_AnnMlp
31
- /// @extends ae2f_AnnSlp
30
+ /// @class ae2f_mAnnMlp
31
+ /// @extends ae2f_mAnnSlp
32
32
/// @brief
33
33
/// # Multi Layered Perceptron
34
34
///
35
35
///
36
- typedef ae2f_AnnSlp ae2f_AnnMlp ;
36
+ typedef ae2f_mAnnSlp ae2f_mAnnMlp ;
37
37
38
38
#endif
39
- /// @memberof ae2f_AnnMlp
40
- /// @details ae2f_AnnSlpPerVPad
41
- #define ae2f_AnnMlpLayerVPad ae2f_AnnSlpPerVPad
42
39
43
- /// @memberof ae2f_AnnMlp
44
- #define ae2f_AnnMlpLayerV ( mlp , i , ...) \
45
- ae2f_reinterpret_cast(__VA_ARGS__ ae2f_AnnMlpEl*, ae2f_AnnMlpLayerVPad(mlp, __VA_ARGS__)[i] + 1)
40
+ typedef union ae2f_AnnMlp {
41
+ ae2f_mAnnSlp Slp ;
42
+ ae2f_mAnnMlp Mlp ;
46
43
47
- /// @memberof ae2f_AnnMlp
48
- #define ae2f_AnnMlpInitSz (layerc , add ) \
49
- (sizeof(ae2f_AnnMlp) + (sizeof(void*) * ((layerc))) + (sizeof(size_t) * 1) + (add))
44
+ #if ae2f_WhenCXX (!)0
45
+ #include "Mlp.h.cxx/Mlp.hh"
46
+ #endif
47
+ } ae2f_AnnMlp ;
48
+
49
+ /// @memberof ae2f_mAnnMlp
50
+ /// @details ae2f_mAnnSlpPerVPad
51
+ #define ae2f_mAnnMlpLayerVPad ae2f_mAnnSlpPerVPad
52
+
53
+ /// @memberof ae2f_mAnnMlp
54
+ #define ae2f_mAnnMlpLayerV (mlp , i , ...) \
55
+ ae2f_reinterpret_cast(__VA_ARGS__ ae2f_mAnnMlpEl*, ae2f_mAnnMlpLayerVPad(mlp, __VA_ARGS__)[i] + 1)
56
+
57
+ /// @memberof ae2f_mAnnMlp
58
+ #define ae2f_mAnnMlpInitSz (layerc , add ) \
59
+ (sizeof(ae2f_mAnnMlp) + (sizeof(void*) * ((layerc))) + (sizeof(size_t) * 1) + (add))
50
60
51
61
/// @brief
52
62
/// Predict function api. \n
53
- /// For details see @ref ae2f_AnnMlpPredict_t .
54
- typedef ae2f_AnnSlpPredict_t ae2f_AnnMlpPredict_t ;
63
+ /// For details see @ref ae2f_mAnnMlpPredict_t .
64
+ typedef ae2f_mAnnSlpPredict_t ae2f_mAnnMlpPredict_t ;
55
65
56
66
/// @brief
57
67
/// Training function api. \n
58
- /// For details see @ref ae2f_AnnMlpTrain_t
59
- typedef ae2f_AnnSlpTrain_t ae2f_AnnMlpTrain_t ;
68
+ /// For details see @ref ae2f_mAnnMlpTrain_t
69
+ typedef ae2f_mAnnSlpTrain_t ae2f_mAnnMlpTrain_t ;
60
70
61
71
/// @brief
62
72
/// Cleaning function api.
63
- typedef ae2f_AnnSlpClean_t ae2f_AnnMlpClean_t ;
73
+ typedef ae2f_mAnnSlpClean_t ae2f_mAnnMlpClean_t ;
64
74
65
- /// @memberof ae2f_AnnMlp
75
+ /// @memberof ae2f_mAnnMlp
66
76
/// @brief
67
77
/// The predicted max buffer count among all perceptron's possible length of I/O.
68
- #define ae2f_AnnMlpLayerBuffCount (mlp , ...) \
69
- ae2f_AnnSlpX(mlp, __VA_ARGS__ size_t*, __VA_ARGS__)
70
-
71
- /// @memberof ae2f_AnnMlp
72
- /// @brief
73
- /// Its length is @ref (*ae2f_AnnMlpLayerBuffCount(mlp) * mlp->layerc, 3 * sizeof(ae2f_float_t)).
74
- #define ae2f_AnnMlpCache (mlp , ...) \
75
- ae2f_reinterpret_cast(__VA_ARGS__ ae2f_float_t**, ae2f_AnnMlpLayerBuffCount(mlp, __VA_ARGS__) + 1)
76
-
77
- /// @memberof ae2f_AnnMlp
78
- /// @brief
79
- #define ae2f_AnnMlpX (mlp ,type ,...) \
80
- ae2f_reinterpret_cast(__VA_ARGS__ type, ae2f_AnnMlpCache(mlp, __VA_ARGS__) + 1)
78
+ #define ae2f_mAnnMlpLayerBuffCount (mlp , ...) \
79
+ ae2f_mAnnSlpX(mlp, __VA_ARGS__ size_t*, __VA_ARGS__)
81
80
82
- /// @memberof ae2f_AnnMlp
81
+ /// @memberof ae2f_mAnnMlp
83
82
/// @brief
84
- /// Predict function call. \n
85
- /// See @ref ae2f_AnnSlpPredict
86
- #define ae2f_AnnMlpPredict ae2f_AnnSlpPredict
83
+ /// Its length is @ref (*ae2f_mAnnMlpLayerBuffCount(mlp) * mlp->layerc, 3 * sizeof(ae2f_float_t)).
84
+ #define ae2f_mAnnMlpCache ( mlp , ...) \
85
+ ae2f_reinterpret_cast(__VA_ARGS__ ae2f_float_t**, ae2f_mAnnMlpLayerBuffCount(mlp, __VA_ARGS__) + 1)
87
86
88
- /// @memberof ae2f_AnnMlp
87
+ /// @memberof ae2f_mAnnMlp
89
88
/// @brief
90
- /// Training function call. \n
91
- /// See @ref ae2f_AnnSlpTrain
92
- #define ae2f_AnnMlpTrain ae2f_AnnSlpTrain
89
+ #define ae2f_mAnnMlpX (mlp ,type ,...) \
90
+ ae2f_reinterpret_cast(__VA_ARGS__ type, ae2f_mAnnMlpCache(mlp, __VA_ARGS__) + 1)
93
91
94
- /// @memberof ae2f_AnnMlp
95
- /// @brief
96
- /// See @ref ae2f_AnnSlpTrainA
97
- #define ae2f_AnnMlpTrainA ae2f_AnnSlpTrainA
98
-
99
- /// @memberof ae2f_AnnMlp
100
- /// @brief
101
- /// See @ref ae2f_AnnSlpTrainB
102
- #define ae2f_AnnMlpTrainB ae2f_AnnSlpTrainB
103
-
104
- /// @memberof ae2f_AnnMlp
105
- /// @brief
106
- /// Deleting function. \n
107
- /// We are reusing the previous definition since the process is literally saem.
108
- ///
109
- /// See @ref ae2f_AnnSlpDel
110
- #define ae2f_AnnMlpDel ae2f_AnnSlpDel
111
- #define ae2f_AnnMlpClean ae2f_AnnSlpClean
112
-
113
- /// @memberof ae2f_AnnMlp
92
+ /// @memberof ae2f_mAnnMlp
114
93
/// @brief
115
94
/// d
116
95
/// @param _this
@@ -125,8 +104,8 @@ ae2f_reinterpret_cast(__VA_ARGS__ type, ae2f_AnnMlpCache(mlp, __VA_ARGS__) + 1)
125
104
/// @param errret_opt
126
105
/// @return
127
106
ae2f_extern ae2f_SHAREDCALL
128
- size_t ae2f_AnnMlpInit (
129
- ae2f_AnnMlp * _this ,
107
+ size_t ae2f_mAnnMlpInit (
108
+ ae2f_mAnnMlp * _this ,
130
109
size_t layerc ,
131
110
size_t add_opt ,
132
111
const size_t * layerlenv ,
@@ -151,6 +130,10 @@ ae2f_AnnMlp* ae2f_AnnMlpMk(
151
130
ae2f_err_t * errret_opt
152
131
) noexcept ;
153
132
133
+
134
+ #define ae2f_AnnMlpClean ae2f_AnnSlpClean
135
+ #define ae2f_AnnMlpDel ae2f_AnnSlpDel
136
+
154
137
#if ae2f_WhenCXX (!) 0
155
138
#include "Mlp.h.cxx/imp.hh"
156
139
#endif
0 commit comments