Building on linux I get:

src/engine/enginefilteriir.cpp:93: error: expected ‘,’ or ‘...’ before ‘FILTER’

referring to: 

EngineFilterIIR::EngineFilterIIR(const double *pCoefs, int iOrder FILTER)



Owen


On Wed, 2011-01-05 at 23:49 -0600, Gabriel M. Beddingfield wrote:
> Below was originally sent 12/5 -- but because I flubbed up 
> my ML subscription... it didn't make it to you...
> ==========================================================
> 
> Hello,
> 
> Attached is a patch against 1.8.1 to add version of the 
> EngineFilterIIR that is SSE3 optimized.  Yes, it needs more 
> comments... but here's what I have for now.
> 
> Brief explanation of the implementation:
> 
> 0. I used assert() a lot... so to get it to compile right
>    use: -O3 -DNDEBUG -msse -msse2 -msse3 -ffast-math
>         -funroll-loops
> 
> 1. Left and Right channels are calculated in parallel.
>    (This is mostly the point of doing the SSE3 opts.)
> 
> 2. The buffer of the previous N samples is converted
>    to a ring buffer in order to avoid the data shuffling.
> 
>      x[0] = x[1]; x[1] = x[2]; // ... etc ...
> 
> 3. To replace the shuffling, the X and Y coefficients are
>    put in an NxN matrix that has them pre-shuffled.  The
>    two matrices are put together side-by-side so that we
>    can span rows by simple pointer increments.  E.g. for
>    the 4th order:
> 
>    CXY = [ [ X coeffs ] [ Y coeffs ] ]
> 
>    CXY = [ [ 1.0,  c1,  c2,  c1, /**/ c3, c4, c5, c6 ],
>            [  c1,  c2,  c1, 1.0, /**/ c4, c5, c6, c3 ],
>            [  c2,  c1, 1.0,  c1, /**/ c5, c6, c3, c4 ],
>            [  c1, 1.0,  c1,  c2, /**/ c6, c3, c4, c5 ] ];
> 
> 4. Several things are converted to local variables in
>    the process() method so that the compiler to avoid
>    cache/memory slow-downs.
> 
> 5. The implementation is templated... which should reduce
>    maintenance and still allow for hard-coded N values
>    to be optimized.
> 
> Thanks,
> Gabriel
> ------------------------------------------------------------------------------
> Learn how Oracle Real Application Clusters (RAC) One Node allows customers
> to consolidate database storage, standardize their database environment, and, 
> should the need arise, upgrade to a full multi-node Oracle RAC database 
> without downtime or disruption
> http://p.sf.net/sfu/oracle-sfdevnl
> _______________________________________________ Mixxx-devel mailing list 
> Mixxx-devel@lists.sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel



------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to