# Software calculator

A software calculator is a calculator that has been implemented as a computer program, rather than as a physical hardware device.
They are among the simpler interactive software tools, and, as such, they provide operations for the user to select one at a time. They can be used to perform any process that consists of a sequence of steps each of which applies one of these operations, and have no purpose other than these processes, because the operations are the sole, or at least the primary, features of the calculator, rather than being secondary features that support other functionality that is not normally known simply as calculation.
As a calculator, rather than a computer, they usually have a small set of relatively simple operations, perform short processes that are not compute intensive and do not accept large amounts of input data or produce many results, though many software calculators can emulate handheld scientific calculator and graphing calculator features such as trigonometric functions, approximations of pi, and making plots of functions.

## Platforms

Software calculators are available for many different platforms, and they can be:
* A program for, or included with an operating system.
* A program implemented as server or client-side scripting (such as JavaScript) within a web page.
* Embedded in a calculator watch.
* Also complex software may have calculator-like dialogs, sometimes with the full calculator functionality, to enter data into the system.

## History
### Early years

Modern computers first emerged in the 1940s and 1950s. The software that they ran was naturally used to perform calculations, but it was specially designed for a substantial application that was not limited to simple calculations. For example, the LEO computer was designed to run business application software such as payroll.
Software specifically to perform calculations as its main purpose was first written in the 1960s, and the first software package for general calculations to obtain widespread use was released in 1978. This was VisiCalc and it was called an interactive visible calculator, but it was actually a spreadsheet, and these are now not normally known simply as calculators.
The Unix version released in 1979, V7 Unix, contained a command-line accessible calculator.

### Simulation of hardware calculators

Calculators have been used since ancient times and until the advent of software they were physical, hardware machines. The most recent hardware calculators are electronic hand-held devices with buttons for digits and operations, and a small display for inputs and results.
The first software calculators imitated these hardware calculators by implementing the same functionality with mouse-operated, rather than finger-operated, buttons. Such software calculators first emerged in the 1980s as part of the original Macintosh operating system (System 1) and the Windows operating system (Windows 1.0).
Some software calculators directly simulate one of the hardware calculators, by presenting an image that looks like the calculator, and by providing the same functionality.

### Software calculators on the Internet

There is now a very wide range of software calculators, and searching the Internet produces very large numbers of programs that are called calculators.
The results include numerical calculators that apply arithmetic operations or mathematical functions to numbers, and that produce numerical results or graphs of numerical functions, plus some non-numerical tools and games that are also called calculators.
Many of the results are calculators that do not imitate or simulate hardware calculators, but that take advantage of the greater power of computer software to implement alternative types of calculators. Software calculators are provided on the Internet which are customizable to use any conceivable algebraic expression. These user-customizable software calculators can also be used in conjunction with formula or equation creation capabilities so that the software calculator can now be created to perform all possible mathematical functions. No longer limited to a set of trigonometric and simple algebraic expressions, versions of the software calculator are now tailored to any and all topical applications.

## Examples
### Numerical calculators

Every type of hardware calculator has been implemented in software, including conversion, financial, graphing, programmable and scientific calculators.
Other numerical calculators that do not imitate traditional hardware calculators include:
* Formula calculators
* Window-based calculators: Window-based calculators present a dialog box that allows users to enter data, rather than data and operations, and they have a built-in formula that is automatically applied to this data. There are many examples of such calculators in finance, mathematics, science and other disciplines.
* Specialised calculators: There are software calculators that contain operations relevant to a specific application area and profession, including automotive, construction and electrical engineering.

### Non-numerical calculators

Not all software-based calculators take numerical data or algebraic expressions as their input. Calculators can also take in arbitrary information ranging from lifestyle information to scientific notation. Some examples of these types of software calculators include:
* Love calculator: The input is two names, and there is a button to work out the compatibility, as a percentage, of two people with these names.
* Formula weight calculator: The input is a chemical molecular formula, using the periodic-table symbols and notation, and there is a button to work out the percentages of its constituents.
* Astronomical calculator: The input is a date and one or multiple celestial bodies (usually the sun, moon, planets, planetoids or comets). The program calculates the position of these bodies to the given date and gives a numerical output of the position (usually in right ascension and declination, whereby the used equinox may be settable), sometimes also from brightness, angle diameter and phase. Some programs can generate a list of astronomical events of certain types during a period of time, e.g. a year. Astronomical calculators can be also a part of a simulation software, displaying the sky at a certain time.

#### Games

There are also types of software used to help solve games that are sometimes referred to as calculators, including:
* Sudoku calculators: The input is a Sudoku puzzle, the operations support solving the puzzle, such as selecting a digit as the solution for a cell, and the result is a solution of the entire puzzle.
* Poker calculators: A common feature of these is to calculate the odds of winning with a given Poker hand.

## Related software packages

There are many interactive software packages that provide user-accessible calculation features, but that are not normally called calculators, because the calculation features play only a supporting role rather than being an end in themselves. These include:
* Spreadsheets, where user-supplied calculations can define a cell’s content.
* Computer algebra systems, which can manipulate mathematical expressions, including evaluating simple calculations.
* Databases, where user-supplied calculations can specify a field’s value.

### Spreadsheets

    Spreadsheets are not normally called calculators because their main purpose is to organise data in rows and columns, and to automatically update the values of possibly many dependent cells when the value in another cell changes. The calculation features are only used in a supporting role to specify the values in some cells.

### Computer algebra systems

    Computer algebra systems are not normally called calculators because their main purpose is to perform symbolic manipulation of mathematical expressions that can contain variables and complex operations, such as integration. However, the expressions can be basic calculations that do not use variables, and that are simply evaluated, as with a calculator.

### Databases

    Databases are not normally called calculators because their main purpose is data entry and storage, plus reporting against this data. The calculation features are only used in a supporting role to specify the values in some fields.