From ca09b0fbfe37f8cce391259bff6e2d2892127756 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 10 Mar 2021 17:21:32 +0530 Subject: Do not concatenate numpy arrays. * contrib/cone-vector.py: Import empty. Don't import concatenate. (random_vector_on_spherical_cap): Build random vector without concatenation. --- contrib/cone-vector.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/contrib/cone-vector.py b/contrib/cone-vector.py index 16d1dfa..6526817 100644 --- a/contrib/cone-vector.py +++ b/contrib/cone-vector.py @@ -16,7 +16,7 @@ # along with this program. If not, see # . -from numpy import arcsin, concatenate, cos, dot, ones, sin, sqrt, tan, pi +from numpy import arcsin, cos, dot, empty, ones, sin, sqrt, tan, pi from numpy.random import randn, random from numpy.linalg import norm from scipy.special import betainc, betaincinv, gamma @@ -58,10 +58,11 @@ def rotate_from_nth_canonical (x, axis): def random_vector_on_spherical_cap (axis, maximum_planar_angle): dim = axis.size maximum_solid_angle_fraction = planar_angle2solid_angle_fraction(maximum_planar_angle, dim) - x = random_vector_on_sphere(dim - 1) \ + x = empty(dim) + x[:-1] = random_vector_on_sphere(dim - 1) \ * cos(maximum_planar_angle) \ * tan(solid_angle_fraction2planar_angle(maximum_solid_angle_fraction*random(), dim)) - x = concatenate([x, [cos(maximum_planar_angle)]]) + x[-1] = cos(maximum_planar_angle) return rotate_from_nth_canonical(x / norm(x), axis) # Sample code exercising the above functions -- cgit v1.2.3