ae2f_docs
Slp.imp.c
Go to the documentation of this file.
1#include <ae2f/MMap/Util.h>
2
4#error "wtf bro"
5#endif
6
7#include <ae2f/Ann/Slp.h>
8#include <ae2f/Cast.h>
9#include <stdlib.h>
10
11ae2f_SHAREDEXPORT void ae2f_AnnSlpInit(
12 ae2f_AnnSlp_t* restrict const _this,
13 const size_t inc,
14 const size_t outc,
15 const size_t offset_opt,
16 ae2f_err_t* restrict const err_opt,
17 size_t* restrict const initsz_opt
18 ) noexcept
20 _this
21 , inc, outc
22 , offset_opt, err_opt, initsz_opt
23 );
24
25
26ae2f_SHAREDEXPORT void ae2f_AnnSlpMk(
27 ae2f_LP(inc * outc) ae2f_float_t* restrict const weight_opt,
28 ae2f_LP(outc) ae2f_float_t* restrict const bias_opt,
29 ae2f_LP(outc) ae2f_float_t* restrict const cache_opt,
30
31 const size_t inc,
32 const size_t outc,
33 const size_t offset_opt,
34 const size_t extra_opt,
35 ae2f_FREE(ae2f_AnnSlpDel, __ae2f_AnnSlpDel)
36 ae2f_AnnSlp* restrict * restrict const slp,
37 ae2f_opt ae2f_AnnAct_t* const act,
38 ae2f_opt ae2f_AnnAct_t* const actderiv,
39 ae2f_AnnLoss_t* const lossderiv,
40 ae2f_float_t learningrate,
41 ae2f_float_t learningrate_bias,
42 ae2f_opt ae2f_err_t* restrict const err_opt
43 ) noexcept {
45 weight_opt, bias_opt, cache_opt
46 , inc, outc
47 , offset_opt, extra_opt, slp
48 , act, actderiv, lossderiv
49 , learningrate, learningrate_bias
50 , err_opt)
51}
52
53
54
55ae2f_SHAREDEXPORT void ae2f_AnnSlpDel(ae2f_AnnSlp* restrict const slp)
56 noexcept
57{ __ae2f_AnnSlpDel(slp); }
58
59ae2f_SHAREDEXPORT void ae2f_AnnSlpPredict(
60 ae2f_err_t* restrict const err_opt
61 , const ae2f_AnnSlp* restrict const _this
62 , const ae2f_float_t* restrict const prm_in
63 , ae2f_float_t* restrict const out
64 ) noexcept
65{
67 err_opt, _this
68 , prm_in, out
69 );
70}
71
72
73ae2f_SHAREDEXPORT void ae2f_AnnSlpFollow(
74 ae2f_err_t* const restrict reterr_opt
75 , const ae2f_AnnSlp* restrict const _this
76 , const ae2f_float_t* restrict const prm_in
77 , const ae2f_float_t* restrict const delta
78 ) noexcept {
79 __ae2f_AnnSlpFollow_C(reterr_opt, _this, prm_in, delta);
80}
81
82ae2f_SHAREDEXPORT void ae2f_AnnSlpFit(
83 ae2f_err_t* restrict const reterr_opt
84 , const ae2f_AnnSlp* restrict const _this
85 , ae2f_LP(_this::inc) const ae2f_float_t* restrict const prm_inp
86 , ae2f_LP(_this::outc) const ae2f_float_t* restrict const prm_out
87 , ae2f_LP(_this::outc) const ae2f_float_t* restrict const prm_out_desired
88 ) noexcept
89{
91 reterr_opt, _this
92 , prm_inp
93 , prm_out, prm_out_desired
94 );
95}
96
97ae2f_SHAREDEXPORT void ae2f_AnnSlpFetchDelta(
98 ae2f_opt ae2f_err_t* restrict const err
99 , const ae2f_AnnSlp* restrict slp
100
101 , ae2f_LP(slp::outc) const ae2f_float_t* restrict const out
102 , ae2f_LP(slp::outc) const ae2f_float_t* restrict const out_desired
103
104 , ae2f_LP(slp::outc) ae2f_float_t* restrict const retdelta
105 ) noexcept
106{
107 __ae2f_AnnSlpFetchDelta_C(err, slp, out, out_desired, retdelta);
108}
109
110ae2f_SHAREDEXPORT void ae2f_AnnSlpTrain(
111 ae2f_err_t* restrict const err
112 , ae2f_AnnSlp* restrict slp
113 , ae2f_LP(slp::inc) const ae2f_float_t* restrict inp
114 , ae2f_LP(slp::outc) const ae2f_float_t* restrict out_desired
115 ) noexcept
116{
117 __ae2f_AnnSlpTrain_C(err, slp, inp, out_desired);
118}
void ae2f_AnnAct_t(ae2f_float_t *ret, ae2f_float_t x)
Customisable activasion function type.
Definition Act.h:19
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.
Definition Act.h:29
ae2f_float ae2f_float_t
Definition Float.h:38
#define ae2f_LP(...)
Desired count required.
Definition Guide.h:23
#define ae2f_FREE(...)
Use this marker to show the desired functions to effectively free the resources.
Definition Guide.h:33
#define ae2f_opt
Definition Guide.h:26
#define ae2f_MAC_BUILD
Definition Util.h:4
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
Definition Slp.imp.c:82
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
Definition Slp.imp.c:97
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
Definition Slp.imp.c:110
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
Definition Slp.imp.c:59
ae2f_SHAREDEXPORT void ae2f_AnnSlpDel(ae2f_AnnSlp *restrict const slp) noexcept
Definition Slp.imp.c:55
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
Definition Slp.imp.c:73
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
Definition Slp.imp.c:26
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
uint8_t ae2f_err_t
Informs that this number represents the error.
Definition errGlob.h:19
#define __ae2f_AnnSlpFit_C(...)
Definition Slp.auto.h:817
#define __ae2f_AnnSlpFollow_C(...)
Definition Slp.auto.h:509
#define __ae2f_AnnSlpFetchDelta_C(...)
Definition Slp.auto.h:645
#define __ae2f_AnnSlpTrain_C
Definition Slp.auto.h:929
#define __ae2f_AnnSlpInit_C
Definition Slp.auto.h:117
#define __ae2f_AnnSlpDel
Definition Slp.auto.h:21
#define __ae2f_AnnSlpMk_C
Definition Slp.auto.h:240
#define __ae2f_AnnSlpPredict_C(...)
Definition Slp.auto.h:361