/************************************************************************
*
* Copyright (c) 1989 by Triakis, Inc.
*
*	Header file for Math++ C-Language Mathematical Function Library.
* Defines all the public functions included in Math++.
*
*************************************************************************/

#ifndef M_PI
#include <math.h>
#endif

#define COMPLEX_INCLUDED

typedef struct complex {
	double real;
	double imag;
} COMPLEX ;
							/* CH2 */
extern int		linLuDecomp ();
extern int		linSystemSolve ();
extern int		linSquareMatrix ();
extern int		linCholeskyDecomp ();
extern int		linBandedMatrix ();
extern int		linSkylinedMatrix ();
extern int		linTridiagMatrix ();
extern void		linInverseMatrix ();
extern void		linDeterminant ();
extern int		linGaussSidel ();
extern int		linSingleValueDecomp ();
extern int		linSVDSolve ();
extern void		linMatrixCondition ();
extern int		linBrentNonLinear ();
extern int		linSolveBrent ();
							/* CH3 */
extern int		eigJacobi ();
extern void		eigValueVector ();
extern void		eigNonSymmetricMatrix ();
							/* CH4 */
extern double		intPower ();
extern int		crvLinearLeastSqr ();
extern int		crvExpLeastSqr ();
extern int		crvLogLeastSqr ();
extern int		crvPowerLeastSqr ();
extern int		crvPolyLeastSqr ();
extern int		crvInvertPolyLeastSqr ();
extern int		crvLogPolyLeastSqr ();
extern double		crv1DLagrangePoly ();
extern double		crv2DLagrangePoly ();
							/* CH5 */
extern int		crvSumExponents ();
extern int		crvSumPowers ();
extern int		crvRationalLeastSqr ();
extern int		crvMultiLeastSqr ();
extern int		crvPowMultiLeastSqr ();
extern void		crvOrthoPoly ();
extern double		crvEvalOrthoPoly ();
extern void		crvChebyshevPoly ();
extern int		crv3dBiCubic ();
extern int		crvBasisFunctionSVD ();
extern void		crvSimplex ();
							/* CH6 */
extern void		smthMovingAverage ();
extern int		smthPolyAverage ();
extern void		smthCubicSpline ();
							/* CH7 */
extern double		spFactorial ();
extern double		spGamma ();
extern double		spLogGamma ();
extern double		spIncGamma ();
extern double		spBeta ();
extern double		spIncBeta ();
extern double		spErrorFunction ();
extern double		spComplementaryErrFunc ();

extern double		spJ0Bessel ();
extern double		spY0Bessel ();
extern double		spJ1Bessel ();
extern double		spY1Bessel ();
extern double		spYBessel ();
extern double		spJBessel ();
extern double		spI0Bessel ();
extern double		spK0Bessel ();
extern double		spI1Bessel ();
extern double		spK1Bessel ();
extern double		spKBessel ();
extern double		spIBessel ();
							/* CH8 */
extern void		fitCubicSpline ();
extern double		fitCubPointSpline ();
extern void		fitNaturalSpline ();
extern double		naturalSplineInterpolate ();
extern void		fitBspline ();
extern void		fitBezierSpline ();
extern void		fitHermitianSpline ();
							/* CH9 */
extern double		stCorrectedSquaresSum ();
extern double		stCoeffOfVariation ();
extern double		stKurtosisVector ();
extern double		stMean ();
extern double		stMedian ();
extern double		stElemProductVector ();
extern double		stRangeVector ();
extern double		stSkewnessVector ();
extern double		stStdDeviationVector ();
extern double		stVecElemStdDeviation ();
extern double		stStdErrorVector ();
extern double		stSumElementVector ();
extern double		stUncorrectedSquaresSum ();
extern double		stVariance ();
extern double		stMaxValueVector ();
extern double		stMinValueVector ();

extern double		stBinomialEvent ();
extern double		stPermutation ();
extern double		stCombination ();
extern double		stPoissonEvent ();
extern double		stGeometricMeanStdDev ();
extern double		stNormalDist ();
extern double		stInverseNormalDist ();
extern double		stChiSquaredDist ();
extern double		stF_Distribution ();
extern double		stT_Distribution ();
extern double		stInvChiSquared ();
extern double		stInvF_Dist ();
extern double		stInvT_Dist ();
extern void		stLinearCorrelationCoeff ();
extern void		stMatrixData ();
extern void		sumSqErrCrossProd ();
extern void		sweepMatrixOutput ();
							/* CH10 */
extern double		intgCubicSpline ();
extern double		intgSimpson ();
extern double		intgGaussLegendre ();
extern void		intgAdaptive ();
extern double		intg2D_Romberg ();
extern double		intg3D_Romberg ();
extern double		intgMultiD_Gauss ();
							/* CH11 */
extern COMPLEX		cAdd ();
extern COMPLEX		cSub ();
extern COMPLEX		cMult ();
extern COMPLEX		cDiv ();
extern double		cAbs ();
extern COMPLEX		cSqrt ();
extern COMPLEX		cExp ();
extern COMPLEX		cLog ();
extern COMPLEX		cPower ();
extern COMPLEX		cSin ();
extern COMPLEX		cCos ();
extern COMPLEX		cTan ();
extern COMPLEX		cASin ();
extern COMPLEX		cACos ();
extern COMPLEX		cATan ();
extern COMPLEX		cRealToComplex ();
extern COMPLEX		cConjugate ();
extern double		cRealPart ();
extern double		cImaginaryPart ();
							/* CH12 */
extern void		rootCubic ();
extern double		rootUniVariate ();
extern int		rootPolynomial ();
extern void		rootNewtonRaphson ();
extern double		rootFunctionMinimum ();
extern void		rootSimplexMinLinear ();
extern int		rootMinMultiVariate ();
extern double		sign ();
							/* CH13 */
extern int		faFourierCoeff ();
extern int		faFFTsmooth ();
extern int		faFFT ();
extern int		faConvolution ();
extern int		faCorrelation ();
							/* CH14 */
extern void		odeRungeKuttaFehlberg ();
extern double		odeAdamsMoulton ();

