File: linear.cc

package info (click to toggle)
simrisc 16.05.00-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,568 kB
  • sloc: cpp: 6,877; fortran: 665; makefile: 112; ansic: 112; sh: 107
file content (19 lines) | stat: -rw-r--r-- 757 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#define XERR
#include "tableparams.ih"

//linear interpolation: for a = d_riskTable[idx].first
//                          p = d_riskTable[idx].second
//                          b = d_riskTable[idx + 1].first
//                          q = d_riskTable[idx + 1].second
//                          x = age, a is searched for a <= x
//                       compute f(x), where a <= x <= b as
//                       p + (q - p) / b - a) * (x - a)
//                    =  p + (q - p) * (x - a) / b - a)

// static
double TableParams::linear(double age, 
                           DoublePair const &from, DoublePair const &to)
{
    return from.second + (to.second - from.second) * (age - from.first) / 
                         (to.first - from.first);
}