<HTML>
<HEAD>
<TITLE>Re: [vtk-developers] vtkMath inline choices...</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>I can speak to why IsNan is not inlined.  The IsNan (and similar non-finite tests) rely on some non-portable functionality.  Depending on whether the isnan function is provided, IEEE-754 numbers are used, or if operations on NaNs are trapped, different implementations are provided.  Over time this can get even more complicated as we encounter computers and compilers that treat NaNs differently.  Quite simply, I did not want to expose all of this complexity in the header file.<BR>
<BR>
If you plan to go through the trouble of moving that to the header file, you should do performance tests to make sure that there is a clear advantage to inlining the function.  I’ve been surprised in the past to find an inline function did not really perform any better than a function call.  The fact of the matter is that function calls are cheap operations nowadays.<BR>
<BR>
-Ken<BR>
<BR>
<BR>
On 9/15/10 9:06 AM, "Sean McBride" <<a href="sean@rogue-research.com">sean@rogue-research.com</a>> wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Hi again all,<BR>
<BR>
I'm continuing my profiling, and now have a question about vtkMath.h...<BR>
How was it decided what to inline and what not to?<BR>
<BR>
There are some 'big' methods like vtkMath::Cross() that are inline, and<BR>
yet there are some very short methods like vtkMath::IsNan() that are not<BR>
inlined.<BR>
<BR>
I'm asking because I believe it could be beneficial for IsNan to be<BR>
inlined (though have not yet tested).<BR>
<BR>
Cheers,<BR>
<BR>
--<BR>
____________________________________________________________<BR>
Sean McBride, B. Eng                 <a href="sean@rogue-research.com">sean@rogue-research.com</a><BR>
Rogue Research                        www.rogue-research.com<BR>
Mac Software Developer              Montréal, Québec, Canada<BR>
<BR>
<BR>
_______________________________________________<BR>
Powered by www.kitware.com<BR>
<BR>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><BR>
<BR>
Follow this link to subscribe/unsubscribe:<BR>
<a href="http://www.vtk.org/mailman/listinfo/vtk-developers">http://www.vtk.org/mailman/listinfo/vtk-developers</a><BR>
<BR>
<BR>
<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
</SPAN></FONT><FONT SIZE="2"><FONT FACE="Consolas, Courier New, Courier"><SPAN STYLE='font-size:10pt'><BR>
   ****      Kenneth Moreland<BR>
    ***      Sandia National Laboratories<BR>
***********  <BR>
*** *** ***  email: <a href="kmorel@sandia.gov">kmorel@sandia.gov</a><BR>
**  ***  **  phone: (505) 844-8919<BR>
    ***      web:   <a href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a><BR>
</SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
</SPAN></FONT>
</BODY>
</HTML>