4 releases

0.2.2 Apr 18, 2024
0.2.1 Mar 5, 2024
0.2.0 Mar 2, 2024
0.1.1 Mar 1, 2024
0.1.0 Mar 1, 2024

#343 in Math

22 downloads per month

MIT license

19KB
279 lines

Kalkulator

kalkulator is a versatile tool for mathematical expression evaluation, offering both a command-line interface for direct usage and a library for integration into Rust projects.

Features

  • Evaluate mathematical expressions with support for basic arithmatic operations, factorial, logical operations
  • Convert expressions to postfix notation.
  • Extendable for future operations and functionalities.

Further Extensions

  • Support for Logarithmic and Trignometric Functions
  • Exponentiation (x^y)
  • Absolute Value, Rounding Functions
  • Complex Numbers Support
  • Computation history support

Installation

As a Command-Line Tool

Ensure you have Rust and Cargo installed on your system. If you don't have Rust installed, you can install it from the official site.

You can install kalkulator directly from crates.io by running:

cargo install kalkulator

This command installs the kalkulator binary, making it available for use in your terminal

As a library

Add kalkulator as a dependency in your Cargo.toml to use it in your Rust project.

[dependencies]
kalkulator = "0.1.1"

Usage

To convert an expression to postfix notation without evaluating:

kalkulator --expr "2+3/4" -p

To evaluate the result of an expression:

kalkulator --expr "2+3/4"

Example

Command-Line Interface

Evaluate an expression with basic arithmetic operations:

Command:

    kalkulator --expr "3+4^2"

Output:

    Result = 11

Evaluate an Expression involving factorial

Command:

    kalkulator --expr "5!/(2+3)"

Output:

    Result = 24

To show all available operations:

kalkulator --show-ops

Library Usage

Here is a basic example of using kalkulator to evaluate an expression within a Rust project:

use kalkulator::Expression;

let mut expr = Expression::new("3+4*2");
expr.infix_to_postfix().unwrap(); // Converts to postfix notation
expr.compute_expression().unwrap(); // Evaluates the expression
assert_eq!(expr.get_result().unwrap(), 11); // The result is 11

Using the Expression struct to evaluate an expression with factorial and division:

use kalkulator::Expression;

let mut expr = Expression::new("4!/(2+3)");
expr.infix_to_postfix().unwrap(); // Converts to postfix notation
expr.compute_expression().unwrap(); // Evaluates the expression
assert_eq!(expr.get_result().unwrap(), 24); // The result is 24 (120 / 5)

For more detailed usage, check documentation: Docs

Contributing

Contributions are welcome!, Whether it's adding new features, improving existing ones, or reporting bugs, your input is valuable. Check out the project's repository on GitHub

Dependencies

~1.1–1.7MB
~33K SLoC