From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Example Ada calling Gnu Scientific Library (GSL) Date: Thu, 30 Mar 2017 16:22:26 +0200 Organization: Aioe.org NNTP Server Message-ID: References: <2b035819-e55e-4805-9ff1-a2cec09f13e0@googlegroups.com> <1a26bdd6-998c-4ea0-aee5-a6a4dfecb741@googlegroups.com> NNTP-Posting-Host: vZYCW951TbFitc4GdEwQJg.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:46506 Date: 2017-03-30T16:22:26+02:00 List-Id: On 30/03/2017 14:39, gautier_niouzes@hotmail.com wrote: >> To me it would be far more difficult because of higher Ada code standards. >> >> I mean that when writing approximations in Ada the natural goal would be >> to have the accurate result within the interval of two adjacent machine >> numbers and also to have generic version for all real types. This is >> really hard. > > Well... why not having a minimum precision requirement ? something like this: > generic > type Real is digits <>; > > package Special_functions is > ... > end Special_functions; > > package body Special_functions is > ... > begin > ... [raise an exception here if precision is not enough] > end Special_functions; I would suggest an interval result instead of exceptions. The exact result is guaranteed in the returned interval. One problem with generics is that numerical algorithms usually require computations performed with the precision higher than of the arguments and the result. It is unclear how to do this with generics or when the actual type is the biggest machine type already. Another problem is the type range. Most mathematical functions are defined on some narrow and/or strange subsets. The accuracy of algorithms greatly depends on the range. Preconditions may help, do we have formal generic pre-/post-conditions? -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de