d.smali
.class public Lx5/d;
.super Ljava/lang/Object;
.source "SphericalUtil.java"
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public static a(DDDD)D
.registers 14
sub-double v4, p2, p6
move-wide v0, p0
move-wide v2, p4
invoke-static/range {v0 .. v5}, Lx5/a;->a(DDD)D
move-result-wide p0
invoke-static {p0, p1}, Lx5/a;->a(D)D
move-result-wide p0
return-wide p0
.end method
.method public static a(Lcom/google/android/gms/maps/model/LatLng;Lcom/google/android/gms/maps/model/LatLng;)D
.registers 12
iget-wide v0, p0, Lcom/google/android/gms/maps/model/LatLng;->latitude:D
invoke-static {v0, v1}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v2
iget-wide v0, p0, Lcom/google/android/gms/maps/model/LatLng;->longitude:D
invoke-static {v0, v1}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v4
iget-wide v0, p1, Lcom/google/android/gms/maps/model/LatLng;->latitude:D
invoke-static {v0, v1}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v6
iget-wide p0, p1, Lcom/google/android/gms/maps/model/LatLng;->longitude:D
invoke-static {p0, p1}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v8
invoke-static/range {v2 .. v9}, Lx5/d;->a(DDDD)D
move-result-wide p0
return-wide p0
.end method
.method public static a(Lcom/google/android/gms/maps/model/LatLng;DD)Lcom/google/android/gms/maps/model/LatLng;
.registers 15
const-wide v0, 0x41584db040000000L # 6371009.0
div-double/2addr p1, v0
invoke-static {p3, p4}, Ljava/lang/Math;->toRadians(D)D
move-result-wide p3
iget-wide v0, p0, Lcom/google/android/gms/maps/model/LatLng;->latitude:D
invoke-static {v0, v1}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v0
iget-wide v2, p0, Lcom/google/android/gms/maps/model/LatLng;->longitude:D
invoke-static {v2, v3}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v2
invoke-static {p1, p2}, Ljava/lang/Math;->cos(D)D
move-result-wide v4
invoke-static {p1, p2}, Ljava/lang/Math;->sin(D)D
move-result-wide p0
invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D
move-result-wide v6
invoke-static {v0, v1}, Ljava/lang/Math;->cos(D)D
move-result-wide v0
mul-double v8, v4, v6
mul-double p0, p0, v0
invoke-static {p3, p4}, Ljava/lang/Math;->cos(D)D
move-result-wide v0
mul-double v0, v0, p0
add-double/2addr v8, v0
invoke-static {p3, p4}, Ljava/lang/Math;->sin(D)D
move-result-wide p2
mul-double p0, p0, p2
mul-double v6, v6, v8
sub-double/2addr v4, v6
invoke-static {p0, p1, v4, v5}, Ljava/lang/Math;->atan2(DD)D
move-result-wide p0
new-instance p2, Lcom/google/android/gms/maps/model/LatLng;
invoke-static {v8, v9}, Ljava/lang/Math;->asin(D)D
move-result-wide p3
invoke-static {p3, p4}, Ljava/lang/Math;->toDegrees(D)D
move-result-wide p3
add-double/2addr v2, p0
invoke-static {v2, v3}, Ljava/lang/Math;->toDegrees(D)D
move-result-wide p0
invoke-direct {p2, p3, p4, p0, p1}, Lcom/google/android/gms/maps/model/LatLng;-><init>(DD)V
return-object p2
.end method
.method public static a(Lcom/google/android/gms/maps/model/LatLng;Lcom/google/android/gms/maps/model/LatLng;D)Lcom/google/android/gms/maps/model/LatLng;
.registers 24
move-object/from16 v0, p0
move-object/from16 v1, p1
iget-wide v2, v0, Lcom/google/android/gms/maps/model/LatLng;->latitude:D
invoke-static {v2, v3}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v2
iget-wide v4, v0, Lcom/google/android/gms/maps/model/LatLng;->longitude:D
invoke-static {v4, v5}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v4
iget-wide v6, v1, Lcom/google/android/gms/maps/model/LatLng;->latitude:D
invoke-static {v6, v7}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v6
iget-wide v8, v1, Lcom/google/android/gms/maps/model/LatLng;->longitude:D
invoke-static {v8, v9}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v8
invoke-static {v2, v3}, Ljava/lang/Math;->cos(D)D
move-result-wide v10
invoke-static {v6, v7}, Ljava/lang/Math;->cos(D)D
move-result-wide v12
invoke-static/range {p0 .. p1}, Lx5/d;->a(Lcom/google/android/gms/maps/model/LatLng;Lcom/google/android/gms/maps/model/LatLng;)D
move-result-wide v14
invoke-static {v14, v15}, Ljava/lang/Math;->sin(D)D
move-result-wide v16
const-wide v18, 0x3eb0c6f7a0b5ed8dL # 1.0E-6
cmpg-double v1, v16, v18
if-gez v1, :cond_36
return-object v0
:cond_36
const-wide/high16 v0, 0x3ff0000000000000L # 1.0
sub-double v0, v0, p2
mul-double v0, v0, v14
invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D
move-result-wide v0
div-double v0, v0, v16
mul-double v14, v14, p2
invoke-static {v14, v15}, Ljava/lang/Math;->sin(D)D
move-result-wide v14
div-double v14, v14, v16
mul-double v10, v10, v0
invoke-static {v4, v5}, Ljava/lang/Math;->cos(D)D
move-result-wide v16
mul-double v16, v16, v10
mul-double v12, v12, v14
invoke-static {v8, v9}, Ljava/lang/Math;->cos(D)D
move-result-wide v18
mul-double v18, v18, v12
move-wide/from16 p0, v14
add-double v14, v16, v18
invoke-static {v4, v5}, Ljava/lang/Math;->sin(D)D
move-result-wide v4
mul-double v10, v10, v4
invoke-static {v8, v9}, Ljava/lang/Math;->sin(D)D
move-result-wide v4
mul-double v12, v12, v4
add-double/2addr v10, v12
invoke-static {v2, v3}, Ljava/lang/Math;->sin(D)D
move-result-wide v2
mul-double v0, v0, v2
invoke-static {v6, v7}, Ljava/lang/Math;->sin(D)D
move-result-wide v2
mul-double v2, v2, p0
add-double/2addr v0, v2
mul-double v2, v14, v14
mul-double v4, v10, v10
add-double/2addr v2, v4
invoke-static {v2, v3}, Ljava/lang/Math;->sqrt(D)D
move-result-wide v2
invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->atan2(DD)D
move-result-wide v0
invoke-static {v10, v11, v14, v15}, Ljava/lang/Math;->atan2(DD)D
move-result-wide v2
new-instance v4, Lcom/google/android/gms/maps/model/LatLng;
invoke-static {v0, v1}, Ljava/lang/Math;->toDegrees(D)D
move-result-wide v0
invoke-static {v2, v3}, Ljava/lang/Math;->toDegrees(D)D
move-result-wide v2
invoke-direct {v4, v0, v1, v2, v3}, Lcom/google/android/gms/maps/model/LatLng;-><init>(DD)V
return-object v4
.end method