UPDATE: Adds DEGREES and RADIANS (#493)
This commit is contained in:
committed by
GitHub
parent
a768bc5974
commit
6ce4756d55
@@ -846,6 +846,8 @@ fn get_function_args_signature(kind: &Function, arg_count: usize) -> Vec<Signatu
|
||||
Function::Fact => args_signature_scalars(arg_count, 1, 0),
|
||||
Function::Factdouble => args_signature_scalars(arg_count, 1, 0),
|
||||
Function::Sign => args_signature_scalars(arg_count, 1, 0),
|
||||
Function::Radians => args_signature_scalars(arg_count, 1, 0),
|
||||
Function::Degrees => args_signature_scalars(arg_count, 1, 0),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1080,5 +1082,7 @@ fn static_analysis_on_function(kind: &Function, args: &[Node]) -> StaticResult {
|
||||
Function::Fact => scalar_arguments(args),
|
||||
Function::Factdouble => scalar_arguments(args),
|
||||
Function::Sign => scalar_arguments(args),
|
||||
Function::Radians => scalar_arguments(args),
|
||||
Function::Degrees => scalar_arguments(args),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -485,6 +485,8 @@ impl Model {
|
||||
Ok(acc)
|
||||
});
|
||||
single_number_fn!(fn_sign, |f| Ok(f64::signum(f)));
|
||||
single_number_fn!(fn_degrees, |f| Ok(f * (180.0 / PI)));
|
||||
single_number_fn!(fn_radians, |f| Ok(f * (PI / 180.0)));
|
||||
|
||||
pub(crate) fn fn_pi(&mut self, args: &[Node], cell: CellReferenceIndex) -> CalcResult {
|
||||
if !args.is_empty() {
|
||||
|
||||
@@ -90,6 +90,9 @@ pub enum Function {
|
||||
Factdouble,
|
||||
Sign,
|
||||
|
||||
Radians,
|
||||
Degrees,
|
||||
|
||||
// Information
|
||||
ErrorType,
|
||||
Formulatext,
|
||||
@@ -283,7 +286,7 @@ pub enum Function {
|
||||
}
|
||||
|
||||
impl Function {
|
||||
pub fn into_iter() -> IntoIter<Function, 227> {
|
||||
pub fn into_iter() -> IntoIter<Function, 229> {
|
||||
[
|
||||
Function::And,
|
||||
Function::False,
|
||||
@@ -334,6 +337,8 @@ impl Function {
|
||||
Function::Product,
|
||||
Function::Rand,
|
||||
Function::Randbetween,
|
||||
Function::Radians,
|
||||
Function::Degrees,
|
||||
Function::Round,
|
||||
Function::Rounddown,
|
||||
Function::Roundup,
|
||||
@@ -607,6 +612,9 @@ impl Function {
|
||||
"EXP" => Some(Function::Exp),
|
||||
"SIGN" => Some(Function::Sign),
|
||||
|
||||
"RADIANS" => Some(Function::Radians),
|
||||
"DEGREES" => Some(Function::Degrees),
|
||||
|
||||
"PI" => Some(Function::Pi),
|
||||
"ABS" => Some(Function::Abs),
|
||||
"SQRT" => Some(Function::Sqrt),
|
||||
@@ -1051,6 +1059,8 @@ impl fmt::Display for Function {
|
||||
Function::Fact => write!(f, "FACT"),
|
||||
Function::Factdouble => write!(f, "FACTDOUBLE"),
|
||||
Function::Sign => write!(f, "SIGN"),
|
||||
Function::Radians => write!(f, "RADIANS"),
|
||||
Function::Degrees => write!(f, "DEGREES"),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1306,6 +1316,8 @@ impl Model {
|
||||
Function::Fact => self.fn_fact(args, cell),
|
||||
Function::Factdouble => self.fn_factdouble(args, cell),
|
||||
Function::Sign => self.fn_sign(args, cell),
|
||||
Function::Radians => self.fn_radians(args, cell),
|
||||
Function::Degrees => self.fn_degrees(args, cell),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user