def decov(h, reduce='half_squared_sum'):
    "Computes the DeCov loss of ``h``\n\n    The output is a variable whose value depends on the value of\n    the option ``reduce``. If it is ``'no'``, it holds a matrix\n    whose size is same as the number of columns of ``y``.\n    If it is ``'half_squared_sum'``, it holds the half of the\n    squared Frobenius norm (i.e. squared of the L2 norm of a matrix flattened\n    to a vector) of the matrix.\n\n    Args:\n        h (:class:`~chainer.Variable` or :ref:`ndarray`):\n            Variable holding a matrix where the first dimension\n            corresponds to the batches.\n        recude (str): Reduction option. Its value must be either\n            ``'half_squared_sum'`` or ``'no'``.\n            Otherwise, :class:`ValueError` is raised.\n\n    Returns:\n        ~chainer.Variable:\n            A variable holding a scalar of the DeCov loss.\n            If ``reduce`` is ``'no'``, the output variable holds\n            2-dimensional array matrix of shape ``(N, N)`` where\n            ``N`` is the number of columns of ``y``.\n            If it is ``'half_squared_sum'``, the output variable\n            holds a scalar value.\n\n    .. note::\n\n       See https://arxiv.org/abs/1511.06068 for details.\n\n    "
    return DeCov(reduce)(h)
Computes the DeCov loss of ``h``

The output is a variable whose value depends on the value of
the option ``reduce``. If it is ``'no'``, it holds a matrix
whose size is same as the number of columns of ``y``.
If it is ``'half_squared_sum'``, it holds the half of the
squared Frobenius norm (i.e. squared of the L2 norm of a matrix flattened
to a vector) of the matrix.

Args:
    h (:class:`~chainer.Variable` or :ref:`ndarray`):
        Variable holding a matrix where the first dimension
        corresponds to the batches.
    recude (str): Reduction option. Its value must be either
        ``'half_squared_sum'`` or ``'no'``.
        Otherwise, :class:`ValueError` is raised.

Returns:
    ~chainer.Variable:
        A variable holding a scalar of the DeCov loss.
        If ``reduce`` is ``'no'``, the output variable holds
        2-dimensional array matrix of shape ``(N, N)`` where
        ``N`` is the number of columns of ``y``.
        If it is ``'half_squared_sum'``, the output variable
        holds a scalar value.

.. note::

   See https://arxiv.org/abs/1511.06068 for details.
def decov(h, reduce='half_squared_sum'):
    "Computes the DeCov loss of ``h``\n\n    The output is a variable whose value depends on the value of\n    the option ``reduce``. If it is ``'no'``, it holds a matrix\n    whose size is same as the number of columns of ``y``.\n    If it is ``'half_squared_sum'``, it holds the half of the\n    squared Frobenius norm (i.e. squared of the L2 norm of a matrix flattened\n    to a vector) of the matrix.\n\n    Args:\n        h (:class:`~chainer.Variable` or :ref:`ndarray`):\n            Variable holding a matrix where the first dimension\n            corresponds to the batches.\n        recude (str): Reduction option. Its value must be either\n            ``'half_squared_sum'`` or ``'no'``.\n            Otherwise, :class:`ValueError` is raised.\n\n    Returns:\n        ~chainer.Variable:\n            A variable holding a scalar of the DeCov loss.\n            If ``reduce`` is ``'no'``, the output variable holds\n            2-dimensional array matrix of shape ``(N, N)`` where\n            ``N`` is the number of columns of ``y``.\n            If it is ``'half_squared_sum'``, the output variable\n            holds a scalar value.\n\n    .. note::\n\n       See https://arxiv.org/abs/1511.06068 for details.\n\n    "
    return DeCov(reduce)(h)