/* * Copyright (C) 1999, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2011, * 2012, 2013 Free Software Foundation, Inc. * * This file is part of GNU libmatheval * * GNU libmatheval is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * GNU libmatheval is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU libmatheval. If not, see * . */ #include "xmath.h" double math_cot(double x) { /* * Calculate cotangent value. */ return 1 / tan(x); } double math_sec(double x) { /* * Calculate secant value. */ return 1 / cos(x); } double math_csc(double x) { /* * Calculate cosecant value. */ return 1 / sin(x); } double math_acot(double x) { /* * Calculate inverse cotangent value. */ return atan(1 / x); } double math_asec(double x) { /* * Calculate inverse secant value. */ return acos(1 / x); } double math_acsc(double x) { /* * Calculate inverse cosecant value. */ return asin(1 / x); } double math_coth(double x) { /* * Calculate hyperbolic cotangent value. */ return 1 / tanh(x); } double math_sech(double x) { /* * Calculate hyperbolic secant value. */ return 1 / cosh(x); } double math_csch(double x) { /* * Calculate hyperbolic cosecant value. */ return 1 / sinh(x); } double math_asinh(double x) { /* * Calculate inverse hyperbolic sine value. */ return log(x + sqrt(x * x + 1)); } double math_acosh(double x) { /* * Calculate inverse hyperbolic cosine value. */ return log(x + sqrt(x * x - 1)); } double math_atanh(double x) { /* * Calculate inverse hyperbolic tangent value. */ return 0.5 * log((1 + x) / (1 - x)); } double math_acoth(double x) { /* * Calculate inverse hyperbolic cotangent value. */ return 0.5 * log((x + 1) / (x - 1)); } double math_asech(double x) { /* * Calculate inverse hyperbolic secant value. */ return math_acosh(1 / x); } double math_acsch(double x) { /* * Calculate inverse hyperbolic cosecant value. */ return math_asinh(1 / x); } double math_step(double x) { /* * Calculate step function value. */ return MATH_ISNAN(x) ? x : ((x < 0) ? 0 : 1); } double math_delta(double x) { /* * Calculate delta function value. */ return MATH_ISNAN(x) ? x : ((x == 0) ? MATH_INFINITY : 0); } double math_nandelta(double x) { /* * Calculate modified delta function value. */ return MATH_ISNAN(x) ? x : ((x == 0) ? MATH_NAN : 0); }

AltStyle によって変換されたページ (->オリジナル) /