Sorry, I didn't see this before posting my own reply because I was reading 
in threaded view and Vass's decision to start a new thread caused this 
mail to show up elsewhere.

-Brad


On Wed, 20 May 2015, Vassily Litvinov wrote:

> [starting a new thread]
>
> Damian,
>
> We have numBits(type t) and numBytes(type t) that are defined on certain
> primitive types. We do not provide this functionality for the other
> types, I believe. See the online library documentation:
>
> http://chapel.cray.com/docs/latest/modules/standard/Types.html
>
> specifically:
>
> http://chapel.cray.com/docs/latest/modules/standard/Types.html#Types.numBits
>
> P.S. The thing that ".type" expression produces is a Chapel type. Chapel
> types, like 'param' variables/expressions, can be manipulated at compile
> time. The Types modules has a few functions on expressions besides what
> I mention above.
>
> Vass
>
>
>
> -------- Original Message --------
> Subject: Equivalent of sizeof() for a variable of expression
> Date: Thu, 21 May 2015 09:37:08 +1000
> From: Damian McGuckin <[email protected]>
> To: <[email protected]>
>
>
> Dear Thinkers,
>
> Already in Chapel, there is an attribute of any variable or expression
> called '.type', such that, given definitions like
>
>       var vr : real(64);
>       var vi : int(32);
>
> then
>
>       vr.type
>
> or even
>
>       (vi * 55.5).type
>
> returns a concept/value/thing which is
>
>       real
>
> and so on. This allows for such usage as
>
>       var t : vr.type;
>
> which defines 't' as being a real(64) variable.
>
> Is there an equivalent to C's sizeof for types and expressions?
>
> For example, and remembering that '.size' has already been commandeered
> for use with range and arrays to return the number of components or items
> in either a range or an array, I want to do something like
>
>       // find out what the size of a variable is
>
>       if vr.bits == 64 then
>       {
>               writeln("64 bit quantity");
>       }
>       else
>       {
>               writeln("not 64-bits at all");
>       }
>
> or more precisely (yes Michael, took your advice)
>
>       var r : real(64);
>       var i : int(r.bits);
>       var rsize : int(32) = r.bits >> 3; // divide by 8
>
>       ....
>
>       memcpy(i, r, rsize);
>
> where memcpy is defined as a C function.
>
> I apologize if bits is meaningful in other contents. And it also begs the
> other question of whether one's brain, when in 'mode=Chapel', should think
> in terms of bits or bytes.
>
> Personally I prefer sizeof/typeof/bitsof but I can run with whatever.
>
> Now this time as I keep getting reminded, I did go fishing in
>
>       README.*
>
> in
>       doc/{release,}/technotes
>
> and could not find anything relevant. It might be there but I could not
> find it. If it is, then I need to go and start shopping for glasses. I
> also could not find this in the primary documentation.
>
> Also, as an aside, what other attributes of types beside '.type' are
> predefined.
>
> Regards - Damian
>
> P.S. And while we are at it, on a philsophical point,
>
> Is something as fundamental to a variable as say the absolute value of a
> number 'x', floating or integral, or even say its sign, given by
>
> a)    attribute of the number, i.e. given by
>
>               x.abs
>
> b)    method applied to that number, i.e. given by
>
>               x.abs()
>
> c)    some function call
>
>               abs(x : T) : T
>
> Not looking for a religious war here. Just some feedback.
>
> Pacific Engineering Systems International, 277-279 Broadway, Glebe NSW 2037
> Ph:+61-2-8571-0847 .. Fx:+61-2-9692-9623 | unsolicited email not wanted here
> Views & opinions here are mine and not those of any past or present employer
>
>
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> Chapel-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/chapel-users
>

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Chapel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-users

Reply via email to