summaryrefslogtreecommitdiff
path: root/inc/AdvApprox_SimpleApprox.hxx
blob: 7f4781ff57202f8fb3db0e7b8f8b2b6e2c6ab9df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _AdvApprox_SimpleApprox_HeaderFile
#define _AdvApprox_SimpleApprox_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Handle_PLib_JacobiPolynomial_HeaderFile
#include <Handle_PLib_JacobiPolynomial.hxx>
#endif
#ifndef _Handle_TColStd_HArray1OfReal_HeaderFile
#include <Handle_TColStd_HArray1OfReal.hxx>
#endif
#ifndef _Handle_TColStd_HArray2OfReal_HeaderFile
#include <Handle_TColStd_HArray2OfReal.hxx>
#endif
#ifndef _Standard_Address_HeaderFile
#include <Standard_Address.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _GeomAbs_Shape_HeaderFile
#include <GeomAbs_Shape.hxx>
#endif
#ifndef _AdvApprox_EvaluatorFunction_HeaderFile
#include <AdvApprox_EvaluatorFunction.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_OStream_HeaderFile
#include <Standard_OStream.hxx>
#endif
class PLib_JacobiPolynomial;
class TColStd_HArray1OfReal;
class TColStd_HArray2OfReal;
class Standard_OutOfRange;
class Standard_ConstructionError;
class TColStd_Array1OfInteger;
class TColStd_Array1OfReal;


//! Approximate  a function on   an intervall [First,Last] <br>
//!          The result  is  a simple  polynomial  whose  degree is  as low as <br>
//!          possible  to   satisfy  the required  tolerance  and  the <br>
//!          maximum degree.  The maximum  error and the averrage error <br>
//!          resulting from  approximating the function by the polynomial are computed <br>
class AdvApprox_SimpleApprox  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  
  Standard_EXPORT   AdvApprox_SimpleApprox(const Standard_Integer TotalDimension,const Standard_Integer TotalNumSS,const GeomAbs_Shape Continuity,const Standard_Integer WorkDegree,const Standard_Integer NbGaussPoints,const Handle(PLib_JacobiPolynomial)& JacobiBase,const AdvApprox_EvaluatorFunction& Func);
  //! Constructs approximator tool. <br>
  Standard_EXPORT     void Perform(const TColStd_Array1OfInteger& LocalDimension,const TColStd_Array1OfReal& LocalTolerancesArray,const Standard_Real First,const Standard_Real Last,const Standard_Integer MaxDegree) ;
  
  Standard_EXPORT     Standard_Boolean IsDone() const;
  
  Standard_EXPORT     Standard_Integer Degree() const;
  //! returns the coefficients in the Jacobi Base <br>
  Standard_EXPORT     Handle_TColStd_HArray1OfReal Coefficients() const;
  //! returns the constraints at First <br>
  Standard_EXPORT     Handle_TColStd_HArray2OfReal FirstConstr() const;
  //! returns the constraints at Last <br>
  Standard_EXPORT     Handle_TColStd_HArray2OfReal LastConstr() const;
  
  Standard_EXPORT     Handle_TColStd_HArray1OfReal SomTab() const;
  
  Standard_EXPORT     Handle_TColStd_HArray1OfReal DifTab() const;
  
  Standard_EXPORT     Standard_Real MaxError(const Standard_Integer Index) const;
  
  Standard_EXPORT     Standard_Real AverageError(const Standard_Integer Index) const;
  //! display information on approximation <br>
  Standard_EXPORT     void Dump(Standard_OStream& o) const;





protected:





private:



Standard_Integer myTotalNumSS;
Standard_Integer myTotalDimension;
Standard_Integer myNbGaussPoints;
Standard_Integer myWorkDegree;
Standard_Integer myNivConstr;
Handle_PLib_JacobiPolynomial myJacPol;
Handle_TColStd_HArray1OfReal myTabPoints;
Handle_TColStd_HArray2OfReal myTabWeights;
Standard_Address myEvaluator;
Standard_Integer myDegree;
Handle_TColStd_HArray1OfReal myCoeff;
Handle_TColStd_HArray2OfReal myFirstConstr;
Handle_TColStd_HArray2OfReal myLastConstr;
Handle_TColStd_HArray1OfReal mySomTab;
Handle_TColStd_HArray1OfReal myDifTab;
Handle_TColStd_HArray1OfReal myMaxError;
Handle_TColStd_HArray1OfReal myAverageError;
Standard_Boolean done;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif