https://github.com/edauterman/hsm-impl/blob/66e816ca1900977520e4d34886c488f2c793af29/agent/shamir.cc#L215
It looks like Shamir_ValidateShares and Shamir_ReconstructShares are both doing the expensive polynomial interpolation. Instead, you could interpolate the polynomial once (in Shamir_ReconstructShares) and then pass the coefficients of that polynomial to Shamir_ValidateShares, which could check that all of the shares are point on that polynomial.
https://github.com/edauterman/hsm-impl/blob/66e816ca1900977520e4d34886c488f2c793af29/agent/shamir.cc#L215
It looks like
Shamir_ValidateSharesandShamir_ReconstructSharesare both doing the expensive polynomial interpolation. Instead, you could interpolate the polynomial once (inShamir_ReconstructShares) and then pass the coefficients of that polynomial toShamir_ValidateShares, which could check that all of the shares are point on that polynomial.