Test for 0022778: Bug in BRepMesh
[occt.git] / src / math / math.cdl
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
5 --
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.
10 --
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.
13 --
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.
20
21 --              Modified by PMN 29/02/96: GaussSetIntegration added
22 --              Modified by PMN 03/05/96: NewtonMinimum added
23
24
25 package math
26
27 uses StdFail, TColStd, TCollection, Standard,  SortTools
28           
29 is
30
31     ---Level : Public
32     -- All methods of all classes of this package will be public.
33
34
35
36     enumeration Status is
37         OK,
38         TooManyIterations,
39         FunctionError,
40         DirectionSearchError,
41         NotBracketed
42     end Status;
43     
44     exception NotSquare inherits DimensionError;
45     exception SingularMatrix inherits Failure;
46     
47
48     class Vector;
49     class IntegerVector;
50     class Matrix;
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;
58     class IntegerRandom;
59     class Gauss;
60     class GaussLeastSquare;
61     class SVD;
62     class DirectPolynomialRoots;
63     class FunctionRoots;
64     class BissecNewton;
65     class FunctionRoot;
66     class NewtonFunctionRoot;
67     class BracketedRoot;
68     class FunctionSetRoot;
69     class NewtonFunctionSetRoot;
70     class BracketMinimum;
71     class BrentMinimum;
72     class Powell;
73     class FRPR;
74     class BFGS;
75     class NewtonMinimum;
76     class Jacobi;
77     class GaussSingleIntegration;
78     class GaussMultipleIntegration;
79     class GaussSetIntegration;
80     class RealRandom;
81     class FunctionSample;
82     class FunctionAllRoots;    
83     class Householder;
84     class Crout;
85     class Uzawa;
86     class TrigonometricFunctionRoots;
87     class KronrodSingleIntegration; -- SKV: Kronrod method implementation.
88     class EigenValuesSearcher;  -- for Kronrod method
89     class ComputeGaussPointsAndWeights; 
90     class ComputeKronrodPointsAndWeights; 
91     class ValueAndWeight; 
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);
99
100   generic class SingleTab;
101   generic class DoubleTab;
102
103     --- Instantiate classes:
104     class SingleTabOfReal instantiates SingleTab(Real);
105     class SingleTabOfInteger instantiates SingleTab(Integer);
106     class DoubleTabOfReal instantiates DoubleTab(Real);
107
108     --- Gauss Points
109
110     GaussPointsMax returns Integer;
111
112     GaussPoints(Index : Integer; Points : out Vector from math);
113     
114     GaussWeights(Index : Integer; Weights : out Vector from math);
115     
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.
121
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 
130         --              computed. 
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;
134     
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;
152     
153 -- Modified by skv - Wed Dec  7 15:32:31 2005 Kronrod method. End
154         
155 end math;
156
157