comp.lang.ada
 help / color / mirror / Atom feed
From: "Steve" <nospam_steved94@comcast.net>
Subject: Re: Help needed for ada package
Date: Fri, 29 Jul 2005 18:44:07 -0700
Date: 2005-07-29T18:44:07-07:00	[thread overview]
Message-ID: <t_KdnbsuvsxUR3ffRVn-qg@comcast.com> (raw)
In-Reply-To: uaaje1d0l4tp1kjs18mkrgfmbkcir308bt@4ax.com

"Dennis Lee Bieber" <wlfraed@ix.netcom.com> wrote in message 
news:uaaje1d0l4tp1kjs18mkrgfmbkcir308bt@4ax.com...
> On Thu, 28 Jul 2005 20:33:32 +0200, Ludovic Brenta
> <ludovic.brenta@tiscali.be> declaimed the following in comp.lang.ada:
>
>
>>
>> Since the type ID is discrete, why not just use that as the array index 
>> type?
>>
> That's the approach I took, though some things aren't quite as
> clean (I used explicit ranges... should have tried compiling with just
> the type).
>> Of course, the above solution is outrageously inefficient, both
>> memory- and CPU-wise.  Optimisations are left as an exercise to the
>> reader.
>
> Tell me about it -- for the 1000000 population, I estimated over
> 100GB needed for the association matrix alone, even packing 1-bit
> booleans. I then did version 2, using "Steve's" suggestion of encoding
> the group identifier into the population data itself... associate() went
> from two lines to a page, but half the declarations disappear.
>
> I will not be posting that version as it is too close to being
> directly usable (I didn't write a test suite, so couldn't run it, but it
> did compile cleanly).
>

Perhaps I'm a little naive, but I really don't understand why you need to 
keep any more than:

  type Persson is
    record
      Citizen_Id : ID;
      Badness    : Rating;
      Group_Id  : Natural;
    end record;

  type Population is array( 1 .. 1_000_000) of Person;

  Society     : Population;
  Next_In    : Positive; -- Add new elements here
  Next_Out : Positive; -- Retrieve next from current group here
  Baddest    : Positive; -- Index to baddest entry
  Current_Group_Id : Natural;

You do wind up scanning the list to do just about anything, but speed was 
not a requirement.

Steve
(The Duck)


[snip]
>
>
> -- 
> > ============================================================== <
> >   wlfraed@ix.netcom.com  | Wulfraed  Dennis Lee Bieber  KD6MOG <
> >      wulfraed@dm.net     |       Bestiaria Support Staff       <
> > ============================================================== <
> >           Home Page: <http://www.dm.net/~wulfraed/>            <
> >        Overflow Page: <http://wlfraed.home.netcom.com/>        < 





  parent reply	other threads:[~2005-07-30  1:44 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1122305318.728942.304120@f14g2000cwb.googlegroups.com>
2005-07-25 17:45 ` Help needed for ada package Marc A. Criley
2005-07-25 17:47 ` Simon Clubley
2005-07-25 18:21   ` Georg Bauhaus
2005-07-25 18:46 ` Frank J. Lhota
2005-07-25 19:26 ` tmoran
2005-07-25 22:12 ` Ludovic Brenta
2005-07-25 23:33 ` Jeffrey Carter
2005-07-26 17:29   ` Pascal Obry
2005-07-26 19:03     ` Ed Falis
2005-07-26 19:05       ` Pascal Obry
2005-07-26 22:20     ` Jeffrey Carter
2005-07-27  9:07       ` Georg Bauhaus
2005-08-01  5:37     ` Dave Thompson
2005-08-01 12:37       ` Adrien Plisson
2005-07-26  3:17 ` Steve
     [not found]   ` <1122475184.849564.159870@g44g2000cwa.googlegroups.com>
2005-07-27 17:13     ` Martin Krischik
2005-07-27 18:03     ` Simon Wright
2005-07-28  0:58       ` Jeffrey Carter
2005-07-28  1:53         ` tmoran
2005-07-28 16:21           ` Jeffrey Carter
2005-07-28  2:27     ` Steve
     [not found]       ` <1122547648.069514.63520@g14g2000cwa.googlegroups.com>
2005-07-28 18:33         ` Ludovic Brenta
2005-07-28 19:51           ` tmoran
     [not found]           ` <uaaje1d0l4tp1kjs18mkrgfmbkcir308bt@4ax.com>
2005-07-29  8:37             ` tmoran
2005-07-30  1:44             ` Steve [this message]
2005-07-29  1:57         ` Steve
     [not found]           ` <1122980923.842598.181310@g49g2000cwa.googlegroups.com>
2005-08-02 11:37             ` Adrien Plisson
2005-08-02 12:05             ` Georg Bauhaus
     [not found]               ` <1122986293.760710.320180@g44g2000cwa.googlegroups.com>
2005-08-02 13:19                 ` Adrien Plisson
2005-08-02 14:26                 ` Georg Bauhaus
     [not found]                   ` <1122995870.689997.66000@g44g2000cwa.googlegroups.com>
2005-08-02 15:38                     ` Georg Bauhaus
     [not found]                       ` <1122997736.667017.104140@o13g2000cwo.googlegroups.com>
2005-08-02 16:37                         ` Georg Bauhaus
2005-08-02 16:52             ` Jeffrey Carter
     [not found]             ` <o04ve11odsjs756915g5eonn0g1guopih2@4ax.com>
2005-08-02 23:21               ` tmoran
     [not found]               ` <1123069124.562944.246730@o13g2000cwo.googlegroups.com>
2005-08-03 12:08                 ` Georg Bauhaus
2005-08-03 16:13                   ` Jeffrey Carter
2005-08-03 17:57                     ` Georg Bauhaus
2005-08-03 16:48                   ` Martin Dowie
     [not found]                   ` <1123084562.854161.299550@g44g2000cwa.googlegroups.com>
2005-08-03 17:58                     ` Georg Bauhaus
     [not found]                 ` <n0o1f1lqsbi23bt7b2li6oc85r7pgfn9d5@4ax.com>
     [not found]                   ` <1123090742.323338.311230@f14g2000cwb.googlegroups.com>
2005-08-03 18:07                     ` Georg Bauhaus
2005-08-03 20:18                     ` Simon Wright
2005-08-04  0:59                       ` Jeffrey Carter
2005-08-04  5:42                         ` Simon Wright
     [not found]   ` <1123173235.773051.23360@z14g2000cwz.googlegroups.com>
2005-08-04 16:50     ` Simon Clubley
     [not found]       ` <1123174747.107994.317580@o13g2000cwo.googlegroups.com>
2005-08-04 16:27         ` Georg Bauhaus
2005-08-04 20:14         ` Simon Wright
     [not found] <1122320036.858648.242630@f14g2000cwb.googlegroups.com>
2005-07-26  0:47 ` tmoran
     [not found] <1122372224.124606.271380@f14g2000cwb.googlegroups.com>
2005-07-26 17:31 ` tmoran
replies disabled

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