UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
polapr.h
1 /* polapr.h */
2 /* $Id: polapr.h,v 1.1 2008/07/18 12:55:02 vlad Exp $ */
3 #ifndef __polapr_h
4 #define __polapr_h
5 
6 
7 typedef enum {NODERIV, DERIV} DerivMode;
8 typedef enum {NOSTEP, STEP} StepMode;
9 typedef enum {NOEXTR, EXTR} ExtrMode;
10 
11 typedef struct {
12  double dz, ddz;
13 } DerivVal;
14 
15 typedef struct {
16  double z; /* значение функции */
17  double dz,ddz; /* значения первой и второй производной функции */
18 } FuncPar;
19 
20 typedef struct {
21  double alf1,alf2; /* коэффициенты для рекуррентного расчета полиномов */
22  double c; /* коэффициент системы аппроксимирующих полиномов */
23 } CoefPol;
24 
25 typedef struct {
26  int n; /* номер границы : 1, 2, ... */
27  int kgr; /* число точек в границе */
28  int ib, lint; /* индекс начала и длина интервала обработки */
29  double xBeg, step; /* начальное значение и шаг изменения аргумента
30  функции при ее аппроксимации в режиме с заданным шагом */
31  int cntPoints; /* количество значений аргумента и функции в режиме с заданным шагом */ long xbeg; /* истинная общая коорд-та начала обработки , м */ double xb, xe; /* относительные нач. и конеч. коррд-ты аргумента функции */ double *x; /* указатель на массив аргументов функции размером lint */ double *z; /* указатель на массив значений функции размером lint или cntPoints */ DerivVal *dzv; /* указатель на массив структур, содержащих значения первой и второй производной функции размером lint или cntPoints */ int nor; /* порядок полинома: 0, 1, 2, ... */ CoefPol *coef; /* указатель на массив структур, содержащих значения коэффициентов системы полиномов, размером nor */ } HorAproxParm; #ifdef _cplusplus extern "C" { #endif /* C++ */ int PolCalc(HorAproxParm *horPar, double *buf); /* polor */ int PolAproxArray(HorAproxParm *horPar, StepMode stm, DerivMode drv); /* polor1 */ #ifdef _cplusplus }; #endif /* C++ */ #endif /* polapr.h */
32  заданным шагом */
33 
34  long xbeg; /* истинная общая коорд-та начала обработки , м */
35  double xb, xe; /* относительные нач. и конеч. коррд-ты аргумента функции */
36  double *x; /* указатель на массив аргументов функции размером lint */
37  double *z; /* указатель на массив значений функции размером lint или
38  cntPoints */
39  DerivVal *dzv; /* указатель на массив структур, содержащих значения
40  первой и второй производной функции размером lint или
41  cntPoints */
42  int nor; /* порядок полинома: 0, 1, 2, ... */
43  CoefPol *coef; /* указатель на массив структур, содержащих значения
44  коэффициентов системы полиномов, размером nor */
45 } HorAproxParm;
46 
47 
48 #ifdef _cplusplus
49 extern "C" {
50 #endif /* C++ */
51 
52 int PolCalc(HorAproxParm *horPar, double *buf); /* polor */
53 
54 int PolAproxArray(HorAproxParm *horPar, StepMode stm,
55  DerivMode drv); /* polor1 */
56 
57 #ifdef _cplusplus
58 };
59 #endif /* C++ */
60 
61 #endif /* polapr.h */
Definition: polapr.h:20
Definition: polapr.h:25
Definition: polapr.h:11
Definition: polapr.h:15