split arrayfun.hpp into two files