array cast from float[16] to float[4][4]
Spacen Jasset
spacenjasset at yahoo.co.uk
Thu Jan 10 05:16:44 PST 2008
Christopher Wright wrote:
> Spacen Jasset wrote:
>> If I have:
>>
>> float[16] a;
>>
>> can I cast it like this cast(float[4][4])a and pass it into a function
>> expecting a float[4][4] or will this not work properly. It seems there
>> is a problem doing so.
>>
>> This is for working with matricies so I should most probably write
>> some sort of class to allow row and columns access
>
> A float[4][4] is an array of four float[4]s.
> A float[4] is a (length, pointer) pair.
>
> If multidimensional arrays are added (not just arrays of arrays), you'd
> get the syntax float[4,4], most likely.
>
> If you want to keep the same memory, you can do:
> float[16] flat;
> float[4][4] square = [flat[0..4], flat[4..8], flat[8..12], flat[12..$]];
>
> This isn't very pretty, but it grows at sqrt(N) for an original array of
> N elements, so it might be doable for your stuff.
I see yes. I will develop a class I think instead of trying to quickly
do the aforementioned cast.
Thanks.
More information about the Digitalmars-d-learn
mailing list