9586654a39a46e33717bf4faf4b03736680ca28f
[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-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 --              Modified by PMN 29/02/96: GaussSetIntegration added
18 --              Modified by PMN 03/05/96: NewtonMinimum added
19
20
21 package math
22
23 uses StdFail, TColStd, TCollection, Standard,  SortTools
24           
25 is
26
27     ---Level : Public
28     -- All methods of all classes of this package will be public.
29
30
31
32     enumeration Status is
33         OK,
34         TooManyIterations,
35         FunctionError,
36         DirectionSearchError,
37         NotBracketed
38     end Status;
39     
40     exception NotSquare inherits DimensionError;
41     exception SingularMatrix inherits Failure;
42     
43
44     imported Vector;
45     imported IntegerVector;
46     class Matrix;
47     deferred class Function;
48     deferred class FunctionWithDerivative;
49     deferred class MultipleVarFunction;
50     deferred class MultipleVarFunctionWithGradient;
51     deferred class MultipleVarFunctionWithHessian;
52     deferred class FunctionSet;
53     deferred class FunctionSetWithDerivatives;
54     imported GlobOptMin;
55     imported PSO;
56     imported PSOParticlesPool;
57     imported BullardGenerator;
58     class Gauss;
59     class GaussLeastSquare;
60     class SVD;
61     class DirectPolynomialRoots;
62     class FunctionRoots;
63     class BissecNewton;
64     class FunctionRoot;
65     class NewtonFunctionRoot;
66     class BracketedRoot;
67     class FunctionSetRoot;
68     class NewtonFunctionSetRoot;
69     class BracketMinimum;
70     class BrentMinimum;
71     class Powell;
72     class FRPR;
73     class BFGS;
74     class NewtonMinimum;
75     class Jacobi;
76     class GaussSingleIntegration;
77     class GaussMultipleIntegration;
78     class GaussSetIntegration;
79     class FunctionSample;
80     class FunctionAllRoots;    
81     class Householder;
82     class Crout;
83     class Uzawa;
84     class TrigonometricFunctionRoots;
85     class KronrodSingleIntegration; -- SKV: Kronrod method implementation.
86     class EigenValuesSearcher;  -- for Kronrod method
87     class ComputeGaussPointsAndWeights; 
88     class ComputeKronrodPointsAndWeights; 
89     class ValueAndWeight; 
90     imported Array1OfValueAndWeight;
91     class CompareOfValueAndWeight; 
92     class QuickSortOfValueAndWeight
93         instantiates QuickSort from SortTools (ValueAndWeight from math, 
94                                                Array1OfValueAndWeight from math,
95                                                CompareOfValueAndWeight from math);
96
97         class DoubleTab;
98
99     --- Gauss Points
100
101     GaussPointsMax returns Integer;
102
103     GaussPoints(Index : Integer; Points : out Vector from math);
104     
105     GaussWeights(Index : Integer; Weights : out Vector from math);
106     
107 -- Modified by skv - Wed Dec  7 15:32:31 2005 Kronrod method. Begin
108     KronrodPointsMax returns Integer;
109         ---Purpose: Returns the maximal number of points for that the values 
110         --          are stored in the table. If the number is greater then 
111         --          KronrodPointsMax, the points will be computed.
112
113     OrderedGaussPointsAndWeights(Index : Integer; 
114                                  Points  : out Vector from math;
115                                  Weights : out Vector from math)
116         ---Purpose: Returns a vector of Gauss points and a vector of their weights. 
117         --          The difference with the 
118         --          method GaussPoints is the following: 
119         --            - the points are returned in increasing order. 
120         --            - if Index is greater then GaussPointsMax, the points are 
121         --              computed. 
122         --          Returns Standard_True if Index is positive, Points' and Weights' 
123         --          length is equal to Index, Points and Weights are successfully computed.
124     returns Boolean from Standard;
125     
126     KronrodPointsAndWeights(Index : Integer; 
127                             Points  : out Vector from math;
128                             Weights : out Vector from math)
129         ---Purpose: Returns a vector of Kronrod points and a vector of their 
130         --          weights for Gauss-Kronrod computation method.
131         --          Index should be odd and greater then or equal to 3,
132         --          as the number of Kronrod points is equal to 2*N + 1,
133         --          where N is a number of Gauss points. Points and Weights should 
134         --          have the size equal to Index. Each even element of Points 
135         --          represents a Gauss point value of N-th Gauss quadrature. 
136         --          The values from Index equal to 3 to 123 are stored in a 
137         --          table (see the file math_Kronrod.cxx). If Index is greater, 
138         --          then points and weights will be computed. Returns Standard_True
139         --          if Index is odd, it is equal to the size of Points and Weights
140         --          and the computation of Points and Weights is performed successfully.
141         --          Otherwise this method returns Standard_False. 
142     returns Boolean from Standard;
143     
144 -- Modified by skv - Wed Dec  7 15:32:31 2005 Kronrod method. End
145         
146 end math;
147
148