From 5476a20fc4c8dab6450cf2c4592ec92db886ef10 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 20 May 2022 11:20:35 -0600 Subject: [PATCH] temporal: fix conditional when deciding which log expression to use inside ::superclock_at() --- libs/temporal/tempo.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libs/temporal/tempo.cc b/libs/temporal/tempo.cc index a98f7e82dc..aca4b9c138 100644 --- a/libs/temporal/tempo.cc +++ b/libs/temporal/tempo.cc @@ -503,11 +503,12 @@ TempoPoint::superclock_at (Temporal::Beats const & qn) const } superclock_t r; + const double log_expr = superclocks_per_quarter_note() * _omega * DoubleableBeats (qn - _quarters).to_double(); - if (_omega < -1) { - r = _sclock + llrint (log (-(superclocks_per_quarter_note() * _omega * DoubleableBeats (qn - _quarters).to_double()) - 1.0) / -_omega); + if (log_expr < -1) { + r = _sclock + llrint (log (-log_expr - 1.0) / -_omega); } else { - r = _sclock + llrint (log1p (superclocks_per_quarter_note() * _omega * DoubleableBeats (qn - _quarters).to_double()) / _omega); + r = _sclock + llrint (log1p (log_expr) / _omega); } if (r < 0) {