214 static auto exec_preset_all = mf::build::exec_presets::AllSpanOrSingle();
215 static auto exec_preset_first_two = mf::build::exec_presets::SomeSpanOrSingle<0, 1>();
217 switch (
data->data_type) {
219 switch (
data->operation) {
221 static auto fn = mf::build::SI2_SO<float, float, bool>(
222 "Less Than", [](
float a,
float b) {
return a <
b; }, exec_preset_all);
226 static auto fn = mf::build::SI2_SO<float, float, bool>(
227 "Less Equal", [](
float a,
float b) {
return a <=
b; }, exec_preset_all);
231 static auto fn = mf::build::SI2_SO<float, float, bool>(
232 "Greater Than", [](
float a,
float b) {
return a >
b; }, exec_preset_all);
236 static auto fn = mf::build::SI2_SO<float, float, bool>(
237 "Greater Equal", [](
float a,
float b) {
return a >=
b; }, exec_preset_all);
241 static auto fn = mf::build::SI3_SO<float, float, float, bool>(
243 [](
float a,
float b,
float epsilon) {
return std::abs(a -
b) <= epsilon; },
244 exec_preset_first_two);
248 static auto fn = mf::build::SI3_SO<float, float, float, bool>(
250 [](
float a,
float b,
float epsilon) {
return std::abs(a -
b) > epsilon; },
251 exec_preset_first_two);
256 switch (
data->operation) {
258 static auto fn = mf::build::SI2_SO<int, int, bool>(
259 "Less Than", [](
int a,
int b) {
return a <
b; }, exec_preset_all);
263 static auto fn = mf::build::SI2_SO<int, int, bool>(
264 "Less Equal", [](
int a,
int b) {
return a <=
b; }, exec_preset_all);
268 static auto fn = mf::build::SI2_SO<int, int, bool>(
269 "Greater Than", [](
int a,
int b) {
return a >
b; }, exec_preset_all);
273 static auto fn = mf::build::SI2_SO<int, int, bool>(
274 "Greater Equal", [](
int a,
int b) {
return a >=
b; }, exec_preset_all);
278 static auto fn = mf::build::SI2_SO<int, int, bool>(
279 "Equal", [](
int a,
int b) {
return a ==
b; }, exec_preset_all);
283 static auto fn = mf::build::SI2_SO<int, int, bool>(
284 "Not Equal", [](
int a,
int b) {
return a !=
b; }, exec_preset_all);
290 switch (
data->operation) {
292 switch (
data->mode) {
294 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
295 "Less Than - Average",
301 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
302 "Less Than - Dot Product",
304 exec_preset_first_two);
308 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
309 "Less Than - Direction",
311 exec_preset_first_two);
315 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
316 "Less Than - Element-wise",
322 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
323 "Less Than - Length",
331 switch (
data->mode) {
333 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
334 "Less Equal - Average",
340 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
341 "Less Equal - Dot Product",
343 exec_preset_first_two);
347 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
348 "Less Equal - Direction",
350 exec_preset_first_two);
354 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
355 "Less Equal - Element-wise",
361 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
362 "Less Equal - Length",
370 switch (
data->mode) {
372 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
373 "Greater Than - Average",
379 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
380 "Greater Than - Dot Product",
382 exec_preset_first_two);
386 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
387 "Greater Than - Direction",
389 exec_preset_first_two);
393 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
394 "Greater Than - Element-wise",
400 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
401 "Greater Than - Length",
409 switch (
data->mode) {
411 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
412 "Greater Equal - Average",
418 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
419 "Greater Equal - Dot Product",
421 exec_preset_first_two);
425 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
426 "Greater Equal - Direction",
428 exec_preset_first_two);
432 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
433 "Greater Equal - Element-wise",
439 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
440 "Greater Equal - Length",
448 switch (
data->mode) {
450 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
455 exec_preset_first_two);
459 static auto fn = mf::build::SI4_SO<float3, float3, float, float, bool>(
460 "Equal - Dot Product",
464 exec_preset_first_two);
468 static auto fn = mf::build::SI4_SO<float3, float3, float, float, bool>(
473 exec_preset_first_two);
477 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
478 "Equal - Element-wise",
480 return abs(a.x -
b.x) <= epsilon &&
abs(a.y -
b.y) <= epsilon &&
481 abs(a.z -
b.z) <= epsilon;
483 exec_preset_first_two);
487 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
492 exec_preset_first_two);
498 switch (
data->mode) {
500 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
501 "Not Equal - Average",
505 exec_preset_first_two);
509 static auto fn = mf::build::SI4_SO<float3, float3, float, float, bool>(
510 "Not Equal - Dot Product",
514 exec_preset_first_two);
518 static auto fn = mf::build::SI4_SO<float3, float3, float, float, bool>(
519 "Not Equal - Direction",
523 exec_preset_first_two);
527 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
528 "Not Equal - Element-wise",
530 return abs(a.x -
b.x) > epsilon ||
abs(a.y -
b.y) > epsilon ||
531 abs(a.z -
b.z) > epsilon;
533 exec_preset_first_two);
537 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
538 "Not Equal - Length",
542 exec_preset_first_two);
550 switch (
data->operation) {
552 static auto fn = mf::build::SI3_SO<ColorGeometry4f, ColorGeometry4f, float, bool>(
555 return abs(a.
r -
b.r) <= epsilon &&
abs(a.
g -
b.g) <= epsilon &&
556 abs(a.
b -
b.b) <= epsilon;
558 exec_preset_first_two);
562 static auto fn = mf::build::SI3_SO<ColorGeometry4f, ColorGeometry4f, float, bool>(
565 return abs(a.
r -
b.r) > epsilon ||
abs(a.
g -
b.g) > epsilon ||
566 abs(a.
b -
b.b) > epsilon;
568 exec_preset_first_two);
572 static auto fn = mf::build::SI2_SO<ColorGeometry4f, ColorGeometry4f, bool>(
581 static auto fn = mf::build::SI2_SO<ColorGeometry4f, ColorGeometry4f, bool>(
592 switch (
data->operation) {
594 static auto fn = mf::build::SI2_SO<std::string, std::string, bool>(
595 "Equal", [](std::string a, std::string
b) {
return a ==
b; });
599 static auto fn = mf::build::SI2_SO<std::string, std::string, bool>(
600 "Not Equal", [](std::string a, std::string
b) {
return a !=
b; });