1b60cb13fSStefan Farfeleder /*- 2*5e53a4f9SPedro F. Giffuni * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3*5e53a4f9SPedro F. Giffuni * 4b60cb13fSStefan Farfeleder * Copyright (c) 2004 Stefan Farfeleder 5b60cb13fSStefan Farfeleder * All rights reserved. 6b60cb13fSStefan Farfeleder * 7b60cb13fSStefan Farfeleder * Redistribution and use in source and binary forms, with or without 8b60cb13fSStefan Farfeleder * modification, are permitted provided that the following conditions 9b60cb13fSStefan Farfeleder * are met: 10b60cb13fSStefan Farfeleder * 1. Redistributions of source code must retain the above copyright 11b60cb13fSStefan Farfeleder * notice, this list of conditions and the following disclaimer. 12b60cb13fSStefan Farfeleder * 2. Redistributions in binary form must reproduce the above copyright 13b60cb13fSStefan Farfeleder * notice, this list of conditions and the following disclaimer in the 14b60cb13fSStefan Farfeleder * documentation and/or other materials provided with the distribution. 15b60cb13fSStefan Farfeleder * 16b60cb13fSStefan Farfeleder * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17b60cb13fSStefan Farfeleder * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18b60cb13fSStefan Farfeleder * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19b60cb13fSStefan Farfeleder * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE 20b60cb13fSStefan Farfeleder * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21b60cb13fSStefan Farfeleder * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22b60cb13fSStefan Farfeleder * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23b60cb13fSStefan Farfeleder * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24b60cb13fSStefan Farfeleder * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25b60cb13fSStefan Farfeleder * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26b60cb13fSStefan Farfeleder * SUCH DAMAGE. 27b60cb13fSStefan Farfeleder * 28b60cb13fSStefan Farfeleder * $FreeBSD$ 29b60cb13fSStefan Farfeleder */ 30b60cb13fSStefan Farfeleder 31b60cb13fSStefan Farfeleder #include <math.h> 32b60cb13fSStefan Farfeleder 33b60cb13fSStefan Farfeleder #include "fpmath.h" 34b60cb13fSStefan Farfeleder 35b60cb13fSStefan Farfeleder long double 36b60cb13fSStefan Farfeleder copysignl(long double x, long double y) 37b60cb13fSStefan Farfeleder { 38b60cb13fSStefan Farfeleder union IEEEl2bits ux, uy; 39b60cb13fSStefan Farfeleder 40b60cb13fSStefan Farfeleder ux.e = x; 41b60cb13fSStefan Farfeleder uy.e = y; 42b60cb13fSStefan Farfeleder ux.bits.sign = uy.bits.sign; 43b60cb13fSStefan Farfeleder return (ux.e); 44b60cb13fSStefan Farfeleder } 45