Skip to content

Commit

Permalink
Merge pull request #3 from DragonGhost7/feature/trig_functions
Browse files Browse the repository at this point in the history
added cot,sec, and csc trig functions
  • Loading branch information
zahash authored Oct 27, 2023
2 parents 7d62834 + 1e1fda8 commit 5b369c4
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/eval.rs
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,18 @@ impl<'text> Eval<'text> for PostfixExpr<'text> {
("tanh", [rad]) => Ok(rad.eval(state)?.tanh()),
("atan", [rad]) => Ok(rad.eval(state)?.atan()),
("atanh", [rad]) => Ok(rad.eval(state)?.atanh()),
("cot", [rad]) => Ok(rad.eval(state)?.tan().recip()),
("coth", [rad]) => Ok(rad.eval(state)?.tanh().recip()),
("acot", [rad]) => Ok(std::f64::consts::FRAC_PI_2 - rad.eval(state)?.atan()),
("acoth", [rad]) => Ok(0.5 * ( 2.0 /(rad.eval(state)? - 1.0)).ln_1p()),
("sec", [rad]) => Ok(rad.eval(state)?.cos().recip()),
("sech", [rad]) => Ok(rad.eval(state)?.cosh().recip()),
("asec", [rad]) => Ok((rad.eval(state)?.recip()).acos()),
("asech", [rad]) => Ok((rad.eval(state)?.recip() + ((rad.eval(state)?).powi(-2) - 1.0_f64).sqrt()).ln()),
("csc", [rad]) => Ok(rad.eval(state)?.sin().recip()),
("csch", [rad]) => Ok(rad.eval(state)?.sinh().recip()),
("acsc", [rad]) => Ok((rad.eval(state)?.recip()).asin()),
("acsch", [rad]) => Ok((rad.eval(state)?.recip() + ((rad.eval(state)?).powi(-2) + 1.0_f64).sqrt()).ln()),
_ => Err(EvalError::InvalidFnCall(format!("{}", self))),
},
}
Expand Down

0 comments on commit 5b369c4

Please sign in to comment.