A plugin for Nushell, a cross-platform shell and scripting language. This plugin adds support for vector operations.
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 pluginManual 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 pluginThe 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.
# Vanilla Nushell
$vec1 | zip $vec2 | each { |pair| ($pair | first) + ($pair | last) }
# Nushell + nu_plugin_vec
$vec1 | vec add $vec2
# Vanilla Nushell
$vec1 | zip $vec2 | each { |pair| ($pair | first) * ($pair | last) } | math sum
# Nushell + nu_plugin_vec
$vec1 | vec dot $vec2
# 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
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.