0025717: Non reentrant (and hence non-thread-safe) math_RealRandom / _IntegerRandom
[occt.git] / src / math / math.cdl
CommitLineData
b311480e 1-- Created on: 1991-01-21
2-- Created by: Isabelle GRIGNON
3-- Copyright (c) 1991-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 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
973c2be1 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.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
b311480e 16
7fd59977 17-- Modified by PMN 29/02/96: GaussSetIntegration added
18-- Modified by PMN 03/05/96: NewtonMinimum added
7fd59977 19
20
21package math
22
23uses StdFail, TColStd, TCollection, Standard, SortTools
24
25is
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
3b010a74 44 imported Vector;
45 imported IntegerVector;
7fd59977 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;
4bbaf12b 54 imported GlobOptMin;
1d33d22b 55 imported PSO;
56 imported PSOParticlesPool;
57 imported BullardGenerator;
7fd59977 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;
7fd59977 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 class Array1OfValueAndWeight
91 instantiates Array1 from TCollection (ValueAndWeight from math);
92 class CompareOfValueAndWeight;
93 class QuickSortOfValueAndWeight
94 instantiates QuickSort from SortTools (ValueAndWeight from math,
95 Array1OfValueAndWeight from math,
96 CompareOfValueAndWeight from math);
97
3b010a74 98 class DoubleTab;
7fd59977 99
100 --- Gauss Points
101
102 GaussPointsMax returns Integer;
103
104 GaussPoints(Index : Integer; Points : out Vector from math);
105
106 GaussWeights(Index : Integer; Weights : out Vector from math);
107
108-- Modified by skv - Wed Dec 7 15:32:31 2005 Kronrod method. Begin
109 KronrodPointsMax returns Integer;
110 ---Purpose: Returns the maximal number of points for that the values
111 -- are stored in the table. If the number is greater then
112 -- KronrodPointsMax, the points will be computed.
113
114 OrderedGaussPointsAndWeights(Index : Integer;
115 Points : out Vector from math;
116 Weights : out Vector from math)
117 ---Purpose: Returns a vector of Gauss points and a vector of their weights.
118 -- The difference with the
119 -- method GaussPoints is the following:
120 -- - the points are returned in increasing order.
121 -- - if Index is greater then GaussPointsMax, the points are
122 -- computed.
123 -- Returns Standard_True if Index is positive, Points' and Weights'
124 -- length is equal to Index, Points and Weights are successfully computed.
125 returns Boolean from Standard;
126
127 KronrodPointsAndWeights(Index : Integer;
128 Points : out Vector from math;
129 Weights : out Vector from math)
130 ---Purpose: Returns a vector of Kronrod points and a vector of their
131 -- weights for Gauss-Kronrod computation method.
132 -- Index should be odd and greater then or equal to 3,
133 -- as the number of Kronrod points is equal to 2*N + 1,
134 -- where N is a number of Gauss points. Points and Weights should
135 -- have the size equal to Index. Each even element of Points
136 -- represents a Gauss point value of N-th Gauss quadrature.
137 -- The values from Index equal to 3 to 123 are stored in a
138 -- table (see the file math_Kronrod.cxx). If Index is greater,
139 -- then points and weights will be computed. Returns Standard_True
140 -- if Index is odd, it is equal to the size of Points and Weights
141 -- and the computation of Points and Weights is performed successfully.
142 -- Otherwise this method returns Standard_False.
143 returns Boolean from Standard;
144
145-- Modified by skv - Wed Dec 7 15:32:31 2005 Kronrod method. End
146
147end math;
148
149