Smart Math

Pub Version License Dartworkflows CI

Smart Math is an advanced, lightweight mathematics library for Dart and Flutter applications.

It provides calculators, mathematical operations, scientific functions, financial calculations, conversions, statistics, fractions, complex numbers, and more.


Features

🧮 Calculator Engine

  • Addition
  • Subtraction
  • Multiplication
  • Division
  • Percentage
  • Average calculation

🔢 Expression Parser

Supports:

  • Basic expressions
  • Operator precedence
  • Brackets
  • Decimal numbers
  • Power operations

Example:

final parser = ExpressionParser();

final result = parser.evaluate(
  "10 + (5 * 2)"
);

print(result);

Output:

20

Scientific Calculator

Available functions:

  • Square root
  • Power
  • Sin
  • Cos
  • Tan
  • Logarithm
  • Natural logarithm
  • Absolute value
  • Rounding

Example:

ScientificCalculator.power(
  2,
  3,
);

Output:

8

Fraction Calculator

Supports:

  • Addition
  • Subtraction
  • Multiplication
  • Division
  • Simplification
  • Decimal conversion

Example:

final a = Fraction(1,2);

final b = Fraction(1,3);

print(a + b);

Output:

5/6

BigInt Mathematics

Supports large number calculations:

  • Factorial
  • Power
  • Fibonacci
  • Combination

Example:

BigIntMath.factorial(100);

Complex Numbers

Supports:

  • Addition
  • Subtraction
  • Multiplication
  • Magnitude

Example:

final number =
ComplexNumber(2,3);

print(
 number.magnitude()
);

Finance Calculators

EMI Calculator

Calculate loan EMI easily.

final emi = EMI.calculate(
  principal: 100000,
  annualRate: 8,
  years: 5,
);

SIP Calculator

Calculate future investment value.

final value = SIP.calculate(
  monthlyInvestment: 500,
  annualReturn: 12,
  years: 10,
);

Interest Calculator

Supports:

  • Simple Interest
  • Compound Interest

Health Calculators

BMI Calculator

final bmi = BMI.calculate(
 weightKg: 70,
 heightMeter: 1.75,
);


print(
 BMI.category(bmi)
);

Output:

Normal

Age Calculator

Calculate age from birth date.

Age.calculate(
 birthDate:
 DateTime(2000,1,1),
);

Unit Conversion

Supported conversions:

Length

  • Meter
  • Kilometer
  • Feet

Weight

  • Kilogram
  • Gram
  • Pound

Temperature

  • Celsius
  • Fahrenheit
  • Kelvin

Example:

TemperatureConverter
.celsiusToFahrenheit(25);

Output:

77

Statistics

Available functions:

  • Mean
  • Median
  • Mode
  • Variance
  • Standard deviation

Example:

Statistics.mean(
 [
 10,
 20,
 30
 ]
);

Output:

20

Matrix Operations

Supports:

  • Matrix addition
  • Matrix multiplication
  • Determinant calculation

Example:

final matrix = Matrix(
[
 [1,2],
 [3,4]
]
);


print(
matrix.determinant()
);

Output:

-2

Getting started

Requirements

  • Dart SDK >= 3.0.0
  • Flutter >= 3.0.0 (if used in Flutter projects)

Installation

Add dependency:

dependencies:
  smart_math: ^1.0.0

Run:

dart pub get

or:

flutter pub get

Usage

Import the package:

import 'package:smart_math/smart_math.dart';

Example:

void main(){

final result =
SmartCalculator.add(
10,
20
);

print(result);

}

Output:

30

Example Project

A complete example application is available:

example/
 └── main.dart

Run:

dart run example/main.dart

Documentation

API documentation:

https://pub.flutter-io.cn/documentation/smart_math/latest/

Generate locally:

dart doc

Testing

Run tests:

dart test

Analyze code:

dart analyze

Contributing

Contributions are welcome.

Steps:

  1. Fork the repository

  2. Create a feature branch

git checkout -b feature/new-feature
  1. Make changes

  2. Run tests

dart test
dart analyze
  1. Create Pull Request

Issues

Report bugs or request features:

https://github.com/Githubsaveme/smart_math/issues

Repository

GitHub:

https://github.com/Githubsaveme/smart_math

License

Smart Math is released under the MIT License.

See:

LICENSE

Roadmap

Future improvements:

  • Advanced AST expression parser
  • Graph plotting support
  • Trigonometric equation solver
  • Unit conversion expansion
  • Currency API integrations
  • More matrix algorithms
  • Symbolic mathematics

Made with ❤️ using Dart

Libraries

smart_math