Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Fortran > Re: whole numbe...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 10 of 40 Topic 8533 of 8908
Post > Topic >>

Re: whole number constants

by dancerchris@[EMAIL PROTECTED] Jul 21, 2008 at 02:49 PM

On Jul 21, 2:30=A0pm, Dick Hendrickson <dick.hendrick...@[EMAIL PROTECTED]
> wrote:
> dancerch...@[EMAIL PROTECTED]
 wrote:
> > This may be a dumb question but what is "best practice" when coding
> > whole numbers in real (kind specified) formulas. =A0I am looking for
> > accuracy, consistancy and prortability reagardless of what value dp
> > has below. =A0Many of my calcs have numerical cancellations or
accuracy
> > checks as per the error function below. =A0What are the pitfalls?
>
> > for example:
>
> > integer, parameter :: dp =3D selected_real_kind(15, 307)
>
> > real(dp) =A0:: x,xnew
>
> > real(dp), parameter :: one =3D 1.0_dp
> > real(dp), parameter :: onend =3D 1_dp
> > real(dp), parameter :: onenk =3D 1.0
> > real(dp), parameter :: onei =3D 1
>
> For real constants that are exact integers and are small enough
> to fit in one word, those 4 are (almost) exactly equivalent.
> No processor in the world will possibly mess up the conversion
> of 1 or 1.0 or 1.0_dp into some other kind. =A0My advice would
> be to do what looks natural, as long as you declare the result
> kind, via the "real(dp)".
>
> The interesting exception here is the "1_dp" form. =A0This
> declares an integer of kind dp. =A0It's not guaranteed that
> this will be ****table. =A0Many processors only sup****t one kind
> of integer and the selected_real_kind refereence you used
> to get the value of "dp" isn't likely to return a valid
> integer kind.
>
> As you almost certainly know, it's different for values that
> aren't exactly representable. =A03.14 and 3.14_dp are not the
> same thing (or at least aren't ****tably the same).
>
> > ! which should I use ?
>
> > 10 error =3D one-xnew/x
> > 20 error =3D onend-xnew/x
> > 30 error =3D onenk-xnew/x
> > 40 error =3D onei-xnew/x
>
> > ! or the more ledgable ?
>
> > 50 error =3D 1-xnew/x
>
> This would be my choice, because it's clearer about
> what you are doing.
>

I like label 50 as well but then what about cancellation, for example:

real(dp), parameter :: pi =3D 3.1415926535_dp
real(dp), parameter :: two =3D 2.0_dp

real(dp) :: x,y

!  this looks good/ledgable but.....

x =3D 2*pi
y =3D x/2

!  does the following result...

if (y =3D=3D pi) then
!   aha cancellation
else
!   integer value of two assigned different values of 'extra' digits
!   (beyond precision of dp) ergo not a constant
end if

Sorry to be so nitpicky.
 




 40 Posts in Topic:
whole number constants
dancerchris@[EMAIL PROTEC  2008-07-21 14:16:11 
Re: whole number constants
Craig Powers <craig.po  2008-07-21 17:20:00 
Re: whole number constants
dancerchris@[EMAIL PROTEC  2008-07-21 14:27:13 
Re: whole number constants
nospam@[EMAIL PROTECTED]   2008-07-21 15:00:02 
Re: whole number constants
Dick Hendrickson <dick  2008-07-21 21:30:53 
Re: whole number constants
"robin" <rob  2008-07-22 05:34:44 
Re: whole number constants
Dick Hendrickson <dick  2008-07-22 15:02:50 
Re: whole number constants
"robin" <rob  2008-07-23 05:14:08 
Re: whole number constants
Dick Hendrickson <dick  2008-07-23 15:26:15 
Re: whole number constants
dancerchris@[EMAIL PROTEC  2008-07-21 14:49:41 
Re: whole number constants
glen herrmannsfeldt <g  2008-07-21 15:33:55 
Re: whole number constants
dancerchris@[EMAIL PROTEC  2008-07-21 14:52:15 
Re: whole number constants
nospam@[EMAIL PROTECTED]   2008-07-21 15:27:09 
Re: whole number constants
"robin" <rob  2008-07-22 05:34:36 
Re: whole number constants
dancerchris@[EMAIL PROTEC  2008-07-21 15:51:23 
Re: whole number constants
nospam@[EMAIL PROTECTED]   2008-07-21 16:38:16 
Re: whole number constants
Paul van Delst <Paul.v  2008-07-22 09:24:25 
Re: whole number constants
glen herrmannsfeldt <g  2008-07-22 09:11:17 
Re: whole number constants
"robin" <rob  2008-07-23 05:14:05 
Re: whole number constants
"J. F. Cornwall"  2008-07-23 19:15:05 
Re: whole number constants
glen herrmannsfeldt <g  2008-07-21 16:52:25 
Re: whole number constants
nospam@[EMAIL PROTECTED]   2008-07-21 17:41:43 
Re: whole number constants
dancerchris@[EMAIL PROTEC  2008-07-21 15:58:09 
Re: whole number constants
Paul van Delst <Paul.v  2008-07-22 09:14:32 
Re: whole number constants
dancerchris@[EMAIL PROTEC  2008-07-21 17:49:19 
Re: whole number constants
"robin" <rob  2008-07-22 05:34:37 
Re: whole number constants
nospam@[EMAIL PROTECTED]   2008-07-22 01:35:01 
Re: whole number constants
glen herrmannsfeldt <g  2008-07-22 09:19:55 
Re: whole number constants
"robin" <rob  2008-07-23 05:14:06 
Re: whole number constants
glen herrmannsfeldt <g  2008-07-22 23:39:36 
Re: whole number constants
"robin" <rob  2008-10-02 14:56:53 
Re: whole number constants
"robin" <rob  2008-10-02 14:56:52 
Re: whole number constants
glen herrmannsfeldt <g  2008-10-02 13:44:10 
Re: whole number constants
glen herrmannsfeldt <g  2008-07-24 22:06:52 
Re: whole number constants
Thomas Koenig <tkoenig  2008-07-22 08:04:03 
Re: whole number constants
lindahl@[EMAIL PROTECTED]  2008-07-22 03:07:29 
Re: whole number constants
"Les" <l.nei  2008-07-22 11:34:53 
Re: whole number constants
glen herrmannsfeldt <g  2008-07-22 09:24:39 
Re: whole number constants
Thomas Koenig <tkoenig  2008-07-24 06:17:59 
Re: whole number constants
Michael Prager <Mike.P  2008-07-24 10:21:33 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Wed Nov 19 8:47:07 CST 2008.