// Q, R = gs.linalg.qr(base_point + tangent_vec)
// TODO: remove cycle, when qr will be vectorized
matrix_q = gs.zeros_like(base_point)
matrix_r = gs.zeros((
base_point.shape[0], base_point.shape[2], base_point.shape[2]))
for i, k in enumerate(base_point + tangent_vec):
matrix_q[i], matrix_r[i] = gs.linalg.qr(k)
After Change
if n_base_points == 1:
base_point = gs.tile(base_point, (n_tangent_vecs, 1, 1))
if n_tangent_vecs == 1:
tangent_vec = gs.tile(tangent_vec, (n_base_points, 1, 1))
n_retractions = gs.maximum(n_base_points, n_tangent_vecs)
// Q, R = gs.linalg.qr(base_point + tangent_vec)
// TODO: remove cycle, when qr will be vectorized
matrix_q = gs.zeros_like(base_point)