Spaces:
Paused
Paused
| import numpy as np | |
| import time | |
| def numpy_test(w, h, r): | |
| v, u = np.indices((h, w)) | |
| theta = (u - w / 2.) * 2 * np.pi / w | |
| phi = (v - h / 2.) * np.pi / h | |
| cos_phi = np.cos(phi) | |
| x = cos_phi * np.sin(theta) | |
| y = np.sin(phi) | |
| z = cos_phi * np.cos(theta) | |
| ray = np.dstack((x, y, z)) | |
| ray = ray.reshape(-1, 3).dot(r.T) | |
| ray.shape = (h, w, 3) | |
| x, y, z = np.dsplit(ray, 3) | |
| theta = np.arctan2(x, z) | |
| phi = np.arcsin(y) | |
| u = theta * w / 2 / np.pi + w / 2. | |
| v = phi * h / np.pi + h / 2. | |
| xymap = np.dstack((u, v)).astype(np.float32) | |
| return xymap | |
| def matrix_multiplication(): | |
| for i in range(100): | |
| np.random.random((1000, 1000)) @ np.random.random((1000, 1000)) | |
| if __name__ == "__main__": | |
| w = 3584 | |
| h = int(w / 2) | |
| r = np.array([ | |
| [0.61566148, -0.78369395, 0.08236955], | |
| [0.78801075, 0.61228882, -0.06435415], | |
| [0, 0.10452846, 0.9945219],]) | |
| begin_time = time.time() | |
| # numpy_test(w, h, r) | |
| matrix_multiplication() | |
| print(time.time() - begin_time) |