1 个不稳定版本

新增 0.1.0 2024 年 8 月 21 日

#26魔法豆

Download history 86/week @ 2024-08-16

86 每月下载量

MIT 许可证

16KB
284

魔法曲线

魔法曲线 是一个 Rust 库,提供了一套用于处理各种债券曲线的工具。这包括线性、二次、指数、对数和 S 形债券曲线的实现。

描述

魔法曲线是为需要精确曲线计算的应用设计的,在金融、经济学和各个科学领域都很有用。该库支持浮点数和定点数算术,以在关键应用中实现高精度。

安装

将此添加到您的 Cargo.toml

[dependencies]
magic-curves = "0.1.0"

然后,使用以下命令构建您的项目

cargo build

用法

以下是使用 magic_curves 库提供的不同债券曲线的示例

线性债券曲线

use magic_curves::core::linear::LinearBondingCurve;

fn main() {
    let linear = 500_000_000u128;
    let base = 1_000_000_000u128;
    let curve = LinearBondingCurve::new(linear, base);

    let price = curve.calculate_price(0);
    println!("Price at supply 0: {}", price);  // Outputs base price

    let price = curve.calculate_price(1);
    println!("Price at supply 1: {}", price);  // Outputs increased price
}

指数债券曲线

use magic_curves::ExponentialBondingCurve;

fn main() {
    let curve = ExponentialBondingCurve::new(0.01, 0.02);
    let price = curve.calculate_price_lossy(100);
    println!("Price at supply 100: {}", price);
}

对数债券曲线

use magic_curves::LogarithmicBondingCurve;

fn main() {
    let curve = LogarithmicBondingCurve::new(0.01, 0.02);
    let price = curve.calculate_price_lossy(100);
    println!("Price at supply 100: {}", price);
}

二次债券曲线

use magic_curves::QuadraticBondingCurve;

fn main() {
    let curve = QuadraticBondingCurve::new(10_000_000, 500_000_000, 1_000_000_000);
    let price = curve.calculate_price(1);
    println!("Price at supply 1: {}", price);  // Example price calculation
}

S 形债券曲线

use magic_curves::SigmoidBondingCurve;

fn main() {
    let curve = SigmoidBondingCurve::new(100.0, 0.01, 500);
    let price = curve.calculate_price_lossy(480);
    println!("Price at supply 480: {}", price);
}

贡献

欢迎贡献!请参阅 CONTRIBUTING.md 了解更多详细信息。

许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE.md 文件。

依赖

~155KB