mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
cleanup: move interpolate inline function to its own header file
This is not really related to struct dive, so let's move it. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
f9c3227975
commit
f728923c79
8 changed files with 22 additions and 11 deletions
16
core/interpolate.h
Normal file
16
core/interpolate.h
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#ifndef INTERPOLATE_H
|
||||
#define INTERPOLATE_H
|
||||
|
||||
/* Linear interpolation between 'a' and 'b', when we are 'part'way into the 'whole' distance from a to b */
|
||||
static inline int interpolate(int a, int b, int part, int whole)
|
||||
{
|
||||
/* It is doubtful that we actually need floating point for this, but whatever */
|
||||
if (whole) {
|
||||
double x = (double)a * (whole - part) + (double)b * part;
|
||||
return (int)lrint(x / whole);
|
||||
}
|
||||
return (a+b)/2;
|
||||
}
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue