[Insight-developers] Proposal: Changing NumericTraits of vector types to use macros

Bradley Lowekamp blowekamp at mail.nih.gov
Mon Nov 30 09:55:59 EST 2009


Do we need the explicit keyword here?

http://public.kitware.com/cgi-bin/viewcvs.cgi/Code/Common/itkFixedArray.h?root=Insight&r1=1.45&r2=1.46

On Nov 30, 2009, at 4:38 AM, Gaëtan Lehmann wrote:

> 
> Brad, Luis,
> 
> I have already commited some code on that subject, while working on two long standing bugs in wrapitk - the missing NumericTraits while building with dimension 4, and the empty NumericTraits< FixedArray< * > > classes.
> 
> I've modified some macros from RGBAPixel numeric traits to refactor the numeric traits of FixedArray, Vector, CovariantVector and SymmetricSecondRankTensor.
> 
> Regards,
> 
> Gaëtan
> 
> 
> 
> Le 28 nov. 09 à 18:09, Luis Ibanez a écrit :
> 
>> Hi Brad,
>> 
>> Yes, it is a good idea to propagate the use of Macros for other NumericTraits.
>> 
>> We took a historical detour in the development of the NumericTraits, and
>> only come to use the convenience macros with the most recently added
>> classes. It will be great to back-port this practice to the initial vector-like
>> classes.
>> 
>> As you pointed out, using the macros will result in more consistent and
>> maintainable code.
>> 
>> 
>>   Luis
>> 
>> 
>> ---------------------------------------------------------------------------
>> On Fri, Nov 27, 2009 at 11:16 AM, Bradley Lowekamp
>> <blowekamp at mail.nih.gov> wrote:
>>> Hello,
>>> The next logical step after adding itk::NumericTraits<long long> is to also
>>> add it to all the vector types that also have numeric traits
>>> defined. Unfortunately I am lazy, and manually going through all these
>>> files, and close to 5,000 lines of code, to perform copy, paste, edit seems
>>> like too much work.
>>> Looking at itkNumericTratisVariableLengthVectorPixel.h:
>>> http://public.kitware.com/cgi-bin/viewcvs.cgi/Code/Common/itkNumericTraitsVariableLengthVectorPixel.h?revision=1.7&root=Insight&view=markup
>>> This seems to have an elegant macro which both does total template
>>> specialization and partial specialization when needed. It seems like much
>>> less work to implement similar macros in each file. One important change I'd
>>> make to similar macros for other types is to make the "ElementTypes" (which
>>> are needed for bcc) private so as to not add additional traits that have not
>>> been defined as part of the interface.
>>> As a "good" side effect, this will help maintainability and correct errors
>>> that currently exist in the traits. For example  the many numeric traits for
>>> for char vector types still have the char vector type as the PrintType,
>>> which is wrong because it'll print ASCII value instead of numbers. There are
>>> also missing trait types in many vector types as well. For example the
>>> CovariantVector traits are missing the FloatType.
>>> 
>>> Brad
>>> 
>>> ========================================================
>>> 
>>> Bradley Lowekamp
>>> 
>>> Lockheed Martin Contractor for
>>> 
>>> Office of High Performance Computing and Communications
>>> 
>>> National Library of Medicine
>>> 
>>> blowekamp at mail.nih.gov
>>> 
>>> 
>>> _______________________________________________
>>> Powered by www.kitware.com
>>> 
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>> 
>>> Kitware offers ITK Training Courses, for more information visit:
>>> http://kitware.com/products/protraining.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
>>> 
>>> 
>> _______________________________________________
>> Powered by www.kitware.com
>> 
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>> 
>> Kitware offers ITK Training Courses, for more information visit:
>> http://kitware.com/products/protraining.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
> 
> -- 
> Gaëtan Lehmann
> Biologie du Développement et de la Reproduction
> INRA de Jouy-en-Josas (France)
> tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
> http://voxel.jouy.inra.fr  http://www.itk.org
> http://www.mandriva.org  http://www.bepo.fr
> 

========================================================
Bradley Lowekamp  
Lockheed Martin Contractor for
Office of High Performance Computing and Communications
National Library of Medicine 
blowekamp at mail.nih.gov


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20091130/19c63e73/attachment.htm>


More information about the Insight-developers mailing list