pub trait Hyperbolic {
    fn sinh(&self) -> Self;
    fn cosh(&self) -> Self;
    fn tanh(&self) -> Self;
    fn coth(&self) -> Self;
    fn sech(&self) -> Self;
    fn csch(&self) -> Self;
    fn arsinh(&self) -> Self;
    fn arcosh(&self) -> Self;
    fn artanh(&self) -> Self;
    fn arcoth(&self) -> Self;
    fn arsech(&self) -> Self;
    fn arcsch(&self) -> Self;
}
Expand description

Required Methods

Hyperbolic sine

Hyperbolic cosine

Hyperbolic tangens

Hyperbolic cotangens

Hyperbolic secant

Hyperbolic cosecant

Inverse hyperbolic sine

Inverse hyperbolic cosine

Inverse hyperbolic tangens

Inverse hyperbolic cosecant

Inverse hyperbolic secant

Inverse hyperbolic cosecant

Implementations on Foreign Types

Hyperbolic sine

Hyperbolic cosine

Hyperbolic tangens

Arguments
  • self :
Example
extern crate mathru;
use mathru::elementary::Hyperbolic;

let x: f64 = 0.0_f64;

let f: f64 = x.tanh();
let g: f64 = 0.0;
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic cotangens

Arguments
  • self : != 0.0
Panic

iff self == 0.0

Example
extern crate mathru;
use mathru::elementary::Hyperbolic;

let x: f64 = 1.0_f64;

let f: f64 = x.coth();
let g: f64 = x.cosh() / x.sinh();
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic secant

Arguments
  • self :
Example
extern crate mathru;
use mathru::elementary::Hyperbolic;

let x: f64 = 0.0_f64;

let f: f64 = x.sech();
let g: f64 = 1.0;
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic cosecant

Arguments
  • self : != 0.0
Panics

if self == 0

Example
extern crate mathru;
use mathru::elementary::Hyperbolic;

let x: f64 = 1.0_f64;

let f: f64 = x.csch();
let g: f64 = 1.0 / x.sinh();
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic inverse sine

Hyperbolic inverse cosine

Hyperbolic inverse tangens

Hyperbolic inverse cotan

Arguments
  • self -1.0 > self, self > 1.0
Panics

if -1.0 <= self && self <= 1.0

Example
extern crate mathru;
use mathru::algebra::abstr::{Field};
use mathru::elementary::{Exponential, Hyperbolic};

let x: f64 = 2.0_f64;
let f: f64 = x.arcoth();
let g: f64 = ((x + 1.0) / ( x - 1.0)).ln() / 2.0;
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic inverse secant

Arguments
  • self 0.0 < self <= 1.0
Panics

if 0.0 >= self || self > 1.0

Example
extern crate mathru;
use mathru::elementary::{Exponential, Hyperbolic};

let x: f64 = 0.5_f64;
let f: f64 = x.arsech();
let g: f64 = (1.0 / x).arcosh();
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic inverse cosecant

Arguments
  • self <> 0.0
Panics

iff self = 0.0

Example
extern crate mathru;
use mathru::algebra::abstr::{Field};
use mathru::elementary::{Exponential, Hyperbolic};

let x: f64 = 2.0_f64;
let f: f64 = x.arcsch();
let g: f64 = (1.0 / x).arsinh();
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic sine

Hyperbolic cosine

Hyperbolic tangens

Arguments
  • self :
Example
extern crate mathru;
use mathru::elementary::Hyperbolic;

let x: f64 = 0.0_f64;

let f: f64 = x.tanh();
let g: f64 = 0.0;
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic cotangens

Arguments
  • self : != 0.0
Panic

iff self == 0.0

Example
extern crate mathru;
use mathru::elementary::Hyperbolic;

let x: f64 = 1.0_f64;

let f: f64 = x.coth();
let g: f64 = x.cosh() / x.sinh();
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic secant

Arguments
  • self :
Example
extern crate mathru;
use mathru::elementary::Hyperbolic;

let x: f64 = 0.0_f64;

let f: f64 = x.sech();
let g: f64 = 1.0;
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic cosecant

Arguments
  • self : != 0.0
Panics

if self == 0

Example
extern crate mathru;
use mathru::elementary::Hyperbolic;

let x: f64 = 1.0_f64;

let f: f64 = x.csch();
let g: f64 = 1.0 / x.sinh();
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic inverse sine

Hyperbolic inverse cosine

Hyperbolic inverse tangens

Hyperbolic inverse cotan

Arguments
  • self -1.0 > self, self > 1.0
Panics

if -1.0 <= self && self <= 1.0

Example
extern crate mathru;
use mathru::algebra::abstr::{Field};
use mathru::elementary::{Exponential, Hyperbolic};

let x: f64 = 2.0_f64;
let f: f64 = x.arcoth();
let g: f64 = ((x + 1.0) / ( x - 1.0)).ln() / 2.0;
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic inverse secant

Arguments
  • self 0.0 < self <= 1.0
Panics

if 0.0 >= self || self > 1.0

Example
extern crate mathru;
use mathru::elementary::{Exponential, Hyperbolic};

let x: f64 = 0.5_f64;
let f: f64 = x.arsech();
let g: f64 = (1.0 / x).arcosh();
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Hyperbolic inverse cosecant

Arguments
  • self <> 0.0
Panics

iff self = 0.0

Example
extern crate mathru;
use mathru::algebra::abstr::{Field};
use mathru::elementary::{Exponential, Hyperbolic};

let x: f64 = 2.0_f64;
let f: f64 = x.arcsch();
let g: f64 = (1.0 / x).arsinh();
let abs_difference: f64 = (f - g).abs();

assert!(abs_difference < 1.0e-10);

Implementors