Cyclemeet

The method

Periods, phases and one common tick

Cyclemeet solves a system of integer congruences. Each row says that subtracting its phase from a tick must leave an exact multiple of its period.

Choose one tick unit and origin

You supply abstract integer ticks, using the same unit and origin for every row. A cycle with period 5 and phase 2 includes ticks … −3, 2, 7, 12, 17 … . It is ideal and recurring over all integers. The phase is not a start time after which a cycle becomes active. If your real process has a first-ever activation, deadlines or changing periods, this model does not include those restrictions.

Normalize each phase

Only the phase's residue class matters. Cyclemeet displays the entered phase and its unique nonnegative residue from 0 through period − 1. Thus phase −1 with period 3 becomes 2. Phase 11 with period 3 also becomes 2. A period of 1 always normalizes to 0 and places no further restriction on integer ticks.

Merge constraints without rounding

Start with residue r = 0 modulo M = 1. For the next normalized phase a and period p, find g = gcd(M,p) and d = a − r. A common tick exists for this merge exactly when g divides d.

If it does, let p₂ = p/g. For p₂ greater than 1, solve k = (d/g) × inverse(M/g modulo p₂) modulo p₂. The inverse exists because the quotient moduli are coprime. If p₂ is 1, take k = 0. The new repeat is L = M × p₂, and the new residue is the nonnegative remainder of r + M × k modulo L.

Repeat for all rows. The final residue is checked against every entered congruence. BigInt arithmetic keeps all these integers exact even when the combined repeat is much larger than the individual input limits. No tolerance or decimal approximation is used.

Read an incompatibility correctly

A no-alignment result is a valid mathematical outcome, not an invalid-input error. The result identifies the first row that conflicts with the combined earlier constraints and shows their residue, repeat, gcd and difference in the saved notes. The table still includes every entered row. It does not claim the identified row conflicts with every earlier row individually.

Least nonnegative is not always next positive

Compatible answers have the form t = r + kL for every integer k, with 0 ≤ r < L. The four displayed nonnegative ticks use k = 0, 1, 2 and 3. When r = 0, the first shown tick is the origin itself; L is the next strictly positive alignment. This tool does not read a clock or choose a future deadline.

Exact grammar and bounds

Current local exports

Copy, text and JSON describe the current result, including a valid incompatibility. JSON encodes mathematical integers as decimal strings so another reader does not lose precision. Editing immediately clears results, exports and any manual-copy fallback. A clipboard request already sent to the browser cannot be recalled; a late response cannot mark old notes as current or restore an old fallback.

Mathematical references

Ben Lynn's Stanford PBC notes on the Chinese remainder theorem describe the coprime residue-class construction and modular inverses. The non-coprime merge test follows from the accompanying Euclid and Bézout notes: an integer equation has a solution when the gcd divides its right-hand side. Cyclemeet independently tests this generalized implementation. These references provide mathematical context, not a scheduling or cryptographic service.

Try the calculator