-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinterpolation.cpp
More file actions
21 lines (19 loc) · 972 Bytes
/
interpolation.cpp
File metadata and controls
21 lines (19 loc) · 972 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "interpolation.h"
void interpolation(double den, double energy, double(&result)[datanumber])
{
double lgden = log(den) / log(10);
double lgE = log(energy) / log(10);
int i = (lgden - lgDenmin) / dlgDen;
int j = (lgE - lgEmin) / dlgE;
double deltaden = lgden - lgDenmin - i * dlgDen;
double deltaE = lgE - lgEmin - j * dlgE;
double minus_deltaden = dlgDen - deltaden;
double minus_deltaE = dlgE - deltaE;
double area = dlgDen * dlgE;
result[0] = minus_deltaden * minus_deltaE * T_table[i][j] / area + minus_deltaden * deltaE * T_table[i][j + 1] / area +
deltaden * minus_deltaE * T_table[i + 1][j] / area + deltaden * deltaE * T_table[i + 1][j + 1] / area;
result[0] = pow(10, result[0]);
result[1] = minus_deltaden * minus_deltaE * P_table[i][j] / area + minus_deltaden * deltaE * P_table[i][j + 1] / area +
deltaden * minus_deltaE * P_table[i + 1][j] / area + deltaden * deltaE * P_table[i + 1][j + 1] / area;
result[1] = pow(10, result[1]);
}