@@ -35,10 +35,10 @@ var defFunC = map[string]int{
35
35
"min" : 2 ,
36
36
}
37
37
38
- var defFunc map [string ]func (expr [] ExprAST ) float64
38
+ var defFunc map [string ]func (expr ... ExprAST ) float64
39
39
40
40
func init () {
41
- defFunc = map [string ]func (expr [] ExprAST ) float64 {
41
+ defFunc = map [string ]func (expr ... ExprAST ) float64 {
42
42
"sin" : defSin ,
43
43
"cos" : defCos ,
44
44
"tan" : defTan ,
@@ -61,83 +61,83 @@ func init() {
61
61
}
62
62
63
63
// sin(pi/2) = 1
64
- func defSin (expr [] ExprAST ) float64 {
64
+ func defSin (expr ... ExprAST ) float64 {
65
65
return math .Sin (expr2Radian (expr [0 ]))
66
66
}
67
67
68
68
// cos(0) = 1
69
- func defCos (expr [] ExprAST ) float64 {
69
+ func defCos (expr ... ExprAST ) float64 {
70
70
return math .Cos (expr2Radian (expr [0 ]))
71
71
}
72
72
73
73
// tan(pi/4) = 1
74
- func defTan (expr [] ExprAST ) float64 {
74
+ func defTan (expr ... ExprAST ) float64 {
75
75
return math .Tan (expr2Radian (expr [0 ]))
76
76
}
77
77
78
78
// cot(pi/4) = 1
79
- func defCot (expr [] ExprAST ) float64 {
80
- return 1 / defTan (expr )
79
+ func defCot (expr ... ExprAST ) float64 {
80
+ return 1 / defTan (expr ... )
81
81
}
82
82
83
83
// sec(0) = 1
84
- func defSec (expr [] ExprAST ) float64 {
85
- return 1 / defCos (expr )
84
+ func defSec (expr ... ExprAST ) float64 {
85
+ return 1 / defCos (expr ... )
86
86
}
87
87
88
88
// csc(pi/2) = 1
89
- func defCsc (expr [] ExprAST ) float64 {
90
- return 1 / defSin (expr )
89
+ func defCsc (expr ... ExprAST ) float64 {
90
+ return 1 / defSin (expr ... )
91
91
}
92
92
93
93
// abs(-2) = 2
94
- func defAbs (expr [] ExprAST ) float64 {
94
+ func defAbs (expr ... ExprAST ) float64 {
95
95
return math .Abs (ExprASTResult (expr [0 ]))
96
96
}
97
97
98
98
// ceil(4.2) = ceil(4.8) = 5
99
- func defCeil (expr [] ExprAST ) float64 {
99
+ func defCeil (expr ... ExprAST ) float64 {
100
100
return math .Ceil (ExprASTResult (expr [0 ]))
101
101
}
102
102
103
103
// floor(4.2) = floor(4.8) = 4
104
- func defFloor (expr [] ExprAST ) float64 {
104
+ func defFloor (expr ... ExprAST ) float64 {
105
105
return math .Floor (ExprASTResult (expr [0 ]))
106
106
}
107
107
108
108
// round(4.2) = 4
109
109
// round(4.6) = 5
110
- func defRound (expr [] ExprAST ) float64 {
110
+ func defRound (expr ... ExprAST ) float64 {
111
111
return math .Round (ExprASTResult (expr [0 ]))
112
112
}
113
113
114
114
// sqrt(4) = 2
115
- func defSqrt (expr [] ExprAST ) float64 {
115
+ func defSqrt (expr ... ExprAST ) float64 {
116
116
return math .Sqrt (ExprASTResult (expr [0 ]))
117
117
}
118
118
119
119
// cbrt(27) = 3
120
- func defCbrt (expr [] ExprAST ) float64 {
120
+ func defCbrt (expr ... ExprAST ) float64 {
121
121
return math .Cbrt (ExprASTResult (expr [0 ]))
122
122
}
123
123
124
124
// max(2, 3) = 3
125
- func defMax (expr [] ExprAST ) float64 {
126
- return math .Max (p2 (expr ))
125
+ func defMax (expr ... ExprAST ) float64 {
126
+ return math .Max (p2 (expr ... ))
127
127
}
128
128
129
129
// max(2, 3) = 2
130
- func defMin (expr [] ExprAST ) float64 {
131
- return math .Min (p2 (expr ))
130
+ func defMin (expr ... ExprAST ) float64 {
131
+ return math .Min (p2 (expr ... ))
132
132
}
133
133
134
- func p2 (expr [] ExprAST ) (float64 , float64 ) {
134
+ func p2 (expr ... ExprAST ) (float64 , float64 ) {
135
135
return ExprASTResult (expr [0 ]), ExprASTResult (expr [1 ])
136
136
}
137
137
138
138
// noerr(1/0) = 0
139
139
// noerr(2.5/(1-1)) = 0
140
- func defNoerr (expr [] ExprAST ) (r float64 ) {
140
+ func defNoerr (expr ... ExprAST ) (r float64 ) {
141
141
defer func () {
142
142
if e := recover (); e != nil {
143
143
r = 0
0 commit comments