[Insight-developers] NumericTraits for long long and __int64

Bill Lorensen bill.lorensen at gmail.com
Mon Nov 23 11:26:11 EST 2009


I don't have a 64bit pc so my Borland test does not try __int64.

On Mon, Nov 23, 2009 at 11:09 AM, Bradley Lowekamp
<blowekamp at mail.nih.gov> wrote:
> Bill,
> Sorry for not being clear. It appears to be an only a Borland compiler
> issues.
> Thanks for taking a look.
> Brad
>
>
> On Nov 23, 2009, at 10:56 AM, Bill Lorensen wrote:
>
> Brad,
>
> I can't tell from your note. Is this a Borland only problem? If so, I
> can take a look.
>
> Bill
>
> On Mon, Nov 23, 2009 at 10:14 AM, Bradley Lowekamp
> <blowekamp at mail.nih.gov> wrote:
>
> Hello,
>
> I have been working on adding NumericTraits for types long long and __int64.
>
> To address the issue of size_t being type long long on win64, and to get a
>
> more portable 64-bit integer.
>
> The traits for type long long and unsigned long long seem to be working on
>
> the systems which support the tyoe. std::numeric_limits is specialized and
>
> the values seem to be set and printed ok in the NumericTraitsTest.
>
> Unfortunately __int64 does not seem to be working right. It appears that the
>
> Borland compiler is the only one where it is a fundamental type and it is
>
> convertible to double. It does not have a specialized std::numeric_limits
>
> defined. More problematic is the basic value of One and Zero set it
>
> itkNumericTraits.cxx don't seem to be functioning correctly. The output of
>
> itkNumericTraitsTest is:
>
> itk::NumericTraits<__int64>
>
> is_specialized: 0
>
> digits: 0
>
> digits10: 0
>
> is_signed: 0
>
> round_error(): 0
>
> denorm_min(): 0
>
> epsilon(): 0
>
> min(): 0
>
> max(): 0
>
> IsPositive( One )0
>
> IsNonpositive( One )1
>
> IsNegative( One )1
>
> IsNonnegative( One )0
>
> Zero: 1072693248
>
> One: 0
>
> ZeroValue(): 1072693248
>
> OneValue(): 0
>
> max(__int64): 0
>
> min(__int64): 0
>
> NonpositiveMin(): 0
>
> itk::NumericTraits<unsigned __int64>
>
> is_specialized: 0
>
> digits: 0
>
> digits10: 0
>
> is_signed: 0
>
> round_error(): 0
>
> denorm_min(): 0
>
> epsilon(): 0
>
> min(): 0
>
> max(): 0
>
> IsPositive( One )1
>
> IsNonpositive( One )0
>
> IsNegative( One )0
>
> IsNonnegative( One )1
>
> Zero: 0
>
> One: 1
>
> ZeroValue(): 0
>
> OneValue(): 1
>
> max(unsigned __int64): 0
>
> min(unsigned __int64): 0
>
> NonpositiveMin(): 0
>
> Take note of the One and Zero values it "__int64".
>
> I don't have access to the borland compiler, and don't know how to look into
>
> this issue further. I am tempted to say that we just shouldn't support the
>
> __int64 type as it'll make things simpler.
>
> 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
>
>
>
> ========================================================
>
> Bradley Lowekamp
>
> Lockheed Martin Contractor for
>
> Office of High Performance Computing and Communications
>
> National Library of Medicine
>
> blowekamp at mail.nih.gov
>
>


More information about the Insight-developers mailing list