Ragiona: min non va inizializzato a 0 (cosa scontata visto che il punto di minimo di quella funzione è per x = 0.5 e vale -1.25), ma a un valore numerico tale che ogni altro numero sia inferiore a quel valore numerico.
Detta in parole povere ogni reale è sicuramente minore di +inf e maggiore di -inf (Analisi 1).
Tali valori (puramente teorici) tradotti in informatica e relativi ai double, fanno si che ogni double è sicuramente minore del massimo double rappresentabile dalla macchina e sicuramente maggiore del minimo double rappresentabile dalla macchina.
Le costanti da usare sono DBL_MIN e DBL_MAX e min/max vanno inizializzati a tali valori, tendendo presente quanto detto.
Il resto è banale.