[Insight-users] Re: tkSymmetricEigenAnalysisImageFilter Problem

Luis Ibanez luis.ibanez at kitware.com
Sat Sep 9 15:45:18 EDT 2006



Hi Alberto,

Is that a 64 bits machine ?


If not,
then you can only access 2Gb per process.


Have you tried a minimal C++ program that
attempts to allocate more than 2Gb ?


Something like:


--------------------------------------------------------
#include <iostream>

int main()
{
   unsigned long N = 500000000L;
   try
     {
     double * t = new double[N];
     }
   catch(...)
     {
     std::cout << "Allocation failure" << std::endl;
     return 1;
     }
   std::cout << "Success" << std::endl;
   return 0;
}
--------------------------------------------------------


This should allocate 3.7 Gigabites.


Please compile this in your machine and let us know
what you get as output.


    Thanks



       Luis



---------------------------
Alberto Santamaría wrote:
> Hi Luis,
> 
> Thanks for the hint. Then it looks like the problem is
> memory allocation from the OS.
> 
> 
>>Do you have also any other images / filters around ?
> 
> 
> Actually the filter runs well in smaller images,
> 512x512x69. And so far I just tried with this filter. 
> 
> 
>>How much RAM memory do you have ?
> 
> The memory avaliable is 32Gb, so in principle it
> should be able to handle 1.6Gb 
> 
> Thanks,
> 
> -Alberto
> 
> --- insight-users-request at itk.org wrote:
> 
> 
>>Today's Topics:
>>
>>   1. Re: itkSymmetricEigenAnalysisImageFilter
>>Problem (Luis Ibanez)
>>
>>
>>
> 
> ----------------------------------------------------------------------
> 
>>Message: 1
>>Date: Sat, 09 Sep 2006 10:01:04 -0400
>>From: Luis Ibanez <luis.ibanez at kitware.com>
>>Subject: Re: [Insight-users]
>>itkSymmetricEigenAnalysisImageFilter
>>	Problem
>>To: pang2 at yahoo.com
>>Cc: insight-users at itk.org
>>Message-ID: <4502C920.2080104 at kitware.com>
>>Content-Type: text/plain; charset=ISO-8859-1;
>>format=flowed
>>
>>
>>Hi Alberto,
>>
>>
>>One symmetric tensor in ITK will have 6 components,
>>if you represent it as doubles, then it takes 48
>>bytes
>>per tensor.
>>
>>For an image of 512x512x120 that results in 1.4
>>Gigabytes.
>>
>>The original image was already 60 Megabytes.
>>
>>Do you have also any other images / filters around ?
>>
>>How much RAM memory do you have ?
>>
>>It is not necessarily surprising that you are
>>running out
>>of memory...
>>
>>
>>    Luis
>>
>>
>>----------------------------
>>Alberto Santamaría wrote:
>>
>>>Dear All,
>>>
>>>I am trying to compute the eigenvalues from a
>>
>>volume
>>
>>>of size: 512x512x120 with data type ushort. 
>>>However once the Hessian has been computed, the
>>>program chrases giving me the following error:
>>>
>>>*** glibc detected *** free(): invalid next size
>>>(fast): 0x00000000009a74c0 ***
>>>Aborted
>>>
>>>The compiler that I use is:
>>>c++ (GCC) 3.4.6 20060404 (Red Hat 3.4.6-3)
>>>
>>>and is running in a cluster with 8 CPUS of the
>>
>>type:
>>
>>>processor       : 0
>>>vendor_id       : AuthenticAMD
>>>cpu family      : 15
>>>model           : 5
>>>model name      : AMD Opteron(tm) Processor 846
>>>stepping        : 10
>>>cpu MHz         : 2004.566
>>>cache size      : 1024 KB
>>>fpu             : yes
>>>fpu_exception   : yes
>>>cpuid level     : 1
>>>wp              : yes
>>>flags           : fpu vme de pse tsc msr pae mce
>>
>>cx8
>>
>>>apic sep mtrr pge mca cmov pat pse36 clflush mmx
>>
>>fxsr
>>
>>>sse sse2 syscall nx mmxext lm 3dnowext 3dnow
>>>bogomips        : 4014.85
>>>TLB size        : 1088 4K pages
>>>clflush size    : 64
>>>cache_alignment : 64
>>>address sizes   : 40 bits physical, 48 bits
>>
>>virtual
>>
>>>power management: ts fid vid ttp
>>>
>>>"itkSymmetricEigenAnalysisImageFilter.h"
>>>
>>>I tracked down the problem with valgrind and this
>>
>>is
>>
>>>the initial part of the report. I have attached
>>
>>the
>>
>>>complete error log.
>>>
>>>==22307== Warning: set address range perms: large
>>>range 342884360 (undefined)
>>>==22307== Thread 4:
>>>==22307== Invalid write of size 8
>>>==22307==    at 0x4AE4B1:
>>>
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>>3>, itk::FixedArray<flo
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>>
>>>>::ComputeEigenValuesUsingQL(itk::FixedArray<float,
>>>
>>>3>&, double*) 
>>>const (itkSymmetricEigenAnalysis.txx:483)
>>>
>>>
>>>Has any one faced a similar problem to this one
>>>before?
>>>
>>>Thanks in advance
>>>
>>>-Alberto
>>>
>>>__________________________________________________
>>>Do You Yahoo!?
>>>Tired of spam?  Yahoo! Mail has the best spam
>>
>>protection around 
>>
>>>http://mail.yahoo.com 
>>>
>>>
>>>
>>
> ------------------------------------------------------------------------
> 
>>>==22307== Memcheck, a memory error detector.
>>>==22307== Copyright (C) 2002-2006, and GNU GPL'd,
>>
>>by Julian Seward et al.
>>
>>>==22307== Using LibVEX rev 1606, a library for
>>
>>dynamic binary translation.
>>
>>>==22307== Copyright (C) 2004-2006, and GNU GPL'd,
>>
>>by OpenWorks LLP.
>>
>>>==22307== Using valgrind-3.2.0, a dynamic binary
>>
>>instrumentation framework.
>>
>>>==22307== Copyright (C) 2000-2006, and GNU GPL'd,
>>
>>by Julian Seward et al.
>>
>>>==22307== For more details, rerun with: -v
>>>==22307== 
>>>==22307== Warning: set address range perms: large
>>
>>range 114294784 (undefined)
>>
>>>Computing hessian set to  0.4...
>>>==22307== Warning: set address range perms: large
>>
>>range 1371537416 (undefined)
>>
>>>==22307== Warning: set address range perms: large
>>
>>range 114294784 (undefined)
>>
>>>==22307== Warning: set address range perms: large
>>
>>range 114294784 (undefined)
>>
>>>==22307== Warning: set address range perms: large
>>
>>range 114294784 (undefined)
>>
>>>Computing hessian set to  0.4...Done
>>>==22307== Warning: set address range perms: large
>>
>>range 342884360 (undefined)
>>
>>>==22307== Thread 4:
>>>==22307== Invalid write of size 8
>>>==22307==    at 0x4AE4B1:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>>::ComputeEigenValuesUsingQL(itk::FixedArray<float,
>>
>>3>&, double*) 
>>
>>>const (itkSymmetricEigenAnalysis.txx:483)
>>>==22307==    by 0x4AE7BB:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:49)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307==  Address 0xBCA6268 is 0 bytes after a
>>
>>block of size 24 alloc'd
>>
>>>==22307==    at 0x4905415: operator new[](unsigned
>>
>>long) (vg_replace_malloc.c:199)
>>
>>>==22307==    by 0x4AE73B:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:32)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4AE7BB:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:49)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307== 
>>>==22307== Conditional jump or move depends on
>>
>>uninitialised value(s)
>>
>>>==22307==    at 0x4AE5FF:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>>::ComputeEigenValuesUsingQL(itk::FixedArray<float,
>>
>>3>&, double*) 
>>
>>>const (itkFixedArray.h:181)
>>>==22307==    by 0x4AE7BB:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:49)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307== 
>>>==22307== Conditional jump or move depends on
>>
>>uninitialised value(s)
>>
>>>==22307==    at 0x4AE2DD:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>>::ComputeEigenValuesUsingQL(itk::FixedArray<float,
>>
>>3>&, double*) 
>>
>>>const (itkSymmetricEigenAnalysis.txx:433)
>>>==22307==    by 0x4AE7BB:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:49)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307== 
>>>==22307== Conditional jump or move depends on
>>
>>uninitialised value(s)
>>
>>>==22307==    at 0x4AE375:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>>::ComputeEigenValuesUsingQL(itk::FixedArray<float,
>>
>>3>&, double*) 
>>
>>>const (vnl_math.h:158)
>>>==22307==    by 0x4AE7BB:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:49)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307== 
>>>==22307== Invalid read of size 8
>>>==22307==    at 0x4AE44D:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>>::ComputeEigenValuesUsingQL(itk::FixedArray<float,
>>
>>3>&, double*) 
>>
>>>const (itkSymmetricEigenAnalysis.txx:473)
>>>==22307==    by 0x4AE7BB:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:49)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307==  Address 0xBCA6268 is 0 bytes after a
>>
>>block of size 24 alloc'd
>>
>>>==22307==    at 0x4905415: operator new[](unsigned
>>
>>long) (vg_replace_malloc.c:199)
>>
>>>==22307==    by 0x4AE73B:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:32)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307== 
>>>==22307== Conditional jump or move depends on
>>
>>uninitialised value(s)
>>
>>>==22307==    at 0x4A8E4D:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>>::ReduceToTridiagonalMatrix(double*,
>>
>>itk::FixedArray<float, 3>&, 
>>
>>>double*, double*) const
>>
>>(itkSymmetricEigenAnalysis.txx:138)
>>
>>>==22307==    by 0x4AE7AA:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:47)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307== 
>>>==22307== Conditional jump or move depends on
>>
>>uninitialised value(s)
>>
>>>==22307==    at 0x4A8F16:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>>::ReduceToTridiagonalMatrix(double*,
>>
>>itk::FixedArray<float, 3>&, 
>>
>>>double*, double*) const
>>
>>(itkSymmetricEigenAnalysis.txx:158)
>>
>>>==22307==    by 0x4AE7AA:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:47)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307== 
>>>==22307== Conditional jump or move depends on
>>
>>uninitialised value(s)
>>
>>>==22307==    at 0x4A8F1C:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>>::ReduceToTridiagonalMatrix(double*,
>>
>>itk::FixedArray<float, 3>&, 
>>
>>>double*, double*) const
>>
>>(itkSymmetricEigenAnalysis.txx:158)
>>
>>>==22307==    by 0x4AE7AA:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:47)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307== 
>>>==22307== Conditional jump or move depends on
>>
>>uninitialised value(s)
>>
>>>==22307==    at 0x4A8E4F:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>>::ReduceToTridiagonalMatrix(double*,
>>
>>itk::FixedArray<float, 3>&, 
>>
>>>double*, double*) const
>>
>>(itkSymmetricEigenAnalysis.txx:138)
>>
>>>==22307==    by 0x4AE7AA:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:47)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307== 
>>>==22307== Conditional jump or move depends on
>>
>>uninitialised value(s)
>>
>>>==22307==    at 0x4AE2DF:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>>::ComputeEigenValuesUsingQL(itk::FixedArray<float,
>>
>>3>&, double*) 
>>
>>>const (itkSymmetricEigenAnalysis.txx:433)
>>>==22307==    by 0x4AE7BB:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<flo
>>
>>>at, 3>, itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> co
>>
>>>nst&, itk::FixedArray<float, 3>&) const
>>
>>(itkSymmetricEigenAnalysis.txx:49)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk
>>
>>>::Image<itk::FixedArray<float, 3>, 3>,
>>
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> 
>>>ouble, 3>, itk::FixedArray<float, 3> >
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAn
>>
>>>alysisImageFilter.h:57)
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*) (itkS
>>
>>>martPointer.h:71)
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307== 
>>>==22307== More than 10000000 total errors
>>
>>detected.  I'm not reporting any more.
>>
>>>==22307== Final error counts will be inaccurate. 
>>
>>Go fix your program!
>>
>>>==22307== Rerun with --error-limit=no to disable
>>
>>this cutoff.  Note
>>
>>>==22307== that errors may occur in your program
>>
>>without prior warning from
>>
>>>==22307== Valgrind, because errors are no longer
>>
>>being displayed.
>>
>>>==22307== 
>>>==22307== 
>>>==22307== ERROR SUMMARY: 10000000 errors from 11
>>
>>contexts (suppressed: 10 from 5)
>>
>>>==22307== malloc/free: in use at exit:
>>
>>2,172,495,740 bytes in 13,998 blocks.
>>
>>>==22307== malloc/free: 4,316,909 allocs, 4,302,911
>>
>>frees, 2,436,566,755 bytes allocated.
>>
>>>==22307== For counts of detected errors, rerun
>>
>>with: -v
>>
>>>==22307== searching for pointers to 13,998
>>
>>not-freed blocks.
>>
>>>==22307== checked 1,921,180,184 bytes.
>>>==22307== 
>>>==22307== Thread 1:
>>>==22307== 
>>>==22307== 37 bytes in 1 blocks are possibly lost
>>
>>in loss record 38 of 206
>>
>>>==22307==    at 0x4904F57: operator new(unsigned
>>
>>long) (vg_replace_malloc.c:167)
>>
>>>==22307==    by 0x313E69024D:
>>
>>std::string::_Rep::_S_create(unsigned long, unsigned
>>long, std::allocator<char> const&) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x313E6902EB:
>>
>>std::string::_Rep::_M_clone(std::allocator<char>
>>const&, unsigned long) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x313E6903D9:
>>
>>std::string::string(std::string const&) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x58A4C6:
>>
>>gdcm::Util::GetMACAddress() (gdcmUtil.cxx:897)
>>
>>>==22307==    by 0x58BCAB:
>>
>>_GLOBAL__I__ZN4gdcm4Util8GDCM_UIDE
>>(gdcmUtil.cxx:108)
>>
>>>==22307==    by 0x689B05: (within
>>
> /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> 
>>>==22307==    by 0x483992: (within
>>
> /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> 
>>>==22307== 
>>>==22307== 
>>>==22307== 47 bytes in 1 blocks are possibly lost
>>
>>in loss record 40 of 206
>>
>>>==22307==    at 0x4904F57: operator new(unsigned
>>
>>long) (vg_replace_malloc.c:167)
>>
>>>==22307==    by 0x313E69024D:
>>
>>std::string::_Rep::_S_create(unsigned long, unsigned
>>long, std::allocator<char> const&) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x313E6902EB:
>>
>>std::string::_Rep::_M_clone(std::allocator<char>
>>const&, unsigned long) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x313E6906C9:
>>
>>std::string::assign(std::string const&) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x54C8A4: gdcm::DictSet::DictSet()
>>
>>(basic_string.h:427)
>>
>>>==22307==    by 0x56A3B8: gdcm::Global::Global()
>>
>>(gdcmGlobal.cxx:70)
>>
>>>==22307==    by 0x56B48E:
>>
>>_GLOBAL__I__ZN4gdcm12GDCM_UNKNOWNE
>>(gdcmGlobal.cxx:56)
>>
>>>==22307==    by 0x689B05: (within
>>
> /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> 
>>>==22307==    by 0x483992: (within
>>
> /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> 
>>>==22307== 
>>>==22307== 
>>>==22307== 195 bytes in 3 blocks are possibly lost
>>
>>in loss record 119 of 206
>>
>>>==22307==    at 0x4904F57: operator new(unsigned
>>
>>long) (vg_replace_malloc.c:167)
>>
>>>==22307==    by 0x313E69024D:
>>
>>std::string::_Rep::_S_create(unsigned long, unsigned
>>long, std::allocator<char> const&) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x313E6902EB:
>>
>>std::string::_Rep::_M_clone(std::allocator<char>
>>const&, unsigned long) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x313E690792:
>>
>>std::string::reserve(unsigned long) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x313E69109B:
>>
>>std::string::append(std::string const&) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x486F33: std::basic_string<char,
>>
>>std::char_traits<char>, std::allocator<char> >
>>std::operator+<char, std::char_traits<char>,
>>std::allocator<char> >(std::basic_string<char,
>>std::char_traits<char>, std::allocator<char> >
>>const&, std::basic_string<char,
>>std::char_traits<char>, std::allocator<char> >
>>const&) (basic_string.h:2006)
>>
>>>==22307==    by 0x48553F: main
>>
>>(basic_string.h:2041)
>>
>>>==22307== 
>>>==22307== 
>>>==22307== 216 bytes in 3 blocks are definitely
>>
>>lost in loss record 120 of 206
>>
>>>==22307==    at 0x4905415: operator new[](unsigned
>>
>>long) (vg_replace_malloc.c:199)
>>
>>>==22307==    by 0x4AE74E:
>>
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<float, 3>,
>>itk::SymmetricSecondRankTensor<double, 3>
>>
>>::ComputeEigenValues(itk::SymmetricSecondRankTensor<double,
>>3> const&, itk::FixedArray<float, 3>&) const
>>(itkSymmetricEigenAnalysis.txx:35)
>>
>>>==22307==    by 0x4B3E69:
>>
> itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk::Image<itk::FixedArray<float, 3>, 3>,
>>
> 
> itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<double,
> 
>>3>, itk::FixedArray<float, 3> >
>>
>>>::ThreadedGenerateData(itk::ImageRegion<3> const&,
>>
>>int) (itkSymmetricEigenAnalysisImageFilter.h:57)
>>
>>>==22307==    by 0x4A3645:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::ThreaderCallback(void*)
>>(itkSmartPointer.h:71)
>>
>>>==22307==    by 0x4B87D6:
>>
>>itk::MultiThreader::SingleMethodProxy(void*)
>>(itkMultiThreader.cxx:736)
>>
>>>==22307==    by 0x313D806109: start_thread (in
>>
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x313CFC68B2: clone (in
>>
>>/lib64/tls/libc-2.3.4.so)
>>
>>>==22307== 
>>>==22307==
>>>==22307== 2,016 bytes in 7 blocks are possibly
>>
>>lost in loss record 154 of 206
>>
>>>==22307==    at 0x49060CD: calloc
>>
>>(vg_replace_malloc.c:279)
>>
>>>==22307==    by 0x313CD0D262: _dl_allocate_tls (in
>>
>>/lib64/ld-2.3.4.so)
>>
>>>==22307==    by 0x313D806706:
>>
>>pthread_create@@GLIBC_2.2.5 (in
>>/lib64/tls/libpthread-2.3.4.so)
>>
>>>==22307==    by 0x4B92FF:
>>
> itk::MultiThreader::DispatchSingleMethodThread(itk::MultiThreader::ThreadInfoStruct*)
> 
>>(itkMultiThreader.cxx:854)
>>
>>>==22307==    by 0x4BA281:
>>
>>itk::MultiThreader::SingleMethodExecute()
>>(itkMultiThreader.cxx:278)
>>
>>>==22307==    by 0x4A3580:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::GenerateData() (itkProcessObject.h:278)
>>
>>>==22307==    by 0x4C47EC:
>>
> itk::ProcessObject::UpdateOutputData(itk::DataObject*)
> 
>>(itkProcessObject.cxx:991)
>>
>>>==22307==    by 0x4857B7: main
>>
>>(itkSmartPointer.h:71)
>>
>>>==22307== 
>>>==22307== 
>>>==22307== 19,468 bytes in 419 blocks are possibly
>>
>>lost in loss record 198 of 206
>>
>>>==22307==    at 0x4904F57: operator new(unsigned
>>
>>long) (vg_replace_malloc.c:167)
>>
>>>==22307==    by 0x313E69024D:
>>
>>std::string::_Rep::_S_create(unsigned long, unsigned
>>long, std::allocator<char> const&) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x313E69094A:
>>
>>std::string::_M_mutate(unsigned long, unsigned long,
>>unsigned long) (in /usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x313E690C31:
>>
>>std::string::assign(char const*, unsigned long) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x5913A6:
>>
>>gdcm::FillDefaultVRDict(std::map<std::string,
>>std::string, std::less<std::string>,
>>std::allocator<std::pair<std::string const,
>>std::string> > >&) (char_traits.h:258)
>>
>>>==22307==    by 0x58EC68: gdcm::VR::VR()
>>
>>(gdcmVR.cxx:47)
>>
>>>==22307==    by 0x56A3D4: gdcm::Global::Global()
>>
>>(gdcmGlobal.cxx:71)
>>
>>>==22307==    by 0x56B48E:
>>
>>_GLOBAL__I__ZN4gdcm12GDCM_UNKNOWNE
>>(gdcmGlobal.cxx:56)
>>
>>>==22307==    by 0x689B05: (within
>>
> /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> 
>>>==22307==    by 0x483992: (within
>>
> /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> 
>>>==22307== 
>>>==22307== 
>>>==22307== 353,305 bytes in 10,398 blocks are
>>
>>possibly lost in loss record 202 of 206
>>
>>>==22307==    at 0x4904F57: operator new(unsigned
>>
>>long) (vg_replace_malloc.c:167)
>>
>>>==22307==    by 0x313E69024D:
>>
>>std::string::_Rep::_S_create(unsigned long, unsigned
>>long, std::allocator<char> const&) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x313E69260A: (within
>>
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x313E692722:
>>
>>std::string::string(char const*,
>>std::allocator<char> const&) (in
>>/usr/lib64/libstdc++.so.6.0.3)
>>
>>>==22307==    by 0x58BC70:
>>
>>_GLOBAL__I__ZN4gdcm4Util8GDCM_UIDE
>>(new_allocator.h:62)
>>
>>>==22307==    by 0x689B05: (within
>>
> /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> 
>>>==22307==    by 0x483992: (within
>>
> /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> 
>>>==22307== 
>>>==22307== 
>>>==22307== 342,884,360 bytes in 1 blocks are
>>
>>possibly lost in loss record 205 of 206
>>
>>>==22307==    at 0x4905415: operator new[](unsigned
>>
>>long) (vg_replace_malloc.c:199)
>>
>>>==22307==    by 0x4A91E8:
>>
>>itk::ImportImageContainer<unsigned long,
>>itk::FixedArray<float, 3>
>>
>>>::AllocateElements(unsigned long) const
>>
>>(itkImportImageContainer.txx:176)
>>
>>>==22307==    by 0x4A94B8:
>>
>>itk::ImportImageContainer<unsigned long,
>>itk::FixedArray<float, 3> >::Reserve(unsigned long)
>>(itkImportImageContainer.txx:77)
>>
>>>==22307==    by 0x4A962E:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::AllocateOutputs() (itkSmartPointer.h:71)
>>
>>>==22307==    by 0x4A96CB:
>>
> itk::InPlaceImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double,
> 
>>3>, 3>, itk::Image<itk::FixedArray<float, 3>, 3>
>>
>>>::AllocateOutputs() (itkInPlaceImageFilter.txx:106)
>>>==22307==    by 0x4A3520:
>>
>>itk::ImageSource<itk::Image<itk::FixedArray<float,
>>3>, 3> >::GenerateData() (itkImageSource.txx:214)
>>
>>>==22307==    by 0x4C47EC:
>>
> itk::ProcessObject::UpdateOutputData(itk::DataObject*)
> 
>>(itkProcessObject.cxx:991)
>>
>>>==22307==    by 0x4857B7: main
>>
>>(itkSmartPointer.h:71)
>>
>>>==22307== 
>>>==22307== 
>>>==22307== 1,371,537,416 bytes in 1 blocks are
>>
>>possibly lost in loss record 206 of 206
>>
>>>==22307==    at 0x4905415: operator new[](unsigned
>>
>>long) (vg_replace_malloc.c:199)
>>
>>>==22307==    by 0x4B1058:
>>
>>itk::ImportImageContainer<unsigned long,
>>itk::SymmetricSecondRankTensor<double, 3>
>>
>>>::AllocateElements(unsigned long) const
>>
>>(itkImportImageContainer.txx:176)
>>
>>>==22307==    by 0x4B1348:
>>
>>itk::ImportImageContainer<unsigned long,
>>itk::SymmetricSecondRankTensor<double, 3>
>>
>>>::Reserve(unsigned long)
>>
>>(itkImportImageContainer.txx:77)
>>
>>>==22307==    by 0x4B2D34:
>>
> itk::HessianRecursiveGaussianImageFilter<itk::Image<float,
> 
>>3>,
>>itk::Image<itk::SymmetricSecondRankTensor<double,
>>3>, 3> >::GenerateData() (itkSmartPointer.h:71)
>>
>>>==22307==    by 0x4C47EC:
>>
> itk::ProcessObject::UpdateOutputData(itk::DataObject*)
> 
>>(itkProcessObject.cxx:991)
>>
>>>==22307==    by 0x485755: main
>>
>>(itkSmartPointer.h:71)
>>
>>>==22307== 
>>>==22307== LEAK SUMMARY:
>>>==22307==    definitely lost: 216 bytes in 3
>>
>>blocks.
>>
>>>==22307==      possibly lost: 1,714,796,844 bytes
>>
>>in 10,831 blocks.
>>
>>>==22307==    still reachable: 457,698,680 bytes in
>>
>>3,164 blocks.
>>
>>>==22307==         suppressed: 0 bytes in 0 blocks.
>>>==22307== Reachable blocks (those to which a
>>
>>pointer was found) are not shown.
>>
>>>==22307== To see them, rerun with:
>>
>>--show-reachable=yes
>>
>>>Killed
>>>
>>>
>>>
>>
> ------------------------------------------------------------------------
> 
>>>
>>>// Software Guide : BeginCodeSnippet
>>>#include "itkConnectedThresholdImageFilter.h"
>>>// Software Guide : EndCodeSnippet
>>>
>>>
>>>#include "itkImage.h"
>>>#include "itkCastImageFilter.h"
>>>#include "itkCurvatureFlowImageFilter.h"
>>>
>>>#include
>>
>>"itkGradientMagnitudeRecursiveGaussianImageFilter.h"
>>
>>>#include
>>
>>"itkHessianRecursiveGaussianImageFilter.h"
>>
>>>#include "itkImageAdaptor.h"
>>>#include "PixelAccessors.h"
>>>#include "itkSymmetricEigenAnalysisImageFilter.h"
>>>#include "itkCastImageFilter.h"
>>>
>>>#include "itkImageFileReader.h"
>>>#include "itkImageFileWriter.h"
>>>
>>>
>>>int main( int argc, char *argv[])
>>>{
>>>  if( argc <4 )
>>>    {
>>>    std::cerr << "Missing Parameters " <<
>>
>>std::endl;
>>
>>>    std::cerr << "Usage: " << argv[0];
>>>    std::cerr << " inputImage sigma1 sigma2
>>
>>sigma3" << std::endl;
>>
>>>	std::cerr << "with no mhd extension"<<std::endl;
>>>    return 1;
>>>    }
>>>
>>>  typedef   unsigned short  InputPixelType;
>>>
>>>  typedef   float           InternalPixelType;
>>>  const     unsigned int    Dimension = 3;
>>>
>>>  typedef itk::Image< InternalPixelType, Dimension
>>>	InternalImageType;
>>>
>>>  // We instantiate reader and writer types
>>>  typedef   itk::ImageFileReader<
>>
>>InternalImageType >	ReaderType;
>>
>>>  typedef   itk::ImageFileWriter< 
>>
>>InternalImageType  > WriterType;
>>
>>>  
>>>  typedef  
>>
>>itk::HessianRecursiveGaussianImageFilter< 
>>
>>>                            InternalImageType >   
>>
>>       HessianFilterType;
>>
>>>  typedef   HessianFilterType::OutputImageType    
>>
>>       HessianImageType;
>>
>>>  typedef   HessianImageType::PixelType           
>>
>>       HessianPixelType;
>>
>>>  typedef   itk::FixedArray< float, 3 >
>>>                                                  
>>
>>       EigenValueArrayType;
>>
>>>  typedef  itk::Image< EigenValueArrayType,
>>
>>HessianImageType::ImageDimension >
>>
>>>                                                  
>>
>>       EigenValueImageType;
>>
>>>  typedef  itk::ImageAdaptor< 
>>
>>EigenValueImageType, 
>>
>>>								EigenValueAccessor< EigenValueArrayType >
>>>	  ImageAdaptorType;
>>>  typedef  
>>
>>itk::SymmetricEigenAnalysisImageFilter< 
>>
>>>								HessianImageType, EigenValueImageType >   
>>
>> EigenAnalysisFilterType;
>>
>>>  typedef itk::CastImageFilter< ImageAdaptorType, 
>>>								InternalImageType >	  CastImageFilterType;
>>>
>>>     const std::string mhd = ".mhd";
>>>     const std::string sigmaString = ".Sigma";
>>> 
>>>
>>>     const std::string eigenValuesString1 =
>>
>>".EigVal1";
>>
>>>     const std::string eigenValuesString2 =
>>
>>".EigVal2";
>>
>>>     const std::string eigenValuesString3 =
>>
>>".EigVal3";
>>
>>>	 const std::string inputVolumeFilename = argv[1];
>>>	  std::string outputVolumeEigenValue_1_Filename =
>>
>>inputVolumeFilename + eigenValuesString1 ;
>>
>>>	  std::string outputVolumeEigenValue_2_Filename =
>>
>>inputVolumeFilename + eigenValuesString2 ;
>>
>>>	  std::string outputVolumeEigenValue_3_Filename =
>>
>>inputVolumeFilename + eigenValuesString3 ;
>>
>>>	 itk::FixedArray< float, 3 >  sigmasValuesArray;
>>>
>>> 
>>>	sigmasValuesArray[0] = atof( argv[2] );
>>>	sigmasValuesArray[1] = atof( argv[3] );
>>>	sigmasValuesArray[2] = atof( argv[4] );
>>>
>>>	 WriterType::Pointer m_InternalWriter =
>>
>>WriterType::New();
>>
>>>	  
>>>
>>>	ReaderType::Pointer m_Reader = 
>>
>>ReaderType::New();
>>
>>>	m_Reader->SetFileName(
>>
>>(inputVolumeFilename+mhd).c_str());
>>
>>>    m_Reader->Update();
>>>
>>>	HessianFilterType::Pointer  m_Hessian =
>>
>>HessianFilterType::New();
>>
>>>	m_Hessian->SetInput( m_Reader->GetOutput() );
>>>
>>>  // Compute eigen values.. order them in
>>
>>ascending order
>>
>>>  EigenAnalysisFilterType::Pointer m_EigenFilter =
>>
>>EigenAnalysisFilterType::New();
>>
>>>  m_EigenFilter->SetDimension(
>>
>>HessianPixelType::Dimension );
>>
>>>    // Create an adaptor and plug the output to
>>
>>the parametric space
>>
>>>  ImageAdaptorType::Pointer m_EigenAdaptor1 =
>>
>>ImageAdaptorType::New();
>>
>>>  EigenValueAccessor< EigenValueArrayType >
>>
>>accessor1;
>>
>>>  
>>>  ImageAdaptorType::Pointer m_EigenAdaptor2 =
>>
>>ImageAdaptorType::New();
>>
>>>  EigenValueAccessor< EigenValueArrayType >
>>
>>accessor2;
>>
>>>  ImageAdaptorType::Pointer m_EigenAdaptor3 =
>>
>>ImageAdaptorType::New();
>>
>>>  EigenValueAccessor< EigenValueArrayType >
>>
>>accessor3;
>>
>>>  // m_EigenCastfilter1 will give the eigen values
>>
>>with the maximum eigen
>>
>>>  // value. m_EigenCastfilter3 will give the eigen
>>
>>values with the 
>>
>>>  // minimum eigen value.
>>>   CastImageFilterType::Pointer m_EigenCastfilter1
>>
>>= CastImageFilterType::New();
>>
>>>  CastImageFilterType::Pointer m_EigenCastfilter2
>>
>>= CastImageFilterType::New();
>>
>>>  CastImageFilterType::Pointer m_EigenCastfilter3
>>
>>= CastImageFilterType::New();
>>
>>>
>>>
>>>
>>>  for(int i=0; i< sigmasValuesArray.Size(); i++)
>>>  {
>>>	 outputVolumeEigenValue_1_Filename =
>>
>>outputVolumeEigenValue_1_Filename  + sigmaString +
>>"." +  argv[i+2] + mhd;
>>
>>>     outputVolumeEigenValue_2_Filename =
>>
>>outputVolumeEigenValue_2_Filename  + sigmaString +
>>"." +  argv[i+2] + mhd;
>>
>>>     outputVolumeEigenValue_3_Filename =
>>
>>outputVolumeEigenValue_3_Filename  + sigmaString +
>>"." +  argv[i+2] + mhd;
>>
>>>	  std::cout<<"Computing hessian set to 
>>
>>"<<sigmasValuesArray[i]<<"..."<<std::endl;
>>
>>>		m_Hessian->SetSigma(sigmasValuesArray[i]);
>>>		m_Hessian->Update();
>>>	  std::cout<<"Computing hessian set to 
>>
>>"<<sigmasValuesArray[i]<<"...Done"<<std::endl;
>>
>>>	m_EigenFilter->SetInput( m_Hessian->GetOutput()
>>
>>);
>>
>>>	m_EigenFilter->OrderEigenValuesBy(
>>
>>EigenAnalysisFilterType::FunctorType::OrderByValue
>>);
>>
>>>	m_EigenFilter->Update();
>>>
>>>	accessor1.SetEigenIdx( 0 );
>>>	m_EigenAdaptor1->SetImage(
>>
>>m_EigenFilter->GetOutput() );
>>
>>>	m_EigenAdaptor1->SetPixelAccessor( accessor1 );
>>>
>>>	accessor2.SetEigenIdx( 1 );
>>>	m_EigenAdaptor2->SetImage(
>>
>>m_EigenFilter->GetOutput() );
>>
>>>	m_EigenAdaptor2->SetPixelAccessor( accessor2 );
>>>
>>>    accessor3.SetEigenIdx( 2 );
>>>	m_EigenAdaptor3->SetImage(
>>
>>m_EigenFilter->GetOutput() );
>>
>>>	m_EigenAdaptor3->SetPixelAccessor( accessor3 );
>>>
>>>    m_EigenCastfilter1->SetInput( m_EigenAdaptor3
>>
>>); 
>>
>>>    m_EigenCastfilter2->SetInput( m_EigenAdaptor2
>>
>>); 
>>
>>>    m_EigenCastfilter3->SetInput( m_EigenAdaptor1
>>
>>); 
>>
>>>	std::cout<<"Writing EigenValues for 
>>
>>"<<sigmasValuesArray[i]<<"..."<<std::endl;
>>
>>>	m_EigenCastfilter1->Update();
>>>	m_InternalWriter->SetInput(
>>
>>m_EigenCastfilter1->GetOutput() );
>>
>>>	m_InternalWriter->SetFileName(
>>
>>outputVolumeEigenValue_1_Filename.c_str());
>>
>>>	m_InternalWriter->Update();
>>>
>>>	m_EigenCastfilter2->Update();
>>>	m_InternalWriter->SetInput(
>>
>>m_EigenCastfilter2->GetOutput() );
>>
>>>	m_InternalWriter->SetFileName(
>>
>>outputVolumeEigenValue_2_Filename.c_str() );
>>
>>>	m_InternalWriter->Update();
>>>
>>>	m_EigenCastfilter3->Update();
>>>	m_InternalWriter->SetInput(
>>
>>m_EigenCastfilter3->GetOutput() );
>>
>>>	m_InternalWriter->SetFileName(
>>
>>outputVolumeEigenValue_3_Filename.c_str());
>>
>>>	m_InternalWriter->Update();
>>>	std::cout<<"Writing EigenValues for 
>>
>>"<<sigmasValuesArray[i]<<"...Done"<<std::endl;
>>
>>>	 outputVolumeEigenValue_1_Filename =
>>
>>inputVolumeFilename + eigenValuesString1  ;
>>
>>>     outputVolumeEigenValue_2_Filename =
>>
>>inputVolumeFilename + eigenValuesString2  ;
>>
>>>     outputVolumeEigenValue_3_Filename =
>>
>>inputVolumeFilename + eigenValuesString3  ;
>>
>>>  }
>>> 
>>> 
>>>  std::cout<<"Computing Eigenvalues... Done." <<
>>
>>std::endl;
>>
>>>  return 0;
>>>}
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
> ------------------------------------------------------------------------
> 
>>>_______________________________________________
>>>Insight-users mailing list
>>>Insight-users at itk.org
>>>http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>>
>>
>>------------------------------
>>
>>_______________________________________________
>>Insight-users mailing list
>>Insight-users at itk.org
>>http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>>End of Insight-users Digest, Vol 29, Issue 17
>>*********************************************
>>
> 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> 
> 




More information about the Insight-users mailing list