Post DCT normalization is not correct with 3D outputs
Created by: laurentes
As noticed by Elie, there is a difference in the outputs values when we select resp. 2D and 3D outputs when the option post DCT normalization is selected for the DCT extraction:
>>> import bob, numpy, numpy.random
>>> a = numpy.random.randn(10,10)
>>> o = bob.ip.DCTFeatures(3,3,1,1,5,True,False,False)
>>> (o(a, False).flatten() == o(a, True).flatten()).all()
True
>>> o = bob.ip.DCTFeatures(3,3,1,1,5,True,True,False)
>>> (o(a, False).flatten() == o(a, True).flatten()).all()
False
The blitz reduction seems to be wrong for the 3D case in https://github.com/idiap/bob/blob/1.2/src/ip/cxx/DCTFeatures.cc (last ten lines of code).