Small Vectors Proposal
Benji Smith
dlanguage at benjismith.net
Tue Jan 30 14:10:33 PST 2007
Mikola Lysenko wrote:
> After thinking about it some more, I believe this approach would
> probably work just as well. Another possibility is to simply restrict
> vectors to floating point types only:
>
> ie, float2, float3, float4, double2, double3, double4, real2, real3, real4.
>
> This makes the number of new types only 9 instead of 57. The
> disadvantage is that it is no longer easy to use the MMX extensions
> which are specially tailored for integer vectors. Overall, I guess I'd
> be happy with either situation.
Three and four dimensional vectors are nice for physics and whatnot, but
for those of us in the machine-learning field, it's commonplace to
construct vectors (and to calculate distances, dot-products, and cosines
between those vectors) using many many more dimensions.
Right now, I'm working on a statistical prediction algorithm that uses
sparse 300,000-dimensional feature vectors. There's no reason to limit
SSE optimizations to small-dimensionality vectors.
I don't think having special datatypes is the right solution. I think it
should be possible to annotate any array with a flag that says "I'll be
doing vector math here. Watch out for possible optimizations".
Or just having a library of vector functions would probably be
sufficient to solve the problem in the majority of cases.
--benji
More information about the Digitalmars-d
mailing list