difftreelog
feat std.{sin,cos,tan,asin,acos,atan}
in: master
2 files changed
crates/jrsonnet-evaluator/src/builtin/mod.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/builtin/mod.rs
+++ b/crates/jrsonnet-evaluator/src/builtin/mod.rs
@@ -90,6 +90,12 @@
("log".into(), builtin_log),
("pow".into(), builtin_pow),
("sqrt".into(), builtin_sqrt),
+ ("sin".into(), builtin_sin),
+ ("cos".into(), builtin_cos),
+ ("tan".into(), builtin_tan),
+ ("asin".into(), builtin_asin),
+ ("acos".into(), builtin_acos),
+ ("atan".into(), builtin_atan),
("extVar".into(), builtin_ext_var),
("native".into(), builtin_native),
("filter".into(), builtin_filter),
@@ -313,6 +319,54 @@
})
}
+fn builtin_sin(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
+ parse_args!(context, "sin", args, 1, [
+ 0, x: ty!(number) => Val::Num;
+ ], {
+ Ok(Val::Num(x.sin()))
+ })
+}
+
+fn builtin_cos(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
+ parse_args!(context, "cos", args, 1, [
+ 0, x: ty!(number) => Val::Num;
+ ], {
+ Ok(Val::Num(x.cos()))
+ })
+}
+
+fn builtin_tan(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
+ parse_args!(context, "tan", args, 1, [
+ 0, x: ty!(number) => Val::Num;
+ ], {
+ Ok(Val::Num(x.tan()))
+ })
+}
+
+fn builtin_asin(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
+ parse_args!(context, "asin", args, 1, [
+ 0, x: ty!(number) => Val::Num;
+ ], {
+ Ok(Val::Num(x.asin()))
+ })
+}
+
+fn builtin_acos(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
+ parse_args!(context, "acos", args, 1, [
+ 0, x: ty!(number) => Val::Num;
+ ], {
+ Ok(Val::Num(x.acos()))
+ })
+}
+
+fn builtin_atan(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
+ parse_args!(context, "atan", args, 1, [
+ 0, x: ty!(number) => Val::Num;
+ ], {
+ Ok(Val::Num(x.atan()))
+ })
+}
+
fn builtin_ext_var(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
parse_args!(context, "extVar", args, 1, [
0, x: ty!(string) => Val::Str;
crates/jrsonnet-stdlib/src/std.jsonnetdiffbeforeafterboth27 pow:: $intrinsic(pow),27 pow:: $intrinsic(pow),28 sqrt:: $intrinsic(sqrt),28 sqrt:: $intrinsic(sqrt),292930 sin:: $intrinsic(sin),31 cos:: $intrinsic(cos),32 tan:: $intrinsic(tan),33 asin:: $intrinsic(asin),34 acos:: $intrinsic(acos),35 atan:: $intrinsic(atan),3630 isString(v):: std.type(v) == 'string',37 isString(v):: std.type(v) == 'string',31 isNumber(v):: std.type(v) == 'number',38 isNumber(v):: std.type(v) == 'number',32 isBoolean(v):: std.type(v) == 'boolean',39 isBoolean(v):: std.type(v) == 'boolean',