#!/usr/bin/env python3 # Take a value and a direction and output a smoothstepped value # Usage: smoothstep [-d digits] [+-] value import sys from math import floor, ceil args = sys.argv[1:] if len(args) < 2 or ('+' not in args and '-' not in args): print("Usage: smoothstep [-d digits] [+-] value") exit(1) digits = 2 if '-d' in args: i = args.index('-d') digits = int(args[i+1]) del args[i:i+2] cur = float(args[1].strip('%')) if args[0] == '+': if cur >= 10: print(int(5*ceil(cur/5 + 1) if cur % 5 else cur + 5)) elif cur >= 1 or digits <= 0: print(int(ceil(cur + 1) if cur % 1 else cur + 1)) else: print(.1*ceil(cur/.1 + 1) if cur % .1 else cur + .1) else: if cur > 10: print(int(5*floor(cur/5 - 1) if cur % 5 else cur - 5)) elif cur > 1 or digits <= 0: print(int(ceil(cur - 1) if cur % 1 else cur - 1)) else: print(.1*ceil(cur/.1 - 1) if cur % .1 else cur - .1)