Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Compile function and AppendTo for lists (vrs. 8.0.4)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg124689] Re: Compile function and AppendTo for lists (vrs. 8.0.4)
  • From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
  • Date: Tue, 31 Jan 2012 05:39:59 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Hi Fred,

some short notes:


> appendBag2a = Compile[{{k, _Integer, 0}}, Module[{p = Bag[Most[{0}]]},
>      Do[StuffBag[p, Bag[{1, i}]], {i, 1, k}];
>      Table[BagPart[BagPart[p, i], All], {i, 1, k}]]];
> 
> That works fine and fast, 

But look that your type p is clearly wrong. p is a bag of bags of
Integer and has to be initialized with 

Internal`Bag[Most[{Internal`Bag[{1}]}]]

We can only guess about the reasons why it works anyway. If it is
implemented with pointers, than it seems the integers of your p-Bag are
used to store the pointers.

> The problem seems to be the initialization of the 
> locale variable p. I tried compilation with the definitions p=Bag[], 
> p=Bag[{}], p=Bag[Rest[{0}]], p=Bag[Rest[{{0,0}}]], or e.g. 

Now you know how.

Cheers
Patrick




  • Prev by Date: Re: GramSchmidt function
  • Next by Date: Re: Executing function on Mathematica 8
  • Previous by thread: Re: Compile function and AppendTo for lists (vrs. 8.0.4)
  • Next by thread: Re: Compile function and AppendTo for lists (vrs. 8.0.4)