This repository has been archived on 2025-08-04. You can view files and clone it, but cannot push or open issues or pull requests.
rhaj/rhai_engine/rhaibook/lib/rhai-sci.md
2025-04-03 09:18:05 +02:00

2.4 KiB

rhai-sci: Functions for Scientific Computing

{{#include ../links.md}}

rhai-sci is an independent Rhai [package] that provides functions useful for scientific computing, inspired by languages like MATLAB, Octave, and R.


See [https://docs.rs/rhai-sci](https://docs.rs/rhai-sci#api) for the list of functions.

On crates.io: rhai-sci

On GitHub: rhaiscript/rhai-sci

Package name: SciPackage

Dependency

Cargo.toml:

[dependencies]
rhai = "{{version}}"
rhai-sci = "0.1"       # use rhai-sci crate

Features

Feature Description Default?
metadata enables [functions metadata] (turns on [metadata] in Rhai); necessary for running doc-tests no
io enables the read_matrix function but pulls in several additional dependencies yes
nalgebra enables the functions regress, inv, mtimes, horzcat, vertcat, and repmat but pulls in nalgebra and linregress. yes
rand enables the rand function for generating random values and random matrices, but pulls in rand. yes

Load Package into [Engine]

use rhai::Engine;
use rhai::packages::Package;    // needed for 'Package' trait
use rhai_sci::SciPackage;

let mut engine = Engine::new();

// Create new 'SciPackage' instance
let sci = SciPackage::new();

// Load the package into the [`Engine`]
sci.register_into_engine(&mut engine);