blob: 784a90aafb02c78286a6a04a116b7a1d5d0f21ca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
/* reduce argument to range +/- PI */
#include <math.h>
#include "projects.h"
double adjlon (double lon) {
/* Let lon slightly overshoot, to avoid spurious sign switching at the date line */
if (fabs (lon) < M_PI + 1e-12)
return lon;
/* adjust to 0..2pi range */
lon += M_PI;
/* remove integral # of 'revolutions'*/
lon -= M_TWOPI * floor(lon / M_TWOPI);
/* adjust back to -pi..pi range */
lon -= M_PI;
return lon;
}
|