Ignore:
Timestamp:
04/26/06 13:51:58 (18 years ago)
Author:
mar637
Message:

Fix for Ticket #33; was confusing mask and flag again. == flag svn diff ../python/scantable.py!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/MathUtils2.cpp

    r983 r1033  
    2727//#                        AUSTRALIA
    2828//#
    29 //# $Id:
     29//# $Id:$
    3030//#---------------------------------------------------------------------------
    3131
     
    4242template <class T>
    4343void mathutil::hanning(Vector<T>& out, Vector<Bool>& outmask,
    44                        const Vector<T>& in, const Vector<Bool>& mask,
    45                        Bool relaxed, Bool ignoreOther) {
    46 
     44                       const Vector<T>& in, const Vector<Bool>& mask,
     45                       Bool relaxed, Bool ignoreOther) {
    4746  Vector< Vector<T> > weights(8);
    4847  Vector<Float> vals(3);
     
    6867  out.resize(in.nelements());
    6968  outmask.resize(mask.nelements());
    70 
    7169  // make special case for first and last
    7270  /// ...here
    7371  // loop from 1..n-2
    74   uInt i = 1;
    75   VectorSTLIterator<T> outit(out);
    76   outit++;
    77   VectorSTLIterator<Bool> outmit(outmask);outmit++;
     72  out.resize(in.nelements());
     73  out[0] = in[0];out[out.nelements()-1] = in[in.nelements()-1];
     74  outmask.resize(mask.nelements());
     75  outmask = False;
    7876  uInt m;Vector<T>* w;
    79   for (VectorSTLIterator<T> it = outit;it != out.end()-1;++it) {
    80 
     77  for (uInt i=1; i < out.nelements()-1;++i) {
    8178    m = mask[i-1] + 2*mask[i] + 4*mask[i+1];
    8279    w = &(weights[m]);
    8380    if (weighted[m]) {
    84       (*it) = (*w)[0]*in[i-1] + (*w)[1]*in[i] + (*w)[2]*in[i+1];
    85       (*outmit) = True;
     81      out[i] = (*w)[0]*in[i-1] + (*w)[1]*in[i] + (*w)[2]*in[i+1];
     82      outmask[i] = True;
    8683    } else { // mask it
    87       (*outmit) = False;
     84      out[i] = in[i];//use arbitrary value
     85      outmask[i] = False;
    8886    }
    89     ++i;
    90     ++outmit;
    9187  }
    9288}
Note: See TracChangeset for help on using the changeset viewer.