def diff(s, by) -> 'mult': return s.q.diff(by) / fmath.sqrt(fmath.value(1) + fmath.square(s.q))
def diff(s, by) -> 'divide': return s.q.diff(by) / (fmath.value(1) + fmath.square(s.q))
def diff(s, by) -> 'divide': return -s.q.diff(by) / fmath.sqrt(fmath.value(1) - fmath.square(s.q))
def diff(s, by) -> 'mult': return s.q.diff(by) / (fmath.square(fmath.cos(s.q)))