/*
En löytänyt mistään kunnollista lineaarisen interpoloinnin funktiota,
joten väsäsin tämän.
Tarkoituksena on siis interpoloida k:n arvo taulukosta k[]
taulukon Th[]ja float T:n mukaan.
Tämä toimii vain nousevalla argumentti taulukolla,
taulukon koko pitäs tietää kutsussa.
Taulun koon sais kai selville sizeof(T)/sizeof(T[0]).
Mutta,
kuinka tämä tehtäisiin fiksummin,mieluiten käyttäen Standar Librarya(STL)?
*/
#include
#include
#define TINY 1e-20
// to calculate interpolated value, rather fast
// should be done by STL ... Key, value container, range checking etc
float interpolate(const float T, float* x, float* y);
const int count=13;
float Th[count]={20,100,200,300,400,500,600,700,800,900,1000,1100,1200};
float k[count]={1.00,1.00,0.95,0.85,0.75,0.60,0.45,0.30,0.15,0.08,0.04,0.01,0.00};
float interpolate(const float T, float* x, float* y)
{
float k=0;// return value
int ind1=0, ind2=0;
if(T=x[count-1]) // should be checked before
return y[count-1];
while(ind1x[ind1])
ind1 ;
if (T
En löytänyt mistään kunnollista lineaarisen interpoloinnin funktiota,
joten väsäsin tämän.
Tarkoituksena on siis interpoloida k:n arvo taulukosta k[]
taulukon Th[]ja float T:n mukaan.
Tämä toimii vain nousevalla argumentti taulukolla,
taulukon koko pitäs tietää kutsussa.
Taulun koon sais kai selville sizeof(T)/sizeof(T[0]).
Mutta,
kuinka tämä tehtäisiin fiksummin,mieluiten käyttäen Standar Librarya(STL)?
*/
#include
#include
#define TINY 1e-20
// to calculate interpolated value, rather fast
// should be done by STL ... Key, value container, range checking etc
float interpolate(const float T, float* x, float* y);
const int count=13;
float Th[count]={20,100,200,300,400,500,600,700,800,900,1000,1100,1200};
float k[count]={1.00,1.00,0.95,0.85,0.75,0.60,0.45,0.30,0.15,0.08,0.04,0.01,0.00};
float interpolate(const float T, float* x, float* y)
{
float k=0;// return value
int ind1=0, ind2=0;
if(T=x[count-1]) // should be checked before
return y[count-1];
while(ind1x[ind1])
ind1 ;
if (T
Vastaukset 2
Vanhimmat
STL. Se on Standard Template Library.
ottamatta ?