# tensorplay.functional.copysign Source: https://www.tensorplay.cn/docs/generated/tensorplay.functional.copysign.html ```python tensorplay.functional.copysign(input, other, *, out=None) → Tensor ``` Create a new floating-point tensor with the magnitude of input and the sign of other, elementwise. $$\begin{split}\text{out}_{i} = \begin{cases} -|\text{input}_{i}| & \text{if } \text{other}_{i} \leq -0.0 \\ |\text{input}_{i}| & \text{if } \text{other}_{i} \geq 0.0 \\ \end{cases}\end{split}$$ Supports [broadcasting to a common shape](/docs/notes/broadcasting.html#broadcasting-semantics), and integer and float inputs. Parameters: - input ([Tensor](/docs/generated/tensorplay.Tensor.html#tensorplay.Tensor)) – magnitudes. - other ([Tensor](/docs/generated/tensorplay.Tensor.html#tensorplay.Tensor) or Number) – contains value(s) whose signbit(s) are applied to the magnitudes in input. Keyword Arguments: out ([Tensor](/docs/generated/tensorplay.Tensor.html#tensorplay.Tensor), optional) – the output tensor. Example: ``` >>> a = tensorplay.randn(5) >>> a tensor([-1.2557, -0.0026, -0.5387, 0.4740, -0.9244]) >>> tensorplay.copysign(a, 1) tensor([1.2557, 0.0026, 0.5387, 0.4740, 0.9244]) >>> a = tensorplay.randn(4, 4) >>> a tensor([[ 0.7079, 0.2778, -1.0249, 0.5719], [-0.0059, -0.2600, -0.4475, -1.3948], [ 0.3667, -0.9567, -2.5757, -0.1751], [ 0.2046, -0.0742, 0.2998, -0.1054]]) >>> b = tensorplay.randn(4) tensor([ 0.2373, 0.3120, 0.3190, -1.1128]) >>> tensorplay.copysign(a, b) tensor([[ 0.7079, 0.2778, 1.0249, -0.5719], [ 0.0059, 0.2600, 0.4475, -1.3948], [ 0.3667, 0.9567, 2.5757, -0.1751], [ 0.2046, 0.0742, 0.2998, -0.1054]]) >>> a = tensorplay.tensor([1.]) >>> b = tensorplay.tensor([-0.]) >>> tensorplay.copysign(a, b) tensor([-1.]) ``` > **Note** > > copysign handles signed zeros. If the other argument has a negative zero (-0), the corresponding output value will be negative.