I've programmed in C++ only sporadically. Are the functions really declared to have type Error, or am I misreading things? For example one function starts as
Error
calibrateEuropean(
f64 v, // option price
f64 s, // stock price