aboutsummaryrefslogtreecommitdiffstats
path: root/func.go
diff options
context:
space:
mode:
Diffstat (limited to 'func.go')
-rw-r--r--func.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/func.go b/func.go
index 8fe3f0d..fee20da 100644
--- a/func.go
+++ b/func.go
@@ -12,6 +12,10 @@ func parseFunction(fn string) func(Calculator) {
return trig(fn)
case "asin", "acos", "atan":
return invTrig(fn)
+ case "deg":
+ return deg
+ case "rad":
+ return rad
}
return nil
}
@@ -65,6 +69,18 @@ func invTrig(fn string) func(Calculator) {
}
}
+func deg(c Calculator) {
+ if len(c.stack) > 0 {
+ c.stack[len(c.stack)-1] = degrees(c.stack[len(c.stack)-1])
+ }
+}
+
+func rad(c Calculator) {
+ if len(c.stack) > 0 {
+ c.stack[len(c.stack)-1] = radians(c.stack[len(c.stack)-1])
+ }
+}
+
// radians converts degrees to radians.
func radians(deg float64) float64 {
return deg * math.Pi / 180.0