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 {array_is_categorical};
20 
21 {get_num_output_group_function_signature} {{
22  return {num_output_group};
23 }}
24 
25 {get_num_feature_function_signature} {{
26  return {num_feature};
27 }}
28 
29 {pred_transform_function}
30 {predict_function_signature} {{
31 )TREELITETEMPLATE";
32 
33 const char* main_end_multiclass_template =
34 R"TREELITETEMPLATE(
35  for (int i = 0; i < {num_output_group}; ++i) {{
36  result[i] = sum[i]{optional_average_field} + (float)({global_bias});
37  }}
38  if (!pred_margin) {{
39  return pred_transform(result);
40  }} else {{
41  return {num_output_group};
42  }}
43 }}
44 )TREELITETEMPLATE"; // only for multiclass classification
45 
46 const char* main_end_template =
47 R"TREELITETEMPLATE(
48  sum = sum{optional_average_field} + (float)({global_bias});
49  if (!pred_margin) {{
50  return pred_transform(sum);
51  }} else {{
52  return sum;
53  }}
54 }}
55 )TREELITETEMPLATE";
56 
57 } // namespace native
58 } // namespace compiler
59 } // namespace treelite
60 #endif // TREELITE_COMPILER_NATIVE_MAIN_TEMPLATE_H_