attempt to make filters faster by avoiding complex * complex multiplication. Didnt really help
generalized some types
generalized some types