add log10, hyperbolic tan and inverse hyperbolic tan functions (#1898)
This commit is contained in:
@@ -930,6 +930,69 @@ impl Machine {
|
||||
|
||||
self.machine_st.p += 1;
|
||||
}
|
||||
&Instruction::ACosh(ref a1, t) => {
|
||||
let n1 = try_or_throw!(self.machine_st, self.machine_st.get_number(a1));
|
||||
|
||||
self.machine_st.interms[t - 1] = Number::Float(OrderedFloat(
|
||||
try_or_throw_gen!(&mut self.machine_st, acosh(n1))
|
||||
));
|
||||
|
||||
self.machine_st.p += 1;
|
||||
}
|
||||
&Instruction::ASinh(ref a1, t) => {
|
||||
let n1 = try_or_throw!(self.machine_st, self.machine_st.get_number(a1));
|
||||
|
||||
self.machine_st.interms[t - 1] = Number::Float(OrderedFloat(
|
||||
try_or_throw_gen!(&mut self.machine_st, asinh(n1))
|
||||
));
|
||||
|
||||
self.machine_st.p += 1;
|
||||
}
|
||||
&Instruction::ATanh(ref a1, t) => {
|
||||
let n1 = try_or_throw!(self.machine_st, self.machine_st.get_number(a1));
|
||||
|
||||
self.machine_st.interms[t - 1] = Number::Float(OrderedFloat(
|
||||
try_or_throw_gen!(&mut self.machine_st, atanh(n1))
|
||||
));
|
||||
|
||||
self.machine_st.p += 1;
|
||||
}
|
||||
&Instruction::Cosh(ref a1, t) => {
|
||||
let n1 = try_or_throw!(self.machine_st, self.machine_st.get_number(a1));
|
||||
|
||||
self.machine_st.interms[t - 1] = Number::Float(OrderedFloat(
|
||||
try_or_throw_gen!(&mut self.machine_st, cosh(n1))
|
||||
));
|
||||
|
||||
self.machine_st.p += 1;
|
||||
}
|
||||
&Instruction::Sinh(ref a1, t) => {
|
||||
let n1 = try_or_throw!(self.machine_st, self.machine_st.get_number(a1));
|
||||
|
||||
self.machine_st.interms[t - 1] = Number::Float(OrderedFloat(
|
||||
try_or_throw_gen!(&mut self.machine_st, sinh(n1))
|
||||
));
|
||||
|
||||
self.machine_st.p += 1;
|
||||
}
|
||||
&Instruction::Tanh(ref a1, t) => {
|
||||
let n1 = try_or_throw!(self.machine_st, self.machine_st.get_number(a1));
|
||||
|
||||
self.machine_st.interms[t - 1] = Number::Float(OrderedFloat(
|
||||
try_or_throw_gen!(&mut self.machine_st, tanh(n1))
|
||||
));
|
||||
|
||||
self.machine_st.p += 1;
|
||||
}
|
||||
&Instruction::Log10(ref a1, t) => {
|
||||
let n1 = try_or_throw!(self.machine_st, self.machine_st.get_number(a1));
|
||||
|
||||
self.machine_st.interms[t - 1] = Number::Float(OrderedFloat(
|
||||
try_or_throw_gen!(&mut self.machine_st, log10(n1))
|
||||
));
|
||||
|
||||
self.machine_st.p += 1;
|
||||
}
|
||||
&Instruction::Float(ref a1, t) => {
|
||||
let n1 = try_or_throw!(self.machine_st, self.machine_st.get_number(a1));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user