https://github.com/bigbuildbench/aftix_bacon
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (7.4%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: BigBuildBench
- License: mit
- Language: Rust
- Default Branch: master
- Size: 390 KB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Scientific Computing in Rust
Features
- Initial value problem solving
- Root finding algorithms
- Polynomials
- Polynomial Interpolation
- Scientific Constants
- Special functions/polynomials
- Numeric quadrature
- Numeric differentiation
Explanations of the features can be found here.
Initial Value Problems
There are two adaptive Runge-Kutta methods, two
Adams predictor-correctors, and two adaptive Backwards Differentiation
Formulas implemented. The interface to all of the solvers is the same.
As an example, this code solves y' = y using the Runge-Kutta-Fehlberg
method.
```rust use bacon_sci::ivp::{RK45, RungeKuttaSolver}; use nalgebra::SVector;
fn deriv(t: f64, y: &[f64], _params: &mut ()) -> Result
fn solve() -> Result<(), String> { let solver = RK45::new() .withdtmin(0.01)? .withdtmax(0.1)? .withtolerance(1e-4)? .withinitialconditions(&[1.0])? .withstart(0.0)? .withend(10.0)? .build(); let _solution = solver.solveivp(deriv, &mut ())?; Ok(()) } ```
There is also a solve_ivp function in bacon_sci::ivp that tries a fifth-order
predictor-corrector followed by the Runge-Kutta-Fehlberg method followed by
BDF6.
Root Finding Algorithms
bacon_sci::roots implements the bisection method, Newton's method,
the secant method, Newton's method for polynomials, and Müller's method
for polynomials.
As an example, the following code snippet finds the root of x^3 using
initial guesses of 0.1 and -0.1.
```rust use bacon_sci::roots::secant; use nalgebra::SVector;
fn cubic(x: &[f64]) -> SVector
fn solve() -> f64 { secant((&[-0.1], &[0.1]), cubic, 0.001, 1000).unwrap() } ```
Polynomials and Polynomial Interpolation
bacon_sci::polynomial implements a polynomial struct. bacon_sci::interp implements
Lagrange interpolation, Hermite interpolation, and cubic spline interpolation.
Scientific Constants
Several scientific constants are defined in bacon_sci::constants. The data
comes from NIST. The 2018 CODATA complete listing is available as a hashmap.
Special Functions and Polynomials
Currently, bacon_sci::special allows you to get Legendre polynomials, Hermite polynomials,
Laguerre polynomials, and Chebyshev polynomials.
Numeric Differentiation and Quadrature
bacon_sci::differentiate allows first- and second-derivative evaluation numerically.
bacon_sci::integrate implements Tanh-Sinh quadrature, adaptive Simpson's rule,
Romberg integration, and several adaptive Gaussian integration schemes.
Owner
- Name: BigBuildBench
- Login: BigBuildBench
- Kind: organization
- Repositories: 1
- Profile: https://github.com/BigBuildBench
abbr. B3, benchmarking the repo-level understanding capability of your LLMs by reconstructing project build-file.
GitHub Events
Total
- Create event: 4
Last Year
- Create event: 4
Dependencies
- alexwilson/enable-github-automerge-action main composite
- actions/checkout v4 composite
- clechasseur/rs-cargo v2 composite
- obi1kenobi/cargo-semver-checks-action v2 composite
- Swatinem/rust-cache v2 composite
- actions/checkout v4 composite
- auguwu/clippy-action 1.3.0 composite
- baptiste0928/cargo-install v3 composite
- clechasseur/rs-cargo v2 composite
- dtolnay/rust-toolchain stable composite
- actions/checkout v2 composite
- actions/setup-python v4 composite
- float-cmp 0.9 development
- rand 0.8 development