Two and Four Clock Algorithms for Determination of Absolute Velocity

The process of determining absolute velocity begins with observations relative to an inertial frame of reference and relies on clocks so constructed that they will remain synchronized regardless of what motions they are subjected to between synchronization verifications made by bringing the clocks together, not by light signals over distance.

Two Clock Algorithm:

A two clock algorithm for determining absolute velocity is quite simple but holds little promise of high precision. We synchronize two co-located clocks A and B, deploy them to a fixed-length separation and equip them with means to exchange light signals through a vacuum and measure the times TAB light takes from A to B and TBA from B to A. We vary the orientation of the light path until we find the maximum δ/σ = (TAB − TBA)/(TAB + TBA) matching the orientation and magnitude of β = v/c

The fixed-length separation will be l = c⋅σ/2 . The clocks should be brought back together at the end of the procedure to verify maintenance of synchronization.

Four Clock Algorithm:

The four clock algorithm requires four synchronized clocks to be deployed to vertices of a tetrahedron. Because it can be scaled to any size, it has the potential for high precision. Data used are the twelve timings of light signals in each direction between pairs of vertices. The edge lengths of the tetrahedron are measured relative to the inertial frame by the round trip light time σ. Coordinates of the vertices are computed from edge lengths. The solution to be found is the magnitude of β and the cosines of the angles between β and the respective edges of the tetrahedron; this will be independent of the orientation and handedness of the coordinate system.

In order to calculate β (vector with magnitude β = ||β||) we select three edges, (optionally, to minimize rounding error, the edges having the ratio ρ = δ/σ furthest from zero.) We form a 3 by 3 matrix M with each row being a unit vector parallel to a chosen edge. We also form a column vector R with elements equal to ρ for each chosen edge taken in the same order. Multiplying the vector by the inverse of the matrix, M -1 R yields β. The cosines are equal to ρ/β respectively.

The remainder of this document gives (1) the algorithm for finding coordinates of vertices and unit direction vectors of edges from edge lengths, and (2) the derivation of the calculation.

Algorithm for Finding Coordinates of Vertices and Unit Direction Vectors of Edges from Tetrahedron Edge Lengths

We number vertices [1,2,3,4], (optionally, so that ρ will be non-negative when the forward direction is from lower numbered vertex to higher numbered vertex.)

We use pairs of vertices to name edge lengths, σ1,2 = σ2,1, and dihedral angles, ω1,2 = ω2,1.

We use ordered pairs of vertices to name edge vectors U1,2 = -U2,1, unit direction vectors u1,2 = U1,21,2, and angles at the first named vertex with rays to the un-named vertices, thus α1,2 denotes ∠314=∠413.

To find a vertex angle cosine for a triangular face of the tetrahedron use the law of cosines. Example: for the angle α1,2 at vertex 1 of the triangle formed without vertex 2, (that is, ∠314), cos(α1,2) = (σ1,32 + σ1,42 − σ3,42)/(2⋅σ1,3⋅σ1,4)

To find cosine of the dihedral angle ω1,2 at edge σ1,2 we use the first spherical law of cosines (for sides), bearing in mind that the measure of a side of a spherical triangle equals the angle measure of the angle at the center of sphere with rays to the ends of the side. So, for example, taking vertex 1 as center of the sphere, cos(ω1,2) = (cos(α1,2) −cos(α1,3)⋅cos(α1,4))/(sin(α1,3)⋅sin(α1,4))

Position vectors U for the vertices are direction vectors from vertex 1 which is assigned origin of coordinates, U1,1 = (0, 0, 0), with positive x-axis position assigned to vector 2, U1,2 = (σ1,2, 0, 0), and positive y zero z coordinates assigned to vertex 3, U1,3 = (σ1,3⋅cos(α1,4), σ1,3⋅sin(α1,4), 0), and (because handedness does not affect the solution) positive z-coordinate to vertex 4, U1,4 = (σ1,4⋅cos(α1,3), σ1,4⋅sin(α1,3)⋅cos(ω1,2), σ1,4⋅sin(α1,3)⋅sin(ω1,2)). The remaining edge vectors are found by vector subtraction. For example, U2,4 = U1,4U1,2. Find unit direction vectors by dividing edge vectors by edge length, u1,2 = U1,21,2.

Derivation of the Calculation of β

Figure 1 represents the travel, at light-speed c relative to the absolutely fixed points A, B, C, of a signal from the point A to the point B and thence, being reflected, to point C; and the inertial movement of a tetrahedral vertex at velocity v through point A at the moment of the origin of the signal there, to the point C at the moment when the reflected signal reaches C. Because it is specified that light travels at speed c relative to these fixed points, we may suppose that clocks at A, B, C and D are synchronized in accordance with the procedure, prescribed by Einstein, using reflected light signals between pairs of points. Note that we shall not use this procedure to define simultaneity in a moving system. Point D is the fixed point through which the moving vertex passes simultaneous in the fixed system with an edge of the moving tetrahedron coinciding with BD at the moment when the the light signal is reflected at point B. The distance between B and D is d, but corresponding length in the inertial system is ½(ct1 + ct2).


The cosine law and quadratic formula yield solutions for t1 and t2 in the triangles ADB and CDB respectively. First, t1 from triangle ADB in equations (1) through (3): 

`*`(`^`(c, 2), `*`(`^`(t[1], 2))) = `+`(`*`(`^`(v, 2), `*`(`^`(t[1], 2))), `*`(`^`(d, 2)), `*`(2, `*`(v, `*`(t[1], `*`(cos(phi)))))) (1)

`+`(`*`(`+`(`*`(`^`(v, 2)), `-`(`*`(`^`(c, 2)))), `*`(`^`(t[1], 2))), `*`(2, `*`(v, `*`(d, `*`(cos(phi), `*`(t[1]))))), `*`(`^`(d, 2))) = 0 (2)

t[1] = `/`(`*`(d, `*`(`+`(`/`(`*`(v, `*`(cos(phi))), `*`(c)), `*`(`^`(`+`(1, `-`(`/`(`*`(`^`(v, 2), `*`(`^`(sin(phi), 2))), `*`(`^`(c, 2))))), `/`(1, 2)))))), `*`(c, `*`(`+`(1, `-`(`/`(`*`(`^`(v, 2)),... (3)

Then, t2 from triangle CDB in equations (4) through (6): 

`*`(`^`(c, 2), `*`(`^`(t[2], 2))) = `+`(`*`(`^`(v, 2), `*`(`^`(t[2], 2))), `*`(`^`(d, 2)), `-`(`*`(2, `*`(v, `*`(t[2], `*`(d, `*`(cos()))))))) (4)

`+`(`*`(`+`(`*`(`^`(v, 2)), `-`(`*`(`^`(c, 2)))), `*`(`^`(t[2], 2))), `*`(2, `*`(v, `*`(d, `*`(cos(phi), `*`(t[1]))))), `*`(`^`(d, 2))) = 0 (5)

t[2] = `/`(`*`(d, `*`(`+`(`-`(`/`(`*`(v, `*`(cos(phi))), `*`(c))), `*`(`^`(`+`(1, `-`(`/`(`*`(`^`(v, 2), `*`(`^`(sin(phi), 2))), `*`(`^`(c, 2))))), `/`(1, 2)))))), `*`(c, `*`(`+`(1, `-`(`/`(`*`(`^`(v,... (6)

From these values of t1 and t2, with the substitution of β for v/c, we find ρ for the tetrahedron edge.

`/`(`*`(v, `*`(cos(phi))), `*`(c, `*`(`^`(`+`(1, `-`(`/`(`*`(`^`(v, 2), `*`(`^`(sin(phi), 2))), `*`(`^`(c, 2))))), `/`(1, 2))))) (7)

Applying the following transformations of sines and cosines to the inertial frame values,

`/`(`*`(v, `*`(cos(phi))), `*`(c, `*`(`^`(`+`(1, `-`(`/`(`*`(`^`(v, 2), `*`(`^`(sin(phi), 2))), `*`(`^`(c, 2))))), `/`(1, 2))))) (7)

`+`(`/`(`*`(2, `*`(d)), `*`(`+`(t[1], t[2])))) = `/`(`*`(c, `*`(`+`(1, `-`(`/`(`*`(`^`(v, 2)), `*`(`^`(c, 2))))))), `*`(`^`(`+`(1, `-`(`/`(`*`(`^`(v, 2), `*`(`^`(sin(phi), 2))), `*`(`^`(c, 2))))), `/`... (7)

we obtain ρ = β⋅cos(φβ) = βu. The matrix equation M -1 R = β solves the system of equations ρ = βu for β.

Table of Contents