Paparazzi UAS  v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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

#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.

#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.

#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); \
}
#define CI(v)
#define VECT2_SMUL(_vo, _vi, _s)
Definition: pprz_algebra.h:98
#define CExp(v)
#define VECT2_SUB(_a, _b)
Definition: pprz_algebra.h:80

Definition at line 262 of file pprz_geodetic_double.c.

Referenced by lla_of_utm_d(), and utm_of_lla_d().

Function Documentation

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

Definition at line 233 of file pprz_geodetic_double.c.

Referenced by lla_of_utm_d().

+ Here is the caller graph for this function:

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:

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: