[Insight-developers] MedialNodeCorrespondencesTest, Intel C++ fixed

C. Aaron Cois cacst11+ at pitt . edu
Thu, 14 Aug 2003 13:16:07 -0400


This is a multi-part message in MIME format.

------=_NextPart_000_0AD9_01C36266.38DF9970
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Thanks for the help...i doubt I could have caught that.  So now, if we =
want something to be able to process either a vnl_matrix_fixed or a =
regular vnl_matrix, what is the proper protocol?  Do we have it take in =
a vnl_matrix by default, and just leave it to the code passing the =
parameter to use the mat_fixed.as_ref() so that a vnl_matrix is passed =
in when it is tring to input a vnl_matrix_fixed?

C. Aaron Cois
Graduate Student
Dept. of Bioengineering
Dept. of Computer Science
University of Pittsburgh
  ----- Original Message -----=20
  From: Miller, James V (Research)=20
  To: Insight-developers (E-mail)=20
  Sent: Thursday, August 14, 2003 1:04 PM
  Subject: [Insight-developers] MedialNodeCorrespondencesTest, Intel C++ =
fixed


  Bill just fixed the MedialNodeCorrespondenceTest that was failing on =
the Intel C++ compiler. =20

  BloxCoreAtomImage was passing the pixel eigenvectors to the =
EllipsoidI*E*SpatialFunction.  The eigenvectors in the image were stored =
as vnl_matrix_fixed and the Ellipsiod*SpatialFunction was accepting just =
a vnl_matrix. =20

  It looks like the vnl_matrix_fixed and vnl_matrix classes are no =
longer related via inheritence.  Instead, there are some converter =
routines ( mat_fixed.as_ref() returns a vnl_matrix). =20

  The Intel compiler builds were crashing on the deallocation of a =
vnl_matrix.  Bill changed the code in Ellipsoid*SpatialFunction to take =
a reference to a vnl_matrix_fixed instead of taking a vnl_matrix by =
value.  This clears up the problem on the Intel compiler.  I am guessing =
the other systems are relying on some other type conversion operators =
that may be flawed on the Intel compiler.

  Two things to look out for:

  1. vnl_matrix and vnl_matrix_fixed mismatches.
  2. function that take matrix types by value as opposed to by =
reference.=20

  Jill

  Jim Miller=20
  _____________________________________
  Visualization & Computer Vision
  GE Research
  Bldg. KW, Room C218B
  P.O. Box 8, Schenectady NY 12301

  millerjv at research . ge . com

  james . miller at research . ge . com
  (518) 387-4005, Dial Comm: 8*833-4005,=20
  Cell: (518) 505-7065, Fax: (518) 387-6981=20


------=_NextPart_000_0AD9_01C36266.38DF9970
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1170" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Thanks for the help...i doubt I could =
have caught=20
that.&nbsp; So now, if we want something to be able to process either a=20
vnl_matrix_fixed or a regular vnl_matrix, what is the proper =
protocol?&nbsp; Do=20
we have it take in a vnl_matrix by default, and just leave it to the =
code=20
passing the parameter to use the mat_fixed.as_ref() so that a vnl_matrix =
is=20
passed in when it is tring to input a vnl_matrix_fixed?</FONT></DIV>
<DIV><BR>C. Aaron Cois<BR>Graduate Student<BR>Dept. of =
Bioengineering<BR>Dept.=20
of Computer Science<BR>University of Pittsburgh</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV=20
  style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
  <A title=3Dmillerjv at crd . ge . com =
href=3D"mailto:millerjv at crd . ge . com">Miller, James V=20
  (Research)</A> </DIV>
  <DIV style=3D"FONT: 10pt arial"><B>To:</B> <A =
title=3Dinsight-developers at itk . org=20
  href=3D"mailto:insight-developers at itk . org">Insight-developers =
(E-mail)</A>=20
</DIV>
  <DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Thursday, August 14, 2003 =
1:04=20
  PM</DIV>
  <DIV style=3D"FONT: 10pt arial"><B>Subject:</B> [Insight-developers]=20
  MedialNodeCorrespondencesTest, Intel C++ fixed</DIV>
  <DIV><BR></DIV>
  <DIV><SPAN class=3D701494516-14082003><FONT size=3D2>Bill just fixed =
the=20
  MedialNodeCorrespondenceTest that was failing on the Intel C++ =
compiler.&nbsp;=20
  </FONT></SPAN></DIV>
  <DIV><SPAN class=3D701494516-14082003><FONT =
size=3D2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D701494516-14082003><FONT size=3D2>BloxCoreAtomImage =
was passing=20
  the pixel eigenvectors to the EllipsoidI*E*SpatialFunction.&nbsp; The=20
  eigenvectors in the image&nbsp;were stored as vnl_matrix_fixed and the =

  Ellipsiod*SpatialFunction was&nbsp;accepting&nbsp;just=20
  a&nbsp;vnl_matrix.&nbsp;&nbsp;</FONT></SPAN></DIV>
  <DIV><SPAN class=3D701494516-14082003></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D701494516-14082003><FONT size=3D2>It looks like the =

  vnl_matrix_fixed and vnl_matrix classes are no longer related via=20
  inheritence.&nbsp; Instead, there are&nbsp;some converter routines (=20
  mat_fixed.as_ref() returns a =
vnl_matrix).&nbsp;&nbsp;</FONT></SPAN></DIV>
  <DIV><SPAN class=3D701494516-14082003></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D701494516-14082003><FONT size=3D2>The&nbsp;Intel =
compiler=20
  builds were crashing on the deallocation of a vnl_matrix.&nbsp; Bill =
changed=20
  the code in Ellipsoid*SpatialFunction to take a&nbsp;reference to a=20
  vnl_matrix_fixed instead of taking a vnl_matrix by value.&nbsp; This =
clears up=20
  the problem on the Intel compiler.&nbsp; I am guessing the =
other&nbsp;systems=20
  are relying on some other type conversion operators that may be flawed =
on the=20
  Intel compiler.</FONT></SPAN></DIV>
  <DIV><SPAN class=3D701494516-14082003></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D701494516-14082003><FONT size=3D2>Two things to =
look out=20
  for:</FONT></SPAN></DIV>
  <DIV><SPAN class=3D701494516-14082003></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D701494516-14082003><FONT size=3D2>1. vnl_matrix and =

  vnl_matrix_fixed mismatches.</FONT></SPAN></DIV>
  <DIV><SPAN class=3D701494516-14082003><FONT size=3D2>2.&nbsp;function =
that take=20
  matrix types by value as opposed to by =
reference.</FONT>&nbsp;</SPAN></DIV>
  <DIV><SPAN class=3D701494516-14082003><FONT =
size=3D2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=3D701494516-14082003><FONT =
size=3D2>Jill</FONT></SPAN></DIV>
  <DIV><FONT size=3D2></FONT>&nbsp;</DIV>
  <DIV>
  <P style=3D"MARGIN: 0in 0in 0pt"><B><SPAN=20
  style=3D"COLOR: navy; FONT-FAMILY: 'Comic Sans MS'">Jim =
Miller</SPAN></B>=20
  <BR><B><I><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: =
Arial">_____________________________________</SPAN></I></B><BR><EM><SPAN =

  style=3D"FONT-SIZE: 7.5pt; COLOR: black; FONT-FAMILY: =
Arial">Visualization &amp;=20
  Computer Vision</SPAN></EM><I><SPAN=20
  style=3D"FONT-SIZE: 7.5pt; COLOR: black; FONT-FAMILY: =
Arial"><BR><EM>GE=20
  Research</EM><BR><EM>Bldg. KW, Room C218B</EM><BR><EM>P.O. Box 8, =
Schenectady=20
  NY 12301</EM><BR><BR></SPAN></I><EM><U><SPAN=20
  style=3D"FONT-SIZE: 7.5pt; COLOR: blue"><A=20
  =
href=3D"mailto:millerjv at research . ge . com">millerjv at research . ge . com</A></SP=
AN></U></EM></P>
  <P style=3D"MARGIN: 0in 0in 0pt"><EM><U><SPAN=20
  style=3D"FONT-SIZE: 7.5pt; COLOR: =
blue">james . miller at research . ge . com</SPAN></U></EM><BR><I><SPAN=20
  style=3D"FONT-SIZE: 7.5pt; COLOR: black; FONT-FAMILY: Arial">(518) =
387-4005,=20
  Dial Comm: 8*833-4005, </SPAN></I><BR><I><SPAN=20
  style=3D"FONT-SIZE: 7.5pt; COLOR: black; FONT-FAMILY: Arial">Cell: =
(518)=20
  505-7065, Fax: (518) 387-6981</SPAN></I> </P></DIV>
  <DIV>&nbsp;</DIV></BLOCKQUOTE></BODY></HTML>

------=_NextPart_000_0AD9_01C36266.38DF9970--