12 releases (stable)
| 1.1.6 | Jun 11, 2025 |
|---|---|
| 1.1.5 | Mar 22, 2025 |
| 1.1.4 | Feb 5, 2025 |
| 1.1.3 | Dec 24, 2024 |
| 0.2.1 | Oct 12, 2024 |
#5 in #dot-product
690 downloads per month
39KB
992 lines
nu_plugin_vec
A plugin for Nushell, a cross-platform shell and scripting language. This plugin adds support for vector operations.
Installation
Cargo
Get the latest version from crates.io with a local install:
cargo install nu_plugin_vec # Downloads and installs the plugin
plugin add ~/.cargo/bin/nu_plugin_vec # Registers the plugin with Nushell
plugin use vec # Activates the plugin
Manual build
Manual builds can also be used:
git clone https://github.com/PhotonBursted/nu_plugin_vec.git # Clone the repository
cd nu_plugin_vec # Enter the repo folder
cargo build -r # Build a release version of the plugin
plugin add target/release/nu_plugin_vec # Registers the plugin with Nushell
plugin use vec # Activates the plugin
Features
The plugin offers adds some new commands, which aim to make scripting vector-like operations a smoother experience. Below, a few use cases are shown, which outline the difference this plugin makes.
Showcase
Addition and subtraction
# Vanilla Nushell
$vec1 | zip $vec2 | each { |pair| ($pair | first) + ($pair | last) }
# Nushell + nu_plugin_vec
$vec1 | vec add $vec2
Dot product
# Vanilla Nushell
$vec1 | zip $vec2 | each { |pair| ($pair | first) * ($pair | last) } | math sum
# Nushell + nu_plugin_vec
$vec1 | vec dot $vec2
Vector similarity
# Vanilla Nushell
let dot_product = ($vec1 | zip $vec2 | each { |pair| ($pair | first) * ($pair | last) } | math sum)
let magnitude1 = ($vec1 | each { |v| $v * $v } | math sum | math sqrt)
let magnitude2 = ($vec2 | each { |v| $v * $v } | math sum | math sqrt)
$dot_product / ($magnitude1 * $magnitude2)
# Nushell + nu_plugin_vec
$vec1 | vec cos $vec2
Command list
The list of commands currently available is as follows:
vec addandvec subfor addition and subtractionvec cosandvec sinfor angle calculationvec dotfor dot productsvec sqnormandvec magnitudefor length measurementsvec normalizefor conversions into unit vectors
For more information, invoke help <command> in your Nushell session.
Dependencies
~25–59MB
~1M SLoC