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
- Use 2–100 rows and at most 20,000 UTF-16 code units, including spaces and line endings.
- Each row has exactly two integers separated by one comma. Periods are 1–1,000,000,000. Phases are −1,000,000,000,000 through 1,000,000,000,000.
- ASCII spaces and tabs around the fields are accepted. Leading zeroes are accepted. A minus sign is accepted only for a phase. Plus signs, decimals, exponents, thousands separators, units, headers and quotes are rejected.
- LF and CRLF line endings are accepted, with optional final line terminators. Interior empty or whitespace-only rows are rejected. A lone carriage return and a byte-order-mark character in the input are rejected.
- Every row is parsed before solving. A later malformed row is an input error even if an earlier subset would already be incompatible.
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.