1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006 |
- %
- % $Id$
- % This file is part of the FPC documentation.
- % Copyright (C) 2000 by Florian Klaempfl
- %
- % The FPC documentation is free text; you can redistribute it and/or
- % modify it under the terms of the GNU Library General Public License as
- % published by the Free Software Foundation; either version 2 of the
- % License, or (at your option) any later version.
- %
- % The FPC Documentation 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
- % Library General Public License for more details.
- %
- % You should have received a copy of the GNU Library General Public
- % License along with the FPC documentation; see the file COPYING.LIB. If not,
- % write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- % Boston, MA 02111-1307, USA.
- %
- \chapter{The MATH unit}
- \FPCexampledir{mathex}
- This chapter describes the \file{math} unit. The \var{math} unit
- was initially written by Florian Kl\"ampfl. It provides mathematical
- functions which aren't covered by the system unit.
- This chapter starts out with a definition of all types and constants
- that are defined, after which an overview is presented of the available
- functions, grouped by category, and the last part contains a
- complete explanation of each function.
- The following things must be taken into account when using this unit:
- \begin{enumerate}
- \item This unit is compiled in Object Pascal mode so all
- \var{integers} are 32 bit.
- \item Some overloaded functions exist for data arrays of integers and
- floats. When using the address operator (\var{@}) to pass an array of
- data to such a function, make sure the address is typecasted to the
- right type, or turn on the 'typed address operator' feature. failing to
- do so, will cause the compiler not be able to decide which function you
- want to call.
- \end{enumerate}
- \section{Constants and types}
- The following types are defined in the \file{math} unit:
- \begin{verbatim}
- Type
- Float = Extended;
- PFloat = ^FLoat
- \end{verbatim}
- All calculations are done with the Float type. This allows to
- recompile the unit with a different float type to obtain a
- desired precision. The pointer type is used in functions that accept
- an array of values of arbitrary length.
- \begin{verbatim}
- Type
- TPaymentTime = (PTEndOfPeriod,PTStartOfPeriod);
- \end{verbatim}
- \var{TPaymentTime} is used in the financial calculations.
- \begin{verbatim}
- Type
- EInvalidArgument = Class(EMathError);
- \end{verbatim}
- The \var{EInvalidArgument} exception is used to report invalid arguments.
- \section{Function list by category}
- What follows is a listing of the available functions, grouped by category.
- For each function there is a reference to the page where you can find the
- function.
- \subsection{Min/max determination}
- Functions to determine the minimum or maximum of numbers:
- \begin{funclist}
- \funcref{max}{Maximum of 2 values}
- \funcref{maxIntValue}{Maximum of an array of integer values}
- \funcref{maxvalue}{Maximum of an array of values}
- \funcref{min}{Minimum of 2 values}
- \funcref{minIntValue}{Minimum of an array of integer values}
- \funcref{minvalue}{Minimum of an array of values}
- \end{funclist}
- \subsection{Angle conversion}
- \begin{funclist}
- \funcref{cycletorad}{convert cycles to radians}
- \funcref{degtograd}{convert degrees to grads}
- \funcref{degtorad}{convert degrees to radians}
- \funcref{gradtodeg}{convert grads to degrees}
- \funcref{gradtorad}{convert grads to radians}
- \funcref{radtocycle}{convert radians to cycles}
- \funcref{radtodeg}{convert radians to degrees}
- \funcref{radtograd}{convert radians to grads}
- \end{funclist}
- \subsection{Trigoniometric functions}
- \begin{funclist}
- \funcref{arccos}{calculate reverse cosine}
- \funcref{arcsin}{calculate reverse sine}
- \funcref{arctan2}{calculate reverse tangent}
- \funcref{cotan}{calculate cotangent}
- \procref{sincos}{calculate sine and cosine}
- \funcref{tan}{calculate tangent}
- \end{funclist}
- \subsection{Hyperbolic functions}
- \begin{funclist}
- \funcref{arcosh}{caculate reverse hyperbolic cosine}
- \funcref{arsinh}{caculate reverse hyperbolic sine}
- \funcref{artanh}{caculate reverse hyperbolic tangent}
- \funcref{cosh}{calculate hyperbolic cosine}
- \funcref{sinh}{calculate hyperbolic sine}
- \funcref{tanh}{calculate hyperbolic tangent}
- \end{funclist}
- \subsection{Exponential and logarithmic functions}
- \begin{funclist}
- \funcref{intpower}{Raise float to integer power}
- \funcref{ldexp}{Calculate $2^p x$}
- \funcref{lnxp1}{calculate \var{log(x+1)}}
- \funcref{log10}{calculate 10-base log}
- \funcref{log2}{calculate 2-base log}
- \funcref{logn}{calculate N-base log}
- \funcref{power}{raise float to arbitrary power}
- \end{funclist}
- \subsection{Number converting}
- \begin{funclist}
- \funcref{ceil}{Round to infinity}
- \funcref{floor}{Round to minus infinity}
- \procref{frexp}{Return mantissa and exponent}
- \end{funclist}
- \subsection{Statistical functions}
- \begin{funclist}
- \funcref{mean}{Mean of values}
- \procref{meanandstddev}{Mean and standard deviation of values}
- \procref{momentskewkurtosis}{Moments, skew and kurtosis}
- \funcref{popnstddev}{Population standarddeviation }
- \funcref{popnvariance}{Population variance}
- \funcref{randg}{Gaussian distributed randum value}
- \funcref{stddev}{Standard deviation}
- \funcref{sum}{Sum of values}
- \funcref{sumofsquares}{Sum of squared values}
- \procref{sumsandsquares}{Sum of values and squared values}
- \funcref{totalvariance}{Total variance of values}
- \funcref{variance}{variance of values}
- \end{funclist}
- \subsection{Geometrical functions}
- \begin{funclist}
- \funcref{hypot}{Hypotenuse of triangle}
- \funcref{norm}{Euclidian norm}
- \end{funclist}
- \section{Functions and Procedures}
- \begin{function}{arccos}
- \Declaration
- Function arccos(x : float) : float;
- \Description
- \var{Arccos} returns the inverse cosine of its argument \var{x}. The
- argument \var{x} should lie between -1 and 1 (borders included).
- \Errors
- If the argument \var{x} is not in the allowed range, an
- \var{EInvalidArgument} exception is raised.
- \SeeAlso
- \seef{arcsin}, \seef{arcosh}, \seef{arsinh}, \seef{artanh}
- \end{function}
- \FPCexample{ex1}
- \begin{function}{arcosh}
- \Declaration
- Function arcosh(x : float) : float;
- Function arccosh(x : float) : float;
- \Description
- \var{Arcosh} returns the inverse hyperbolic cosine of its argument \var{x}.
- The argument \var{x} should be larger than 1.
- The \var{arccosh} variant of this function is supplied for \delphi
- compatibility.
- \Errors
- If the argument \var{x} is not in the allowed range, an \var{EInvalidArgument}
- exception is raised.
- \SeeAlso
- \seef{cosh}, \seef{sinh}, \seef{arcsin}, \seef{arsinh}, \seef{artanh},
- \seef{tanh}
- \end{function}
- \FPCexample{ex3}
- \begin{function}{arcsin}
- \Declaration
- Function arcsin(x : float) : float;
- \Description
- \var{Arcsin} returns the inverse sine of its argument \var{x}. The
- argument \var{x} should lie between -1 and 1.
- \Errors
- If the argument \var{x} is not in the allowed range, an \var{EInvalidArgument}
- exception is raised.
- \SeeAlso
- \seef{arccos}, \seef{arcosh}, \seef{arsinh}, \seef{artanh}
- \end{function}
- \FPCexample{ex2}
- \begin{function}{arctan2}
- \Declaration
- Function arctan2(x,y : float) : float;
- \Description
- \var{arctan2} calculates \var{arctan(y/x)}, and returns an angle in the
- correct quadrant. The returned angle will be in the range $-\pi$ to
- $\pi$ radians.
- The values of \var{x} and \var{y} must be between -2\^{}64 and 2\^{}64,
- moreover \var{x} should be different from zero.
- On Intel systems this function is implemented with the native intel
- \var{fpatan} instruction.
- \Errors
- If \var{x} is zero, an overflow error will occur.
- \SeeAlso
- \seef{arccos}, \seef{arcosh}, \seef{arsinh}, \seef{artanh}
- \end{function}
- \FPCexample{ex6}
- \begin{function}{arsinh}
- \Declaration
- Function arsinh(x : float) : float;
- Function arcsinh(x : float) : float;
- \Description
- \var{arsinh} returns the inverse hyperbolic sine of its argument \var{x}.
- The \var{arscsinh} variant of this function is supplied for \delphi
- compatibility.
- \Errors
- None.
- \SeeAlso
- \seef{arcosh}, \seef{arccos}, \seef{arcsin}, \seef{artanh}
- \end{function}
- \FPCexample{ex4}
- \begin{function}{artanh}
- \Declaration
- Function artanh(x : float) : float;
- Function arctanh(x : float) : float;
- \Description
- \var{artanh} returns the inverse hyperbolic tangent of its argument \var{x},
- where \var{x} should lie in the interval [-1,1], borders included.
- The \var{arctanh} variant of this function is supplied for \delphi compatibility.
- \Errors
- In case \var{x} is not in the interval [-1,1], an \var{EInvalidArgument}
- exception is raised.
- \SeeAlso
- \seef{arcosh}, \seef{arccos}, \seef{arcsin}, \seef{artanh}
- \Errors
- \SeeAlso
- \end{function}
- \FPCexample{ex5}
- \begin{function}{ceil}
- \Declaration
- Function ceil(x : float) : longint;
- \Description
- \var{Ceil} returns the lowest integer number greater than or equal to \var{x}.
- The absolute value of \var{x} should be less than \var{maxint}.
- \Errors
- If the asolute value of \var{x} is larger than maxint, an overflow error will
- occur.
- \SeeAlso
- \seef{floor}
- \end{function}
- \FPCexample{ex7}
- \begin{function}{cosh}
- \Declaration
- Function cosh(x : float) : float;
- \Description
- \var{Cosh} returns the hyperbolic cosine of it's argument {x}.
- \Errors
- None.
- \SeeAlso
- \seef{arcosh}, \seef{sinh}, \seef{arsinh}
- \end{function}
- \FPCexample{ex8}
- \begin{function}{cotan}
- \Declaration
- Function cotan(x : float) : float;
- \Description
- \var{Cotan} returns the cotangent of it's argument \var{x}. \var{x} should
- be different from zero.
- \Errors
- If \var{x} is zero then a overflow error will occur.
- \SeeAlso
- \seef{tanh}
- \end{function}
- \FPCexample{ex9}
- \begin{function}{cycletorad}
- \Declaration
- Function cycletorad(cycle : float) : float;
- \Description
- \var{Cycletorad} transforms it's argument \var{cycle}
- (an angle expressed in cycles) to radians.
- (1 cycle is $2 \pi$ radians).
- \Errors
- None.
- \SeeAlso
- \seef{degtograd}, \seef{degtorad}, \seef{radtodeg},
- \seef{radtograd}, \seef{radtocycle}
- \end{function}
- \FPCexample{ex10}
- \begin{function}{degtograd}
- \Declaration
- Function degtograd(deg : float) : float;
- \Description
- \var{Degtograd} transforms it's argument \var{deg} (an angle in degrees)
- to grads.
- (90 degrees is 100 grad.)
- \Errors
- None.
- \SeeAlso
- \seef{cycletorad}, \seef{degtorad}, \seef{radtodeg},
- \seef{radtograd}, \seef{radtocycle}
- \end{function}
- \FPCexample{ex11}
- \begin{function}{degtorad}
- \Declaration
- Function degtorad(deg : float) : float;
- \Description
- \var{Degtorad} converts it's argument \var{deg} (an angle in degrees) to
- radians.
- (pi radians is 180 degrees)
- \Errors
- None.
- \SeeAlso
- \seef{cycletorad}, \seef{degtograd}, \seef{radtodeg},
- \seef{radtograd}, \seef{radtocycle}
- \end{function}
- \FPCexample{ex12}
- \begin{function}{floor}
- \Declaration
- Function floor(x : float) : longint;
- \Description
- \var{Floor} returns the largest integer smaller than or equal to \var{x}.
- The absolute value of \var{x} should be less than \var{maxint}.
- \Errors
- If \var{x} is larger than \var{maxint}, an overflow will occur.
- \SeeAlso
- \seef{ceil}
- \end{function}
- \FPCexample{ex13}
- \begin{procedure}{frexp}
- \Declaration
- Procedure frexp(x : float;var mantissa : float; var exponent : integer);
- \Description
- \var{Frexp} returns the mantissa and exponent of it's argument
- \var{x} in \var{mantissa} and \var{exponent}.
- \Errors
- None
- \SeeAlso
- \end{procedure}
- \FPCexample{ex14}
- \begin{function}{gradtodeg}
- \Declaration
- Function gradtodeg(grad : float) : float;
- \Description
- \var{Gradtodeg} converts its argument \var{grad} (an angle in grads)
- to degrees.
- (100 grad is 90 degrees)
- \Errors
- None.
- \SeeAlso
- \seef{cycletorad}, \seef{degtograd}, \seef{radtodeg},
- \seef{radtograd}, \seef{radtocycle}, \seef{gradtorad}
- \end{function}
- \FPCexample{ex15}
- \begin{function}{gradtorad}
- \Declaration
- Function gradtorad(grad : float) : float;
- \Description
- \var{Gradtorad} converts its argument \var{grad} (an angle in grads)
- to radians.
- (200 grad is pi degrees).
- \Errors
- None.
- \SeeAlso
- \seef{cycletorad}, \seef{degtograd}, \seef{radtodeg},
- \seef{radtograd}, \seef{radtocycle}, \seef{gradtodeg}
- \end{function}
- \FPCexample{ex16}
- \begin{function}{hypot}
- \Declaration
- Function hypot(x,y : float) : float;
- \Description
- \var{Hypot} returns the hypotenuse of the triangle where the sides
- adjacent to the square angle have lengths \var{x} and \var{y}.
- The function uses Pythagoras' rule for this.
- \Errors
- None.
- \SeeAlso
- \end{function}
- \FPCexample{ex17}
- \begin{function}{intpower}
- \Declaration
- Function intpower(base : float;exponent : longint) : float;
- \Description
- \var{Intpower} returns \var{base} to the power \var{exponent},
- where exponent is an integer value.
- \Errors
- If \var{base} is zero and the exponent is negative, then an
- overflow error will occur.
- \SeeAlso
- \seef{power}
- \end{function}
- \FPCexample{ex18}
- \begin{function}{ldexp}
- \Declaration
- Function ldexp(x : float;p : longint) : float;
- \Description
- \var{Ldexp} returns $2^p x$.
- \Errors
- None.
- \SeeAlso
- \seef{lnxp1}, \seef{log10},\seef{log2},\seef{logn}
- \end{function}
- \FPCexample{ex19}
- \begin{function}{lnxp1}
- \Declaration
- Function lnxp1(x : float) : float;
- \Description
- \var{Lnxp1} returns the natural logarithm of \var{1+X}. The result
- is more precise for small values of \var{x}. \var{x} should be larger
- than -1.
- \Errors
- If $x\leq -1$ then an \var{EInvalidArgument} exception will be raised.
- \SeeAlso
- \seef{ldexp}, \seef{log10},\seef{log2},\seef{logn}
- \end{function}
- \FPCexample{ex20}
- \begin{function}{log10}
- \Declaration
- Function log10(x : float) : float;
- \Description
- \var{Log10} returns the 10-base logarithm of \var{X}.
- \Errors
- If \var{x} is less than or equal to 0 an 'invalid fpu operation' error
- will occur.
- \SeeAlso
- \seef{ldexp}, \seef{lnxp1},\seef{log2},\seef{logn}
- \end{function}
- \FPCexample{ex21}
- \begin{function}{log2}
- \Declaration
- Function log2(x : float) : float;
- \Description
- \var{Log2} returns the 2-base logarithm of \var{X}.
- \Errors
- If \var{x} is less than or equal to 0 an 'invalid fpu operation' error
- will occur.
- \SeeAlso
- \seef{ldexp}, \seef{lnxp1},\seef{log10},\seef{logn}
- \end{function}
- \FPCexample{ex22}
- \begin{function}{logn}
- \Declaration
- Function logn(n,x : float) : float;
- \Description
- \var{Logn} returns the n-base logarithm of \var{X}.
- \Errors
- If \var{x} is less than or equal to 0 an 'invalid fpu operation' error
- will occur.
- \SeeAlso
- \seef{ldexp}, \seef{lnxp1},\seef{log10},\seef{log2}
- \end{function}
- \FPCexample{ex23}
- \begin{function}{max}
- \Declaration
- Function max(Int1,Int2:Cardinal):Cardinal;
- Function max(Int1,Int2:Integer):Integer;
- \Description
- \var{Max} returns the maximum of \var{Int1} and \var{Int2}.
- \Errors
- None.
- \SeeAlso
- \seef{min}, \seef{maxIntValue}, \seef{maxvalue}
- \end{function}
- \FPCexample{ex24}
- \begin{function}{maxIntValue}
- \Declaration
- function MaxIntValue(const Data: array of Integer): Integer;
- \Description
- \var{MaxIntValue} returns the largest integer out of the \var{Data}
- array.
- This function is provided for \delphi compatibility, use the \seef{maxvalue}
- function instead.
- \Errors
- None.
- \SeeAlso
- \seef{maxvalue}, \seef{minvalue}, \seef{minIntValue}
- \end{function}
- \FPCexample{ex25}
- \begin{function}{maxvalue}
- \Declaration
- Function maxvalue(const data : array of float) : float;
- Function maxvalue(const data : array of Integer) : Integer;
- Function maxvalue(const data : PFloat; Const N : Integer) : float;
- Function maxvalue(const data : PInteger; Const N : Integer) : Integer;
- \Description
- \var{Maxvalue} returns the largest value in the \var{data}
- array with integer or float values. The return value has
- the same type as the elements of the array.
- The third and fourth forms accept a pointer to an array of \var{N}
- integer or float values.
- \Errors
- None.
- \SeeAlso
- \seef{maxIntValue}, \seef{minvalue}, \seef{minIntValue}
- \end{function}
- \FPCexample{ex26}
- \begin{function}{mean}
- \Declaration
- Function mean(const data : array of float) : float;
- Function mean(const data : PFloat; Const N : longint) : float;
- \Description
- \var{Mean} returns the average value of \var{data}.
- The second form accepts a pointer to an array of \var{N} values.
- \Errors
- None.
- \SeeAlso
- \seep{meanandstddev}, \seep{momentskewkurtosis}, \seef{sum}
- \end{function}
- \FPCexample{ex27}
- \begin{procedure}{meanandstddev}
- \Declaration
- Procedure meanandstddev(const data : array of float;
- var mean,stddev : float);
- procedure meanandstddev(const data : PFloat;
- Const N : Longint;var mean,stddev : float);
- \Description
- \var{meanandstddev} calculates the mean and standard deviation of \var{data}
- and returns the result in \var{mean} and \var{stddev}, respectively.
- Stddev is zero if there is only one value.
- The second form accepts a pointer to an array of \var{N} values.
- \Errors
- None.
- \SeeAlso
- \seef{mean},\seef{sum}, \seef{sumofsquares}, \seep{momentskewkurtosis}
- \end{procedure}
- \FPCexample{ex28}
- \begin{function}{min}
- \Declaration
- Function min(Int1,Int2:Cardinal):Cardinal;
- Function min(Int1,Int2:Integer):Integer;
- \Description
- \var{min} returns the smallest value of \var{Int1} and \var{Int2};
- \Errors
- None.
- \SeeAlso
- \seef{max}
- \end{function}
- \FPCexample{ex29}
- \begin{function}{minIntValue}
- \Declaration
- Function minIntValue(const Data: array of Integer): Integer;
- \Description
- \var{MinIntvalue} returns the smallest value in the \var{Data} array.
- This function is provided for \delphi compatibility, use \var{minvalue}
- instead.
- \Errors
- None
- \SeeAlso
- \seef{minvalue}, \seef{maxIntValue}, \seef{maxvalue}
- \end{function}
- \FPCexample{ex30}
- \begin{function}{minvalue}
- \Declaration
- Function minvalue(const data : array of float) : float;
- Function minvalue(const data : array of Integer) : Integer;
- Function minvalue(const data : PFloat; Const N : Integer) : float;
- Function minvalue(const data : PInteger; Const N : Integer) : Integer;
- \Description
- \var{Minvalue} returns the smallest value in the \var{data}
- array with integer or float values. The return value has
- the same type as the elements of the array.
- The third and fourth forms accept a pointer to an array of \var{N}
- integer or float values.
- \Errors
- None.
- \SeeAlso
- \seef{maxIntValue}, \seef{maxvalue}, \seef{minIntValue}
- \end{function}
- \FPCexample{ex31}
- \begin{procedure}{momentskewkurtosis}
- \Declaration
- procedure momentskewkurtosis(const data : array of float;
- var m1,m2,m3,m4,skew,kurtosis : float);
- procedure momentskewkurtosis(const data : PFloat; Const N : Integer;
- var m1,m2,m3,m4,skew,kurtosis : float);
- \Description
- \var{momentskewkurtosis} calculates the 4 first moments of the distribution
- of valuesin \var{data} and returns them in \var{m1},\var{m2},\var{m3} and
- \var{m4}, as well as the \var{skew} and \var{kurtosis}.
- \Errors
- None.
- \SeeAlso
- \seef{mean}, \seep{meanandstddev}
- \end{procedure}
- \FPCexample{ex32}
- \begin{function}{norm}
- \Declaration
- Function norm(const data : array of float) : float;
- Function norm(const data : PFloat; Const N : Integer) : float;
- \Description
- \var{Norm} calculates the Euclidian norm of the array of data.
- This equals \var{sqrt(sumofsquares(data))}.
- The second form accepts a pointer to an array of \var{N} values.
- \Errors
- None.
- \SeeAlso
- \seef{sumofsquares}
- \end{function}
- \FPCexample{ex33}
- \begin{function}{popnstddev}
- \Declaration
- Function popnstddev(const data : array of float) : float;
- Function popnstddev(const data : PFloat; Const N : Integer) : float;
- \Description
- \var{Popnstddev} returns the square root of the population variance of
- the values in the \var{Data} array. It returns zero if there is only one value.
- The second form of this function accepts a pointer to an array of \var{N}
- values.
- \Errors
- None.
- \SeeAlso
- \seef{popnvariance}, \seef{mean}, \seep{meanandstddev}, \seef{stddev},
- \seep{momentskewkurtosis}
- \end{function}
- \FPCexample{ex35}
- \begin{function}{popnvariance}
- \Declaration
- Function popnvariance(const data : array of float) : float;
- Function popnvariance(const data : PFloat; Const N : Integer) : float;
- \Description
- \var{Popnvariance} returns the square root of the population variance of
- the values in the \var{Data} array. It returns zero if there is only one value.
- The second form of this function accepts a pointer to an array of \var{N}
- values.
- \Errors
- None.
- \SeeAlso
- \seef{popnstddev}, \seef{mean}, \seep{meanandstddev}, \seef{stddev},
- \seep{momentskewkurtosis}
- \end{function}
- \FPCexample{ex36}
- \begin{function}{power}
- \Declaration
- Function power(base,exponent : float) : float;
- \Description
- \var{power} raises \var{base} to the power \var{power}. This is equivalent
- to \var{exp(power*ln(base))}. Therefore \var{base} should be non-negative.
- \Errors
- None.
- \SeeAlso
- \seef{intpower}
- \end{function}
- \FPCexample{ex34}
- \begin{function}{radtocycle}
- \Declaration
- Function radtocycle(rad : float) : float;
- \Description
- \var{Radtocycle} converts its argument \var{rad} (an angle expressed in
- radians) to an angle in cycles.
- (1 cycle equals 2 pi radians)
- \Errors
- None.
- \SeeAlso
- \seef{degtograd}, \seef{degtorad}, \seef{radtodeg},
- \seef{radtograd}, \seef{cycletorad}
- \end{function}
- \FPCexample{ex37}
- \begin{function}{radtodeg}
- \Declaration
- Function radtodeg(rad : float) : float;
- \Description
- \var{Radtodeg} converts its argument \var{rad} (an angle expressed in
- radians) to an angle in degrees.
- (180 degrees equals pi radians)
- \Errors
- None.
- \SeeAlso
- \seef{degtograd}, \seef{degtorad}, \seef{radtocycle},
- \seef{radtograd}, \seef{cycletorad}
- \end{function}
- \FPCexample{ex38}
- \begin{function}{radtograd}
- \Declaration
- Function radtograd(rad : float) : float;
- \Description
- \var{Radtodeg} converts its argument \var{rad} (an angle expressed in
- radians) to an angle in grads.
- (200 grads equals pi radians)
- \Errors
- None.
- \SeeAlso
- \seef{degtograd}, \seef{degtorad}, \seef{radtocycle},
- \seef{radtodeg}, \seef{cycletorad}
- \end{function}
- \FPCexample{ex39}
- \begin{function}{randg}
- \Declaration
- Function randg(mean,stddev : float) : float;
- \Description
- \var{randg} returns a random number which - when produced in large
- quantities - has a Gaussian distribution with mean \var{mean} and
- standarddeviation \var{stddev}.
- \Errors
- None.
- \SeeAlso
- \seef{mean}, \seef{stddev}, \seep{meanandstddev}
- \end{function}
- \FPCexample{ex40}
- \begin{procedure}{sincos}
- \Declaration
- Procedure sincos(theta : float;var sinus,cosinus : float);
- \Description
- \var{Sincos} calculates the sine and cosine of the angle \var{theta},
- and returns the result in \var{sinus} and \var{cosinus}.
- On Intel hardware, This calculation will be faster than making 2 calls
- to clculatet he sine and cosine separately.
- \Errors
- None.
- \SeeAlso
- \seef{arcsin}, \seef{arccos}.
- \end{procedure}
- \FPCexample{ex41}
- \begin{function}{sinh}
- \Declaration
- Function sinh(x : float) : float;
- \Description
- \var{Sinh} returns the hyperbolic sine of its argument \var{x}.
- \Errors
- \SeeAlso
- \seef{cosh}, \seef{arsinh}, \seef{tanh}, \seef{artanh}
- \end{function}
- \FPCexample{ex42}
- \begin{function}{stddev}
- \Declaration
- Function stddev(const data : array of float) : float;
- Function stddev(const data : PFloat; Const N : Integer) : float;
- \Description
- \var{Stddev} returns the standard deviation of the values in \var{Data}.
- It returns zero if there is only one value.
- The second form of the function accepts a pointer to an array of \var{N}
- values.
- \Errors
- None.
- \SeeAlso
- \seef{mean}, \seep{meanandstddev}, \seef{variance}, \seef{totalvariance}
- \end{function}
- \FPCexample{ex43}
- \begin{function}{sum}
- \Declaration
- Function sum(const data : array of float) : float;
- Function sum(const data : PFloat; Const N : Integer) : float;
- \Description
- \var{Sum} returns the sum of the values in the \var{data} array.
- The second form of the function accepts a pointer to an array of \var{N}
- values.
- \Errors
- None.
- \SeeAlso
- \seef{sumofsquares}, \seep{sumsandsquares}, \seef{totalvariance}
- , \seef{variance}
- \end{function}
- \FPCexample{ex44}
- \begin{function}{sumofsquares}
- \Declaration
- Function sumofsquares(const data : array of float) : float;
- Function sumofsquares(const data : PFloat; Const N : Integer) : float;
- \Description
- \var{Sumofsquares} returns the sum of the squares of the values in the \var{data}
- array.
- The second form of the function accepts a pointer to an array of \var{N}
- values.
- \Errors
- None.
- \SeeAlso
- \seef{sum}, \seep{sumsandsquares}, \seef{totalvariance}
- , \seef{variance}
- \end{function}
- \FPCexample{ex45}
- \begin{procedure}{sumsandsquares}
- \Declaration
- Procedure sumsandsquares(const data : array of float;
- var sum,sumofsquares : float);
- Procedure sumsandsquares(const data : PFloat; Const N : Integer;
- var sum,sumofsquares : float);
- \Description
- \var{sumsandsquares} calculates the sum of the values and the sum of
- the squares of the values in the \var{data} array and returns the
- results in \var{sum} and \var{sumofsquares}.
- The second form of the function accepts a pointer to an array of \var{N}
- values.
- \Errors
- None.
- \SeeAlso
- \seef{sum}, \seef{sumofsquares}, \seef{totalvariance}
- , \seef{variance}
- \end{procedure}
- \FPCexample{ex46}
- \begin{function}{tan}
- \Declaration
- Function tan(x : float) : float;
- \Description
- \var{Tan} returns the tangent of \var{x}.
- \Errors
- If \var{x} (normalized) is pi/2 or 3pi/2 then an overflow will occur.
- \SeeAlso
- \seef{tanh}, \seef{arcsin}, \seep{sincos}, \seef{arccos}
- \end{function}
- \FPCexample{ex47}
- \begin{function}{tanh}
- \Declaration
- Function tanh(x : float) : float;
- \Description
- \var{Tanh} returns the hyperbolic tangent of \var{x}.
- \Errors
- None.
- \SeeAlso
- \seef{arcsin}, \seep{sincos}, \seef{arccos}
- \end{function}
- \FPCexample{ex48}
- \begin{function}{totalvariance}
- \Declaration
- Function totalvariance(const data : array of float) : float;
- Function totalvariance(const data : PFloat; Const N : Integer) : float;
- \Description
- \var{TotalVariance} returns the total variance of the values in the
- \var{data} array. It returns zero if there is only one value.
- The second form of the function accepts a pointer to an array of \var{N}
- values.
- \Errors
- None.
- \SeeAlso
- \seef{variance}, \seef{stddev}, \seef{mean}
- \end{function}
- \FPCexample{ex49}
- \begin{function}{variance}
- \Declaration
- Function variance(const data : array of float) : float;
- Function variance(const data : PFloat; Const N : Integer) : float;
- \Description
- \var{Variance} returns the variance of the values in the
- \var{data} array. It returns zero if there is only one value.
- The second form of the function accepts a pointer to an array of \var{N}
- values.
- \Errors
- None.
- \SeeAlso
- \seef{totalvariance}, \seef{stddev}, \seef{mean}
- \end{function}
- \FPCexample{ex50}
|