From 2aa6e4baaf7eae969fc9f89c34d8384b345f57a0 Mon Sep 17 00:00:00 2001 From: Priya Sundaram Date: Fri, 28 Aug 2026 10:29:56 +0000 Subject: [PATCH] Fix in_static_equilibrium for NumPy 2.x (2-D cross removed) --- physics/in_static_equilibrium.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/physics/in_static_equilibrium.py b/physics/in_static_equilibrium.py index fb5a9b5fff66..91c8715a3bb2 100644 --- a/physics/in_static_equilibrium.py +++ b/physics/in_static_equilibrium.py @@ -4,7 +4,7 @@ from __future__ import annotations -from numpy import array, cos, cross, float64, radians, sin +from numpy import array, cos, float64, radians, sin from numpy.typing import NDArray @@ -51,7 +51,11 @@ def in_static_equilibrium( False """ # summation of moments is zero - moments: NDArray[float64] = cross(location, forces) + # NumPy 2.x removed the 2-D cross product, so compute the scalar + # (z-axis) moment for each row directly: x_i * Fy_i - y_i * Fx_i. + moments: NDArray[float64] = ( + location[:, 0] * forces[:, 1] - location[:, 1] * forces[:, 0] + ) sum_moments: float = sum(moments) return bool(abs(sum_moments) < eps)