2#define ae2f_NEED_CLASS 1
10#include <ae2f/Pack/Beg.h>
13
14
15
16
17
22
23
24
27
28
29
32
33
34
38
39
40
41 ae2f_AnnSlp_t m_Slp[1];
44
45
46
49
50
51
54
55
56
60
61
62
65
66
67
73 inline static void ae2f_TMP operator
delete(
void* end);
74 inline static void* ae2f_TMP operator
new(
82 const size_t offset_opt,
92 inline void ae2f_TMP Predict(
100 inline void ae2f_TMP Follow(
108 inline void ae2f_TMP Fit(
115 inline void ae2f_TMP Train(
127#include <ae2f/Pack/End.h>
131
132
133
134
135
136
137
138#define ae2f_AnnSlpFieldSz(inc, outc) ((((inc) + 2
) * ((outc)) * sizeof(ae2f_float_t)) + sizeof(ae2f_AnnSlp))
143
144
145
146
147
149 ae2f_AnnSlp_t* restrict _this,
152 const size_t offset_opt,
154 size_t* restrict
const initsz_opt
158
159
160
161
162
163
164
172 const size_t offset_opt,
173 const size_t extra_opt,
174 ae2f_FREE(ae2f_AnnSlpDel, __ae2f_AnnSlpDel)
175 ae2f_AnnSlp* restrict * restrict
const slp,
185 ae2f_AnnSlp* restrict
const slp
190 ,
const ae2f_AnnSlp* restrict
const _this
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
216 ,
const ae2f_AnnSlp* restrict
const _this
224
225
226
229 ,
const ae2f_AnnSlp*
const _this
238 ,
const ae2f_AnnSlp* restrict slp
249 , ae2f_AnnSlp* restrict slp
258#define ae2f_AnnSlpInit __ae2f_AnnSlpInit_C
259#define ae2f_AnnSlpMk __ae2f_AnnSlpMk_C
260#define ae2f_AnnSlpDel __ae2f_AnnSlpDel_C
261#define ae2f_AnnSlpPredict __ae2f_AnnSlpPredict_C
262#define ae2f_AnnSlpFollow __ae2f_AnnSlpFollow_C
263#define ae2f_AnnSlpFit __ae2f_AnnSlpFit_C
264#define ae2f_AnnSlpTrain __ae2f_AnnSlpTrain_C
265#define ae2f_AnnSlpFetchDelta __ae2f_AnnSlpFetchDelta_C
271#if !defined(ae2f_Ann_Slp_imp_h)
272#define ae2f_Ann_Slp_imp_h
274#include <ae2f/Pack/Beg.h>
280
281
282
285
286
287
288 size_t m_stack, m_alloccount;
290
291
292
293 ae2f_AnnSlp* restrict m_ptr;
295
296
297
301#include <ae2f/Pack/End.h>
304#include "./Slp.auto.h"
307#define ae2f_Ann_Slp_cc
309#define ae2f_TMP ae2f_AnnSlp::
311inline void ae2f_TMP operator
delete(
void* end) {
315inline void* ae2f_TMP operator
new(
323 const size_t offset_opt,
333 if(oneonly !=
sizeof(ae2f_AnnSlp))
return 0;
334 ae2f_AnnSlp* __v[1] = { NULL };
337 weight_opt
, bias_opt
, cache_opt
, inc
, outc
, offset_opt
, 0
338 , __v
, act
, actderiv
, lossderiv
, learningrate
, learningrate_bias
, err_opt
);
343inline void ae2f_TMP Predict(
354inline void ae2f_TMP Follow(
365inline void ae2f_TMP Fit(
375inline void ae2f_TMP Train(
void ae2f_AnnAct_t(ae2f_float_t *ret, ae2f_float_t x)
Customisable activasion function type.
void ae2f_AnnLoss_t(ae2f_float_t *ret, const ae2f_float_t *out, const ae2f_float_t *goal, size_t index, size_t count)
Specify the way of calculating loss.
#define ae2f_AnnUtilV2Name(A_t, B_t)
#define ae2f_AnnUtilV2(A_LEFT, A_t, A_POST, B_LEFT, B_t, B_POST)
#define ae2f_AnnUtilPtr2Name(A_t, B_t)
#define ae2f_structdef(key, name)
#define ae2f_reinterpret_cast(t, v)
#define unless(...)
Invokes when condition is false.
#define ae2f_extern
Suggests the existence of external variable or function, in naming of C. [non-mangling].
#define ae2f_WhenCXX(...)
Appears when the current language is C.
#define ae2f_NONE
Literally nothing.
#define ae2f_LP(...)
Desired count required.
#define ae2f_FREE(...)
Use this marker to show the desired functions to effectively free the resources.
const ae2f_AnnMlp_t const ae2f_float_t *const inp
size_t const ae2f_AnnSlp_t ae2f_float_t *const const ae2f_float_t *const ae2f_AnnAct_t actderiv_then
const ae2f_AnnMlp_t const ae2f_float_t *const ae2f_float_t *const const size_t *const const ae2f_float_t *const const ae2f_float_t *const bias
const ae2f_AnnMlp_t const ae2f_float_t *const ae2f_float_t *const const size_t *const sz
const ae2f_AnnMlp_t const ae2f_float_t *const ae2f_float_t *const const size_t *const const ae2f_float_t *const const ae2f_float_t *const ae2f_float_t *const outcache
const ae2f_AnnSlp_t const ae2f_float_t *const const ae2f_float_t *const delta
const ae2f_AnnMlp_t const ae2f_float_t *const ae2f_float_t *const const size_t *const const ae2f_float_t *const weight
const ae2f_AnnSlp_t const ae2f_float_t *const const ae2f_float_t *const const size_t iidx
const ae2f_AnnMlp_t const ae2f_float_t *const ae2f_float_t *const out
size_t const ae2f_AnnSlp_t slp_then
size_t const ae2f_AnnSlp_t ae2f_float_t *const const ae2f_float_t *const deltaseed
size_t const ae2f_AnnSlp_t ae2f_float_t *const retdelta_then
const ae2f_AnnMlp_t const ae2f_float_t *const ae2f_float_t *const const size_t *const const ae2f_float_t *const const ae2f_float_t *const ae2f_float_t *const ae2f_AnnAct_t *const *const act_opt
ae2f_SHAREDEXPORT void ae2f_AnnSlpFit(ae2f_err_t *restrict const reterr_opt, const ae2f_AnnSlp *restrict const _this, ae2f_LP(_this::inc) const ae2f_float_t *restrict const prm_inp, ae2f_LP(_this::outc) const ae2f_float_t *restrict const prm_out, ae2f_LP(_this::outc) const ae2f_float_t *restrict const prm_out_desired) noexcept
ae2f_SHAREDEXPORT void ae2f_AnnSlpFetchDelta(ae2f_opt ae2f_err_t *restrict const err, const ae2f_AnnSlp *restrict slp, ae2f_LP(slp::outc) const ae2f_float_t *restrict const out, ae2f_LP(slp::outc) const ae2f_float_t *restrict const out_desired, ae2f_LP(slp::outc) ae2f_float_t *restrict const retdelta) noexcept
ae2f_SHAREDEXPORT void ae2f_AnnSlpTrain(ae2f_err_t *restrict const err, ae2f_AnnSlp *restrict slp, ae2f_LP(slp::inc) const ae2f_float_t *restrict inp, ae2f_LP(slp::outc) const ae2f_float_t *restrict out_desired) noexcept
ae2f_SHAREDEXPORT void ae2f_AnnSlpPredict(ae2f_err_t *restrict const err_opt, const ae2f_AnnSlp *restrict const _this, const ae2f_float_t *restrict const prm_in, ae2f_float_t *restrict const out) noexcept
ae2f_SHAREDEXPORT void ae2f_AnnSlpDel(ae2f_AnnSlp *restrict const slp) noexcept
ae2f_SHAREDEXPORT void ae2f_AnnSlpFollow(ae2f_err_t *const restrict reterr_opt, const ae2f_AnnSlp *restrict const _this, const ae2f_float_t *restrict const prm_in, const ae2f_float_t *restrict const delta) noexcept
ae2f_SHAREDEXPORT void ae2f_AnnSlpMk(ae2f_LP(inc *outc) ae2f_float_t *restrict const weight_opt, ae2f_LP(outc) ae2f_float_t *restrict const bias_opt, ae2f_LP(outc) ae2f_float_t *restrict const cache_opt, const size_t inc, const size_t outc, const size_t offset_opt, const size_t extra_opt, ae2f_FREE(ae2f_AnnSlpDel, __ae2f_AnnSlpDel) ae2f_AnnSlp *restrict *restrict const slp, ae2f_opt ae2f_AnnAct_t *const act, ae2f_opt ae2f_AnnAct_t *const actderiv, ae2f_AnnLoss_t *const lossderiv, ae2f_float_t learningrate, ae2f_float_t learningrate_bias, ae2f_opt ae2f_err_t *restrict const err_opt) noexcept
ae2f_SHAREDEXPORT void ae2f_AnnSlpInit(ae2f_AnnSlp_t *restrict const _this, const size_t inc, const size_t outc, const size_t offset_opt, ae2f_err_t *restrict const err_opt, size_t *restrict const initsz_opt) noexcept __ae2f_AnnSlpInit_C(_this
#define ae2f_errGlob_ALLOC_FAILED
stdlib allocating functions (malloc, calloc, realloc) has been failed.
uint8_t ae2f_err_t
Informs that this number represents the error.
#define ae2f_errGlob_PTR_IS_NULL
Failed to refer the pointer either l-value inside the function.
#define __ae2f_AnnMlpFollowPrimal(...)
#define __ae2f_AnnMlpHidDeltaSingle_imp(v_single, slp, weight, delta, iidx)
#define __ae2f_MACRO_GENERATED
#define __ae2f_AnnMlpTrainAutoPrimal(...)
#define __ae2f_AnnMlpPropagate_imp(v_tmp, v_send, slp_then, retdelta_then, deltaseed, actderiv_then, inp)
delta to delta
#define __ae2f_AnnMlpPredictStream_imp(...)
#define __ae2f_AnnMlpFollowPrimal_imp(OPER_NEG, OPER_NONE, v_follow, mlp, inp, delta, lenv, outstream, deltacache, weight, bias, learningrate, learningrate_bias, actderiv)
#define __ae2f_AnnMlpPredictPrimal(...)
#define __ae2f_AnnMlpPredictPrimal_imp(OPER_NEG, OPER_NONE, v_predict, mlp, inp, out, sz, weight, bias, outcache, act_opt)
layer must be more than 2
#define __ae2f_AnnMlpInitWithOutSz_imp(...)
#define __ae2f_AnnMlpTrainPrimal(...)
#define __ae2f_AnnMlpSz_imp(...)
#define __ae2f_AnnMlpTrainPrimal_imp(OPER_NEG, OPER_NONE, v_train, mlp, inp, out, out_desired, lenv, outstream, deltacache, weight, bias, learningrate, learningrate_bias, act, actderiv, lossderiv)
#define __ae2f_AnnMlpMk_imp(...)
#define __ae2f_AnnSlpFollow_imp(v_follow, _this, prm_in, delta, weight, bias, learningrate, learningrate_bias)
#define __ae2f_AnnSlpFetchDelta_imp(v_delta, slp, out, out_desired, actderiv_opt, lossderiv, retdelta)
#define __ae2f_AnnSlpPredict_imp(v_predict, _this, prm_in, out, weight, bias, act_opt)
#define ae2f_MAC()
delta to delta