diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-06-25 16:27:44 -0400 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-06-25 16:27:44 -0400 |
| commit | ba80acb1168a4adc6e67f6cc85133714ba2ccd1f (patch) | |
| tree | 815d3edb0982993db82a2bf6180629b54df3f0fc | |
| parent | e2095de46b5939d6d4cb7256cf699744e6e3bdd8 (diff) | |
| download | pfc-ba80acb1168a4adc6e67f6cc85133714ba2ccd1f.zip | |
logarithm functions
| -rw-r--r-- | func.go | 33 |
1 files changed, 33 insertions, 0 deletions
@@ -20,6 +20,12 @@ func parseFunction(fn string) func(*Calculator) { return fac case "ch": // choose return combination + case "log10": + return log10 + case "log2": + return log2 + case "ln": + return ln } return nil } @@ -150,6 +156,33 @@ func factorial(n uint) uint { return n } +// decimal logarithm. +func log10(c *Calculator) { + x, err := c.stack.pop() + if err != nil { + return + } + c.stack.push(math.Log10(x)) +} + +// binary logarithm. +func log2(c *Calculator) { + x, err := c.stack.pop() + if err != nil { + return + } + c.stack.push(math.Log2(x)) +} + +// natural logarithm. +func ln(c *Calculator) { + x, err := c.stack.pop() + if err != nil { + return + } + c.stack.push(math.Log(x)) +} + func isUint(n float64) bool { return float64(uint(n)) == n } |