canonicalization works with QR and LQ