/*
 * $Id: math.txt,v 1.1.1.1 2001/12/21 10:49:27 ronpinkas Exp $
 */


/*
 * Las siguientes partes son derechos adquiridos de sus autores individuales.
 * www - http://www.harbour-project.org
 *
 * Copyright 2001 Ricardo Ramrez R. <rramirez@crownlitometal.com>
 * Documentacin en Espaol de: ABS(), EXP(), LOG(), INT(), MAX()
 *                              MIN(), SQRT(), ROUND()
 *
 *      Basado en ../en/math.txt
 *
 * Vea doc/license.txt por los trminos de la licencia.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ABS()
 *  $CATEGORY$
 *      Matemticas
 *  $ONELINER$
 *      Devuelve el valor absoluto de un nmero.
 *  $SYNTAX$
 *      ABS(<nNumbero>) --> <nAbsNumbero>
 *  $ARGUMENTS$
 *      <nNumbero> Cualquier nmero.
 *  $RETURNS$
 *      <nAbsNumbero> El valor absoluto de un nmero.
 *  $DESCRIPTION$
 *      Esta funcin entrega el valor absoluto de un valor o una expresin
 *      <nNumbero>.
 *  $EXAMPLES$
 *      Function Main()
 *
 *         Local nNumbero  := 50
 *         Local nNumbero1 := 27
 *
 *         qout( nNumero - nNumero1 )
 *         qout( nNumero1 - nNumero )
 *         qout( ABS(nNumero - nNumero1 ) )
 *         qout( ABSnNumero1 - nNumero ) )
 *         qout( ABS( -1 * 345 ) )
 *      Return Nil
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Esta es una funcin compatible con CA-Clipper.
 *  $PLATFORMS$
 *      Todas
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $SEEALSO$
 *      EXP()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      EXP()
 *  $CATEGORY$
 *      Matemticas
 *  $ONELINER$
 *      Calcula el valor de e elevado a la potencia indicada.
 *  $SYNTAX$
 *      EXP( <nNumero> ) --> <nValor>
 *  $ARGUMENTS$
 *      <nNumero> Cualquier nmero real.
 *  $RETURNS$
 *      <nValor>  El anti-logaritmo de <nNumero>.
 *  $DESCRIPTION$
 *      Esta function devuelve el valor de e elevado a la potencia indicada en
 *      <nNumero>.  Es la contraria de LOG().
 *  $EXAMPLES$
 *      ? EXP(45)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Esta es una funcin compatible con CA-Clipper.
 *  $PLATFORMS$
 *      Todas
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $SEEALSO$
 *      LOG()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      INT()
 *  $CATEGORY$
 *      Matemticas
 *  $ONELINER$
 *      Devuelve la parte entera de un valor nmerico.
 *  $SYNTAX$
 *      INT( <nNumero> ) --> <nIntNumbero>
 *  $ARGUMENTS$
 *      <nNumero> Cualquier valor nmerico.
 *  $RETURNS$
 *      <nIntNumbero> La parte entera de un valor nmerico.
 *  $DESCRIPTION$
 *      Esta funcin convierte una expresin numrica en entero.  Todos
 *      lo dgitos decimales son truncados.  Esta funcin no redondea el
 *      valor ni por encima ni por debajo; simplemente trunca el valor
 *      desde el punto decimal.
 *  $EXAMPLES$
 *      SET Decimal to 5
 *      ? INT(632512.62541)
 *      ? INT(845414111.91440)
 *      </fixed>
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Esta es una funcin compatible con CA-Clipper.
 *  $PLATFORMS$
 *      Todas
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $SEEALSO$
 *      ROUND(),STRZERO()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      LOG()
 *  $CATEGORY$
 *      Matemticas
 *  $ONELINER$
 *      Devuelve el logaritmo natural de un nmero.
 *  $SYNTAX$
 *      LOG( <nNumero> ) --> <nLog>
 *  $ARGUMENTS$
 *      <nNumero> Cualquier expresin numrica.
 *  $RETURNS$
 *      <nExponente> El logaritmo natural de <nNumero>.
 *  $DESCRIPTION$
 *      Esta funcin devuelve el logaritmo natural del nmero <nNumero>.
 *      Si <nNumero> es 0 o menor que 0, se produce un desvordamiento numrico,
 *      el cual es mostrado en la pantalla como una serie de asteriscos.
 *      Esta funcin es la contraria de EXP().
 *  $EXAMPLES$
 *      ? LOG(632512)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Esta es una funcin compatible con CA-Clipper.
 *  $PLATFORMS$
 *      Todas
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $SEEALSO$
 *      EXP()
 *  $END$
 */


/*  $DOC$
 *  $FUNCNAME$
 *      MAX()
 *  $CATEGORY$
 *      Matemticas
 *  $ONELINER$
 *      Devuelve el mayor de dos nmeros o fechas.
 *  $SYNTAX$
 *      MAX(<xValor>,<xValor1>)  --> <xMax>
 *  $ARGUMENTS$
 *      <xValor> Cualquier fecha o valor nmerico.
 *
 *      <xValor1> Cualquier fecha o valor nmerico (con el mismo tipo de <xValor>).
 *  $RETURNS$
 *      <xMax> El nmero mayor (o la fecha mayor).
 *  $DESCRIPTION$
 *      Esta funcin devuelve el mayor de las dos expresiones pasadas. Si
 *      <xValor> y <xValor1> son del tipo nmerico, el valor devuelto
 *      por esta funcin ser tambien numrico y ser el mayor de los numeros
 *      pasados a dicha funcin. Si <xValor> y <xValor1> son del tipo fecha
 *      el valor devuelto ser tambien de tipo fecha.  Este ser la mayor de
 *      ellas.
 *  $EXAMPLES$
 *      ? MAX(214514214,6251242142)
 *      ? MAX(CTOD('11/11/2000'),CTOD('21/06/2014')
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Esta es una funcin compatible con CA-Clipper.
 *  $PLATFORMS$
 *      Todas
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $SEEALSO$
 *      Min()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      MIN()
 *  $CATEGORY$
 *      Matemticas
 *  $ONELINER$
 *      Determina el menor de dos nmeros o fechas.
 *  $SYNTAX$
 *      MIN(<xValor>,<xValor1>)  --> <xMin>
 *  $ARGUMENTS$
 *      <xValor>  Cualquier fecha o valor numrico.
 *
 *      <xValor1> Cualquier fecha o valor numrico (con el mismo tipo de <xValor>).
 *  $RETURNS$
 *      <xMin>  El valor o fecha menor.
 *  $DESCRIPTION$
 *      Esta funcin devuelve el menor valor del par de expresiones recibidas.
 *      <xValor> y <xValor1> deben ser del mismo tipo. Si es numrico, el menor valor
 *      es devuelto.  Si es fecha, la fecha menor es devuelta.
 *  $EXAMPLES$
 *      ? MIN(214514214,6251242142)
 *      ? MIN(CTOD('11/11/2000'),CTOD('21/06/2014')
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Esta es una funcin compatible con CA-Clipper.
 *  $PLATFORMS$
 *      Todas
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $SEEALSO$
 *      MAX()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      MOD()
 *  $CATEGORY$
 *      Matemticas
 *  $ONELINER$
 *      Devuelve el residuo de dos nmeros.
 *  $SYNTAX$
 *      MOD( <nNumero>,<nNumero1>) -->  <nResiduo>
 *  $ARGUMENTS$
 *      <nNumero>  Numerador en una expresin de divisin.
 *
 *      <nNumero1> Denominador en una expresin de divisin.
 *  $RETURNS$
 *      <nResiduo>  El residuo despues de la operacin de divisin.
 *  $DESCRIPTION$
 *      Esta funcin devuleve el residuo de un nmero dividido entre otro.
 *  $EXAMPLES$
 *      ? MOD(12,8.521)
 *      ? Mod(12,0)
 *      ? Mod(62412.5142,4522114.12014)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Esta es una funcin compatible con CA-Clipper.
 *  $PLATFORMS$
 *      Todas
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $SEEALSO$
 *      %
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SQRT()
 *  $CATEGORY$
 *      Matemticas
 *  $ONELINER$
 *      Calcula la raz cuadrada de un nmero.
 *  $SYNTAX$
 *      SQRT( <nNumero> ) --> <nSqrt>
 *  $ARGUMENTS$
 *      <nNumero> Cualquier valor numrico.
 *  $RETURNS$
 *      <nSqrt>   La raz cuadrada de <nNumero>.
 *  $DESCRIPTION$
 *      Esta funcin devuelve la raz cuadrada de <nNumero>.  La presicin de esta
 *      evaluacin esta basada nicamente en la asignacin del comando SET DECIMAL TO
 *      Cualquier nmero negativo pasado como <nNumero> siempre retornar 0.
 *  $EXAMPLES$
 *      SET Decimal to 5
 *      ? SQRT(632512.62541)
 *      ? SQRT(845414111.91440)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Esta es una funcin compatible con CA-Clipper.
 *  $PLATFORMS$
 *      Todas
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $SEEALSO$
 *      ROUND()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ROUND()
 *  $CATEGORY$
 *      Matemticas
 *  $ONELINER$
 *      Redondea una expresin numrica.
 *  $SYNTAX$
 *      ROUND( <nNumero>, <nLugares> ) --> <nResultado>
 *  $ARGUMENTS$
 *      <nNumero>    Cualquier valor numrico.
 *
 *      <nLugares>   El nmbero de lugares decimales a redondear.
 *  $RETURNS$
 *      <nResultado> El nmero redondeado.
 *  $DESCRIPTION$
 *      Esta funcin redondea el valor de <nNumero> a la cantidad de lugares
 *      decimales especificados en <nLugares>. Si el valor de <nLugares> es un nmero
 *      negativo, la funcin intentar redondear <nNumero> en el nmero completo.
 *      Nmeros de 5 a 9 sern redondeados hacia arriba, el resto redondeados abajo.
 *  $EXAMPLES$
 *      ? ROUND(632512.62541,5)
 *      ? ROUND(845414111.91440,3)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Esta es una funcin compatible con CA-Clipper.
 *  $PLATFORMS$
 *      Todas
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $SEEALSO$
 *      INT(),STR(),VAL(),SET FIXED
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_getMathError()
 *  $CATEGORY$
 *      Matemticas API
 *  $ONELINER$
 *      Obtener el ltimo error de la librera matemtica.
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include <hbmath.h>
 *      hb_getMathError (void) --> int iMathError
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compatibilidad no es aplicable a las llamadas a las APIs.
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $PLATFORMS$
 *      Todas
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_resetMathError()
 *  $CATEGORY$
 *      Matemticas API
 *  $ONELINER$
 *      Inicializa el error matemtico.
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include <hbmath.h>
 *      hb_resetMathError (void) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compatibilidad no es aplicable a las llamadas a las APIs.
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $PLATFORMS$
 *      Todas
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_isMathHandler()
 *  $CATEGORY$
 *      Matemticas API
 *  $ONELINER$
 *      Verifica si el manejador de errores de Harbour esta disponible.
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include <hbmath.h>
 *      hb_isMathHandler (void) --> int iIsMathHandler
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compatibilidad no es aplicable a las llamadas a las APIs.
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $PLATFORMS$
 *      Todas
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_installMathHandler()
 *  $CATEGORY$
 *      Matemticas API
 *  $ONELINER$
 *      Agrega un manejador de errores definido por el usuario la
 *      cadena de manejadores de error.
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include <hbmath.h>
 *      hb_installMathHandler (HB_MATH_HANDLERPROC handlerproc) --> HB_MATH_HANDLERHANDLE handle
 *  $ARGUMENTS$
 *      handlerproc   manejador para el manejador de errores
 *  $RETURNS$
 *      handle        indentificador del manejador en la cadena de identificadores.
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compatibilidad no es aplicable a las llamadas a las APIs.
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $PLATFORMS$
 *      Todas
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_deinstallMathHandler()
 *  $CATEGORY$
 *      Matemticas API
 *  $ONELINER$
 *      Quita un manejador de errores definido por el usuario de la
 *      cadena de manejadores de error.
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include <hbmath.h>
 *      hb_deinstallMathHandler (HB_MATH_HANDLERHANDLE handle) --> int iSuccess
 *  $ARGUMENTS$
 *      handle        indetificador devuelto por hb_installMathHandler()
 *  $RETURNS$
 *      iSuccess      Como termino el proceso.
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compatibilidad no es aplicable a las llamadas a las APIs.
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $PLATFORMS$
 *      Todas
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_setMathHandlerStatus()
 *  $CATEGORY$
 *      Matemticas API
 *  $ONELINER$
 *      Pone el estado del manejador de errores definido por el usuario en la
 *      cadena de manejadores de error.
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include <hbmath.h>
 *      hb_setMathHandlerStatus (HB_MATH_HANDLERHANDLE handle, int status) --> int iSuccess
 *  $ARGUMENTS$
 *      handle        indetificador devuelto por hb_installMathHandler()
 *      status        nuevo valor del estado, puede ser uno de los siguientes:
 *                       HB_MATH_HANDLER_STATUS_INACTIVE
 *                         --> indetificador presente pero no activo
 *                       HB_MATH_HANDLER_STATUS_ACTIVE
 *                         --> indetificador presente y activo
 *  $RETURNS$
 *      iSuccess      Como termino el proceso.
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compatibilidad no es aplicable a las llamadas a las APIs.
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $PLATFORMS$
 *      Todas
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_getMathHandlerStatus()
 *  $CATEGORY$
 *      Matemticas API
 *  $ONELINER$
 *      Lee el estado del manejador de errores definido por el usuario en la
 *      cadena de manejadores de error.
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include <hbmath.h>
 *      hb_getMathHandlerStatus (HB_MATH_HANDLERHANDLE handle) --> int iStatus
 *  $ARGUMENTS$
 *      handle        indetificador devuelto por hb_installMathHandler()
 *  $RETURNS$
 *      iStatus       Estado del manejador de errores.
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compatibilidad no es aplicable a las llamadas a las APIs.
 *  $FILES$
 *      Se encuentra en la librera rtl
 *  $PLATFORMS$
 *      Todas
 *  $SEEALSO$
 *
 *  $END$
 */