Boost logo

Boost :

Subject: Re: [boost] [qvm] Doesn qvm contain any sse/avx etc optimizations?
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2016-10-12 15:33:19


On Wed, Oct 12, 2016 at 4:45 AM, Viktor Sehr <viktor.sehr_at_[hidden]> wrote:

> If not, is it planned for utilizing it?
>
> /Viktor
>

QVM makes no assumptions about the way the data is organized in matrix and
vector objects, indeed it can work with any user-defined quat, vec or mat
type, and with things called view proxies. For example, rotx_mat (
http://boostorg.github.io/qvm/rotx_mat_scalar_.html) makes a scalar appear
as a rotation matrix.

The optimizations you're asking about can't be implemented in this general
case.

It is, of course, possible to introduce a matrix type that defines more
efficient operations across the board. But then that type would require a
matching vector type as well. And if we define all types and all
operations, we've made a vector math library that shouldn't to be coupled
with (or part of) QVM. In fact, QVM has been designed to work seamlessly
with such libraries.

That said, QVM enables a different approach to optimizations. An
application can define its own matrix/vector types, use QVM to supply all
operations, and then (possibly at a later time, informed by profiling)
define and optimize only a select critical subset of operations that work
with those types.

Emil


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk