ae2f_docs
SlpInit-Primal.c.cc
1#include <ae2fVK/Ann/Slp.h>
2#include <vulkan/vulkan_core.h>
3#include "../vk.h"
4#include "ae2f/Cast.h"
5
6#include <string.h>
7
8
10
11ae2fVK_AnnSlpMk_t mk;
12
13size_t mapinp;
14
15void FakeAct(ae2f_float_t*, const ae2f_float_t*, size_t, size_t) { }
16
17void FakeLoss (
18 ae2f_float_t*,
19 const ae2f_float_t* out,
20 const ae2f_float_t* goal,
21 size_t index,
22 size_t count
23 ) { }
24
25ae2f_float_t* map;
26
27int main() {
28 Test_VkInit();
29 (void)sizeof(ae2fVK_AnnSlpMk_t);
30 (void)sizeof(ae2fVK_AnnSlp);
31
32 __ae2fVK_AnnSlpMk_imp(
33 mk
34 , 0, 0, 0
35 , 2, 1500, 0, 0
36 , FakeAct, FakeAct, FakeLoss
37 , 0, 0
38 , vkdev
39 , vkphydevmemprops
40 , NULL
41
42 ,
43 "#define LOSS_DERIV(r, y, y_desired, i, c)\n"
44 "#define ACT(r, x, i, c) *(r) = ((x)[i] - 3)\n"
45 , "/** This is also a comment */"
46 );
47
48 assert(mk.m_U0.m_alter.m_ptr && "__ae2fVK_AnnSlpMk_imp has failed");
49 assert(mk.m_reterr == ae2f_errGlob_OK);
50
51 __ae2fVK_AnnSlpMap_imp(mk.m_reterr, *(mk).m_U0.m_alter.m_ptr, &map);
52 map[0] = 1;
53 map[1] = 2;
54 map[2] = 3;
55 __ae2fVK_AnnSlpUnMap_imp(*(mk).m_U0.m_alter.m_ptr);
56
57 __ae2fVK_AnnSlpClean_imp(*mk.m_U0.m_alter.m_ptr);
58 assert(mk.m_U0.m_alter.m_ptr->m_vkres == VK_SUCCESS);
59
60 free(mk.m_U0.m_alter.m_ptr);
61
62 Test_VkEnd();
63 mk.m_U0.m_alter.m_ptr = 0;
64
65 return 0;
66}
67
68#else
69
70int main() {
71 return 0;
72}
73
74#endif
#define ae2f_MAC_BUILD
Definition Util.h:5