signum function added