""" Compute the dot product of two vectors of the same dimension using NumPy. """ import numpy as np from typing import List, Union import gradio as gr from maths.vectors.utils import parse_vector, format_output Vector = Union[List[float], np.ndarray] def vector_dot_product(vector1: Vector, vector2: Vector) -> float: v1 = np.array(vector1) v2 = np.array(vector2) if v1.shape != v2.shape: raise ValueError("Vectors must have the same dimensions for dot product.") return np.dot(v1, v2) vector_dot_product_interface = gr.Interface( fn=lambda v1_str, v2_str: format_output(vector_dot_product(parse_vector(v1_str), parse_vector(v2_str))), inputs=[ gr.Textbox(label="Vector 1", placeholder="e.g., [1,2,3]"), gr.Textbox(label="Vector 2", placeholder="e.g., [4,5,6]") ], outputs=gr.Textbox(label="Dot Product (Scalar)"), title="Vector Dot Product", description="Calculates the dot product of two vectors of the same dimension.\n\nExample:\nInput: [1,2,3] and [4,5,6]\nOutput: 32.0", examples=[["[1,2,3]", "[4,5,6]"], ["1,2,3", "4,5,6"]], )