MCPcopy Create free account
hub / github.com/davisking/dlib / call_func

Function call_func

tools/python/src/global_optimization.cpp:92–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

90}
91
92double call_func(py::object f, const matrix<double,0,1>& args)
93{
94 const auto num = num_function_arguments(f, args.size());
95 DLIB_CASSERT(num == args.size(),
96 "The function being optimized takes a number of arguments that doesn't agree with the size of the bounds lists you provided to find_max_global()");
97 DLIB_CASSERT(0 < num && num <= 35, "Functions being optimized must take between 1 and 35 scalar arguments.");
98
99#define CALL_WITH_N_ARGS(N) case N: return dlib::gopt_impl::_cwv(f,args,std::make_index_sequence<N>{}).cast<double>();
100 switch (num)
101 {
102 CALL_WITH_N_ARGS(1)
103 CALL_WITH_N_ARGS(2)
104 CALL_WITH_N_ARGS(3)
105 CALL_WITH_N_ARGS(4)
106 CALL_WITH_N_ARGS(5)
107 CALL_WITH_N_ARGS(6)
108 CALL_WITH_N_ARGS(7)
109 CALL_WITH_N_ARGS(8)
110 CALL_WITH_N_ARGS(9)
111 CALL_WITH_N_ARGS(10)
112 CALL_WITH_N_ARGS(11)
113 CALL_WITH_N_ARGS(12)
114 CALL_WITH_N_ARGS(13)
115 CALL_WITH_N_ARGS(14)
116 CALL_WITH_N_ARGS(15)
117 CALL_WITH_N_ARGS(16)
118 CALL_WITH_N_ARGS(17)
119 CALL_WITH_N_ARGS(18)
120 CALL_WITH_N_ARGS(19)
121 CALL_WITH_N_ARGS(20)
122 CALL_WITH_N_ARGS(21)
123 CALL_WITH_N_ARGS(22)
124 CALL_WITH_N_ARGS(23)
125 CALL_WITH_N_ARGS(24)
126 CALL_WITH_N_ARGS(25)
127 CALL_WITH_N_ARGS(26)
128 CALL_WITH_N_ARGS(27)
129 CALL_WITH_N_ARGS(28)
130 CALL_WITH_N_ARGS(29)
131 CALL_WITH_N_ARGS(30)
132 CALL_WITH_N_ARGS(31)
133 CALL_WITH_N_ARGS(32)
134 CALL_WITH_N_ARGS(33)
135 CALL_WITH_N_ARGS(34)
136 CALL_WITH_N_ARGS(35)
137
138 default:
139 DLIB_CASSERT(false, "oops");
140 break;
141 }
142}
143
144// ----------------------------------------------------------------------------------------
145

Callers 4

py_find_max_globalFunction · 0.85
py_find_max_global2Function · 0.85
py_find_min_globalFunction · 0.85
py_find_min_global2Function · 0.85

Calls 2

num_function_argumentsFunction · 0.85
sizeMethod · 0.45

Tested by

no test coverage detected