diff options
Diffstat (limited to '')
-rw-r--r-- | libtellurian_end_point_radians.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/libtellurian_end_point_radians.c b/libtellurian_end_point_radians.c index 79e759f..c512b59 100644 --- a/libtellurian_end_point_radians.c +++ b/libtellurian_end_point_radians.c @@ -1,5 +1,6 @@ /* See LICENSE file for copyright and license details. */ #include "common.h" +#ifndef TEST /* TODO complete the implementation */ @@ -55,17 +56,18 @@ libtellurian_end_point_radians(double latitude1, double longitude1, double azimu /* } repeat until sigma converges */ - if (latitude2_out || azimuth2_out) + if (latitude2_out || azimuth2_out) { x0 = fma(cos_sigma * cos_alpha1, cos_u1, -sin_u1 * sin_alpha); - if (latitude2_out) { - y = fma(sin_sigma * cos_alpha1, cos_u1, sin_u1 * cos_sigma); - x = sqrt(fma(sin_alpha, sin_alpha, x0 * x0)) * c; - *latitude2_out = atan2(y, x); - } + if (latitude2_out) { + y = fma(sin_sigma * cos_alpha1, cos_u1, sin_u1 * cos_sigma); + x = sqrt(fma(sin_alpha, sin_alpha, x0 * x0)) * c; + *latitude2_out = atan2(y, x); + } - if (azimuth2_out) - *azimuth2_out = atan2(sin_alpha, x0); + if (azimuth2_out) + *azimuth2_out = atan2(sin_alpha, x0); + } if (longitude2_out) { C = fma(fma(-0.75, cos2_alpha, 1.0), f, 1.0) * cos2_alpha * f / 4.0; @@ -77,3 +79,8 @@ libtellurian_end_point_radians(double latitude1, double longitude1, double azimu *longitude2_out = longitude1 + L; } } + + +#else +TODO_TEST +#endif |