Changes:

- Updated physical constants (CODATA 2018)
- Programming keypad (GUI) and programming mode (CLI)
- Bookmarks and protect (from disappearing of the end of the list) option for history (GUI)
- New and updated keypad buttons (GUI)
- Keypad in number bases dialog (GUI)
- bitrot() function for bit rotation
- Bitwise XOR, mod and rem operators, % as modulo, // and \ operators for integer division
- Change order of operations for logical and bitwise operators to better match C operator precedence
- Improved support for functions, variables and units with input base > 10
- Unicode support in char() and code()
- Simplification and factorization improvements
- RPN syntax improvements
- Recognize "factor" and "expand" commands at the beginning expressions
- For vector + scalar, add scalar to all components
- uptime variable
- Fix random segfault on automatic unit category selection (GUI)
- Fix display of number in sexagesimal base or time format (GUI)
- Fix abs(x)=a for complex x
- Minor bug fixes and feature improvements

Changes:

- Calculation of Si(), Ci(), Shi(), and Chi()
- Convert trigonometric arguments to selected angle unit, and hide angle unit in result
- Hide optional arguments, with default value, in output
- Add optional variable value argument to diff(), for calculation of derivative for a specific x value
- Improved sinc() support
- Improved output with show ending zeroes activated
- Fix ignore system language on Windows
- Fix atomic unit of velocity
- Fix and improve keypad menus, and add dynamic convert to menu to result popup menu (GUI)
- Fix compilation errors because of erroneous limits.h inclusion
- Fix "factorized result is wrong" error
- Minor bug fixes and feature improvements

Changes:

- Implement 2019 redefinition of SI base units (primarily affects physical constants and will not take effect until 20 May)
- Uncertainty propagation improvements/fixes
- Separate use of interval arithmetic, to keep track of precision changes with approximate calculations, from selection of interval calculation algorithm (by default both interval arithmetic and uncertainty propagation using variance formula are now activated)
- uncertainty() function (can specify relative uncertainty of value)
- Improved polynomial gcd
- Option to ignore system language (locale)
- Option to use two's complement also for hexadecimal numbers
- Switch to exact decimal fractions (fixed) from decimal fractions mode (and vice versa) when exact mode is toggled
- Restore lost signal handlers in the conversion GUI (fixes search, popup menu, etc.)
- Bug fixes and minor feature improvements

Changes:

- Fix convert button
- Propagation of uncertainty using variance formula (if interval arithmetic is disabled)
- Improved and extended physical constants, now defined in relation to each other (e.g. RK = (μ0c)/(2α))
- Natural, atomic, and Planck units
- Reciprocal unit conversion (e.g. 5 m/s = 0.2 s/m, 60 mpg = 0.039 L/km)
- Updated elements and planets data sets
- +/- syntax for non-numeric values
- raid() function for RAID capacity calculation
- UTC+/-hh[:mm] and CET time zone conversion (using "to")
- Minor bug fixes and feature improvements

Changes:

- Wrap lines and right align results in history
- Fix missing prefix for gram (and are) when unit exponent not one and automatic prefixes is off
- Fixes for units with non-linear relation
- Minor bug fixes and feature improvements

GUI Changes:

- Modified keypad layout
- RPN stack buttons with icons
- Use 'linked' widget style where appropriate

From libqalculate:

- Interpret a character preceded by '' as an unknown variable (same as in quotation marks)
- Do not show fractions with very large numerators or denominators, by default
- Hectare and decare unit names (in addition to ha/da and hectoare/decaare)
- Always enable units for expressions that ends with "to [unit expression]", "to optimal", or similar
- Improve appearance of "x m/s" and similar
- Fix (1x+ay)^b (was not expanded)
- Fix roman() when used for reversed conversion
- Fix compilation without readline

This version primarily includes a large number of stability and reliability improvements, thanks to automatic testing of hundreds of thousands of randomly generated mathematical expressions.

Changes (from libqalculate):

- Equation solved and improved simplification for expressions with trigonometric functions
- General improvements to simplification and equation solving
- Improved factorization
- New magnitude(), entrywise() and hadamard() functions, and new n variable (unknown integer)
- Parse |x| and ||x|| as abs(x) and magnitude(x)
- Use kilo as prefix for gram if automatic prefix is off
- Many bug fixes and minor feature improvements

Changes:

- Polar and exponential complex forms (changed with mode or with "to" operator/command)
- Fix f(x)+a=a (e.g. x+1=1, which returned false/zero)
- Fix ln(-i)
- Fix automatic unit conversion in RPN mode
- Allow conversion of the current result using standalone "to" expression (e.g. type "to m" to convert current result to meter) in GUI
- Option to disable automatic conversion to local currency (when optimal conversion activated)
- Minor bug fixes

Changes:

- Do not always download all sources during automatic exchange rates updates (updating of common currencies will be much faster)
- Configurable completion suggestions
- Option to keep insert function dialog open for repeated function calculations
- Minor bug fixes and feature enhancements

This release does not include any changes to libqalculate or the CLI application.

GUI improvements:

- Calendar conversion
- Currency flags in completion suggestions list and result display
- Extended completion suggestions, matching titles (and countries for currencies) when at least three characters are entered
- Completion suggestions for prefixes and prefixed units
- Completion suggestions for "to" commands
- Add duodecimal and roman numerals to number base conversion dialog
- Duodecimal, roman, base #, and partial fraction "to" conversion commands
- Minor bug fixes and feature enhancements

Changes from libqalculate:

- Calendar conversion
- 5'8" notation for feet and inches, 5°12'30" notation for degrees, arcminutes and arcseconds
- Interpret 5m 7cm as 5m+7cm, and 3h 52min 20s as 3h+52min+20s, and similar
- Improved ln() simplifications
- Lunar phase functions
- Fix secondary exchange rates source
- Fix crashes with compiler flag "-D_GLIBCXX_ASSERTIONS"

GUI improvements:

- Currency flags
- Context menu for conversion list, and middle click for adding unit to expression
- Search entry for functions, units and variables
- Improved convert to menu in unit manager
- Workarounds for bugs in GTK+ themes

Changes from libqalculate:

- Improved interval arithmetic with dependent values (variables and function arguments). Most differentiable expressions do now return a properly narrow interval
- Experimental limit() function
- Two's complement representation for binary numbers
- Improved currency titles
- bitcmp() function
- Allow all rational numbers for second argument of root()
- Fix segfault when prefix is set in some cases
- Fix a^infinity when a > 1
- Minor bug fixes

List of changes:

- Simplified percent calculation (e.g. 100 + 20% = 120)
- Direct date and time arithmetic (e.g. "2018-03-10" + 372 h = "2018-03-25T13:00:00"), with time zone support
- Automatic conversion to local currency (in "optimal" conversion mode)
- Calculate each vector element (and each extra argument) separately in many functions (e.g. sin(5, 2, 3) = [-0.95892427, 0.90929743, 0.14112001])
- Unit-like conversion for physical constants (using "to")
- Allow user to change decimal separator (and consquently argument separator) independantly of locale
- Enhanced timastamp() and stamptodate()
- Fix function completion (GUI)
- Fix lambertw()/productlog()
- Fix display of parsed sexagesimal numbers

The main focus of version 2.3 is enhanced integration capabilities and basic solving of differential equations. Qalculate! should be much more usable for calculation of integrals now, even though it is still far from perfect.

There is also some important plotting fixes, as well as many minor bug fixes and feature enhancements.

Version 2.2.1 includes bug fixes and minor feature enhancements.

The main focus of version 2.2 is interval arithmetic, which can be used for determination of the number of significant digits in the final result or direct calculation with intervals of numbers. Note that more work is needed to avoid unnecessary interval widening for non-trivial expressions with dependent variables.

List of main changes:

- Interval arithmetic
- Digit grouping
- Enhanced display of parsed expression
- Use 10^n instead of E-notation for main result display by default
- Bitcoin support (frequent exchange rate updates are recommended)
- Use 'X' and 'E' (or appropriate Unicode characters), instead of 'A' and 'B', in duodecimal numbers (base 12)
- Option to disable units in physical constants
- Fixed engineering mode
- Various bug fixes and minor feature enhancements

The main focus of Qalculate! version 2.1 is consistent handling of roots of negative numbers and equation solving enhancements.

List of main changes:

- Highlighting of matching parentheses
- Proper display of roots and absolute value
- More than 100 additional currencies (using mycurrency.net)
- Equation solving enhancements
- root() and cbrt() now always returns the real root (e.g. cbrt(-8)=-2), while fractional powers return the principal root ((-8)^(1/3)=1+1,73i)
- Enhanced simplification
- Minor bug fixes and feature enhancements

After a month of hard work Qalculate! version 2.0 is ready with a redesigned expression entry and keypad in the GUI, and a new feature complete Windows version.

List of main changes:

- Redesigned keypad with a lot more functionality
- Multiline expression entry with undo/redo
- Alternative simplified function creation dialog
- Percentage calculation tool
- Binary installer for Microsoft Windows
- Date functions have been rewritten and now support much larger numbers
- Trigonometric functions with angle unit other than radians have been fixed
- Functions with more than one argument can now also be applied to the RPN stack
- New functions: airy(), arg(), besselj(), bessely(), conj(), digamma(), erf(), erfc()
- Many minor enhancements and bug fixes

Qalculate! has long been available for GNU/Linux and Mac OS X, but now it is finally also compatible with Microsoft Windows (although there is a fork by Cheng Sun with Windows compatibility, which has contributed code to this version). This pre-release version is likely not as stable as version 1.0.0 (although it does include some important bug fixes), but you are nevertheless invited to try it, report any issues you find and share your impressions.

Qalculate! version 1.0 includes the following changes:

- Increased efficiency and stability. Slow calculations can in most cases now be terminated in a controlled manner and the application should no longer potentially crash when trying to calculate extremely large numbers
- Enhanced factorization
- Revised temperature unit handling
- Enhanced automatic unit conversion, including a new default mode which keeps original non-SI units if no better alternative (that uses fewer units and exponents) is found
- A long list of bug fixes and minor feature enhancements

Qalculate! version 0.9.12 includes fixes to unit parsing in adaptive parsing mode, build fixes and other minor bug fixes. The fork with support for Microsoft Windows has been merged (compilation on Windows has however not been tested).

Qalculate! version 0.9.11 includes both some important bug fixes and a number of new features. Among other things, a new enhanced history view and mixed units conversion have been added. The RPN functionality has received much needed attention and should now be more usable.

Changes:

- Updated history view. The calculation log is now presented in an actual list. Buttons and functions have been added for calculation with previous expression and results
- Enhanced RPN stack manipulation (swap, rotation and copy) and arithmetics buttons next to stack list and combine RPN options in a single menu
- Calculation of text in spinboxes for integer function arguments
- Option to use multiple instances by default
- Mixed units conversion (e.g. "15 in = 1 ft + 3 in" and "3,2 h = 3 h + 12 min")
- Fixes to unit conversion (e.g. "1/(1 ns) to GHz")
- Fix slow calculation of exponentiations with big numerators in exponents (e.g. "2^0.333333333")
- Critical fixes for RPN syntax
- Fix degree sign
- Fix transformation of last arguments to vector, when only one last argument (fixes function("1+\x"; 1))
- Various other minor enhancements and bug fixes

Qalculate! version 0.9.9 is a minor release with some important bug fixes, as well as a few new features.

Changes:

- Only a single instance of the application will run by default (use command line switch '-n' for old behaviour)
- The application will no longer cause segmentation faults when using a locale unsupported by the users system
- Parsing of "today" fixed and "tomorrow" and "yesterday" added
- Qalculate! now compiles, without errors and warning, using clang

Qalculate! version 0.9.8 includes many bug fixes, but due to limited testing some new bugs have probably been introduced.

Changes:

- Lots of bug fixes and minor improvements
- The GTK+ UI has been ported to GTK+ 3 and has been polished in the process
- The convert dialog has been transformed into a tab page in the main window, with auto-selection of unit category and continuous conversion
- Less obtrusive display of errors and warnings. They are now shown as tooltips for an icon next to the expression entry
- Spinning animations show calculation/display activity and an icon in the expression entry halts the process, instead of a message dialog
- A tooltip for the result display will show the result in text format less open to interpretation
- Automatic on demand updates of exchanges rates
- Better resizing of main windows. Tabs will be resized instead of result display and keypad view will remember size independently of the history view
- 'to' can now not only be used for conversion to unit expressions. "to bin", "to oct", "to hex" and "to bases" changes number base displayed, "to factors" factorizes, "to fraction" displays as fraction, and "to base" and "to optimal" auto-converts units
- Three different parsing modes can be chosen from (providing mainly different handling of implicit multiplication). The default 'adaptive' mode has been enhanced
- By default prefixes will not be added to for example imperial units
- Changed handling of degrees Celsius and Fahrenheit. Conversion will take place already during parsing
- When converting to unit without prefix, no prefix will be added to the result unless the unit expression is prepended with '?' ('0' works in the opposite direction)
- Option to ignore commas in numbers (for use as thousands separator)
- New function: fibonacci (Qalculate! can now tell you that the millionth fibonacci number is approximately 1,953282129 * 10^208987, although for obvious reasons the exact number cannot be displayed)
- New units: Hartree, Rydberg, Dalton (same as u)
- Currencies have been updated to reflect the available data from ECB
- Use ~/.local and ~/.conf to store configuration and definitions
- The KDE UI has been abandoned for now and is not included in this release