[Insight-users] [Insight-developers] Rounding functions in itkMacro.h
Aurelie Canale
Aurelie.Canale at sophia.inria.fr
Wed Jul 8 10:57:38 EDT 2009
Hi,
I am trying to compile ITK 3.14 on MAC OS 10.4 and 10.5. Usually there
is no problem but I tried to do a universal binary, so I used the cmake
options
CMAKE_OSX_ARCHITECTURES', 'STRING', '"i386;ppc"'
CMAKE_EXE_LINKER_FLAGS', 'STRING', '-bind_at_load'
I get the errors emmintrin.h not found. I saw your conversation about
this issue but don't understand how to fix it, or which option I should
change.
Thanks,
Aurelie
Wes Turner wrote:
> Sean and Mathieu,
>
> Tom Vercauteren is suggesting the following patch to correct the
> powerpc 64 issue on the latest dashboard. Does his proposed solution
> make sense and would you be willing to try it on RogueResearch3 and/or
> RogueResearch5? If it doesn't make sense, we are open to suggestions
> for resolving the build issue. Any takers?
>
> Thanks in advance!
>
> - Wes
>
> On Mon, May 18, 2009 at 5:42 AM, Tom Vercauteren
> <tom.vercauteren at m4x.org> wrote:
>
>> Luis,
>>
>> Regarding the two following failures on mac:
>> http://www.cdash.org/CDash/viewBuildError.php?buildid=335305
>> http://www.cdash.org/CDash/viewBuildError.php?buildid=335314
>>
>> It looks like both machines are compiling for ppc64. I am not familiar
>> with powerpc but these failures might be related to __powerpc__ not
>> being defined on ppc64. Apparently, __ppc64__ should be defined in
>> this case. So changing:
>> #if defined(__GNUC__) && (!defined(__APPLE__) || !defined(__ppc__) )
>> by
>> #if defined(__GNUC__) && (!defined(__ppc__)) && (!defined(__ppc64__))
>> in
>> vnl_math.h
>> seems like a potential fix to me.
>>
>> Tom
>>
>> On Mon, May 18, 2009 at 10:51, Tom Vercauteren <tom.vercauteren at m4x.org> wrote:
>>
>>> Thanks Luis,
>>>
>>> Looking at these modifications:
>>> http://www.itk.org/cgi-bin/viewcvs.cgi/Code/Common/itkNearestNeighborExtrapolateImageFunction.h?root=Insight&r1=1.6&r2=1.7&sortby=date
>>> http://www.itk.org/cgi-bin/viewcvs.cgi/Code/Common/itkMacro.h?root=Insight&r1=1.94&r2=1.95&sortby=date
>>> http://www.itk.org/cgi-bin/viewcvs.cgi/Code/Common/itkIndex.h?root=Insight&r1=1.61&r2=1.62&sortby=date
>>> it looks like some code may be cleanup a bit now. itk::Math::Round
>>> could be used without checking enclosing it in a ifdef block.
>>>
>>> I also had a quick look at the dashboard failures (previous ones as it
>>> is a little early for the current ones). I don't understand some of
>>> them. For example:
>>> http://www.cdash.org/CDash/viewBuildError.php?buildid=334444
>>> leads me to think that -msse2 is required but this flag does not seem
>>> to appear in ITK_REQUIRED_CXX_FLAGS for this build:
>>> http://www.cdash.org/CDash/testDetails.php?test=23205678&build=334444
>>>
>>> I just tested a gcc 3.4 build on my local machine:
>>> CC="gcc-3.4" CXX="g++-3.4" cmake
>>> -DVNL_CONFIG_ENABLE_SSE2_ROUNDING=ON <path_to_itk>
>>> and it works fine. I do see the -msse2 flag in ITK_REQUIRED_CXX_FLAGS
>>> as shown in ITKConfig.cmake.
>>>
>>> Similarly
>>> CC="gcc-3.4" CXX="g++-3.4" cmake <path_to_itk>
>>> also works fine and as expected, -msse2 is not in
>>> ITK_REQUIRED_CXX_FLAGS since VNL_CONFIG_ENABLE_SSE2_ROUNDING is
>>> undefined.
>>>
>>> I'll try to take some time later today to look at the current
>>> dashboard failures.
>>>
>>> Tom
>>>
>>> On Sat, May 16, 2009 at 18:09, Luis Ibanez <luis.ibanez at kitware.com> wrote:
>>>
>>>> Hi Tom,
>>>>
>>>> The patch has been committed.
>>>>
>>>> I'll track the Dashboard...
>>>>
>>>> Luis
>>>>
>>>> -----------------------------------------------------------------
>>>> On Sat, May 16, 2009 at 9:09 AM, Luis Ibanez <luis.ibanez at kitware.com> wrote:
>>>>
>>>>> Hi Tom
>>>>>
>>>>> Thanks for uploading the new version of the patch.
>>>>>
>>>>> I'm first checking that everything will work if we have
>>>>> ITK_USE_PORTABLE_ROUND set to OFF. Then we
>>>>> can enable a couple of machines to deal with the ON case.
>>>>>
>>>>> So, for the OFF case:
>>>>>
>>>>> A) After applying it (locally) three test were failing.
>>>>>
>>>>> 1) itkInterpolateTest
>>>>> 2) ResampleImageFilter3Test1
>>>>> 3) ResampleImageFilter9Test
>>>>>
>>>>> The first one has been fixed. It had hand-coded
>>>>> values that implied the rounding from continuous
>>>>> indexes to integers.
>>>>>
>>>>> The two others seems to require new baseline images,
>>>>> although it is strange that they are the only ones failing.
>>>>>
>>>>> B) In order to use ITK from an external project I had to change
>>>>>
>>>>> SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2")
>>>>>
>>>>> to
>>>>>
>>>>> SET(ITK_REQUIRED_CXX_FLAGS "${ITK_REQUIRED_CXX_FLAGS} -msse2")
>>>>>
>>>>>
>>>>> I'm looking at the two remaining failing tests,
>>>>> and plan to commit your patch by the end of the morning.
>>>>>
>>>>>
>>>>>
>>>>> Thanks
>>>>>
>>>>>
>>>>> Luis
>>>>>
>>>>>
>>>>>
>>>>> -------------------------------------------------------------------------------------------
>>>>> On Fri, May 15, 2009 at 1:05 PM, Tom Vercauteren
>>>>> <tom.vercauteren at m4x.org> wrote:
>>>>>
>>>>>> Hi Luis,
>>>>>>
>>>>>> I have posted a new version of the portable round patch on the bug tracker:
>>>>>> http://public.kitware.com/Bug/view.php?id=6558
>>>>>> http://public.kitware.com/Bug/file_download.php?file_id=2254&type=bug
>>>>>>
>>>>>> It fixes the include problem that I mentioned and also modifies two things:
>>>>>> 1) VNL_CONFIG_ENABLE_SSE2_ROUNDING is turned ON by default only if the
>>>>>> compiler supports it natively (i.e. without the -msse2 flag)
>>>>>> 2) VNL_CONFIG_ENABLE_SSE2_ROUNDING is exported in ITKConfig.cmake.in
>>>>>>
>>>>>> Both modification were done to improve the user experience when using
>>>>>> ITK from an external project.
>>>>>>
>>>>>> Regarding point 1:
>>>>>> My previous patch was setting VNL_CONFIG_ENABLE_SSE2_ROUNDING to ON by
>>>>>> default if the compiler supported sse2 natively OR if it supported it
>>>>>> with the -msse2 flag. If -msse2 was required, cmake was adding this
>>>>>> flag by default.
>>>>>> This is not very nice to the user as it requires him by default to
>>>>>> also use this flag in its external project even though he didn't
>>>>>> explicitly ask to add sse2 support.
>>>>>>
>>>>>> Regarding point 2:
>>>>>> If the user explicitly chose to turn VNL_CONFIG_ENABLE_SSE2_ROUNDING
>>>>>> and his compiler needs the -mss2 flag for that, ITK will use it.
>>>>>> That's fine. Now if ITK is included in an external project, this
>>>>>> project will also require the -msse2 flag. Adding
>>>>>> VNL_CONFIG_ENABLE_SSE2_ROUNDING to ITKConfig.cmake allows the
>>>>>> external project to know whether it needs to use -msse2 by default or
>>>>>> not.
>>>>>>
>>>>>> Cheers,
>>>>>> Tom
>>>>>>
>>>>>>
>>>>>> On Wed, May 13, 2009 at 01:05, Luis Ibanez <luis.ibanez at kitware.com> wrote:
>>>>>>
>>>>>>> Tom,
>>>>>>>
>>>>>>> Thanks for catching the problem.
>>>>>>>
>>>>>>> I'll try running another Experimental tonight.
>>>>>>>
>>>>>>>
>>>>>>> Luis
>>>>>>>
>>>>>>>
>>>>>>> ------------------------
>>>>>>> Tom Vercauteren wrote:
>>>>>>>
>>>>>>>> Oups, in my previous email
>>>>>>>> "I see that vnl_math.h is only included if ITK_USE_PORTABLE_ROUND is ON."
>>>>>>>> should have been
>>>>>>>> "I see that vnl_math.h is only included if ITK_USE_PORTABLE_ROUND is
>>>>>>>> OFF or not defined."
>>>>>>>>
>>>>>>>> Tom
>>>>>>>>
>>>>>>>> On Tue, May 12, 2009 at 23:26, Tom Vercauteren <tom.vercauteren at m4x.org>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>> Hi Luis,
>>>>>>>>>
>>>>>>>>> I think I got the culprit. It didn't make sense to me how
>>>>>>>>> vnl_math_rnd_halfintup could be undeclared. I am using ubuntu 9.04
>>>>>>>>> with gcc 4.3 and every thing works out fine. Se for example this debug
>>>>>>>>> build with sse2 rounding:
>>>>>>>>> http://www.cdash.org/CDash/buildSummary.php?buildid=331407
>>>>>>>>> http://www.cdash.org/CDash/testDetails.php?test=22870870&build=331407
>>>>>>>>>
>>>>>>>>> The only possible reason for a mising vnl_math_rnd_halfintup is a
>>>>>>>>> missing or outdated vnl_math.h. Looking back at the code
>>>>>>>>>
>>>>>>>>> http://public.kitware.com/cgi-bin/viewcvs.cgi/Code/Common/itkMacro.h?root=Insight&view=markup
>>>>>>>>> I see that vnl_math.h is only included if ITK_USE_PORTABLE_ROUND is
>>>>>>>>> ON. I wasn't using this variable...
>>>>>>>>>
>>>>>>>>> Could you please try and recompile by changing
>>>>>>>>> #ifndef ITK_USE_PORTABLE_ROUND
>>>>>>>>> #include "vnl/vnl_math.h"
>>>>>>>>> #endif
>>>>>>>>> by
>>>>>>>>> #include "vnl/vnl_math.h"
>>>>>>>>> in
>>>>>>>>> itkMacro.h
>>>>>>>>> ?
>>>>>>>>>
>>>>>>>>> Sorry for not giving you a patch but I don't have a development machine
>>>>>>>>> at hand.
>>>>>>>>>
>>>>>>>>> Also, I saw from your previous email that you had set
>>>>>>>>> VNL_CONFIG_ENABLE_SSE2 to ON. This is not used by the sse2 rounding
>>>>>>>>> functions which only relies on VNL_CONFIG_ENABLE_SSE2_ROUNDING. Since
>>>>>>>>> VXL developers aresaying that VNL_CONFIG_ENABLE_SSE2 is unstable, I
>>>>>>>>> wouldn't recommend turning this option on.
>>>>>>>>>
>>>>>>>>> Hope this helps,
>>>>>>>>> Tom
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, May 12, 2009 at 18:14, Luis Ibanez <luis.ibanez at kitware.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> HI Tom,
>>>>>>>>>>
>>>>>>>>>> Thanks for the new patch.
>>>>>>>>>>
>>>>>>>>>> Unfortunately it is not compiling for me.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Here is what I got:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> [ 41%] Building CXX object
>>>>>>>>>> Code/Common/CMakeFiles/ITKCommon.dir/itkBarrier.o
>>>>>>>>>> In file included from
>>>>>>>>>> /home/ibanez/src/Insight/Code/Common/itkTimeStamp.h:23,
>>>>>>>>>> from
>>>>>>>>>> /home/ibanez/src/Insight/Code/Common/itkLightObject.h:21,
>>>>>>>>>> from /home/ibanez/src/Insight/Code/Common/itkBarrier.h:20,
>>>>>>>>>> from
>>>>>>>>>> /home/ibanez/src/Insight/Code/Common/itkBarrier.cxx:17:
>>>>>>>>>> /home/ibanez/src/Insight/Code/Common/itkMacro.h: In function ‘int
>>>>>>>>>> itk::Math::RoundHalfIntegerUp(float)’:
>>>>>>>>>> /home/ibanez/src/Insight/Code/Common/itkMacro.h:979: error:
>>>>>>>>>> ‘vnl_math_rnd_halfintup’ was not declared in this scope
>>>>>>>>>> /home/ibanez/src/Insight/Code/Common/itkMacro.h: In function ‘int
>>>>>>>>>> itk::Math::RoundHalfIntegerUp(double)’:
>>>>>>>>>> /home/ibanez/src/Insight/Code/Common/itkMacro.h:980: error:
>>>>>>>>>> ‘vnl_math_rnd_halfintup’ was not declared in this scope
>>>>>>>>>> /home/ibanez/src/Insight/Code/Common/itkMacro.h: In function ‘int
>>>>>>>>>> itk::Math::RoundHalfIntegerToEven(float)’:
>>>>>>>>>> /home/ibanez/src/Insight/Code/Common/itkMacro.h:981: error:
>>>>>>>>>> ‘vnl_math_rnd_halfinttoeven’ was not declared in this scope
>>>>>>>>>> /home/ibanez/src/Insight/Code/Common/itkMacro.h: In function ‘int
>>>>>>>>>> itk::Math::RoundHalfIntegerToEven(double)’:
>>>>>>>>>> /home/ibanez/src/Insight/Code/Common/itkMacro.h:982: error:
>>>>>>>>>> ‘vnl_math_rnd_halfinttoeven’ was not declared in this scope
>>>>>>>>>> make[2]: *** [Code/Common/CMakeFiles/ITKCommon.dir/itkBarrier.o] Error 1
>>>>>>>>>> make[1]: *** [Code/Common/CMakeFiles/ITKCommon.dir/all] Error 2
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> and the SSE flags in my build are ON
>>>>>>>>>>
>>>>>>>>>> grep ENABLE_SSE MakeCache.txt
>>>>>>>>>>
>>>>>>>>>> VNL_CONFIG_ENABLE_SSE2:BOOL=ON
>>>>>>>>>> VNL_CONFIG_ENABLE_SSE2_ROUNDING:BOOL=ON
>>>>>>>>>> //Advanced flag for variable: VNL_CONFIG_ENABLE_SSE2
>>>>>>>>>> VNL_CONFIG_ENABLE_SSE2-ADVANCED:INTERNAL=1
>>>>>>>>>> //Modified flag for variable: VNL_CONFIG_ENABLE_SSE2
>>>>>>>>>> VNL_CONFIG_ENABLE_SSE2-MODIFIED:INTERNAL=1
>>>>>>>>>> //Advanced flag for variable: VNL_CONFIG_ENABLE_SSE2_ROUNDING
>>>>>>>>>> VNL_CONFIG_ENABLE_SSE2_ROUNDING-ADVANCED:INTERNAL=1
>>>>>>>>>> //Modified flag for variable: VNL_CONFIG_ENABLE_SSE2_ROUNDING
>>>>>>>>>> VNL_CONFIG_ENABLE_SSE2_ROUNDING-MODIFIED:INTERNAL=1
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> BTW: This is a Debug build in gcc 4.3.2, Linux Ubuntu 8.10.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Luis
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> =========================================
>>>>>>>>>> On Tue, May 12, 2009 at 8:48 AM, Tom Vercauteren
>>>>>>>>>> <tom.vercauteren at m4x.org> wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Luis,
>>>>>>>>>>>
>>>>>>>>>>> I have put an updated patch on the bug tracker:
>>>>>>>>>>> http://public.kitware.com/Bug/file_download.php?file_id=2236&type=bug
>>>>>>>>>>>
>>>>>>>>>>> In addition to the changes I mentioned earlier, it includes some small
>>>>>>>>>>> modifications to some CMakeLists.txt in order to ease turning on SSE2
>>>>>>>>>>> rounding.
>>>>>>>>>>> cmake -DVNL_CONFIG_ENABLE_SSE2_ROUNDING=ON <path_to_itk>
>>>>>>>>>>> and
>>>>>>>>>>> ccmake <path_to_itk>
>>>>>>>>>>> switch VNL_CONFIG_ENABLE_SSE2_ROUNDING to on
>>>>>>>>>>> now also works with gcc
>>>>>>>>>>>
>>>>>>>>>>> Let me know if it works for you.
>>>>>>>>>>>
>>>>>>>>>>> Tom
>>>>>>>>>>>
>>>>>>>>>>> On Tue, May 12, 2009 at 12:43, Tom Vercauteren
>>>>>>>>>>> <tom.vercauteren at m4x.org> wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> Hi Luis,
>>>>>>>>>>>>
>>>>>>>>>>>> I have almost the same system so this will ease the process.
>>>>>>>>>>>>
>>>>>>>>>>>> The problem is indeed related to the -msse2 flag. Running
>>>>>>>>>>>> cmake -DCMAKE_C_FLAGS="-msse2" -DCMAKE_CXX_FLAGS="-msse2"
>>>>>>>>>>>> -DVNL_CONFIG_ENABLE_SSE2_ROUNDING=ON <path_to_itk>
>>>>>>>>>>>> works correctly.
>>>>>>>>>>>>
>>>>>>>>>>>> So it looks like the cmake magic used by vxl to detect and add sse2
>>>>>>>>>>>> support is wrong. Actually running
>>>>>>>>>>>> cmake -DVNL_CONFIG_ENABLE_SSE2_ROUNDING=ON <path_to_itk>
>>>>>>>>>>>> leads to a cmake error.
>>>>>>>>>>>>
>>>>>>>>>>>> This is not specific to the patched itk version as the same behavior
>>>>>>>>>>>> is observed on a pristine checkout of the vxl svn trunk.
>>>>>>>>>>>>
>>>>>>>>>>>> There are at least two errors I can see from the cmake scripts in vxl
>>>>>>>>>>>> svn trunk when VNL_CONFIG_ENABLE_SSE2_ROUNDING is ON.
>>>>>>>>>>>>
>>>>>>>>>>>> 1) ADD_DEFINITIONS( -msse2 ) is called after vxl tries to detect
>>>>>>>>>>>> whether it has sse2 support. However this flag is required for gcc
>>>>>>>>>>>> (4.3) to find emmintrin.h and use the sse2 intrinsics.
>>>>>>>>>>>>
>>>>>>>>>>>> 2) Even if ADD_DEFINITIONS( -msse2 ) was called prior to
>>>>>>>>>>>> PERFORM_CHECK_HEADER(emmintrin.h VXL_HAS_EMMINTRIN_H)
>>>>>>>>>>>> and
>>>>>>>>>>>> PERFORM_CMAKE_TEST_RUN(vxl_platform_tests.cxx
>>>>>>>>>>>> VXL_HAS_SSE2_HARDWARE_SUPPORT)
>>>>>>>>>>>> it wouldn't make a difference since PERFORM_CHECK_HEADER and
>>>>>>>>>>>> PERFORM_CMAKE_TEST_RUN do not rely on such ADD_DEFINITIONS.
>>>>>>>>>>>>
>>>>>>>>>>>> I am not sure how to fix this right now as I am not a cmake expert.
>>>>>>>>>>>> Any help would be appreciated.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Note this this issue does not affect the case when
>>>>>>>>>>>> VNL_CONFIG_ENABLE_SSE2_ROUNDING is OFF. In such a case, on your
>>>>>>>>>>>> system, the implementation will fallback to the gcc assembly calls,
>>>>>>>>>>>> e.g.
>>>>>>>>>>>> inline int vnl_math_rnd_halfinttoeven(float x) { int r; __asm__
>>>>>>>>>>>> __volatile__ ("fistpl %0" : "=m"(r) : "t"(x) : "st"); return r; }
>>>>>>>>>>>>
>>>>>>>>>>>> I'll report back if I find a patch for the cmake scripts that I find
>>>>>>>>>>>> reasonable.
>>>>>>>>>>>>
>>>>>>>>>>>> Tom
>>>>>>>>>>>>
>>>>>>>>>>>> On Tue, May 12, 2009 at 04:27, Luis Ibanez <luis.ibanez at kitware.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi Tom,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I'm testing this on a Laptop:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Linux Ubuntu 8.10
>>>>>>>>>>>>> gcc 4.3.2
>>>>>>>>>>>>> Intel(R) Core(TM)2 Duo CPU T9600 @ 2.80GHz
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> The error was a link error.
>>>>>>>>>>>>> Missing symbols.
>>>>>>>>>>>>>
>>>>>>>>>>>>> lshw returns the following data from the CPU:
>>>>>>>>>>>>>
>>>>>>>>>>>>> *-cpu
>>>>>>>>>>>>> description: CPU
>>>>>>>>>>>>> product: Intel(R) Core(TM)2 Duo CPU T9600 @ 2.80GHz
>>>>>>>>>>>>> vendor: Intel Corp.
>>>>>>>>>>>>> physical id: 400
>>>>>>>>>>>>> bus info: cpu at 0
>>>>>>>>>>>>> version: 6.7.6
>>>>>>>>>>>>> slot: Microprocessor
>>>>>>>>>>>>> size: 2801MHz
>>>>>>>>>>>>> capacity: 2801MHz
>>>>>>>>>>>>> width: 64 bits
>>>>>>>>>>>>> clock: 266MHz
>>>>>>>>>>>>> capabilities: fpu fpu_exception wp vme de pse tsc msr pae
>>>>>>>>>>>>> mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx
>>>>>>>>>>>>> fxsr
>>>>>>>>>>>>> sse sse2 ss ht tm pbe nx x86-64 constant_tsc arch_perfmon pebs bts
>>>>>>>>>>>>> pni
>>>>>>>>>>>>> monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm cpufreq
>>>>>>>>>>>>> configuration: id=0
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>>
>>>>>>>>>>>>> Luis
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> ------------------------------
>>>>>>>>>>>>> On Mon, May 11, 2009 at 7:16 PM, Tom Vercauteren
>>>>>>>>>>>>> <tom.vercauteren at m4x.org> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Luis,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Can you provide some information on your configuration (OS,
>>>>>>>>>>>>>> compiler,
>>>>>>>>>>>>>> cpu)? Also did you get a compilation error or a link error?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> One potential thing to look at is whether your machine actually
>>>>>>>>>>>>>> supports sse2 and whether vxl correctly detects it. It looks like I
>>>>>>>>>>>>>> missed a patch to the sse2 detection in the list I gave you:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> http://vxl.svn.sourceforge.net/viewvc/vxl/trunk/config/cmake/config/CMakeLists.txt?r1=23457&r2=23456&pathrev=23457
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> http://vxl.svn.sourceforge.net/viewvc/vxl/trunk/config/cmake/config/vxl_platform_tests.cxx?r1=23457&r2=23456&pathrev=23457
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> No matter this patch, setting VNL_CONFIG_ENABLE_SSE2_ROUNDING to
>>>>>>>>>>>>>> OFF
>>>>>>>>>>>>>> should definitely not remove the declarations of the new rounding
>>>>>>>>>>>>>> methods. It should simply fallback to another implementation than
>>>>>>>>>>>>>> the
>>>>>>>>>>>>>> SSE2 one (gcc-specific or msvc-specific or vanilla c).
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Since I don't have access to my computer right now, it's a bit
>>>>>>>>>>>>>> difficult for me to provide you more information right now.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Tom
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Tue, May 12, 2009 at 00:44, Luis Ibanez <luis.ibanez at kitware.com>
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Tom,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Setting VNL_CONFIG_ENABLE_SSE2_ROUNDING to OFF
>>>>>>>>>>>>>>> removes the declarations of the new rounding methods in
>>>>>>>>>>>>>>> vnl_math.h.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I'm probably doing something wrong here.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I have generated a patch with the changes and uploaded it
>>>>>>>>>>>>>>> to the bug tracker:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> You will find it in:
>>>>>>>>>>>>>>> http://public.kitware.com/Bug/view.php?id=6558
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> is the patch named:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> PortableRound-May-11-2009.patch
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> If you have a chance,
>>>>>>>>>>>>>>> could you help me find out what I'm missing ?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Luis
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-developers
>>
>>
>
>
>
>
More information about the Insight-users
mailing list