6 releases

✓ Uses Rust 2018 edition

new 0.2.7 Nov 7, 2019
0.2.6 Jul 2, 2019
0.2.5 Jun 23, 2019
0.2.3 Mar 31, 2019

#30 in Math

Download history 10/week @ 2019-07-25 20/week @ 2019-08-01 16/week @ 2019-08-08 8/week @ 2019-08-15 13/week @ 2019-08-22 32/week @ 2019-08-29 7/week @ 2019-09-05 9/week @ 2019-09-12 105/week @ 2019-09-19 7/week @ 2019-09-26 11/week @ 2019-10-03 1/week @ 2019-10-10 13/week @ 2019-10-17 234/week @ 2019-10-24 81/week @ 2019-10-31

178 downloads per month

MIT license

34KB
776 lines

heroimg.png

eva

simple calculator REPL, similar to bc(1), with syntax highlighting and persistent history

eva.png

installation

  • crates.io
$ cargo install eva
  • manual
$ git clone https://github.com/nerdypepper/eva.git
$ cargo run

usage

eva 0.2.4
NerdyPepper <akshayoppiliappan@gmail.com>
Calculator REPL similar to bc(1)

USAGE:
    eva [FLAGS] [OPTIONS] [INPUT]

FLAGS:
    -h, --help       Prints help information
    -r, --radian     set eva to radian mode
    -V, --version    Prints version information

OPTIONS:
    -b, --base <RADIX>    set the radix of calculation output (2, 8, 10, 16 etc.)
    -f, --fix <FIX>       set number of decimal places in the output

ARGS:
    <INPUT>    optional expression string to run eva in command mode

type out an expression and hit enter, repeat.

> 1 + sin(30)
1.5
> floor(sqrt(3^2 + 5^2))
5
> 5sin(45) + cos(0)
4.53553

updating

  • crates.io
$ cargo install eva --force
  • manual
$ cargo install --force --path /path/to/eva

operators

  • binary operators: + - * / ^
  • unary operators: + -

constants

some constants avaliable in rust standard library.

e      pi

examples:

pi * 5^2  # πr²

functions

all trignometric functions expect input in degrees.

sin    cos     tan    csc    sec    cot    sinh   cosh   tanh
asin   acos    atan   acsc   asec   acot   ln     log    sqrt
ceil   floor   abs

deg(x) - convert x to degrees
rad(x) - convert x to radians

examples:

sqrt(sin(30)) # parentheses are mandatory for functions

log100        # no
log(100)      # yes

quality of life features

  • auto insertion of * operator
>12sin(45(2))             # 12 * sin(45 * (2))
12
  • auto balancing of parentheses
>ceil(sqrt(3^2 + 5^2      # ceil(sqrt(3^2 + 5^2))
6
  • super neat error handling
> 1 + ln(-1)
Domain Error: Out of bounds!
  • syntax highlighting

todo

  • add support for variables (pi, e, _ (previous answer))
  • syntax highlighting
  • multiple arg functions
  • screenshots
  • create logo
  • unary operators (minus, plus)
  • add detailed error handler
  • add unit tests
  • lineditor with syntax highlighting
  • add more functions

contributors

the rust community has helped eva come a long way, but these devs deserve a special mention for their contributions:

Ivan Tham
Milan Marković
asapokl

Dependencies

~4MB
~86K SLoC