-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAdvanceBeam.cpp
53 lines (45 loc) · 1.33 KB
/
AdvanceBeam.cpp
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
#pragma once
template<int sizeX, int sizeY>
void AdvanceBeam::operator()(
//input
const Layer<int,int,1> & currPressure,
const vector<double> & oldAngle,
const vector<double> & oldVelAngle,
const vector<double> & currAngle,
const vector<double> & currVelAngle,
const vector<double> & currT,
//output
const vector<double> & newAngle,
const vector<double> & newVelAngle,
const vector<double> & newT
){
//input
pCurrPressure = &currPressure;
pOldAngle = &oldAngle;
pOldVelAngle = &oldVelAngle;
pCurrAngle = &currAngle;
pCurrVelAngle = &currVelAngle;
pCurrT = &currT;
//output
pNewAngle = &newAngle;
pNewVelAngle = &newVelAngle;
pNewT = &newT;
Broyden(&ComputeF, *pCurrVelAngle, *pNewVelAngle);
*pNewAngle = ----
}
template<int sizeX, int sizeY>
double AdvanceBeam::ComputeF(const vector<double> & estimatedVelAngle){
const Layer<sizeX,sizeY,1> &currPressure = *pCurrPressure;
const vector<double> &currAngle = *pCurrAngle;
const vector<double> &currVelAngle = *pCurrVelAngle;
}
template<int sizeX, int sizeY>
double AdvanceBeam::ComputeG(const vector<double> & estimatedT){
}
template<int sizeX, int sizeY>
void AdvanceBeam::Broyden(
double (*Func)(vector<double> &),
const vector<double> &estimated,
vector<double> &result
){
}