Skip to content

Conversation

@Safari77
Copy link
Contributor

@Safari77 Safari77 commented Jan 1, 2026

same as #374 but rebased to main and has pow optimization (precision 200 digits) and also Dynamic precision for {sin,cos,atan}_series, inv trigs accurate up to 10e369. Let me know if you want to keep pow like it is now.

Configurable values for the algorithm change can be modified here:
bigrat.rs

// Use exp/ln approximation if:
// 1. The denominator is large (e.g. ^0.0001), indicating a complex decimal root.
// 2. The numerator is large AND it's a root (e.g. ^210.1 = ^2101/10).
let large_root = rhs.den > BigUint::from(1000u64);
let large_power = rhs.den > BigUint::from(1u64) && rhs.num > BigUint::from(100u64);

Configurable values for the algorithm change can be modified here:
bigrat.rs
// Use exp/ln approximation if:
// 1. The denominator is large (e.g. ^0.0001), indicating a complex decimal root.
// 2. The numerator is large AND it's a root (e.g. ^210.1 = ^2101/10).
let large_root = rhs.den > BigUint::from(1000u64);
let large_power = rhs.den > BigUint::from(1u64) && rhs.num > BigUint::from(100u64);

Also Dynamic precision for {sin,cos,atan}_series, inv trigs accurate up to 10e369
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant