<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Sep 4, 2016 at 9:45 AM, Nikos Alexandris <span dir="ltr"><<a href="mailto:nik@nikosalexandris.net" target="_blank">nik@nikosalexandris.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div id="gmail-:2hb" class="gmail-a3s gmail-aXjCH gmail-m156f624521aa6022">Updated in sandbox, see: <a href="https://trac.osgeo.org/grass/changeset/69365" rel="noreferrer" target="_blank">https://trac.osgeo.org/grass/c<wbr>hangeset/69365</a><br>
<br>
Is it though correct?</div></blockquote></div><br></div><div class="gmail_extra">I was not looking at the logic but<br><br><span>if (hue == -1.0) {</span><br><br></div><div class="gmail_extra">is not safe. Although it will probably work most of the time if you set it to the exactly same value (`hue = -1;`), but it is not portable because it is exact comparison for floats/doubles. Generally, you need to do something like<br><br></div><div class="gmail_extra">if (fabs(hue - (-1.0)) < GRASS_EPSILON) {<br><br></div><div class="gmail_extra">However, here it might be more appropriate to signal the good or bad state of hue by some other variable:<br><br></div><div class="gmail_extra">hue_good = FALSE;<br></div><div class="gmail_extra"><br>/* setting hue here together with hue_good = TRUE */<br><br></div><div class="gmail_extra"><span>if (!hue_good) {<br><br></span></div><div class="gmail_extra"><span>/* do the null set */<br><br></span></div><div class="gmail_extra"><span>Also, it seems that the code is not consistent with </span><span class="gmail-p"></span>FCELL<span class="gmail-p"> versus </span><span class="gmail-p"></span>DCELL<span class="gmail-p"></span>. I can see DCELL <span class="gmail-o">*</span>rowbuffer and <span>Rast_is_d_null_value</span> but also (FCELL)saturation as well as floats and doubles. Since the input claims to be always DCELL, use DCELL/double everywhere.<br><br></div><div class="gmail_extra">Related to that, although I'm never sure about where is its appropriate to use DCELL and where double (DCELL currently gets evaluated to double: typedef double DCELL;). I would probably use DCELL everywhere in this function; just to make it clear that we deal purely with cell values and there is no need to switch to anything else.<br><br></div><div class="gmail_extra">And of course, congrats and kudos for your C efforts, Nikos!<br><br></div><div class="gmail_extra">Vaclav<br></div></div>