SSE, AVX, and beyond

Mattias Holm mattias.holm at openorbit.REMOVE.THIS.org
Thu Aug 20 06:45:37 PDT 2009


Robert Fraser wrote:
> Eljay wrote:
> Is there ANY use case where you'd need a 256-bit integer instead of a 
> BigInteger? Even 128 is a bit dodgy. UUIDs and what not are identifiers, 
> not numbers, so have no problem being stored in a struct wrapping a 
> ubyte[].

Fixed point arithmetic!!!

Seriously, 256 bit fixed point numbers (roughly an integer, but with 
renormalization after multiplication and division) can represent the 
position of anything in the visible universe at a smaller scale than the 
plank length (which physically does not make any sense). I would find 
that pretty nice to work with, actually, it would be a lot nicer than 
doubles.

> I agree compilers should support 256+ bit _data_... But doing so with an 
> entirely new numeric data-type is probably a bad idea. Special treatment 
> for certain constructs and library support is a much better idea.

I don't get this, I am doing research in compiler optimizations, and I 
can say that library supported value types are just painful to reason 
about since they are not part of the language, they end up as being not 
properly formalized, and the compiler will lose optimization opportunities.

It makes more sense to declare some growth opportunity for the future, 
and then add new types (with new keywords) in future language revisions 
(which should be enabled by flags, this does complicate the parser a 
little bit, but it does not have to overly complicated in a handwritten 
parser.


/ Mattias



More information about the Digitalmars-d mailing list