# 24 days of Rust - the glorious tau

τ (tau) is one of the most important mathematical constants (if not the most important), relating circle's circumference to it's radius. See the tau manifesto for the long explanation if you're still an unbeliever. Can we use it in Rust? Of course, there's a crate for that!

Let's see this amazing number in full glory:

```extern crate tau;

fn main() {
println!("τ = {}", tau::TAU);
}
```
```\$ cargo run
τ = 6.283185
```

We can do all sorts of important calculations with τ, just look:

```extern crate num;

use std::num::FloatMath;
use num::complex::{Complex, Complex64};

println!("circle circumference = τ * r = {}", tau::TAU * radius);
let c: Complex64 = Complex::from_polar(&1.0, &tau::TAU);
println!("Euler's identity: exp(i * τ) = {}", c);
println!("Trigonometry: sin(τ) = {}, cos(τ) = {}", tau::TAU.sin(), tau::TAU.cos());
```

And if someone really, I mean really needs to refer to that other mathematical constant, it is (regrettably) possible as well.

```println!("That other constant = {}", tau::TAU / 2.0);
```

Here's the output:

```\$ cargo run
circle circumference = τ * r = 94.24778
Euler's identity: exp(i * τ) = 1-0i
Trigonometry: sin(τ) = -0, cos(τ) = 1
That other constant = 3.141593
```

Code examples in this article were built with rustc 0.13.0-nightly and tau 1.0.0.

The header photo (taken by me) shows Warsaw skyline from the Siekierkowski bridge.