File size: 1,107 Bytes
79e637a
 
 
 
 
727d361
 
 
79e637a
 
 
 
 
 
 
 
 
727d361
 
 
 
 
 
 
 
 
c735b62
fcfbd59
727d361
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""
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"]],
)