1 -- Created on: 1991-01-21
2 -- Created by: Isabelle GRIGNON
3 -- Copyright (c) 1991-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
21 -- Modified by PMN 29/02/96: GaussSetIntegration added
22 -- Modified by PMN 03/05/96: NewtonMinimum added
27 uses StdFail, TColStd, TCollection, Standard, SortTools
32 -- All methods of all classes of this package will be public.
44 exception NotSquare inherits DimensionError;
45 exception SingularMatrix inherits Failure;
51 deferred class Function;
52 deferred class FunctionWithDerivative;
53 deferred class MultipleVarFunction;
54 deferred class MultipleVarFunctionWithGradient;
55 deferred class MultipleVarFunctionWithHessian;
56 deferred class FunctionSet;
57 deferred class FunctionSetWithDerivatives;
60 class GaussLeastSquare;
62 class DirectPolynomialRoots;
66 class NewtonFunctionRoot;
68 class FunctionSetRoot;
69 class NewtonFunctionSetRoot;
77 class GaussSingleIntegration;
78 class GaussMultipleIntegration;
79 class GaussSetIntegration;
82 class FunctionAllRoots;
86 class TrigonometricFunctionRoots;
87 class KronrodSingleIntegration; -- SKV: Kronrod method implementation.
88 class EigenValuesSearcher; -- for Kronrod method
89 class ComputeGaussPointsAndWeights;
90 class ComputeKronrodPointsAndWeights;
92 class Array1OfValueAndWeight
93 instantiates Array1 from TCollection (ValueAndWeight from math);
94 class CompareOfValueAndWeight;
95 class QuickSortOfValueAndWeight
96 instantiates QuickSort from SortTools (ValueAndWeight from math,
97 Array1OfValueAndWeight from math,
98 CompareOfValueAndWeight from math);
100 generic class SingleTab;
101 generic class DoubleTab;
103 --- Instantiate classes:
104 class SingleTabOfReal instantiates SingleTab(Real);
105 class SingleTabOfInteger instantiates SingleTab(Integer);
106 class DoubleTabOfReal instantiates DoubleTab(Real);
110 GaussPointsMax returns Integer;
112 GaussPoints(Index : Integer; Points : out Vector from math);
114 GaussWeights(Index : Integer; Weights : out Vector from math);
116 -- Modified by skv - Wed Dec 7 15:32:31 2005 Kronrod method. Begin
117 KronrodPointsMax returns Integer;
118 ---Purpose: Returns the maximal number of points for that the values
119 -- are stored in the table. If the number is greater then
120 -- KronrodPointsMax, the points will be computed.
122 OrderedGaussPointsAndWeights(Index : Integer;
123 Points : out Vector from math;
124 Weights : out Vector from math)
125 ---Purpose: Returns a vector of Gauss points and a vector of their weights.
126 -- The difference with the
127 -- method GaussPoints is the following:
128 -- - the points are returned in increasing order.
129 -- - if Index is greater then GaussPointsMax, the points are
131 -- Returns Standard_True if Index is positive, Points' and Weights'
132 -- length is equal to Index, Points and Weights are successfully computed.
133 returns Boolean from Standard;
135 KronrodPointsAndWeights(Index : Integer;
136 Points : out Vector from math;
137 Weights : out Vector from math)
138 ---Purpose: Returns a vector of Kronrod points and a vector of their
139 -- weights for Gauss-Kronrod computation method.
140 -- Index should be odd and greater then or equal to 3,
141 -- as the number of Kronrod points is equal to 2*N + 1,
142 -- where N is a number of Gauss points. Points and Weights should
143 -- have the size equal to Index. Each even element of Points
144 -- represents a Gauss point value of N-th Gauss quadrature.
145 -- The values from Index equal to 3 to 123 are stored in a
146 -- table (see the file math_Kronrod.cxx). If Index is greater,
147 -- then points and weights will be computed. Returns Standard_True
148 -- if Index is odd, it is equal to the size of Points and Weights
149 -- and the computation of Points and Weights is performed successfully.
150 -- Otherwise this method returns Standard_False.
151 returns Boolean from Standard;
153 -- Modified by skv - Wed Dec 7 15:32:31 2005 Kronrod method. End