Skip to content

High precision atan etc, pow optimization for big values#375

Open
Safari77 wants to merge 1 commit intoprintfn:mainfrom
Safari77:hi_pi_pow_rebase
Open

High precision atan etc, pow optimization for big values#375
Safari77 wants to merge 1 commit intoprintfn:mainfrom
Safari77:hi_pi_pow_rebase

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