<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br><blockquote type="cite"><div>Apart from that: Did you #include <cln/float.h>? Where is that assignment (as you write it it could be outside a function body)?<br></div></blockquote><br></div><div>As I said I tried several things. My experience is that if one includes <cln/cln.h> all</div><div>the rest is automatically included. I have never registered any difference with explicit inclusion</div><div>on various linux and MacOS distributions.</div><div><br></div><div>Here is a minimal demonstration</div><div><br></div><div><div>/* File: demo.cc</div><div> Compilation: g++ -g -O2 -o demo demo.cc -lcln</div><div> */</div><div><br></div><div>//bool cln::cl_inhibit_floating_point_underflow = true;</div><div><br></div><div>#include <cln/cln.h></div><div>#include <cln/float.h></div><div><br></div><div>//using namespace std;</div><div>using namespace cln;</div><div><br></div><div>//bool cln::cl_inhibit_floating_point_underflow = true;</div><div>bool cl_inhibit_floating_point_underflow = true;</div><div><br></div><div>int main()</div><div>{</div><div> float_format_t precision = float_format(50);</div><div> cl_F x = least_positive_float(precision);</div><div> while(x > cl_float(0, precision) ) {</div><div> std::cout << x << std::endl;</div><div> x *= x;</div><div> }</div><div>}</div><div><br></div></div><div><div>which produces the output:</div><div><br></div><div><blockquote type="cite"><div><font class="Apple-style-span" color="#000000">7.241484622111747243360392473658128214691955086151413286838L-2776511644261678567</font></div><div><font class="Apple-style-span" color="#000000">terminate called after throwing an instance of 'cln::floating_point_underflow_exception'</font></div><div><font class="Apple-style-span" color="#000000"> what(): floating point underflow.</font></div><div><font class="Apple-style-span" color="#000000">Abort trap</font></div></blockquote></div></div></body></html>