MU Library
call_main.hpp File Reference
#include <cstdint>
#include "call_main_template.hpp"
#include "mu/ndarray/ndarray.hpp"
Include dependency graph for call_main.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mu::function_traits< Function >
 

Namespaces

 mu
 

Macros

#define GET_ARG(num)
 
#define PRIMITIVE_CAT(a, ...)   a##__VA_ARGS__
 
#define ARGS(x)   PRIMITIVE_CAT(ARGS_, x)
 
#define ARGS_0
 
#define ARGS_1   GET_ARG(1);
 
#define ARGS_2   ARGS_1 GET_ARG(2);
 
#define ARGS_3   ARGS_2 GET_ARG(3);
 
#define ARGS_4   ARGS_3 GET_ARG(4);
 
#define ARGS_5   ARGS_4 GET_ARG(5);
 
#define ARGS_6   ARGS_5 GET_ARG(6);
 
#define ARGS_7   ARGS_6 GET_ARG(7);
 
#define ARGS_8   ARGS_7 GET_ARG(8);
 
#define ARGS_9   ARGS_8 GET_ARG(9);
 
#define CALL_PARAMS(x)   PRIMITIVE_CAT(CALL_PARAMS_, x)
 
#define CALL_PARAMS_0
 
#define CALL_PARAMS_1   *a1
 
#define CALL_PARAMS_2   CALL_PARAMS_1, *a2
 
#define CALL_PARAMS_3   CALL_PARAMS_2, *a3
 
#define CALL_PARAMS_4   CALL_PARAMS_3, *a4
 
#define CALL_PARAMS_5   CALL_PARAMS_4, *a5
 
#define CALL_PARAMS_6   CALL_PARAMS_5, *a6
 
#define CALL_PARAMS_7   CALL_PARAMS_6, *a7
 
#define CALL_PARAMS_8   CALL_PARAMS_7, *a8
 
#define CALL_PARAMS_9   CALL_PARAMS_8, *a9
 
#define CALL_FUNC(x)   fp(CALL_PARAMS(x))
 
#define CALL_HELPER(_NUM)
 

Functions

bool mu::isNormalMode (uint32_t mode)
 
 mu::CALL_HELPER (0)
 
 mu::CALL_HELPER (1)
 
 mu::CALL_HELPER (2)
 
 mu::CALL_HELPER (3)
 
 mu::CALL_HELPER (4)
 
 mu::CALL_HELPER (5)
 
 mu::CALL_HELPER (6)
 
 mu::CALL_HELPER (7)
 
 mu::CALL_HELPER (8)
 
 mu::CALL_HELPER (9)
 
template<typename FP >
void mu::callMain (FP func, uint32_t mode, uint32_t ndarrayValueBit, char *buffer)
 

Macro Definition Documentation

◆ ARGS

#define ARGS (   x)    PRIMITIVE_CAT(ARGS_, x)

Definition at line 64 of file call_main.hpp.

◆ ARGS_0

#define ARGS_0

Definition at line 65 of file call_main.hpp.

◆ ARGS_1

#define ARGS_1   GET_ARG(1);

Definition at line 66 of file call_main.hpp.

◆ ARGS_2

#define ARGS_2   ARGS_1 GET_ARG(2);

Definition at line 67 of file call_main.hpp.

◆ ARGS_3

#define ARGS_3   ARGS_2 GET_ARG(3);

Definition at line 68 of file call_main.hpp.

◆ ARGS_4

#define ARGS_4   ARGS_3 GET_ARG(4);

Definition at line 69 of file call_main.hpp.

◆ ARGS_5

#define ARGS_5   ARGS_4 GET_ARG(5);

Definition at line 70 of file call_main.hpp.

◆ ARGS_6

#define ARGS_6   ARGS_5 GET_ARG(6);

Definition at line 71 of file call_main.hpp.

◆ ARGS_7

#define ARGS_7   ARGS_6 GET_ARG(7);

Definition at line 72 of file call_main.hpp.

◆ ARGS_8

#define ARGS_8   ARGS_7 GET_ARG(8);

Definition at line 73 of file call_main.hpp.

◆ ARGS_9

#define ARGS_9   ARGS_8 GET_ARG(9);

Definition at line 74 of file call_main.hpp.

◆ CALL_FUNC

#define CALL_FUNC (   x)    fp(CALL_PARAMS(x))

Definition at line 87 of file call_main.hpp.

◆ CALL_HELPER

#define CALL_HELPER (   _NUM)
Value:
template <typename F> \
class CallHelper<F, _NUM> \
{ \
public: \
template <typename FP> \
static void invoke(FP fp, [[maybe_unused]] uint32_t mode, uint32_t ndarrayValueBit, [[maybe_unused]] char* buffer) \
{ \
ARGS(_NUM); \
CALL_FUNC(_NUM); \
} \
}

Definition at line 89 of file call_main.hpp.

◆ CALL_PARAMS

#define CALL_PARAMS (   x)    PRIMITIVE_CAT(CALL_PARAMS_, x)

Definition at line 76 of file call_main.hpp.

◆ CALL_PARAMS_0

#define CALL_PARAMS_0

Definition at line 77 of file call_main.hpp.

◆ CALL_PARAMS_1

#define CALL_PARAMS_1   *a1

Definition at line 78 of file call_main.hpp.

◆ CALL_PARAMS_2

#define CALL_PARAMS_2   CALL_PARAMS_1, *a2

Definition at line 79 of file call_main.hpp.

◆ CALL_PARAMS_3

#define CALL_PARAMS_3   CALL_PARAMS_2, *a3

Definition at line 80 of file call_main.hpp.

◆ CALL_PARAMS_4

#define CALL_PARAMS_4   CALL_PARAMS_3, *a4

Definition at line 81 of file call_main.hpp.

◆ CALL_PARAMS_5

#define CALL_PARAMS_5   CALL_PARAMS_4, *a5

Definition at line 82 of file call_main.hpp.

◆ CALL_PARAMS_6

#define CALL_PARAMS_6   CALL_PARAMS_5, *a6

Definition at line 83 of file call_main.hpp.

◆ CALL_PARAMS_7

#define CALL_PARAMS_7   CALL_PARAMS_6, *a7

Definition at line 84 of file call_main.hpp.

◆ CALL_PARAMS_8

#define CALL_PARAMS_8   CALL_PARAMS_7, *a8

Definition at line 85 of file call_main.hpp.

◆ CALL_PARAMS_9

#define CALL_PARAMS_9   CALL_PARAMS_8, *a9

Definition at line 86 of file call_main.hpp.

◆ GET_ARG

#define GET_ARG (   num)

Definition at line 22 of file call_main.hpp.

◆ PRIMITIVE_CAT

#define PRIMITIVE_CAT (   a,
  ... 
)    a##__VA_ARGS__

Definition at line 63 of file call_main.hpp.