<font><font face="verdana,sans-serif">I forgot to mention that this stems from using vtkLandmarkTransform.</font></font><br><br><div class="gmail_quote">2012/1/31 Dženan Zukić <span dir="ltr">&lt;<a href="mailto:dzenanz@gmail.com">dzenanz@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font><font face="verdana,sans-serif">This is the end of the command line (there are a lot of /I and /D options before):<br>

<span style="font-family:courier new,monospace">/D &quot;_MBCS&quot; /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /GR /Fp&quot;Spine.dir\Release\Spine.pch&quot; /Fa&quot;Release&quot; /Fo&quot;Spine.dir\Release\&quot; /Fd&quot;D:/Repo/Spine/Release/Spine.pdb&quot; /Gd /TP /errorReport:queue</span><br>



There are also &quot;Additional options&quot;:  <span style="font-family:courier new,monospace">/Zm1000 /bigobj /bigobj </span><br><br>But this alone does not cause the Jacobi warning. It happens with one poly model I use.<br>


<br>At the warning point, matrix &quot;a&quot; is usually full of NaNs:<br>-1.#QNAN -1.#QNAN -1.#QNAN -1.#QNAN<br>-1.#QNAN -1.#QNAN -1.#QNAN -1.#QNAN<br>-1.#QNAN -1.#QNAN -1.#QNAN -1.#QNAN<br>-1.#QNAN -1.#QNAN -1.#QNAN -1.#QNAN<br>


<br></font></font><font><font face="verdana,sans-serif">Here is one offending matrix:<br>-20.432407408240863 -6.916861332864527 4.552990997176626 24.110079331569615 <br>-6.916861332864527 -0.14227080645425705 -11.855738368063925 -17.76674202740249 <br>


4.552990997176626 -11.855738368063925 12.501563019018828 10.426774322765672 <br>24.110079331569615 -17.76674202740249 10.426774322765672 8.0731151956762908 <br></font></font><br>Here is another:<br>-20.908967195946744 -7.4695433223552188 4.3289567952431929 24.110079331569615 <br>


-7.4695433223552188 0.33428898125162654 -11.855738368063925 -17.990776229335921 <br>4.3289567952431929 -11.855738368063925 12.978122806724711 10.979456312256364 <br>24.110079331569615 -17.990776229335921 10.979456312256364 7.5965554079704081 <br>


<br>Also, the numbers are different each time I run my program, with all the conditions being identical.<div class="HOEnZb"><div class="h5"><br><br><div class="gmail_quote">2012/1/31 David Gobbi <span dir="ltr">&lt;<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>&gt;</span><br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks for the info.  Can you post your compiler optimization flags to<br>
the list?  There is definitely a problem with JacobiN that needs to be<br>
fixed.  The fix should be very easy to do if we can get a matrix that<br>
reliably causes JacobiN to fail when certain optimization flags are<br>
used, so if either of you can print out such a matrix (with all<br>
numbers printed with a precision of 20 digits), it would be a big<br>
help.<br>
<br>
 - David<br>
<br>
<br>
2012/1/31 Dženan Zukić &lt;<a href="mailto:dzenanz@gmail.com" target="_blank">dzenanz@gmail.com</a>&gt;:<br>
<div><div>&gt; I also saw this warning recently, from the block that &quot;never gets called&quot;.<br>
&gt; And it only happened in release version of my program.<br>
&gt;<br>
&gt; On Tue, Jan 31, 2012 at 00:48, Maarten Beek &lt;<a href="mailto:beekmaarten@yahoo.com" target="_blank">beekmaarten@yahoo.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi David,<br>
&gt;&gt;<br>
&gt;&gt; Ai, seems these crashes are hard to get rid off....<br>
&gt;&gt;<br>
&gt;&gt; I currently use VTK within Amira modules.<br>
&gt;&gt;<br>
&gt;&gt; I changed the type of vtkPoints from the default VTK_FLOAT to VTK_DOUBLE<br>
&gt;&gt; when I convert an Amira object to a VTK object. This reduces the occurrences<br>
&gt;&gt; of the errors, but doesn&#39;t solve the issue.<br>
&gt;&gt; (Ps: why is the default in vtkPoints still float, while everywhere else<br>
&gt;&gt; floats were changed into doubles a long while ago?)<br>
&gt;&gt;<br>
&gt;&gt; I don&#39;t really know much about different optimizations, so I just<br>
&gt;&gt; copy-paste what I found in MSVS:<br>
&gt;&gt;<br>
&gt;&gt; I build my VTK with:<br>
&gt;&gt; /O2 /Ob2 /FD /EHsc /MD /Fo&quot;vtkCommon.dir\Release\\&quot;<br>
&gt;&gt; /Fd&quot;G:\vtk-5.6.0\build_vs90_noQt\bin\Release/vtkCommon.pdb&quot; /W4 /nologo /c<br>
&gt;&gt; /TP /errorReport:prompt/Zm 1000 and a couple of &#39;/I&#39;-s and &#39;/D&#39;-s<br>
&gt;&gt;<br>
&gt;&gt; I build my Amira modules with:<br>
&gt;&gt; /O2 /Ob1 /Oi /Oy /GF /FD /EHsc /MD /GS- /Gy /fp:fast /openmp<br>
&gt;&gt; /Fo&quot;./../../obj/arch-Win64VC9-Optimize/GraphPackage/&quot;<br>
&gt;&gt; /Fd&quot;./../.././bin/arch-Win64VC9-Optimize/GraphPackage.pdb&quot; /W3 /nologo /c<br>
&gt;&gt; /Zi /wd4068 /wd4305 /wd4018 /wd4244 /wd4800 /wd4275 /wd4251<br>
&gt;&gt; /errorReport:prompt and a couple of &#39;/I&#39;-s and &#39;/D&#39;-s<br>
&gt;&gt;<br>
&gt;&gt; I am working on getting vtkMath::JacobiN to print the matrix in the<br>
&gt;&gt; if-loop that &#39;gets never called&#39; using vtkGenericWarningMacro to avoid<br>
&gt;&gt; having to include Amira stuff. Having a hard time getting that to work. (<br>
&gt;&gt; char* test = &quot;hello&quot;;vtkGenericWarningMacro( test ); won&#39;t do the trick).<br>
&gt;&gt; Any suggestions?<br>
&gt;&gt;<br>
&gt;&gt; Maarten<br>
&gt;&gt;<br>
&gt;&gt; ________________________________<br>
&gt;&gt; From: David Gobbi &lt;<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>&gt;<br>
&gt;&gt; To: Maarten Beek &lt;<a href="mailto:beekmaarten@yahoo.com" target="_blank">beekmaarten@yahoo.com</a>&gt;<br>
&gt;&gt; Cc: VTK list &lt;<a href="mailto:vtkusers@vtk.org" target="_blank">vtkusers@vtk.org</a>&gt;<br>
&gt;&gt; Sent: Monday, January 30, 2012 2:31:38 PM<br>
&gt;&gt; Subject: Re: [vtkusers] ICP Error: vtkMath::Jacobi: Error extracting<br>
&gt;&gt; eigenfunctions<br>
&gt;&gt;<br>
&gt;&gt; Hi Maarten,<br>
&gt;&gt;<br>
&gt;&gt; I think there are two issues here, one is that vtkLandmarkTransform<br>
&gt;&gt; should have a check as you have described, but another potentially<br>
&gt;&gt; serious issue is that, as far as I understand it, JacobiN should never<br>
&gt;&gt; fail.  I did a google search and found a message from 2002 by the<br>
&gt;&gt; Numerical Recipes authors stating that the NR Jacobi code can become<br>
&gt;&gt; numerically unstable due to certain compiler optimizations.  I&#39;m<br>
&gt;&gt; guessing that certain compiler optimizations could similarly make the<br>
&gt;&gt; VTK Jacobi code become unstable.<br>
&gt;&gt; <a href="http://www.nr.com/forum/showthread.php?p=4913" target="_blank">http://www.nr.com/forum/showthread.php?p=4913</a><br>
&gt;&gt;<br>
&gt;&gt; Can you provide info about your compiler/flags etc?  Also, is it<br>
&gt;&gt; possible to get your code to print a matrix that causes JacobiN to<br>
&gt;&gt; fail?<br>
&gt;&gt;<br>
&gt;&gt; - David<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Jan 30, 2012 at 9:44 AM, Maarten Beek &lt;<a href="mailto:beekmaarten@yahoo.com" target="_blank">beekmaarten@yahoo.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt; Hi all,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I get the following warning when using ICP:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; vtkMath::Jacobi: Error extracting eigenfunctions<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; It comes from vtkMath::vtkJacobiN that calculates the eigenvalues,<br>
&gt;&gt; &gt; -vectors<br>
&gt;&gt; &gt; of a matrix.<br>
&gt;&gt; &gt; The function returns 0, when this error occurs (otherwise 1), but<br>
&gt;&gt; &gt; vtkLandmarkTransform doesn&#39;t check for the return value and thus uses<br>
&gt;&gt; &gt; undefined values for the eigenvalues, -vectors.<br>
&gt;&gt; &gt; This means my point set becomes invalid.<br>
&gt;&gt; &gt; I believe the way to avoid this error is to &#39;giggle&#39; the coordinates a<br>
&gt;&gt; &gt; little when it happens, but how can I intervene when<br>
&gt;&gt; &gt; vtkLandmarkTransform<br>
&gt;&gt; &gt; stubbornly uses whatever values it gets from vtkMath::vtkJacobiN?<br>
&gt;&gt; &gt; Is there a way to intercept the error message?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I also noticed that if I apply ICP on A and B1 resulting in the error<br>
&gt;&gt; &gt; message, applying ICP on A and B2 (loading the same data file that gives<br>
&gt;&gt; &gt; me<br>
&gt;&gt; &gt; B1) works fine. I don&#39;t see vtkMath::vtkJacobiN using a random number or<br>
&gt;&gt; &gt; doing something similar, which makes me believe the error message I get<br>
&gt;&gt; &gt; is<br>
&gt;&gt; &gt; due to floating point accuracy? Even more a reason to think that<br>
&gt;&gt; &gt; &#39;giggling&#39;<br>
&gt;&gt; &gt; might work (if I were able to intervene before the invalid transform is<br>
&gt;&gt; &gt; applied to my data...)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thanks - Maarten<br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>