treelite
main_template.h
Go to the documentation of this file.
1 
8 #ifndef TREELITE_COMPILER_NATIVE_MAIN_TEMPLATE_H_
9 #define TREELITE_COMPILER_NATIVE_MAIN_TEMPLATE_H_
10 
11 namespace treelite {
12 namespace compiler {
13 namespace native {
14 
15 const char* main_start_template =
16 R"TREELITETEMPLATE(
17 #include "header.h"
18 
19 const unsigned char is_categorical[] = {{
20 {array_is_categorical}
21 }};
22 
23 {get_num_output_group_function_signature} {{
24  return {num_output_group};
25 }}
26 
27 {get_num_feature_function_signature} {{
28  return {num_feature};
29 }}
30 
31 {pred_transform_function}
32 {predict_function_signature} {{
33 )TREELITETEMPLATE";
34 
35 const char* main_end_multiclass_template =
36 R"TREELITETEMPLATE(
37  for (int i = 0; i < {num_output_group}; ++i) {{
38  result[i] = sum[i]{optional_average_field} + (float)({global_bias});
39  }}
40  if (!pred_margin) {{
41  return pred_transform(result);
42  }} else {{
43  return {num_output_group};
44  }}
45 }}
46 )TREELITETEMPLATE"; // only for multiclass classification
47 
48 const char* main_end_template =
49 R"TREELITETEMPLATE(
50  sum = sum{optional_average_field} + (float)({global_bias});
51  if (!pred_margin) {{
52  return pred_transform(sum);
53  }} else {{
54  return sum;
55  }}
56 }}
57 )TREELITETEMPLATE";
58 
59 } // namespace native
60 } // namespace compiler
61 } // namespace treelite
62 #endif // TREELITE_COMPILER_NATIVE_MAIN_TEMPLATE_H_