counting / maths /vectors /vector_dot_product.py
spagestic's picture
feat: update examples in Gradio interfaces for vector operations to improve clarity
fcfbd59
"""
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"]],
)