Paparazzi UAS  v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
pprz_geodetic_double.c File Reference

Paparazzi double-precision floating point math for geodetic calculations. More...

#include "pprz_geodetic_double.h"
#include <math.h>
#include "std.h"
#include "math/pprz_geodetic_utm.h"
+ Include dependency graph for pprz_geodetic_double.c:

Go to the source code of this file.

Macros

#define CI(v)
 
#define CExp(v)
 
#define CSin(v)
 

Functions

void ltp_def_from_ecef_d (struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void ltp_def_from_lla_d (struct LtpDef_d *def, struct LlaCoor_d *lla)
 
void lla_of_ecef_d (struct LlaCoor_d *lla, struct EcefCoor_d *ecef)
 
void ecef_of_lla_d (struct EcefCoor_d *ecef, struct LlaCoor_d *lla)
 
void enu_of_ecef_point_d (struct EnuCoor_d *enu, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void ned_of_ecef_point_d (struct NedCoor_d *ned, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void enu_of_ecef_vect_d (struct EnuCoor_d *enu, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void ned_of_ecef_vect_d (struct NedCoor_d *ned, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void ecef_of_enu_point_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct EnuCoor_d *enu)
 
void ecef_of_ned_point_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct NedCoor_d *ned)
 
void ecef_of_enu_vect_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct EnuCoor_d *enu)
 
void ecef_of_ned_vect_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct NedCoor_d *ned)
 
void enu_of_lla_point_d (struct EnuCoor_d *enu, struct LtpDef_d *def, struct LlaCoor_d *lla)
 
void ned_of_lla_point_d (struct NedCoor_d *ned, struct LtpDef_d *def, struct LlaCoor_d *lla)
 
double gc_of_gd_lat_d (double gd_lat, double hmsl)
 
static double isometric_latitude_d (double phi, double e)
 
static double isometric_latitude_fast_d (double phi)
 
static double inverse_isometric_latitude_d (double lat, double e, double epsilon)
 
void utm_of_lla_d (struct UtmCoor_d *utm, struct LlaCoor_d *lla)
 
void lla_of_utm_d (struct LlaCoor_d *lla, struct UtmCoor_d *utm)
 

Detailed Description

Paparazzi double-precision floating point math for geodetic calculations.

Definition in file pprz_geodetic_double.c.

Macro Definition Documentation

◆ CExp

#define CExp (   v)
Value:
{ \
double e = exp(v.x);\
v.x = e*cos(v.y); \
v.y = e*sin(v.y); \
}

Definition at line 256 of file pprz_geodetic_double.c.

◆ CI

#define CI (   v)
Value:
{ \
double tmp = v.x; \
v.x = -v.y; \
v.y = tmp; \
}

Definition at line 250 of file pprz_geodetic_double.c.

◆ CSin

#define CSin (   v)
Value:
{ \
CI(v); \
struct DoubleVect2 vstar = {-v.x, -v.y}; \
CExp(v); \
CExp(vstar); \
VECT2_SUB(v, vstar);\
VECT2_SMUL(v, v, -0.5); \
CI(v); \
}

Definition at line 262 of file pprz_geodetic_double.c.

Function Documentation

◆ inverse_isometric_latitude_d()

static double inverse_isometric_latitude_d ( double  lat,
double  e,
double  epsilon 
)
inlinestatic

Definition at line 233 of file pprz_geodetic_double.c.

References epsilon.

Referenced by lla_of_utm_d().

+ Here is the caller graph for this function:

◆ isometric_latitude_d()

static double isometric_latitude_d ( double  phi,
double  e 
)
inlinestatic

Definition at line 223 of file pprz_geodetic_double.c.

Referenced by utm_of_lla_d().

+ Here is the caller graph for this function:

◆ isometric_latitude_fast_d()

static double isometric_latitude_fast_d ( double  phi)
inlinestatic

Definition at line 228 of file pprz_geodetic_double.c.

Referenced by lla_of_utm_d(), and utm_of_lla_d().

+ Here is the caller graph for this function:
DoubleVect2
Definition: pprz_algebra_double.h:41
DoubleVect2::x
double x
Definition: pprz_algebra_double.h:42