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: Fri, 31 Mar 2017 20:50:00 +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: BYuA7L7MRjuLLjcoGHOBxw.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 10.0; 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:46515 Date: 2017-03-31T20:50:00+02:00 List-Id: On 2017-03-31 20:31, G.B. wrote: > On 30.03.17 16:22, Dmitry A. Kazakov wrote: >> Preconditions may help, do we have formal generic pre-/post-conditions? > > As a hint to a user of generic package, it seems > possible to announce aspects of FP Types required: > > generic > type Fractional is digits <>; > package R is > type T is new Fractional > with > Dynamic_Predicate => (Fractional'Digits >= 8 > and T in -4.0 .. +4.0); > function Algo (X : T) return T; > end R; This is of course different from specifying it in the formal part. The only reason for generics ever exist is static substitution and static checks. With dynamic checks in place a class-based model is as efficient as generic expansion. BTW, there are two kinds of constraints: 1. That certain values are included 2. That certain values are excluded with uncounted variations of, e.g. that the range includes zero and is symmetric around zero etc. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de