[gmx-developers] 64bit integers
Sander Pronk
pronk at cbr.su.se
Sun Sep 6 15:57:04 CEST 2009
Oops.. that only works in hexadecimal.
Sander
On Sep 6, 2009, at 15:55 , Sander Pronk wrote:
> you're right; if it's only found in smalloc.c, you could try, as a
> real hack:
>
> size_t sz;
>
> #if (SIZEOF_SIZE_T > SIZEOF_INT)
> printf("%u%u", sz >> (SIZEOF_INT*8), (unsigned int)sz);
> #else
> printf("%u",sz);
> #endif
>
> with some additional code to leave out any leading zeroes if that's
> important to you.
>
> Sander
>
>
> On Sep 6, 2009, at 12:00 , Roland Schulz wrote:
>
>> well under windows long is only 32 bit. Also size_t is usually
>> unsigned.
>>
>> should we cast it to gmx_step_t (or some type derived from it) and
>> then print it?
>>
>> On Sun, Sep 6, 2009 at 5:01 AM, Sander Pronk <pronk at cbr.su.se> wrote:
>> I think that would be %zd according to C99. It's probably safer to
>> use %ld, because it's C89 compliant (not all compilers support
>> C99), and it happens to coincide with the width of size_t on all
>> platforms I know of.
>>
>> Sander
>>
>>
>> On Sep 6, 2009, at 06:33 , Roland Schulz wrote:
>>
>>> Hi,
>>>
>>> in smalloc %u is used for size_t. This is not correct. Is it OK to
>>> change this to the correct %z? I'm asking, because I don't know
>>> whether it is supported by all compilers.
>>>
>>> Roland
>>>
>>> On Mon, Jul 13, 2009 at 4:36 AM, Berk Hess <hess at cbr.su.se> wrote:
>>> Hi,
>>>
>>> long long int might not exist on some architectures.
>>> To be really on the safe side, you should define a new type using
>>> the same checks as for gmx_step_t, or simply define a new type using
>>> gmx_step_t.
>>>
>>> Berk
>>>
>>> Berk Hess wrote:
>>> > Hi,
>>> >
>>> > There is a gmx_step_t defined in include/types/simple.h which is
>>> 64 bit
>>> > when possible.
>>> > But for this case I would simply use long long int for the moment,
>>> > which will be 64 bit in nearly all cases.
>>> >
>>> > Berk
>>> >
>>> > Erik Lindahl wrote:
>>> >
>>> >> Hi,
>>> >>
>>> >> Gromacs 4.1 won't require 64 bit support, but Gromacs 5 will
>>> (we will
>>> >> have gmx_int64_t, etc.).
>>> >>
>>> >>
>>> >> On Jul 10, 2009, at 6:42 PM, Roland Schulz wrote:
>>> >>
>>> >>
>>> >>> Hi,
>>> >>>
>>> >>> which integer type should be used for integers that should be
>>> 64bit
>>> >>> if available.
>>> >>>
>>> >>> My current problem: ndim*ndim*4 in gmx_covar overflows for
>>> more than
>>> >>> 7723 atoms.
>>> >>>
>>> >>> One could use:
>>> >>> - long (is only 32bit on windows)
>>> >>> - long long (is always 64bit, not defined in C89)
>>> >>> - size_t (is the size of pointer)
>>> >>> - same typedef
>>> >>>
>>> >>> - One shouldn't use long, since it wouldn't solve it on windows.
>>> >>> - Using "long long" is slow (in this case unimportant) and
>>> will give
>>> >>> warning when passed to snew or memcpy.
>>> >>> - size_t doesn't seem very clean and will give warnings when
>>> passed
>>> >>> to printf (unless first upcasting to "unsigned long long" and
>>> then
>>> >>> using %llu).
>>> >>>
>>> >>> Is C89 support required?
>>> >>> Is it OK to use size_t for those integers?
>>> >>>
>>> >>> What is the best option?
>>> >>>
>>> >> I would use size_t since that is ISO C at least. Check
>>> >> include/types/simple.h - Berk has added some formats for printing
>>> >> steps, that we should also augment to include windows, and
>>> change so
>>> >> they aren't so step-specific.
>>> >>
>>> >>
>>> >>
>>> >>> BTW: Is it OK to change save_calloc and save_realloc to size_t
>>> >>> (currently "unsigned")?
>>> >>>
>>> >> Yes, that would agree better with ISO C.
>>> >>
>>> >> Cheers,
>>> >>
>>> >> Erik
>>> >>
>>> >> _______________________________________________
>>> >> gmx-developers mailing list
>>> >> gmx-developers at gromacs.org
>>> >> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>> >> Please don't post (un)subscribe requests to the list. Use thewww
>>> >> interface or send it to gmx-developers-request at gromacs.org.
>>> >>
>>> >
>>> > _______________________________________________
>>> > gmx-developers mailing list
>>> > gmx-developers at gromacs.org
>>> > http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>> > Please don't post (un)subscribe requests to the list. Use the
>>> > www interface or send it to gmx-developers-request at gromacs.org.
>>> >
>>>
>>> _______________________________________________
>>> gmx-developers mailing list
>>> gmx-developers at gromacs.org
>>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>> Please don't post (un)subscribe requests to the list. Use the
>>> www interface or send it to gmx-developers-request at gromacs.org.
>>>
>>>
>>>
>>> --
>>> ORNL/UT Center for Molecular Biophysics cmb.ornl.gov
>>> 865-241-1537, ORNL PO BOX 2008 MS6309
>>> _______________________________________________
>>> gmx-developers mailing list
>>> gmx-developers at gromacs.org
>>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>> Please don't post (un)subscribe requests to the list. Use the
>>> www interface or send it to gmx-developers-request at gromacs.org.
>>
>>
>> _______________________________________________
>> gmx-developers mailing list
>> gmx-developers at gromacs.org
>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>> Please don't post (un)subscribe requests to the list. Use the
>> www interface or send it to gmx-developers-request at gromacs.org.
>>
>>
>>
>> --
>> ORNL/UT Center for Molecular Biophysics cmb.ornl.gov
>> 865-241-1537, ORNL PO BOX 2008 MS6309
>> _______________________________________________
>> gmx-developers mailing list
>> gmx-developers at gromacs.org
>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>> Please don't post (un)subscribe requests to the list. Use the
>> www interface or send it to gmx-developers-request at gromacs.org.
>
> _______________________________________________
> gmx-developers mailing list
> gmx-developers at gromacs.org
> http://lists.gromacs.org/mailman/listinfo/gmx-developers
> Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-developers-request at gromacs.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20090906/e265d0a1/attachment.html>
More information about the gromacs.org_gmx-developers
mailing list