#$=head1 NAME #$ #$compress - compress a helix filter #$ #$=head1 SYNOPSIS #$ #$C #$ #$=head1 PARAMETERS #$ #$=over 4 #$ #$=item aa - type(filter) #$ #$ helix filter #$ #$=back #$ #$=head1 DESCRIPTION #$ #$Compress a helix filter, remove all filter coefs < epsilon #$ #$=head1 LIBRARY #$ #$B #$ #$=cut module compress { use helix contains subroutine resize( aa) { type( filter) :: aa, bb logical, dimension( size( aa%lag)) :: keep keep = ( abs( aa%flt) > epsilon( aa%flt)) call allocatehelix( bb, count( keep)) bb%flt = pack( aa%flt, keep) bb%lag = pack( aa%lag, keep) call deallocatehelix( aa); aa = bb } }