def func_mirror_for_odd_weight(x, *myargs):
    """Rotate function by 180 degrees (or mirror about x and y-axis in turn).

    Given a composite function f(x) * w(x) where w(x) is an odd weighting
    function, return g(x) such that g(x)*w(x) gives same value as f(-x)*w(-x).
    This can be useful in transforming a fourier sine integral
    with negative integration limits to one with positive limits.

    Parameters
    ----------
    x : float
        Value to evaluate function at.
    func : function/callable
        Function to mirror. Always the first argument after `x`.
    myargs : optional
        Any remaining arguments will be passed to `func`.

    Returns
    -------
    out : ndarray
        Value of -func(-x, *myargs)

    See Also
    --------
    func_mirror_for_even_weight : mirror for an even wieght function

    Examples
    --------
    >>> def f(x, a):
    ...  return a*x+1
    >>> func_mirror_for_odd_weight(5, f, 2)
    9
    >>> def ff(x, a):
    ...  return a*x + 1.j
    >>> func_mirror_for_odd_weight(3, real_func, ff, 4)
    12.0

    """
    y = -x
    func = myargs[0]
    myargs = (y,) + myargs[1:]
    return -func(*myargs)
