# Calculator Specification

The calculator allows flexible numerical calculation through plugins.

The calculator allows numerical calculations. User-defined types, functions and interfaces are provided through a plugin interface. Many components are supplied with the library, including integer, double and fraction data types, basic operations, and common calculator user-interface elements.

Status: BT

## Use Cases

- Shopper

  A shopper adds prices in the supermarket as she puts goods into her trolley, in order to keep track of the running total. When she has finished choosing goods, she calculates tax due on the total.

- Student

  A student uses an emulated TI interface that he is familiar with to solve fractional problems.

- Engineer

  An engineer writes a plugin to help him calculate stresses on a bridge he is designing. The interface is customised to suit the typical functions he needs to access.

- Familiar

  User throws away his old dedicated calculator, and uses the Qtopia calculator without having to learn anything new. He even uses his fingers poking at the device's touchscreen rather than a stylus.

## Features

- Backspace: delete last character of the current number
- Double operations: various mathematical operations with double precision
- Common user interface elements: standard input widgets available as part of the library
- Memory operations: store and add, clear, retrieve
- Most-recently-used plugin: MRU plugin is active when the calculator is restarted.
- Braces: change operator precedence
- Error message: standard, translated error messages

## Prerequisites

None.