0032667: Coding - get rid of unused forward declarations [LibCtl to StepRepr]
[occt.git] / src / math / math.hxx
1 // Created on: 1991-01-21
2 // Created by: Isabelle GRIGNON
3 // Copyright (c) 1991-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifndef _math_HeaderFile
18 #define _math_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 #include <Standard_Integer.hxx>
25 #include <math_Vector.hxx>
26 #include <Standard_Boolean.hxx>
27
28
29
30 class math 
31 {
32 public:
33
34   DEFINE_STANDARD_ALLOC
35
36   
37   Standard_EXPORT static Standard_Integer GaussPointsMax();
38   
39   Standard_EXPORT static void GaussPoints (const Standard_Integer Index, math_Vector& Points);
40   
41   Standard_EXPORT static void GaussWeights (const Standard_Integer Index, math_Vector& Weights);
42   
43   //! Returns the maximal number of points for that the values
44   //! are stored in the table. If the number is greater then
45   //! KronrodPointsMax, the points will be computed.
46   Standard_EXPORT static Standard_Integer KronrodPointsMax();
47   
48   //! Returns a vector of Gauss points and a vector of their weights.
49   //! The difference with the
50   //! method GaussPoints is the following:
51   //! - the points are returned in increasing order.
52   //! - if Index is greater then GaussPointsMax, the points are
53   //! computed.
54   //! Returns Standard_True if Index is positive, Points' and Weights'
55   //! length is equal to Index, Points and Weights are successfully computed.
56   Standard_EXPORT static Standard_Boolean OrderedGaussPointsAndWeights (const Standard_Integer Index, math_Vector& Points, math_Vector& Weights);
57   
58   //! Returns a vector of Kronrod points and a vector of their
59   //! weights for Gauss-Kronrod computation method.
60   //! Index should be odd and greater then or equal to 3,
61   //! as the number of Kronrod points is equal to 2*N + 1,
62   //! where N is a number of Gauss points. Points and Weights should
63   //! have the size equal to Index. Each even element of Points
64   //! represents a Gauss point value of N-th Gauss quadrature.
65   //! The values from Index equal to 3 to 123 are stored in a
66   //! table (see the file math_Kronrod.cxx). If Index is greater,
67   //! then points and weights will be computed. Returns Standard_True
68   //! if Index is odd, it is equal to the size of Points and Weights
69   //! and the computation of Points and Weights is performed successfully.
70   //! Otherwise this method returns Standard_False.
71   Standard_EXPORT static Standard_Boolean KronrodPointsAndWeights (const Standard_Integer Index, math_Vector& Points, math_Vector& Weights);
72
73
74
75
76 protected:
77
78
79
80
81
82 private:
83
84
85
86
87 friend class math_Matrix;
88 friend class math_Function;
89 friend class math_FunctionWithDerivative;
90 friend class math_MultipleVarFunction;
91 friend class math_MultipleVarFunctionWithGradient;
92 friend class math_MultipleVarFunctionWithHessian;
93 friend class math_FunctionSet;
94 friend class math_FunctionSetWithDerivatives;
95 friend class math_Gauss;
96 friend class math_GaussLeastSquare;
97 friend class math_SVD;
98 friend class math_DirectPolynomialRoots;
99 friend class math_FunctionRoots;
100 friend class math_BissecNewton;
101 friend class math_FunctionRoot;
102 friend class math_NewtonFunctionRoot;
103 friend class math_BracketedRoot;
104 friend class math_FunctionSetRoot;
105 friend class math_NewtonFunctionSetRoot;
106 friend class math_BracketMinimum;
107 friend class math_BrentMinimum;
108 friend class math_Powell;
109 friend class math_FRPR;
110 friend class math_BFGS;
111 friend class math_NewtonMinimum;
112 friend class math_Jacobi;
113 friend class math_GaussSingleIntegration;
114 friend class math_GaussMultipleIntegration;
115 friend class math_GaussSetIntegration;
116 friend class math_FunctionSample;
117 friend class math_FunctionAllRoots;
118 friend class math_Householder;
119 friend class math_Crout;
120 friend class math_Uzawa;
121 friend class math_TrigonometricFunctionRoots;
122 friend class math_KronrodSingleIntegration;
123 friend class math_EigenValuesSearcher;
124 friend class math_ComputeGaussPointsAndWeights;
125 friend class math_ComputeKronrodPointsAndWeights;
126 friend class math_DoubleTab;
127
128 };
129
130
131
132
133
134
135
136 #endif // _math_HeaderFile