芝麻web文件管理V1.00
编辑当前文件:/home/strato/chroot/opt/RZphp74/includes/Math/TrigOp.php
| // +----------------------------------------------------------------------+ // // $Id: TrigOp.php,v 1.1 2002/11/24 07:16:24 jmcastagnetto Exp $ // require_once 'PEAR.php'; /** * Static class implementing supplementary trigonometric functions * * Example of use: * * $cot = Math_TrigOp::cot(0.3445); * $x = Math_TrigOp::acsch(-0.231); * * Originally this class was part of NumPHP (Numeric PHP package) * * @author Jesus M. Castagnetto
* @version 1.0 * @access public * @package Math_TrigOp */ class Math_TrigOp {/*{{{*/ // supplementary trigonometric functions /** * Calculates the secant of the parameter * * @param float $x * @returns mixed A floating point on success, PEAR_Error object otherwise * @access public */ function sec($x) {/*{{{*/ $x = floatval($x); $cos = cos($x); if ($cos == 0.0) { return PEAR::raiseError('Undefined operation, cosine of parameter is zero'); } else { return 1/$cos; } }/*}}}*/ /** * Calculates the cosecant of the parameter * * @param float $x * @returns mixed A floating point on success, PEAR_Error object otherwise * @access public */ function csc($x) {/*{{{*/ $x = floatval($x); $sin = sin($x); if ($sin == 0.0) { return PEAR::raiseError('Undefined operation, sine of parameter is zero'); } else { return 1/$sin; } }/*}}}*/ /** * Calculates the cotangent of the parameter * * @param float $x * @returns mixed A floating point on success, PEAR_Error object otherwise * @access public */ function cot($x) {/*{{{*/ $x = floatval($x); $tan = tan($x); if ($tan == 0.0) { return PEAR::raiseError('Undefined operation, tangent of parameter is zero'); } else { return 1/$tan; } }/*}}}*/ // Hyperbolic functions /** * Calculates the hyperbolic secant of the parameter * * @param float $x * @returns mixed A floating point on success, PEAR_Error object otherwise * @access public */ function sech ($x) {/*{{{*/ $x = floatval($x); $cosh = cosh($x); if ($cosh == 0.0) { return PEAR::raiseError('Undefined operation, hyperbolic cosine of parameter is zero'); } else { return 1/$cosh; } }/*}}}*/ /** * Calculates the hyperbolic cosecant of the parameter * * @param float $x * @returns mixed A floating point on success, PEAR_Error object otherwise * @access public */ function csch ($x) {/*{{{*/ $x = floatval($x); $sinh = sinh($x); if ($sinh == 0.0) { return PEAR::raiseError('Undefined operation, hyperbolic sine of parameter is zero'); } else { return 1/$sinh; } }/*}}}*/ /** * Calculates the hyperbolic cotangent of the parameter * * @param float $x * @returns mixed A floating point on success, PEAR_Error object otherwise * @access public */ function coth ($x) {/*{{{*/ $x = floatval($x); $tanh = tanh($x); if ($tanh == 0.0) { return PEAR::raiseError('Undefined operation, hyperbolic tangent of parameter is zero'); } else { return 1/$tanh; } }/*}}}*/ // Inverse hyperbolic functions /** * Calculates the inverse hyperbolic secant of the parameter * * @param float $x * @returns mixed A floating point on success, PEAR_Error object otherwise * @access public */ function asech ($x) {/*{{{*/ $x = floatval($x); if ($x == 0.0) { return PEAR::raiseError('Undefined operation, parameter is zero'); } else { return log((1 + sqrt(1 - $x*$x)) / $x); } }/*}}}*/ /** * Calculates the inverse hyperbolic cosecant of the parameter * * @param float $x * @returns mixed A floating point on success, PEAR_Error object otherwise * @access public */ function acsch ($x) {/*{{{*/ $x = floatval($x); if ($x == 0.0) { return PEAR::raiseError('Undefined operation, parameter is zero'); } elseif ($x < 0) { return PEAR::raiseError('Undefined operation, parameter is negative'); } else { return log((1 + sqrt(1 + $x*$x)) / $x); } }/*}}}*/ /** * Calculates the inverse hyperbolic cotangent of the parameter * * @param float $x * @returns mixed A floating point on success, PEAR_Error object otherwise * @access public */ function acoth ($x) {/*{{{*/ $x = floatval($x); if ($x == 1.0) { return PEAR::raiseError('Undefined operation, parameter is 1.0'); } else { $rat = ($x + 1)/($x - 1); if ($rat < 0) { return PEAR::raiseError('Undefined operation, (x+1)/(x-1) is negative'); } else { return 0.5*log($rat); } } }/*}}}*/ }/*}}}*/ ?>