cvs: pear /Math_TrigOp TrigOp.php package.xml
| From: | Jesus M. Castagnetto | Date: | Sun, 24 Nov 2002 07:16:24 +0000 |
| Subject: | cvs: pear /Math_TrigOp TrigOp.php package.xml | ||
| Groups: | php.pear.cvs | ||
| Request: | Send a blank email to pear-cvs+get-7557@lists.php.net to get a copy of this message | ||
jmcastagnetto Sun Nov 24 02:16:24 2002 EDT
Added files:
/pear/Math_TrigOp TrigOp.php package.xml
Log:
Initial import of supplementary Trigonometric operations
Index: pear/Math_TrigOp/TrigOp.php
+++ pear/Math_TrigOp/TrigOp.php
<?php
//
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2002 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt.
|
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Jesus M. Castagnetto <jmcastagnetto@php.net> |
// +----------------------------------------------------------------------+
//
// $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 <jmcastagnetto@php.net>
* @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);
}
}
}/*}}}*/
}/*}}}*/
?>
Index: pear/Math_TrigOp/package.xml
+++ pear/Math_TrigOp/package.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE package SYSTEM "../package.dtd">
<!-- do not use the "Type" attribute here, that one is only for
generated package.xml files -->
<package>
<name>Math_TrigOp</name>
<summary>Supplementary trigonometric functions</summary>
<description>
Static class with methods that implement supplementary trigonometric,
inverse trigonometric, hyperbolic, and inverse hyperbolic functions.
</description>
<maintainers>
<maintainer>
<user>jmcastagnetto</user>
<name>Jesus M. Castagnetto</name>
<email>jmcastagnetto@php.net</email>
<role>lead</role>
</maintainer>
</maintainers>
<release>
<license>PHP</license>
<version>1.0</version>
<date>2002-11-19</date>
<notes>
Initial release under PEAR.
</notes>
<state>stable</state>
<filelist>
<dir name="/" baseinstalldir="Math">
<file role="php">TrigOp.php</file>
</dir>
</filelist>
</release>
<changelog>
<release>
</release>
</changelog>
</package>