editing ifunc so that nin and nout are not required, adding some new tests