feat(cpp/core): parallel_for thread pool + slider widget
parallel_for_cpp_core: ThreadPool reutilizable con parallel_for(begin, end, fn) y parallel_for_chunks(begin, end, fn(tid, lo, hi)). Captura excepciones del worker y las relanza en el caller. Pareja CPU del despacho GPU para Monte Carlo multi-core cuando dispatch GPU no compensa. slider_cpp_core: wrapper de ImGui::SliderFloat/Int/Double con label muted arriba, tokens (primary grab), full-width. Variantes float, float_log (logaritmico), int, double. Para los calculadores que tienen 15-30 sliders cada uno y se beneficia del estilo consistente. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
// Slider con label muted arriba + value display, estilo acorde con fn_tokens.
|
||||
// Equivalente simple de <Slider> de Mantine / fn_library.
|
||||
//
|
||||
// Uso:
|
||||
// static float p = 0.2f;
|
||||
// fn_ui::slider_float("Probabilidad de pagar", &p, 0.0f, 1.0f);
|
||||
//
|
||||
// static int n = 10;
|
||||
// fn_ui::slider_int("Spins por sesion", &n, 1, 100);
|
||||
|
||||
namespace fn_ui {
|
||||
|
||||
// Renderiza label arriba + slider abajo. fmt es el printf-format que
|
||||
// ImGui usa para el value display (default "%.3f"). Devuelve true si el
|
||||
// valor cambio este frame.
|
||||
bool slider_float(const char* label, float* value,
|
||||
float min_v, float max_v,
|
||||
const char* fmt = "%.3f");
|
||||
|
||||
// Logaritmico: util para parametros que cubren ordenes de magnitud
|
||||
// (sigma, learning rate, ...).
|
||||
bool slider_float_log(const char* label, float* value,
|
||||
float min_v, float max_v,
|
||||
const char* fmt = "%.4f");
|
||||
|
||||
bool slider_int(const char* label, int* value,
|
||||
int min_v, int max_v,
|
||||
const char* fmt = "%d");
|
||||
|
||||
// Variante double: ImGui no tiene SliderDouble, asi que internamente
|
||||
// down-cast a float — ojo si tu rango requiere precision fp64.
|
||||
bool slider_double(const char* label, double* value,
|
||||
double min_v, double max_v,
|
||||
const char* fmt = "%.6f");
|
||||
|
||||
} // namespace fn_ui
|
||||
Reference in New Issue
Block a user