module compress  
  use helix
  implicit none
  contains
  subroutine resize( aa, eps)
    real, optional, intent (in)        :: eps
    type( filter)                      :: aa, bb
    logical, dimension( size( aa%lag)) :: keep
    if (present (eps)) then
      keep = ( abs( aa%flt) > eps)
    else
      keep = ( abs( aa%flt) > epsilon( aa%flt))
    end if 
    call allocatehelix( bb, count( keep))
    bb%flt = pack( aa%flt, keep)
    bb%lag = pack( aa%lag, keep)
    call deallocatehelix( aa)
    aa = bb
  end subroutine 
end module 
