---
name: "copysignf"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/copysign"
---

# copysignf(3)

copy sign

Part of [copysign(3)](/copysign/3.md).

## NAME

**copysign**, **copysignf**, **copysignl** – copy sign

## LIBRARY

Math Library (libm, -lm)

## SYNOPSIS

**#include \<math.h\>**

*double*\

**copysign**(*double x*, *double y*);

*float*\

**copysignf**(*float x*, *float y*);

*long* *double*\

**copysignl**(*long double x*, *long double y*);

## DESCRIPTION

The **copysign**(), **copysignf**() and **copysignl**() functions return *x* with its sign changed to *y*'s.

## SEE ALSO

[fabs(3)](/fabs/3.md), [fdim(3)](/fdim/3.md), [ieee(3)](/ieee/3.md), [math(3)](/math/3.md)

## STANDARDS

The **copysign**(), **copysignf**(), and **copysignl**() routines conform to ISO/IEC 9899:1999 (“ISO C99”). They implement the Copysign function recommended by IEEE Std 754-1985.

## HISTORY

The **copysign**(), **copysignf**(), and **copysignl**() functions appeared in 4.3BSD, FreeBSD 2.0, and FreeBSD 5.3, respectively.
