213 static auto exec_preset_all = mf::build::exec_presets::AllSpanOrSingle();
214 static auto exec_preset_first_two = mf::build::exec_presets::SomeSpanOrSingle<0, 1>();
216 switch (data->data_type) {
218 switch (data->operation) {
220 static auto fn = mf::build::SI2_SO<float, float, bool>(
221 "Less Than", [](
float a,
float b) {
return a <
b; }, exec_preset_all);
225 static auto fn = mf::build::SI2_SO<float, float, bool>(
226 "Less Equal", [](
float a,
float b) {
return a <=
b; }, exec_preset_all);
230 static auto fn = mf::build::SI2_SO<float, float, bool>(
231 "Greater Than", [](
float a,
float b) {
return a >
b; }, exec_preset_all);
235 static auto fn = mf::build::SI2_SO<float, float, bool>(
236 "Greater Equal", [](
float a,
float b) {
return a >=
b; }, exec_preset_all);
240 static auto fn = mf::build::SI3_SO<float, float, float, bool>(
242 [](
float a,
float b,
float epsilon) {
return std::abs(a -
b) <= epsilon; },
243 exec_preset_first_two);
247 static auto fn = mf::build::SI3_SO<float, float, float, bool>(
249 [](
float a,
float b,
float epsilon) {
return std::abs(a -
b) > epsilon; },
250 exec_preset_first_two);
255 switch (data->operation) {
257 static auto fn = mf::build::SI2_SO<int, int, bool>(
258 "Less Than", [](
int a,
int b) {
return a <
b; }, exec_preset_all);
262 static auto fn = mf::build::SI2_SO<int, int, bool>(
263 "Less Equal", [](
int a,
int b) {
return a <=
b; }, exec_preset_all);
267 static auto fn = mf::build::SI2_SO<int, int, bool>(
268 "Greater Than", [](
int a,
int b) {
return a >
b; }, exec_preset_all);
272 static auto fn = mf::build::SI2_SO<int, int, bool>(
273 "Greater Equal", [](
int a,
int b) {
return a >=
b; }, exec_preset_all);
277 static auto fn = mf::build::SI2_SO<int, int, bool>(
278 "Equal", [](
int a,
int b) {
return a ==
b; }, exec_preset_all);
282 static auto fn = mf::build::SI2_SO<int, int, bool>(
283 "Not Equal", [](
int a,
int b) {
return a !=
b; }, exec_preset_all);
289 switch (data->operation) {
291 switch (data->mode) {
293 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
294 "Less Than - Average",
300 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
301 "Less Than - Dot Product",
303 exec_preset_first_two);
307 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
308 "Less Than - Direction",
310 exec_preset_first_two);
314 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
315 "Less Than - Element-wise",
321 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
322 "Less Than - Length",
330 switch (data->mode) {
332 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
333 "Less Equal - Average",
339 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
340 "Less Equal - Dot Product",
342 exec_preset_first_two);
346 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
347 "Less Equal - Direction",
349 exec_preset_first_two);
353 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
354 "Less Equal - Element-wise",
360 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
361 "Less Equal - Length",
369 switch (data->mode) {
371 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
372 "Greater Than - Average",
378 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
379 "Greater Than - Dot Product",
381 exec_preset_first_two);
385 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
386 "Greater Than - Direction",
388 exec_preset_first_two);
392 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
393 "Greater Than - Element-wise",
399 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
400 "Greater Than - Length",
408 switch (data->mode) {
410 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
411 "Greater Equal - Average",
417 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
418 "Greater Equal - Dot Product",
420 exec_preset_first_two);
424 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
425 "Greater Equal - Direction",
427 exec_preset_first_two);
431 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
432 "Greater Equal - Element-wise",
438 static auto fn = mf::build::SI2_SO<float3, float3, bool>(
439 "Greater Equal - Length",
447 switch (data->mode) {
449 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
454 exec_preset_first_two);
458 static auto fn = mf::build::SI4_SO<float3, float3, float, float, bool>(
459 "Equal - Dot Product",
463 exec_preset_first_two);
467 static auto fn = mf::build::SI4_SO<float3, float3, float, float, bool>(
472 exec_preset_first_two);
476 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
477 "Equal - Element-wise",
479 return abs(a.x -
b.x) <= epsilon &&
abs(a.y -
b.y) <= epsilon &&
480 abs(a.z -
b.z) <= epsilon;
482 exec_preset_first_two);
486 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
491 exec_preset_first_two);
497 switch (data->mode) {
499 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
500 "Not Equal - Average",
504 exec_preset_first_two);
508 static auto fn = mf::build::SI4_SO<float3, float3, float, float, bool>(
509 "Not Equal - Dot Product",
513 exec_preset_first_two);
517 static auto fn = mf::build::SI4_SO<float3, float3, float, float, bool>(
518 "Not Equal - Direction",
522 exec_preset_first_two);
526 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
527 "Not Equal - Element-wise",
529 return abs(a.x -
b.x) > epsilon ||
abs(a.y -
b.y) > epsilon ||
530 abs(a.z -
b.z) > epsilon;
532 exec_preset_first_two);
536 static auto fn = mf::build::SI3_SO<float3, float3, float, bool>(
537 "Not Equal - Length",
541 exec_preset_first_two);
549 switch (data->operation) {
551 static auto fn = mf::build::SI3_SO<ColorGeometry4f, ColorGeometry4f, float, bool>(
554 return abs(a.r -
b.r) <= epsilon &&
abs(a.g -
b.g) <= epsilon &&
555 abs(a.b -
b.b) <= epsilon;
557 exec_preset_first_two);
561 static auto fn = mf::build::SI3_SO<ColorGeometry4f, ColorGeometry4f, float, bool>(
564 return abs(a.r -
b.r) > epsilon ||
abs(a.g -
b.g) > epsilon ||
565 abs(a.b -
b.b) > epsilon;
567 exec_preset_first_two);
571 static auto fn = mf::build::SI2_SO<ColorGeometry4f, ColorGeometry4f, bool>(
580 static auto fn = mf::build::SI2_SO<ColorGeometry4f, ColorGeometry4f, bool>(
591 switch (data->operation) {
593 static auto fn = mf::build::SI2_SO<std::string, std::string, bool>(
594 "Equal", [](std::string a, std::string
b) {
return a ==
b; });
598 static auto fn = mf::build::SI2_SO<std::string, std::string, bool>(
599 "Not Equal", [](std::string a, std::string
b) {
return a !=
b; });