# Trait nalgebra::Real[−]

```pub trait Real: 'static + Lattice + SubsetOf<Self> + SupersetOf<f64> + Field<Output = Self> + Send + Copy + Sync + Neg + AddAssign<Self> + SubAssign<Self> + MulAssign<Self> + DivAssign<Self> + PartialEq<Self> + Any + Debug + Display + RelativeEq<Epsilon = Self, Epsilon = Self> + UlpsEq + Signed + Bounded + FromPrimitive + Num {
fn floor(self) -> Self;
fn ceil(self) -> Self;
fn round(self) -> Self;
fn trunc(self) -> Self;
fn fract(self) -> Self;
fn abs(self) -> Self;
fn signum(self) -> Self;
fn is_sign_positive(self) -> bool;
fn is_sign_negative(self) -> bool;
fn mul_add(self, a: Self, b: Self) -> Self;
fn recip(self) -> Self;
fn powi(self, n: i32) -> Self;
fn powf(self, n: Self) -> Self;
fn sqrt(self) -> Self;
fn exp(self) -> Self;
fn exp2(self) -> Self;
fn ln(self) -> Self;
fn log(self, base: Self) -> Self;
fn log2(self) -> Self;
fn log10(self) -> Self;
fn max(self, other: Self) -> Self;
fn min(self, other: Self) -> Self;
fn cbrt(self) -> Self;
fn hypot(self, other: Self) -> Self;
fn sin(self) -> Self;
fn cos(self) -> Self;
fn tan(self) -> Self;
fn asin(self) -> Self;
fn acos(self) -> Self;
fn atan(self) -> Self;
fn atan2(self, other: Self) -> Self;
fn sin_cos(self) -> (Self, Self);
fn exp_m1(self) -> Self;
fn ln_1p(self) -> Self;
fn sinh(self) -> Self;
fn cosh(self) -> Self;
fn tanh(self) -> Self;
fn asinh(self) -> Self;
fn acosh(self) -> Self;
fn atanh(self) -> Self;
fn pi() -> Self;
fn two_pi() -> Self;
fn frac_pi_2() -> Self;
fn frac_pi_3() -> Self;
fn frac_pi_4() -> Self;
fn frac_pi_6() -> Self;
fn frac_pi_8() -> Self;
fn frac_1_pi() -> Self;
fn frac_2_pi() -> Self;
fn frac_2_sqrt_pi() -> Self;
fn e() -> Self;
fn log2_e() -> Self;
fn log10_e() -> Self;
fn ln_2() -> Self;
fn ln_10() -> Self;
}```

Trait shared by all reals.

Reals are equipped with functions that are commonly used on reals. The results of those functions only have to be approximately equal to the actual theoretical values.

## Implementations on Foreign Types

### `impl Real for f32`

#### `fn pi() -> f32`

Archimedes' constant.

2.0 * pi.

pi / 2.0.

pi / 3.0.

pi / 4.0.

pi / 6.0.

pi / 8.0.

1.0 / pi.

2.0 / pi.

2.0 / sqrt(pi).

Euler's number.

log2(e).

log10(e).

ln(2.0).

ln(10.0).

### `impl Real for f64`

#### `fn pi() -> f64`

Archimedes' constant.

2.0 * pi.

pi / 2.0.

pi / 3.0.

pi / 4.0.

pi / 6.0.

pi / 8.0.

1.0 / pi.

2.0 / pi.

2.0 / sqrt(pi).

Euler's number.

log2(e).

log10(e).

ln(2.0).

ln(10.0).