On Wed, Jun 1, 2011 at 9:06 AM, Jed Brown <jed at 59a2.org> wrote: > On Wed, Jun 1, 2011 at 14:51, Matthew Knepley <knepley at gmail.com> wrote: > >> >>> Isn't it casting to PowInt which is int? >> >> >> Not exactly. If I define >> >> #define PetscPowScalar(a, b) std::pow(a, (int) b) >> > > Barry was not suggesting this. > > >> >> then this call >> >> PetscPowScalar(2.0, 0.333) >> >> will not work correctly. If I do not, then >> >> PetscPowScalar(2.0, 3) >> >> will fail when using --with-64-bit-indices. The only solution I saw was >> for the user >> to do the cast explicitly >> > > We're not saying PetscPowScalar(base,(int)i) is necessarily bad, but we > think > > #if defined(PETSC_USE_64BIT_INDICES) > typedef int PowInt; > #else > typedef PetscInt PowInt; > #endif > > is a pretty ugly way to spell > > typedef int PowInt; /* explanation why */ > > or even just calling PetscPowScalar(base,(int)i) instead of > PetscPowScalar(base,(PowInt)i). >
I am fine with those. Why are we having a discussion then? Just change it. Matt -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20110601/3d7f2c35/attachment.html>
