diff -ru itpp-4.2/itpp/signal/fastica.cpp itpp-4.2.new//itpp/signal/fastica.cpp --- itpp-4.2/itpp/signal/fastica.cpp 2011-06-07 17:47:32.261000884 +0200 +++ itpp-4.2.new//itpp/signal/fastica.cpp 2011-06-07 17:31:25.757000915 +0200 @@ -147,6 +147,9 @@ whitenv(mixedSigC, E, diag(D), whitesig, whiteningMatrix, dewhiteningMatrix); + Dim = whitesig.rows(); + + if (numOfIC > Dim) numOfIC = Dim; ivec NcFirst = to_ivec(zeros(numOfIC)); vec NcVp = D; @@ -161,10 +164,6 @@ bool result = true; if (PCAonly == false) { - Dim = whitesig.rows(); - - if (numOfIC > Dim) numOfIC = Dim; - result = fpica(whitesig, whiteningMatrix, dewhiteningMatrix, approach, numOfIC, g, finetune, a1, a2, mu, stabilization, epsilon, maxNumIterations, maxFineTune, initState, guess, sampleSize, A, W); icasig = W * mixedSig; Nur in itpp-4.2/itpp/signal: fastica.cpp.orig. Nur in itpp-4.2/itpp/signal: fastica.h.orig.