comp.lang.ada
 help / color / mirror / Atom feed
From: robin.vowels@gmail.com
Subject: Re: getting same output as gfortran, long_float
Date: Sun, 3 May 2015 17:42:49 -0700 (PDT)
Date: 2015-05-03T17:42:49-07:00	[thread overview]
Message-ID: <e097d738-5636-40f7-87f9-742a3b6d30c7@googlegroups.com> (raw)
In-Reply-To: <mhujuf$jbs$1@speranza.aioe.org>

On Friday, May 1, 2015 at 11:12:51 AM UTC+10, Nasser M. Abbasi wrote:
> On 4/30/2015 5:08 PM, Dmitry A. Kazakov wrote:
> 
> > If GNAT allowed floating-point emulation, you could declare a custom type
> > of required precision:
> >
> >     type My_Float is digits 34; -- 112 * lg(2)
> >
> > Which is advisable anyway in order to make your program portable. Using
> > built-in types is a bad idea and poor taste in most cases.
> >
> > Since GNAT does support emulation, at least not with the standard compiler
> > switches, you need a library for doing this.
> >
> 
> I found that gfortran can do 128 bit floating point without
> the use of the compiler switch -fdefault-real-8. Which will
> map to similar thing as the above Ada construct:
> 
> -------------------
> PROGRAM foo
> IMPLICIT NONE
> REAL(KIND = 16) :: x  !-- kind=16 tells it is double quad

No it doesn't.  That form is non-standard, and won't compile with some
compilers.
You need to use SELECTED_REAL_KIND or something equivalent.

> x = 12.0D0 * 0.0001D0/(1.0D0 * (1.0D0 - 0.1D0)**4 )

And the above constants are double precision, not quadruple precision,
to the numerical result with have no more precision than double.

> PRINT *, x
> END PROGRAM
> ------------------
> 
> gfortran -Wall  foo2.f90
> ./a.out
>     1.82898948331047112025871115292829927E-0003

  parent reply	other threads:[~2015-05-04  0:42 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-30 21:17 getting same output as gfortran, long_float Nasser M. Abbasi
2015-04-30 22:08 ` Dmitry A. Kazakov
2015-04-30 22:11   ` Dmitry A. Kazakov
2015-04-30 22:37   ` Nasser M. Abbasi
2015-04-30 22:53     ` Nasser M. Abbasi
2015-05-01  7:22       ` Jacob Sparre Andersen
2015-05-01  1:12   ` Nasser M. Abbasi
2015-05-01  6:52     ` Dmitry A. Kazakov
2015-05-01  7:32       ` Nasser M. Abbasi
2015-05-01  7:45         ` Dmitry A. Kazakov
2015-05-04  0:15           ` robin.vowels
2015-05-04  7:21             ` Dmitry A. Kazakov
2015-05-04  8:53               ` robin.vowels
2015-05-04 10:18                 ` Dmitry A. Kazakov
2015-05-04 13:45                   ` robin.vowels
2015-05-04 14:47                     ` Dmitry A. Kazakov
2015-05-07  2:01                       ` robin.vowels
2015-05-01 23:24       ` Dennis Lee Bieber
2015-05-04  0:09       ` robin.vowels
2015-05-01  7:01     ` Dmitry A. Kazakov
2015-05-04  0:42     ` robin.vowels [this message]
2015-04-30 22:12 ` Jeffrey R. Carter
2015-04-30 22:27   ` Qun-Ying
2015-05-01  0:59     ` Dennis Lee Bieber
2015-04-30 22:32   ` Nasser M. Abbasi
2015-05-01  1:16     ` Jeffrey R. Carter
2015-05-01  1:40       ` Nasser M. Abbasi
2015-05-01  7:47         ` Jacob Sparre Andersen
2015-05-01 15:39         ` Waldek Hebisch
2015-05-01 17:27           ` Nasser M. Abbasi
2015-05-01 18:03             ` Nasser M. Abbasi
2015-05-04  0:51             ` robin.vowels
2015-05-04  0:47         ` robin.vowels
2015-05-01  8:21 ` Simon Wright
2015-05-01 11:55 ` Georg Bauhaus
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox