From: "Nasser M. Abbasi" <nma@12000.org>
Subject: Re: getting same output as gfortran, long_float
Date: Thu, 30 Apr 2015 20:12:47 -0500
Date: 2015-04-30T20:12:47-05:00 [thread overview]
Message-ID: <mhujuf$jbs$1@speranza.aioe.org> (raw)
In-Reply-To: 1kxou0nloqg9c$.1x0itzgdrlosm$.dlg@40tude.net
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
x = 12.0D0 * 0.0001D0/(1.0D0 * (1.0D0 - 0.1D0)**4 )
PRINT *, x
END PROGRAM
------------------
gfortran -Wall foo2.f90
./a.out
1.82898948331047112025871115292829927E-0003
So, I wonder what it would take to integrate this
library to gnat to allow one to do
type My_Float is digits 34;
and just have it work as is. I assume this requires
support and some changes at the compiler level
(system.max_digits has to change for example)? Now it
is set at 18 and the above gives compiler error.
--Nasser
next prev parent reply other threads:[~2015-05-01 1:12 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 [this message]
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
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