<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2003-2007, 2008, 2016-2019 Hanna Knutsson <hanna.knutsson@protonmail.com> -->
<component type="desktop">
 <id>qalculate-gtk.desktop</id>
 <metadata_license>CC0-1.0</metadata_license>
 <project_license>GPL-2.0+</project_license>
 <name>Qalculate! (GTK UI)</name>
 <summary>Powerful and easy to use calculator</summary>
 <description>
  <p>
   Qalculate! is a multi-purpose cross-platform desktop calculator.
   It is simple to use but provides power and versatility normally
   reserved for complicated math packages, as well as useful tools for
   everyday needs (such as currency conversion and percent calculation).
  </p>
  <p>
   Features include a large library of customizable functions, unit
   calculations and conversion, physical constants, symbolic calculations
   (including integrals and equations), arbitrary precision, uncertainty
   propagation, interval arithmetic, plotting, and a user-friendly interface.
  </p>
 </description>
 <screenshots>
  <screenshot type="default">
   <image>https://github.com/Qalculate/qalculate-gtk/raw/master/data/qalculate-gtk-appdata-1.png</image>
   <caption>The main window with history visible</caption>
  </screenshot>
  <screenshot>
   <image>https://github.com/Qalculate/qalculate-gtk/raw/master/data/qalculate-gtk-appdata-2.png</image>
   <caption>The main window with keypad visible</caption>
  </screenshot>
 </screenshots>
 <url type="homepage">https://qalculate.github.io</url>
 <url type="bugtracker">https://github.com/Qalculate/qalculate-gtk/issues</url>
 <url type="help">https://qalculate.github.io/manual/index.html</url>
 <url type="donation">https://www.paypal.me/HannaKnutsson</url>
 <url type="translate">https://github.com/Qalculate/libqalculate/blob/master/README.translate</url>
 <url type="vcs-browser">https://github.com/Qalculate/qalculate-gtk</url>
 <developer id="io.github.qalculate">
  <name>Hanna Knutsson</name>
 </developer>
 <content_rating type="oars-1.0"/>
 <kudos>
  <kudo>HiDpiIcon</kudo>
  <kudo>ModernToolkit</kudo>
  <kudo>UserDocs</kudo>
 </kudos>
 <launchable type="desktop-id">qalculate-gtk.desktop</launchable>
 <provides>
  <binary>qalculate-gtk</binary>
 </provides>
 <translation type="gettext">qalculate-gtk</translation>
 <releases>
  <release version="5.11.0" date="2026-05-25">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Add set functions (union, intersect, setdiff, setxor, isMember, isSubset) and operators (∪, ∩, ∖, ⊖, ∈, ⊆, etc.)</li>
      <li>Add characters(), count(), digitSum(), and digitalRoot(), find(), popCount(), string(), and while() functions</li>
      <li>Support negative row and column values in element(), row(), and column() functions</li>
      <li>Support matrix[row][column] syntax</li>
      <li>Support text objects in sort() function</li>
      <li>Add third optional argument to interval() function to allow exclusion of exact endpoints</li>
      <li>Ignore "to" and "where" (and equivalent symbols) inside quotation marks</li>
      <li>Ignore dot in front of plus or minus (for consistent behavior in line with entrywise operators)</li>
      <li>Show "Division by zero" warning for all divisions by zero</li>
      <li>Make display of expressions with time units in time format more consistent</li>
      <li>Fix parse status and calculate-as-you-type when "where" expression defines a new symbol</li>
      <li>Fix removal of currency symbol in immediately in front value when copying result without unit</li>
      <li>Fix support for vector in argument of many functions (erf, mod, exp, etc.)</li>
      <li>Fix explicit conversion to mixed units for year variants</li>
      <li>Fix first digit missing in return value of integerDigits() in some cases</li>
      <li>Fix segfault when Calculator object is destroyed with uninitialized random state</li>
      <li>Fix infinite loop when referencing subfunction in another subfunction</li>
      <li>Fix segfault in replace() with variable specified using where expression, e.g. "replace(v, x, 1) where v = x"</li>
      <li>Fix segfault when data set function name is followed immediately by a single dot</li>
      <li>Fix v[i]=a syntax for vector element assignment</li>
      <li>Convert degree Celsius to Fahrenheit and vice versa in Gnome search provider</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.10.0" date="2026-03-30">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Improve factorization and simplification (particularly with radicals, logarithms, and absolute value)</li>
      <li>Add ton of refrigeration, slug, mol/dm³, mol/L, and molar units</li>
      <li>Add pcm, ppm, ppb, ppt, and ppq (parts per …), and lakh and crore variables</li>
      <li>Add XAG, XAU, XPD, and XPT currencies (precious metals)</li>
      <li>Use a maximum 4 decimals and minimum of 2 decimals by default for display of value of converted currencies</li>
      <li>Improve handling of "to mixed" after previous conversion statement (e.g. "1 m to in to mixed")</li>
      <li>Improve interval calculation, with interval arithmetic, with division by zero and/or both real and complex numbers in derivative of expression</li>
      <li>Treat 0^0 as undefined (instead of equal to 1), and fix limit for 0^0</li>
      <li>Set initial random seed using /dev/random</li>
      <li>Do not show warning about denominators assumed non-zero when converting to expression with non-unit objects</li>
      <li>Do not show negative exponents (if "negexp" is deactivated) when expressions contains unknown variables, even if all units have negative exponents</li>
      <li>Do not show possibly real expression in complex exponential form</li>
      <li>Initial support for comparison of vectors and matrices</li>
      <li>Allow use of apostrophe as thousands separator in input, when specified as such by locale</li>
      <li>Fix segfault with recursive variable in "where" expression</li>
      <li>Fix segfault in some cases when argument in det() contains only a single element</li>
      <li>Fix wrong simplification of "sin(2-cosh(x)^2/x+x)"</li>
      <li>Fix negative exponents always used for units with rounding set to (halfway) down or up</li>
      <li>Fix adaptive interval display for calculate-as-you-type result</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.9.0" date="2026-01-19">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Option to show expression field below result</li>
      <li>Customizable result widget height, in preferences</li>
      <li>Avoid display of completion list for non-decimal numbers, text arguments, and x, y, z</li>
      <li>Do not show calculate-as-you-type result for incomplete object name (e.g. "integ" interpreted as "int(e × g)")</li>
      <li>Add --update-exchange-rates command line option</li>
      <li>Preserve result copied to clipboard after exit</li>
      <li>Fix tab completion, when pressing shortcut key multiple times</li>
      <li>Fix delayed completion when tooltip is visible, on Wayland</li>
      <li>Hide remember position and keep above options, in preferences, on Wayland</li>
      <li>Improve decision when to not calculate or hide result in Gnome shell search provider</li>
      <li>Improve speed of sort(), rank(), and mode() functions (and other dependent functions)</li>
      <li>Parse ± before implicit multiplication when not preceded by number (e.g. "7 km ± 5m")</li>
      <li>Always consider x^(a + b) equivalent to x^a × x^b (fixes "x^(y + z) − x^y × x^z")</li>
      <li>Simplify (x = a || x ≥ a + 1) and (x ≤ a || x ≥ a + 1), and similar, when x and a are integers (fixes "abs(x − 1) = abs(1 − x)")</li>
      <li>Do not remove duplicate whitespace characters from text strings (in quotation marks)</li>
      <li>Fix floating point conversion when comma is used as decimal separator</li>
      <li>Fix (almost) endless loop with increasingly complex equations in some cases when x + x^(1/a) is transformed to x = (b − x)^a)</li>
      <li>Fix and improve function() function</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.8.2" date="2025-11-17">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Highlight unmatched parenthesis (with red color)</li>
      <li>Option to colorize background of highlighted parenthesis when light theme is used</li>
      <li>New functions: reshape(), circshift(), replacePart()</li>
      <li>Functions mergevectors() and area() renamed to slice() and part()</li>
      <li>v[i, ...]=... syntax for assignment of part of matrix/vector variable</li>
      <li>Improve language handling for functions, units, and variables</li>
      <li>Limit the range of supported arguments in bessely, besselj, binomial, and igamma functions (to avoid segfault and very slow unabortable calculations)</li>
      <li>Fix handling of single quotation marks</li>
     </ul>
   </description>
  </release>
  <release version="5.8.1" date="2025-10-27">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Option to change the default currency</li>
      <li>Customizable digit group size and separator</li>
      <li>Improve interpretation of function expressions with x, y, or z in object names (e.g. "x year"), or within quotation marks</li>
      <li>Ellipsize long titles in completion list</li>
      <li>Fix replace expression with result</li>
      <li>Fix opening of menu in menubar when completion list is visible</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.8.0" date="2025-10-13">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Automatically calculate expression selection if calculate as you type is enabled</li>
      <li>Add option to add or edit comment in history</li>
      <li>Add option to clear expression or replace with result after calculation</li>
      <li>Add output in scientific (sci), engineering (eng), ans simple notation as "to"-operator options</li>
      <li>Improve completion</li>
      <li>Replace edit-clear icon on keypad button with "C"</li>
      <li>Support non-existing X-variables in plot dialog</li>
      <li>Enable calculate as you type by default</li>
      <li>Show warning about default assumptions the first time an equation is solved</li>
      <li>Show warning symbol when calculate as you type expression results in a question</li>
      <li>Show warning and ask for confirmation when deactivating interval arithmetic</li>
      <li>Fix custom time zone in calculate as you type result when added to history</li>
      <li>Fix floating point value in floating point conversion dialog for extended and microchip formats</li>
      <li>Improve support (and fix segfault) for exponential notation in hexadecimal numbers</li>
      <li>Add TeX point, TeX scaled point, twip, agate, darcy, kayser, lambert, foot-lambert, and cc units</li>
      <li>Add compton wavelength constants for muon, neutron, proton, and tau</li>
      <li>Update calculation of fraction of year (with day counting basis 0 and 1) to match method used in spreadsheets other than Gnumeric</li>
      <li>Change default quantile algorithm from 8 to 7</li>
      <li>Improve accuracy for intervals in solutions to equations when using interval arithmetic</li>
      <li>Fix poolvar(), ttest(), cor(), dollarde() and dollarfr() functions</li>
      <li>Fix inequality with 1/f(x) on one side, e.g. "1/(x-2) ≤ 2"</li>
      <li>Fix value of Planck unit (was rounded to 7 decimals)</li>
      <li>Fix segfault with extremely small numbers and high number of bits in floating point conversion</li>
      <li>Fix crashes and freezes in some corner cases</li>
      <li>Many minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.7.0" date="2025-08-04">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Ask for interpretation of comma (when comma is not the default decimal separator)</li>
      <li>Restore editing of all right-hand side buttons</li>
      <li>Use icon for "AC" button, and no icon for "DEL" button</li>
      <li>Automatically set "Use comma as decimal separator" and "Ignore comma/dots in numbers" when local digit grouping is selected</li>
      <li>Improvements for insert function dialog in RPN mode</li>
      <li>Support input of base in log() function before parenthesis, e.g. "log20(400)" (equivalent to "log(400, 20)")</li>
      <li>support input of exponent before argument of trigonometric function (e.g. "sin²(x)")</li>
      <li>Support input of functions with more than one argument using RPN syntax</li>
      <li>Add new binary prefixes (robi, quebi), and enable use of recently added SI prefixes in output by default</li>
      <li>Micron unit</li>
      <li>Support "to 1/n" as alternative to "to fraction"</li>
      <li>Data set translation fixes</li>
      <li>Return exact integers in more case in log() function</li>
      <li>Fix segfault with text argument containing potential text returning function, or variable containing text value</li>
      <li>Fix segfault during calculation of (in)equality with root() function with insufficient number of arguments</li>
      <li>Fix segfault during output of both approximate and exact logical OR value without (in)equality</li>
      <li>Fix qError() function</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.6.0" date="2025-06-30">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Add support for display of repeating decimals using overline (vinculum) instead of ellipsis</li>
      <li>Use selection (as if button was clicked) if RPN stack is visible when using keyboard shortcut for RPN operation</li>
      <li>Allow enter to accept input when creating history bookmark, and in last entry in set unknowns dialog</li>
      <li>Support all real numbers in binomial(), comb(), and perm() functions</li>
      <li>Add boolean argument for reversed conversion (to text string) in bin(), oct(), dec(), hex(), and base()</li>
      <li>Add support for units in limit()</li>
      <li>Improve simplification and speed in diff() function for high orders</li>
      <li>Do not allow conversion using "to" in function expression (in edit function dialog)</li>
      <li>Show a warning when it appears as if the user tries to convert part of an expression</li>
      <li>Add "-" after unit prefix symbol (k and M excluded), in completion list, to indicate that it must be followed by a unit</li>
      <li>Improve handling of functions returning text string or value with angle unit, in angle and text arguments</li>
      <li>Improve handling of random numbers in iterative functions and in function arguments of custom functions</li>
      <li>Disable calculate as you type for expression containing export, load, or command function</li>
      <li>Use LANGUAGE environment variable, instead of LANG, on Windows in order to avoid changing regional format settings</li>
      <li>Improvements/fixes for currencies and exchange rates</li>
      <li>Use tabular numbers (tnum) font feature (fixes alignment with Adwaita font) in history, RPN stack, and for binary numbers in result</li>
      <li>Fix empty category field in matrix/vector edit dialog</li>
      <li>Fix segfault in some cases when creating variable with long title/value</li>
      <li>Fix copy result to clipboard (and inconsequential crash after any action) in Gnome shell search provider</li>
      <li>Fix expression status for multiple "to" expressions without preceding expression (not supported)</li>
      <li>Fix integral with infinite limit with unit</li>
      <li>Fix non-localized data set key properties (when translated version is available)</li>
      <li>Fix angle conversion for (in)equalities (both sides where converted)</li>
      <li>Fix default separator in load() and export() functions</li>
      <li>Fix µ_B name/symbol for Bohr magneton</li>
      <li>Fix incorrect limit for expression containing tan(x) when value to approach is pi/2 without direction</li>
      <li>Traditional Chinese translation</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.5.1" date="2025-02-24">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Fix segfault when deleting object</li>
      <li>Fix mode menu items sometimes not functioning properly after a mode has been added or removed</li>
      <li>Fix right status context menu not updated</li>
      <li>Fix keyboard shortcut input dialog when modifier is released first</li>
      <li>Fix date (month off by one) in history context menu</li>
      <li>Fix copy unformatted ASCII without units when unit is placed before quantity</li>
      <li>Fix roman numerals shown as "Other"</li>
      <li>Fix previous result displayed with changed output format despite cleared result after modified input format</li>
      <li>Fix and improve tooltips</li>
      <li>Indicate input and output base using overline and underline in programming keypad when input and output base differs</li>
      <li>Fix solve() function with replace() function as first argument (fixes solve2() function)</li>
      <li>Fix "where" operator using (in)equality in variable</li>
      <li>Return x=a*e^(i*r) (with r instead of n) for abs(x)=x</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.5.0" date="2025-01-13">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Set ans variable to solution(s) of equation (as if solve() function were used)</li>
      <li>Option to disable cursor blinking</li>
      <li>a(i) and a[i] syntax (the latter with support for functions) for element in vector</li>
      <li>New function: factor()</li>
      <li>Use hours or minutes as default unit for conversion to time unit of expression with time format but no units (e.g. "0:00:12 to s")</li>
      <li>Always use four digits for year in date (e.g. "0064-07-18" instead of "64-07-18"), and support input of date using DD-MM-YYYY format</li>
      <li>Fix solving of x^4-4x^3+10x^2-12x+1=0, and similar, in exact mode</li>
      <li>Fix rounding in 1/# conversion to integer (e.g. "1/2 to 0.99")</li>
      <li>Fix unability to find approximate solutions to some high degree equations (e.g. "x⁴ − 4x³ + 10x² − 12x = −1")</li>
      <li>Fix automatic variable detection in select()</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.4.0" date="2024-11-25">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Option to specify number of displayed significant digits, instead of using precision</li>
      <li>Option, in menu, to open settings folder(s)</li>
      <li>Improve decision to automatically convert unchanged quantity with unit</li>
      <li>New functions: tripleProduct(), multilimit()</li>
      <li>Hungarian translation</li>
      <li>Updated French translation</li>
      <li>Fix number base subscripts in programming keypad, and fix updating of number bases before any calculation has occurrred</li>
      <li>Fix keyboard shortcut with copy followed by quit</li>
      <li>Fix initial selection and exclusion of optional arguments from output of insert function dialog</li>
      <li>Fix precision in Preset mode</li>
      <li>Fix case conversion of µ to M and similar</li>
      <li>Fix segfault with very large integer raised by very large integer</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.3.0" date="2024-10-07">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Show language menu in preferences on all platforms</li>
      <li>Improve initial value and clear all other fields when edited field is empty, in number bases and floating point conversion dialogs</li>
      <li>Allow unit expressions for insert unit action, for custom shortcuts and buttons</li>
      <li>Set minimum characters to two for all completion with "Limited full completion"</li>
      <li>Support x without backslash for custom function argument condition</li>
      <li>Update parsed expression and calculate-as-you-type result if variable, function, or unit in expression has changed</li>
      <li>Update conversion dialogs when expression has been calculated</li>
      <li>Restructured code</li>
      <li>Fixes for overwrite input mode</li>
      <li>Fix Up and Down item in context menu of RPN stack</li>
      <li>Fix tiny exponents in prefix menus</li>
      <li>Fix copy unformatted ASCII without units when decimal separator is comma</li>
      <li>Fix memory leaks</li>
      <li>Fix segfault with recursive (self-referencing) function</li>
      <li>Fix input of negative exponent in scientific e notation with RPN syntax</li>
      <li>Fix parsing of 1°2'3" as 1°+2'+3"</li>
      <li>Improve handling of "where" expressions with inequalities</li>
      <li>Fix definite integral for 1/sqrt(1-x^2), with limits higher/lower than or equal to -1 and 1</li>
      <li>Fix crash with empty vector in plot function, e.g. plot([])</li>
      <li>Fix "did you mean..." warning for two implicitly multiplicated functions without space between (e.g. "atan2(a,b)atan2(c,d)")</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.2.0" date="2024-07-01">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Physical constants updated with CODATA 2022 values</li>
      <li>New function: allroots()</li>
      <li>New units: therm, thermie, IUNS calorie, rpm</li>
      <li>Additional names/symbols for turn unit</li>
      <li>Use symbol "cal" for thermochemical (instead of international table) calorie</li>
      <li>Change title and names/symbols of weak mixing angle (prepend "sin2" to theta variants)</li>
      <li>Return exact negative integers in log10()</li>
      <li>More conservative handling of infinity in equations</li>
      <li>Remove n from equation solution if possible using assumptions of x</li>
      <li>Save date and time for history items, add search by date, and show date of selected history item in search by date context menu item</li>
      <li>Option to change the max number of history lines saved</li>
      <li>Option to save history to separate file</li>
      <li>Improved sorting of text strings with Unicode characters</li>
      <li>Reverse order of row and column for element index in matrix dialogs</li>
      <li>Fix extremely small superscript and subscript with some fonts and on Windows with scaling ≥200%</li>
      <li>Fix empty windows when opened a second time</li>
      <li>Fix subsequent tab completions after completion of unit with prefix</li>
      <li>Fix input of scientific E-notation using lowercase e in numbers using concise interval notation, in expressions</li>
      <li>Fix "bit width" and "signed integer" arguments in setbits()</li>
      <li>Fix a^(f(x))=a^(b*g(x)) where b=2 or b=3</li>
      <li>Fix auto/dual approximation with "where" expression</li>
      <li>Fix "where" expressions with multiple inequality statements for a single variable, e.g. "where x≥0 and x≤10"</li>
      <li>Fix crash when a variable name/symbol with more than 20 characters is used in "where" expression</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.1.0" date="2024-05-06">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Option to show parsed expression in result field</li>
      <li>Add two's complement input and binary bits to preferences, and preserve these settings when leaving programming keypad</li>
      <li>Ask for the desired interpretation the first time percent addition is used (e.g. 100 + 10% equals 110 or 100.1)</li>
      <li>Download button in dialog shown when new version is available, on Windows</li>
      <li>Support for solving equations containing if() function</li>
      <li>Support for solving root(a, x)=b (requires rational value for ln(a)/ln(b))</li>
      <li>New functions: powertower() and multiples()</li>
      <li>New units for solar radius, mass, and luminosity</li>
      <li>Use parentheses for exponent using scientific notation (with power of 10)</li>
      <li>Support integer factorization of integers in matrix/vector, and of numerator and denominator in rational number</li>
      <li>Relaxed conditions for (x^a)^b = x^(a × b) and x^a × x^b = x^(a + b) when complex numbers are deactivated (fixes segfaults)</li>
      <li>Portuguese (Portugal) translation</li>
      <li>Fix AltGr (primarily for input of operators) on Windows</li>
      <li>Fix (ax + n)^2 > 1, where n is even and a is not 1, returning false</li>
      <li>Fix setbits() function</li>
      <li>Fix Number::equals(0, ..., true) when number is infinite (affects replace() function)</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="5.0.0" date="2024-03-11">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Detection of potential spelling mistakes (a warning will be shown)</li>
      <li>Add support for n...m, j:k, and j:i:k syntax, for sequence of numbers, e.g. 1...3 = (1:3) = (1:1:3) = [1  2  3] (note that brackets may be required for colon syntax to avoid conflict with time format)</li>
      <li>Improved "where" operator, including improved output of parsed expression, support for previously undefined variable names, and assignments before expression (e.g. "a=2, b=2, a^b")</li>
      <li>Click on binary digit in result to flip bit</li>
      <li>Improvements/fixes to conversion completion and menus</li>
      <li>Add retry and cancel buttons to error dialog after failure to save preferences or definitions</li>
      <li>Add last result to stack when pressing Enter with empty expression (was unintentionally disabled)</li>
      <li>Selection of default number of bits for binary and hexadecimal numbers in programming keypad</li>
      <li>Always show binary position numbers in result if numbers of bits are higher than 16, and improve appearance</li>
      <li>More rounding methods</li>
      <li>New units: LightSecond, LightMinute, and LightHour</li>
      <li>New functions: bitget(), bitset(), setbits(), integerDigits(), digitGet(), digitSet(), flip(), colon(), and foreach()</li>
      <li>Support for hexadecimal floating-point literals using 0x...p... notation (0x1.4p3 = 0x1.4 * 2^3 = 10)</li>
      <li>Improve handling of zero solution and initial guess in newtonsolve() and secantsolve(), and check validity of solution</li>
      <li>Change handling a vectors in multiple function arguments (of non-vector type) - return vector instead of matrix, require equal number of elements, and use the same vector index for all arguments for each function instance (e.g. atan2([1  2], [3  4]) = [atan2(1, 3)  atan(2 4)]</li>
      <li>Set handle vector property by default, for text, date, and boolean arguments, and for arguments, in global non-builtin functions, without specified type, and enable parsing of vectors for text arguments</li>
      <li>Do not apply "read precision" setting to exponents for values with units</li>
      <li>Change from line to point (or dot) plot style for data with many discontinuous points</li>
      <li>lambertw(x*e^x, 0)=x if x>=-1</li>
      <li>Use parentheses for number with scientific notation in more cases</li>
      <li>Allow plot grid values higher than 1 (true) to specify line width</li>
      <li>Fix dsolve(diff(y, x) = y), and similar</li>
      <li>Fix x and y reversed for paired matrix when using plot dialog</li>
      <li>Fix log(1, 1) (undefined)</li>
      <li>Fix "to"-conversion to prefix and add "prefix" conversion option (for optimal prefix)</li>
      <li>Fix segfault in newtonsolve() and secantsolve() when equation does not contain variable</li>
      <li>Fix conversion to angle unit for complex angle, cis and polar forms</li>
      <li>Exchange rates fixes</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="4.9.0" date="2023-11-27">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Support for specifying a fixed denominator for display of fractions (e.g. "0.3 ft ➞ 1/8 ≈ (3 + 5/8) in")</li>
      <li>Always add result to history (even if identical to previous) if expression contains a function generating a random number</li>
      <li>Prefer capitalized function name (over name with underscore), when completing function name</li>
      <li>Improve decision to (not) update calculate-as-you-type result when last character is an operator</li>
      <li>Add percent and permille output options in rational number form menu</li>
      <li>Return gcd of numerators divided by lcm of denominators in gcd() with non-integer rational numbers, and vice versa for lcm()</li>
      <li>Add units for mean Gregorian and tropical years</li>
      <li>Ignore underscore in number</li>
      <li>Replace defunct exchange rates source and fix bitcoin exchange rate</li>
      <li>Fix keypad button (up/down) for cycling through expression history</li>
      <li>Fix asin(x)=a, acos(x)=a, and atan(x)=a, when a contains an angle unit and default angle unit is set</li>
      <li>Fix output of value converted to unit expression with numerical multiplier in denominator, e.g. "➞ L/(100 km)"</li>
      <li>Fix segfault when trying to solve "(x*sqrt(x)-y*sqrt(y))/(sqrt(x)-sqrt(y))=x+sqrt(x*y)+y"</li>
      <li>Fix parsing of case insensitive object name ending with Unicode character when followed by another Unicode character in expression, e.g. "микрометр"</li>
     </ul>
   </description>
  </release>
  <release version="4.8.1" date="2023-09-18">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Fix besselj() and bessely()</li>
      <li>Fix display of matrices and vectors with complex number form other than rectangular (default)</li>
      <li>Fix conflict between decibel units (e.g. "0dB") and duodecimal 0d… syntax (now requires at least two digits)</li>
      <li>Fixes for title options in plot() function</li>
      <li>Auto-update number bases above programming keypad when entering simple integers, even if calculate-as-you-type is deactivated</li>
     </ul>
   </description>
  </release>
  <release version="4.8.0" date="2023-08-21">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Update dialogs for editing of variables, functions, units, etc. to match the corresponding dialogs in the Qt UI</li>
      <li>Show user-defined objects in a separate category in menus and dialogs</li>
      <li>Add option to disable tooltips in keypad or everywhere</li>
      <li>Make closing of application with Escape key optional and disabled by default</li>
      <li>Add Microship (PIC16/17) 24 and 32 bit floating point formats</li>
      <li>Add support for specifying position of sign bit in floating point functions</li>
      <li>Concise (e.g. "1.2345(67)") and relative (e.g. "5+/-2%") notation for output and input (disabled by default for concise notation) of interval</li>
      <li>Optimize rest of unit expression when converting to partial (insufficient) expression (e.g. 18MA×100ns to J = 1.8 J/V)</li>
      <li>Round high precision intervals enclosing integers for integer arguments</li>
      <li>New derived units: Debye, C·m, Daraf, F^-1, V/C, N/C, kcal, kcal/g, kJ</li>
      <li>Use international foot as base unit for rod</li>
      <li>Fix initial height of list and description in units window</li>
      <li>Fix fibonacci() for non-integers and recursive use</li>
      <li>Fix conversion options presented for speed units (and possibly other)</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="4.7.0" date="2023-07-03">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Allow multiple actions for keyboard shortcuts</li>
      <li>Add toggle precision, and min, max, or min and max decimals to available shortcut and button actions</li>
      <li>Add option to exclude units for unformatted ASCII copy</li>
      <li>Add optional value to copy result action, allowing expression copy and formatting selection</li>
      <li>Fix copy unformatted ASCII when local digit group separator is same as selected decimal separator</li>
      <li>Support for custom default angle unit, e.g. turn, arcsec, arcmin</li>
      <li>Append default angle unit (instead of always radians) when converting value without unit to angle unit</li>
      <li>More consistent addition and removal of angle unit from function arguments</li>
      <li>Always interpret ./, .*, and .^ as entrywise operators if user intention is unclear</li>
      <li>Change order of operations to place entrywise and ordinary operators on the same precedence level</li>
      <li>Add function, kron(), for Kronecker product, and constants for Pauli matrices</li>
      <li>Add radius to planets dataset and update other properties</li>
      <li>Support replacement of unknown variables within variable values</li>
      <li>Fix besselj(0, 0)</li>
      <li>Fix incomplete calculation in tan() with try exact approximation</li>
      <li>Fix 0/0=0 equality (do not return true) and output of 2/0 (and similar)</li>
      <li>Fixes and improvements for newtonsolve() and secantsolve()</li>
      <li>Fix segfault when MathStructure is deleted after Calculator, and in destructor of calculated DynamicVariable (called from Calculator destructor)</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="4.6.1" date="2023-04-17">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Fix segfault in Gnome shell search provider with GLib 2.76</li>
      <li>Improve abortion of slow calculations</li>
      <li>Fix segfault and inconsistent behaviour in calculation of a^n mod b when n is negative</li>
      <li>Add modular exponentiation function, powmod(), with support for calculation of modular inverse</li>
      <li>Do not make any difference between row and column vectors in magnitude(), norm(), and dot() functions</li>
      <li>Fix division and exponentiation of scalar by matrix/vector, e.g. 4./[8 4.5]</li>
      <li>Improve parsing of element-wise operators with comma as decimal separator</li>
      <li>Fix rref() with different units for different elements</li>
      <li>Fix segfault with empty vector in uncertainty calculation</li>
      <li>Fix segfault trying to solve cbrt(x)^(1/3)-x=0</li>
      <li>Fix segfault in handling of vector variable with uncertainty</li>
      <li>Fix segfault in function assignment with equals sign (e.g. F()=...), when an object with the same name already exists</li>
      <li>Fix segfaults in some corner cases</li>
      <li>Fix internal id does not exist error</li>
      <li>Fix erroneous simplification of sin(x)^2*y-cos(x)*sin(x)^2*y</li>
      <li>Do not try to calculate norm() and magnitude() for matrices</li>
      <li>Fix some memory leaks</li>
      <li>Fix order of argument titles in csum() function</li>
     </ul>
   </description>
  </release>
  <release version="4.6.0" date="2023-03-06">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Do not automatically by default set prefix higher than kilo for meter, gram, higher than 1 (no prefix) for second and litre, or lower than 1 for byte and bit</li>
      <li>Do not use recently introduced SI prefixes (R, Q, r, q) automatically by default</li>
      <li>Do not set automatic prefix if resulting multiplier is less than 1 or greater than 1000, with some exceptions (e.g. km)</li>
      <li>Default prefix unit property (use for gram, and few other units, instead of hard coded value)</li>
      <li>Option to change symbols used for output of digits 10 and 11 in duodecimal numbers (use A and B as default digits)</li>
      <li>Allow the same variable left and right of the equals sign (e.g. var=var+2), in variable assignment without colon, if the variable exists and the previous value is known</li>
      <li>Use Unicode symbol for minus in scientific e notation</li>
      <li>Do not show multiplier if exactly 1, in HTML output of scientific notation</li>
      <li>Prefer Nm (torque) over J when the result is a vector with three components</li>
      <li>Add "amp" abbreviation to ampere unit, and "thou" name for 1/1000 in (mil)</li>
      <li>Fix unit order for Nm and Ws</li>
      <li>Fix conversion from ounce (interpreted as fluid ounce) to litre with prefix</li>
      <li>Fix automatic reactivation of global object after deletion of conflicting object</li>
      <li>Fix parsing of scientific e notation when the number is extremely large and exponentiation fails because of floating point overflow</li>
      <li>Fixes for output of scientific notation using number bases other than decimal</li>
      <li>Fix prefix selection in denominator when multiplier is higher than the value of the largest prefix</li>
      <li>Fix segfault in multisolve()</li>
      <li>Fix completion list with a single item for some GTK themes (e.g. Breeze, Ambiance)</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="4.5.1" date="2023-01-04">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Fix retrieval of exchange rates from mycurrency.net and add alternative secondary exchange rates sources</li>
      <li>Align completion list to beginning of word</li>
      <li>Add m/s³, m/s⁴, m/s⁵, and m/s⁶ as derived units (improves automatic unit conversion)</li>
      <li>Check that the output of command, in command() function, is a reasonably sane expression</li>
     </ul>
   </description>
  </release>
  <release version="4.5.0" date="2022-12-19">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Conversion to any type of expression (e.g. "1000 BTC to million USD")</li>
      <li>Use current status of limit implicit multiplication setting during parsing of conversion expression</li>
      <li>New SI prefixes (R, r, Q, q)</li>
      <li>New units: ounce force (ozf), rack unit (U)</li>
      <li>Use standard form (sorting) for polynomials</li>
      <li>Improve consistency of behaviour when global units are replaced</li>
      <li>More consistent addition of units to expression without units for unit conversion</li>
      <li>Improvements and fixes for arg() and atan2() functions</li>
      <li>Use history font for RPN stack list</li>
      <li>Fix factorization conversion specified in expression, and conversion performed using a separate expression</li>
      <li>Fix unit names dialog</li>
      <li>Fix interpretation of Myr (megayear) and Gyr (gigayear)</li>
      <li>Fix milli- and centimeter of water units</li>
      <li>Fix genvector() with for negative step size or expression as step size/number of steps</li>
      <li>Fix randuniform() function</li>
      <li>Fix automatic/dual fraction format after conversion (e.g. "8 to score")</li>
      <li>Fix inconsistently displayed parsing of "7d 5h" and similar</li>
      <li>Fix empty customize keypad buttons dialog when reopened</li>
      <li>Fixes/improvements for completion menu when opened upwards</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="4.4.0" date="2022-10-17">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Add "Clear history" to available keyboard shortcut and button actions</li>
      <li>Show exchange rates source, and update time, for current calculation in tooltip</li>
      <li>New prime number functions: primePi(), primes(), nthprime(), nextprime(), prevprime(), and isprime()</li>
      <li>New functions for intervals and uncertainties: upperEndpoint(), lowerEndpoint(), midpoint(), and errorPart()</li>
      <li>Add meter of water and related pressure units, and more derived flow rate units</li>
      <li>Support for vectors and matrices in uncertainty propagation calculation</li>
      <li>Proper support for uncertainty propagation in total(), sum(), product(), and for() functions</li>
      <li>Simplify display of parsed expression (primarily for quantities with units)</li>
      <li>Avoid parsing of implicit multiplication as nested multiplication</li>
      <li>Allow use of curly brackets as alternative parentheses</li>
      <li>Include +/- statement in function argument without parentheses</li>
      <li>Return values for approximate variables in exact mode in dimension() and elements()</li>
      <li>Improve parsing of quotation marks as feet/inch or arcmin/arcsec (e.g. do not parse s" as sin)</li>
      <li>Partial Georgian translation</li>
      <li>Fix "Set Prefix" for auto-calculated result</li>
      <li>Fix copying of result during delay before calculate-as-you-type result is added to history</li>
      <li>Fix opening customize keypad buttons a second time after the window has been closed with method other than using the close button</li>
      <li>Fix exact calculation of re((a*i)^(n/2)) (wrong sign in some cases)</li>
      <li>Fix erroneous calculation in some cases with physical constants both outside and inside unit relations when interval calculation is set to interval arithmetic</li>
      <li>Fix segfault in Calculator destructor</li>
      <li>Fix segfaults in some corner cases</li>
      <li>Fix use of random numbers in iterative functions</li>
      <li>Fix writing beyond end of array during exchange rates check in some cases (results in activation of old style matrices)</li>
      <li>Fix automatic reactivation of deactivated global object if a function with the same name exists</li>
      <li>Do not convert function arguments which do not allow units (fixes "arcsin(0.5+/-0.1) to deg")</li>
      <li>Fix prefix after conversion to optimal unit when the optimal unit includes a prefix</li>
      <li>Fix exact calculation when function argument is an approximate vector variable (fail)</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="4.3.0" date="2022-08-22">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Fix handling of Unicode powers for units in denominator, with adaptive parsing enabled (e.g. parse 10m/s² the same as 10m/s^2)</li>
      <li>Fix "+" ignored after "E" in number bases where "E" is a digit</li>
      <li>Fix scientific E notation with sign in argument when function is used without parentheses</li>
      <li>Fix lambertw() for values very close to zero</li>
      <li>Fix a*b^x+cx=d when a and c have different signs and d is non-zero</li>
      <li>Fix a^x+b^x=c when a and b is negative, and c is positive</li>
      <li>Fix segfaults in some corner cases</li>
      <li>Fix potential issues in handling of leap seconds (e.g. during subtraction of seconds from date)</li>
      <li>var=a syntax for variable assignment with calculated expression</li>
      <li>Replace ounce with fluid ounce during conversion to volume unit</li>
      <li>Solve a^x+b^x+...=c in more cases</li>
      <li>Improve remainder/modulus for numerators with large exponents</li>
      <li>Truncate number in output of parsed expression and end with ellipsis if unable to display all decimals</li>
      <li>Improved floating point calculation and output speed, particularly for simple expressions with very high precision</li>
      <li>New functions: clip(), qFormat(), qError()</li>
      <li>Replace selection (instead of wrap in parentheses) on operator input if selection ends with operator</li>
      <li>Act as if two arguments are required when applying base-N logarithm to expression</li>
      <li>When applying function to expression, exclude to/where expression and place cursor before closing parenthesis if operator is last in selection</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="4.2.0" date="2022-05-25">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Use formatted output in status display</li>
      <li>Do not add separator line if history duplicate was prevented</li>
      <li>Case-insensitive history search</li>
      <li>Use different font sizes for expressions, messages, and results in history</li>
      <li>Ellipsize long completion names list</li>
      <li>Insert minus instead of executing RPN operation, on key press, when last character is e</li>
      <li>Updated Tab key behaviour, e.g. cycle through completion items on subsequent tab key presses, and traverse items if tab key is unbound</li>
      <li>Variable spacing of x values in plot (unless step size is used)</li>
      <li>Option to plot real and imaginary parts separately (enabled by default)</li>
      <li>Updated plot() function with arguments for specification of plot options (in any order after the third argument)</li>
      <li>Polar plot style</li>
      <li>Ask the user for the desired sinc() variant (unnormalized or normalized)</li>
      <li>Support for binary-coded decimals (BCD)</li>
      <li>Show names with underscore capitalized and with underscore removed (with some exceptions)</li>
      <li>Additional information units</li>
      <li>Units for volumetric flow rate</li>
      <li>Tradtional numbers (e.g. dozen, score)</li>
      <li>Show warning when log() is used with a single argument, and always show second argument of log()</li>
      <li>Make names with a single character followed by digits case-sensitive with suffix by default</li>
      <li>Accept more than two arguments in gcd() and lcm()</li>
      <li>Interpret a single vector argument as a list of arguments if function requires more than one argument</li>
      <li>Fix action (e.g. conversion, factorization) on uncalculated expression</li>
      <li>Fix scaling of result (when it does not fit)</li>
      <li>Fix limit of floor(), ceil(), and trunc()</li>
      <li>Fix plotting of derivatives and integrals</li>
      <li>Fix randpoisson()</li>
      <li>Fix reactivation of object, after object that caused deactivation is removed</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="4.1.1" date="2022-04-04">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Improve resolution and sizing of flag images</li>
      <li>Do not change result color when window loses focus</li>
      <li>Do not add separator line if history duplicate was prevented</li>
      <li>Do nothing when Enter is pressed if expression is empty and do not convert empty expression</li>
      <li>Restrict use of reciprocal in unit conversion, e.g. invert in "5m/s to s/m" (= 0.2 s/m) but not in "500/lb to g" (= 1.1/g)</li>
      <li>New mHg unit (allows use with prefixes other than milli)</li>
      <li>Always display abbreviated unit name (symbol) with abbreviated prefix (when unit only has short name)</li>
      <li>Minor improvements to automatic unit conversion</li>
      <li>Fix display of (1 + f(x))/n</li>
      <li>Fix memory leak when updating result display</li>
      <li>Fix small dot visible when expression is empty with some default fonts</li>
      <li>Fix segfault if result widget is not realized when first drawing</li>
      <li>Fix Unicode handling when ellipsizing during saving of long result</li>
      <li>Fix "Customize completion…" item in expression popup menu</li>
     </ul>
   </description>
  </release>
  <release version="4.1.0" date="2022-03-14">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Add option to only show parsed or entered expression in history</li>
      <li>Add option to clear expression history</li>
      <li>Do not add duplicate results to history</li>
      <li>Improved result copying, with proper html format and ASCII option</li>
      <li>Do not replace *, -, / with Unicode operators if cursor is within quotation marks (apply same principles on paste)</li>
      <li>Improvements and fixes for interaction with history</li>
      <li>Do not change result color when window loses focus</li>
      <li>Do not perform automatic (continuous) conversion, from conversion view, if result contains no unit</li>
      <li>Use non-breaking narrow space as digit separator in reasonably short numbers, and between quantity and unit</li>
      <li>Update value of austronomical unit</li>
      <li>Fix display of result with quoted symbol in history</li>
      <li>Fix completion visible after expression cleared with key repetition</li>
      <li>Fix segfault with local digit grouping when separator is empty (e.g. with ignore locale)</li>
      <li>Fix freezes and crashes with extrememly large vectors and matrices</li>
      <li>Fix segfault in matrix multiplication</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="4.0.0" date="2022-02-14">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Enhanced formatting of history</li>
      <li>Make keypad in number bases dialog hidable</li>
      <li>New matrix syntax (column separated by space or comma, rows separated by semicolon, as in matlab)</li>
      <li>Do not make any difference between a vector and a matrix with a single row, or between a scalar and matrix with a single element</li>
      <li>Support input of functions, units, and variables with underscores omitted in names (e.g. µ0 = µ_0, FermiCoupling = fermi_coupling), with some exceptions</li>
      <li>Option to disable "simplified" percentage calculations (e.g. interpret 100 + 20% as 100 + 0.2 instead of 100 × 120%)</li>
      <li>Option to truncate numbers (instead of round to nearest) in result</li>
      <li>Convert K, Hz, and 1/m to J (and derived units) using conversion factor constants (e.g. 1/(550nm) to eV ≈ 2.25 eV)</li>
      <li>Allow use of M as 10^6 without unit</li>
      <li>New ksi unit</li>
      <li>New functions: divisors(), rate(), vertcat(), horzcat()</li>
      <li>New plastic number (ρ) constant, and new "hbar" name for reduced Planck constant, and add second Unicode codepoint for µ-sign in constants</li>
      <li>Allow zero (1st and/or 2nd argument) in comb() and perm(), and return zero if second argument (k) is greater than the first (n)</li>
      <li>Calculate statistical functions (e.g. mode(), min(), max(), percentile()) separately for each column of matrix</li>
      <li>Return the lowest value if there are multiple values with equal frequency in mode()</li>
      <li>Parse text argument as expression if concatenate function name is found in text string, and fix concatenate returning date</li>
      <li>Iconify activated window first to bring it to the front with input focus</li>
      <li>Omit characters in the middle (ellipsize) of very long results (> 500 000 characters) instead of just showing an ellipsis, and show matrix dimension instead of result for very large matrices</li>
      <li>Fix copy result when calculate-as-you-type result is not automatically added to history</li>
      <li>Fix output of a ≤ x ≤ b</li>
      <li>Fix loading of keyboard shortcuts and custom buttons with space in value or label</li>
      <li>Fix segfault with extremely long results</li>
      <li>Fix Unicode handling on platforms where char is not signed</li>
      <li>Fix bitrot()</li>
      <li>Fix segfault in multisolve() when initial order of equations is not optimal</li>
      <li>Fix segfault with empty sqrt inside sqrt, e.g. sqrt(1+sqrt())</li>
      <li>Fix incompletely calculated nounit(), e.g. in unit conversion</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.22.0" date="2021-12-01">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Minor improvements and fixes in data set, function, unit, and variable edit dialogs</li>
      <li>Avoid division by zero in percentage calculation dialog</li>
      <li>Use editable combo box for data object argument in insert function dialog</li>
      <li>Remove associated bookmark from menu when removing history item, and select the history row on go to bookmark</li>
      <li>Somewhat selectable history text (single click on selected item edits cell with non-editable entry)</li>
      <li>Increase the number of optional custom buttons from 5 to 20</li>
      <li>Fix plot expression with localized decimal separator, add as multiple functions if plot expression results in matrix, and handle units unit plot data</li>
      <li>New functions: linearfit(), quadraticfit(), cubicfit(), ramlatency(), parallel()</li>
      <li>Improved and extended parallel operator (|| is interpreted as parallel if units are used)</li>
      <li>Merged inv() and inverse() functions</li>
      <li>Allow nested subfunctions</li>
      <li>Solve x^(x^(-a))=b</li>
      <li>Fix pearson() and spearman()</li>
      <li>Fix a*sin(x)+b*cos(x)=c</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.21.0" date="2021-10-13">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Ask (once) for correct interpretation of ambiguous implicit multiplication</li>
      <li>Improved simplification of radical expressions</li>
      <li>Improved Im(), Re(), and arg() functions</li>
      <li>Improved output of complex forms (other than the default rectangular) in exact mode</li>
      <li>Function for drill bit size conversion</li>
      <li>Fixes for equations with complex inverse trigonometric and hyperbolic functions with no solution</li>
      <li>Fixes for complex x^(ax)=b</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.20.0" date="2021-07-28">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Updated insert function dialog layout</li>
      <li>Add description field to variables and units dialogs</li>
      <li>Add customizable keyboard shortcut for insert result</li>
      <li>Insert "smart parentheses" with right parenthesis key if expression has selection or text cursor is at start</li>
      <li>Add language option to configuration file</li>
      <li>Fix background color of expression entry in inactive window</li>
      <li>Add translator credits to about dialog</li>
      <li>Catalan translation</li>
      <li>Add support for function creation in save() function and with associated operator (e.g. func1():=x*y^2)</li>
      <li>Add operators (.', .*, ./, .^) and functions (replace multiply(), divide(), and pow()) for transpose and element-wise multiplication, division, and power</li>
      <li>Fix norm() and magnitude(), and add second argument, p, to norm() function</li>
      <li>New text operators: dot, cross, comb, and perm</li>
      <li>Add support for ^^ as XOR operator</li>
      <li>Fixes and improvements in multisolve() function</li>
      <li>Always return exact result in base() function, in exact mode</li>
      <li>Improve parsing of functions without parentheses</li>
      <li>Do not try to load data objects from global definitions dir if data set is local</li>
      <li>Interpret "±" at end of expression as "±0"</li>
      <li>Convert Celsius to Fahrenheit if no calculation was performed</li>
      <li>Add support for QALCULATE_USER_DIR environment variable</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.19.0" date="2021-05-24">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Customizable text color and button padding</li>
      <li>Option to keep the main window above other windows</li>
      <li>Activate first (or selected) completion item using Tab key</li>
      <li>Ask (once) for the correct interpretation of dots, when comma is decimal separator</li>
      <li>Improve simplification of logical expressions (boolean algebra) and add boolean assumptions for unknown variables</li>
      <li>Add nand and nor operators and spelled out version of logical not operator ("not"), and interpret bitwise operators as logical in some cases</li>
      <li>New functions for inverse cumulative distributions: chisqdistinv(), fdistinv(), normdistinv(), and tdistinv()</li>
      <li>Add inverse incomplete beta function, betaincinv(), and improve betainc() (now returns regularized incomplete beta function)</li>
      <li>newtonsolve() and secantsolve() functions for solving equations using Newton's or secant method</li>
      <li>Do not return dot product when multiplication operator is used with vectors (use "." or dot() function instead)</li>
      <li>Russian and German translations</li>
      <li>Fix custom keyboard shortcuts without modifier</li>
      <li>Fix cumulative t-distribution for negative values</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.18.0" date="2021-04-05">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Improve handling of expressions with log-based units</li>
      <li>Improve conversion of expression with multiple units to a single unit (e.g. m/W to W)</li>
      <li>Output (kilo)gram instead of tonne with small prefix (e.g. kg instead of mt)</li>
      <li>New functions for statistical distributions: probit(), betadist(), cauchydist(), chisqdist(), expinv(), fdist(), gammadist(), tdist(), wblinv(), weibulldist()</li>
      <li>Improve functions for statistical distribution</li>
      <li>Improve sexagesimal input and output (including new sexa2, sexa3, latitude, latitude2, longitude, longitude2 bases), and add geodistance() for calculation of distance between two GPS coordinates</li>
      <li>Add command() function, which runs an external command and returns the output</li>
      <li>erfinv() function and support for solving equations with error functions</li>
      <li>Fix conversion with relative temperature units activated</li>
      <li>Fix gammainc() function</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.17.0" date="2021-02-15">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Temperature calculation modes (absolute, relative, hybrid)</li>
      <li>Allow prefixes, with full name, without units (e.g. kilo = 10^3)</li>
      <li>Save chain mode setting</li>
      <li>Handle SIGTERM signal</li>
      <li>Add convert to mixed units to result context menu</li>
      <li>Extended and improved simplified Chinese translation</li>
      <li>Save handle vector function argument property</li>
      <li>Fix never ending loop when calculating []*[]</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.16.0" date="2021-01-04">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Redesigned expression, status, and result widgets</li>
      <li>Chain mode and syntax (e.g. 1+2*3=(1+2)*3=6)</li>
      <li>Configurable calculate-as-you-type add to history delay</li>
      <li>Improved completion</li>
      <li>Support for qalc commands in GUI (expression is interpreted as command if it begins with '/')</li>
      <li>Support for reading expressions and commands from file in GUI (as in qalc, using command line option -f/--file)</li>
      <li>Use arrow instead of "to" by default</li>
      <li>French GUI translation</li>
      <li>Make all currency codes (except CUP and KGS) case insensitive</li>
      <li>Fixes for floating point format output</li>
      <li>Fix segfault on factorization in qalc</li>
      <li>Fix saving of local data objects</li>
      <li>Fix BYN exchange rate url</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.15.0" date="2020-11-23">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Replace equals button with a clickable icon on the upper right corner of the expression entry</li>
      <li>Optional extra column of customizable keypad buttons</li>
      <li>Use icons for "Value", "Text", and "Copy" in history view and hide all buttons when keypad is shown simultaneously</li>
      <li>Add "Exact" menu item to result popup menu when appropriate</li>
      <li>Automatic/dual approximation and fractions in Gnome shell search provider</li>
      <li>Add "precalculate expression" argument (default false) to save() function (this also changes the behaviour of ":=")</li>
      <li>Support multiple equivalent custom digits, separated by semicolon (e.g. "0;aA1;bB2;cC3"), and phoneword digit set in base() function</li>
      <li>Always place unit with prefix first (fixes kWh)</li>
      <li>Fix local time zone on Windows</li>
      <li>Fix matrix/vector multiplication with approximate matrix/vector variable</li>
      <li>Fix parsing of expression with multiple degree signs</li>
      <li>Fix segfault in unit manager</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.14.0" date="2020-10-26">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Customizable keypad buttons—change labels and actions for all buttons on the right-hand side of the keypad</li>
      <li>Support traditional calculator memory (MR/MC/MS/M+/M-)</li>
      <li>Notifications for invisible actions, e.g. result left-click copy</li>
      <li>Use v1, v2, … as default variable names</li>
      <li>Add Rutherford (Rd), millirem (mrem), mrem/s, and erg/g units</li>
      <li>Add yr and annus names for year unit, röntgen name for roentgen (R) unit, and rem for roentgen equivalent man</li>
      <li>Add matrix rank (rk) and reduced row echelon form (rref) functions</li>
      <li>Support for different character encodings in code() function</li>
      <li>Keep angle units in calculations involving both length and (plane) angle units (fixes lumen calculations)</li>
      <li>Improve plot speed for functions defined using expression</li>
      <li>Always perform conversion to optimal (SI) unit when the expression is a number multiplied by a unit and input equals output</li>
      <li>Improvements and fixes in insert function dialog</li>
      <li>Compiled definitions without GIO and with support for out-of-tree builds</li>
      <li>Fix availability of many currencies before manual exchange rates update</li>
      <li>Fix programming keypad base conversion for negative integers</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.13.0" date="2020-09-21">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Add abhenry (abH), cP, cStoke, mTorr, dyn/cm², and kph (or kmph) units, add biot (Bi) name for abampere, and replace J/T with A/m² as unit for current density</li>
      <li>Use B as abbreviation for byte instead of bel (dB is still used for decibel)</li>
      <li>Group digits after decimal separator (in groups of three, when standard digit grouping is active)</li>
      <li>Group hexadecimal digits</li>
      <li>Add binary prefixes zebi and yobi</li>
      <li>Do not use prefixes by default with most CGS units</li>
      <li>Do not use “$”, “dollar”, and “dollars” for USD (and do not use “£” as symbol for GBP) and remove cent, if the symbol is also used by the local currency</li>
      <li>Consider vectors as matrices with one column (column vector) in operations that expect a matrix (e.g. matrix multiplication)</li>
      <li>Increase default precision to 10</li>
      <li>Reduce time before GUI appears on load in some cases</li>
      <li>Add derived units without symbol (e.g. kg/m³) to completion</li>
      <li>Option to remember window position</li>
      <li>Only perform continuous conversion when convert tab is visible</li>
      <li>Add "Copy result to clipboard" to Gnome shell search provider</li>
      <li>Fix cot(pi/2), coth(pi/2×i), arccot(0), arcsch(0), and arcoth(0)</li>
      <li>Fix conversion to ratio</li>
      <li>Fix logarithmic y scale in plot</li>
      <li>Fix unit conversion search entry losing focus</li>
      <li>Fix potential precision loss when performing multiple consecutive unit conversions</li>
      <li>Fix self-contained Linux binaries: change GUI binary name to qalculate (fixes install and update scripts), and fix check for updates at startup</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.12.1" date="2020-08-05">
   <description>
    <p>This version includes some critical bug fixes.</p>
    <p>Changes:</p>
     <ul>
      <li>Fix display of negative numbers with scientific notation</li>
      <li>Fix BTC, BYN, and BYR exchange rates</li>
      <li>Fix exchange rates update time</li>
      <li>Fix parsing of negative power in function arguments without parenthesis</li>
      <li>Add arcsin, arccos, arsinh, arcosh, etc. as names for inverse trigonometric and hyperbolic functions</li>
      <li>Interpret sin^-1, cos^-1, etc. as inverse functions (arcsin, arccos, etc.)</li>
      <li>Add deftorad() and totient() functions</li>
     </ul>
   </description>
  </release>
  <release version="3.12.0" date="2020-07-27">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Option to hide left or right part of the keypad</li>
      <li>Replace fraction mode combo box with a single toggle button</li>
      <li>Disable prefixes by default in scientific, engineering, and pure modes, and change behaviour of composite modes when user changes separate options</li>
      <li>Auto completion for objects and properites in data set functions</li>
      <li>Split long numerical results in two lines and show bit position for binary number that does not fit in window</li>
      <li>Improved text layout in result</li>
      <li>Improved exact simplification of roots (e.g. sqrt(2)-2/sqrt(2)=0)</li>
      <li>Only apply negative exponents option to units, and always use negative exponents instead of division for unit expressions with only negative exponents</li>
      <li>Support use of right arrow as alternative to "to" for conversion (e.g. 5m→ft)</li>
      <li>Use middle dot instead of multiplication x in unit expressions</li>
      <li>Brazilian Portuguese (GUI only) and Spanish translations</li>
      <li>Examples in manual</li>
      <li>Fix Insert button in insert function dialog</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.11.0" date="2020-06-22">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Allow multiple "to"-conversions in one expression (e.g. "5 m/s to hex to ft to h = 0xE6AF.1E*ft∕h)</li>
      <li>Support specification of number of bits for hexadecimal "to" conversion (4 to hex16 = 0004)</li>
      <li>Improvements and fixes for sexagesimal numbers and time format</li>
      <li>Support for +, -, (, ) Unicode superscripts, and N-Ary Summation symbol</li>
      <li>Improved display of unit expressions</li>
      <li>Option to clear history on exit</li>
      <li>Fix removal of history items, and move to top, when calculate-as-you-type is activated</li>
      <li>Reduce the height of the result widget</li>
      <li>Hide tooltip after keypad button click</li>
      <li>Check for updates menu item</li>
      <li>Slovenian translation</li>
      <li>Fix segfault when parsing an expression that contains a prefix with more than one letter followed by a unit and an exponent without exponentiation operator</li>
      <li>Fixes for the Gnome shell search provider</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.10.0" date="2020-05-11">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Support for comments in expressions, using # (number sign)</li>
      <li>Gnome shell search provider</li>
      <li>History search</li>
      <li>Configurable number of lines in expression entry</li>
      <li>Add angle unit selection to sin, cos, and tan button menus and an new status popup menu, and make it possible to set keyboard shortcut for angle units</li>
      <li>Improved keyboard shortcuts dialog</li>
      <li>New parentheses and other improvements in display of result</li>
      <li>Improved handling of vectors and matrices in insert function dialog</li>
      <li>Configurable time limit for plot</li>
      <li>Ellipsize long variable values used as title in completion popup (fixes segfault)</li>
      <li>Tau (2pi) constant</li>
      <li>Allow angle as argument in nextlunarphase()</li>
      <li>Fix automatic conversion to Newton</li>
      <li>Fix x^2=25m^2 when x is assumed positive (was evaluated as false), and similar in exact mode</li>
      <li>Fix display of repeating decimals</li>
      <li>Fix segfault with empty sin() or sinh() in equation</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.9.0" date="2020-04-13">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Persistent keypad option, which makes it possible to show the keypad and the history simultaneously</li>
      <li>Minimal window mode, which hides everything but the expression entry and, when not empty, the result</li>
      <li>Optional (disabled by default at compile time) internal help viewer using WebKitGTK</li>
      <li>Fix segfault during calculation of atan(acos(x)), atan(asin(x)), and asin(atan(x)) when angle unit is degrees or gradians</li>
      <li>Fix order of prime factors</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.8.0" date="2020-03-02">
   <description>
    <p>Changes:</p>
     <ul>
      <li>IEEE 754 floating point conversion: float(), floatBits(), floatError(), floatParts(), and floatValue() functions, and fp16, fp32/float, fp64/double, fp80, and fp128 "to" conversion</li>
      <li>Floating point conversion dialog</li>
      <li>Option to enable/disable new version notification</li>
      <li>Restore A and B (case insensitive) digits in input of duodecimal number, use 0d as prefix for input of duodecimal numbers, and always interpret expression as duodecimal if it contains duodecimal Unicode characters</li>
      <li>Modify behavior of floor(), ceil(), trunc and round(): mark result as exact, allow approximate calculation of argument in exact mode, return interval when appropriate, and add "number of decimals" and "round halfway to even" (defaults to away from zero) arguments to round()</li>
      <li>Fix 1kOhm||1kOhm (and similar)</li>
      <li>Fix rounding in some cases with max decimals set</li>
      <li>Fix segfault in solve() with AND and OR in solution</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.7.0" date="2020-01-20">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Configurable keyboard shortcuts</li>
      <li>New functions: bernoulli(), erfi(), fresnels(), fresnelc()</li>
      <li>Improved zeta(), with exact values for negative and even integers, support for all real values, and optional second argument for calculation of Hurwitz zeta</li>
      <li>Support for complex numbers in Ei(), li(), Si(), Ci(), Shi(), and Chi()</li>
      <li>Support for all branches and complex numbers in lambertw()</li>
      <li>Extended argument support in Li()</li>
      <li>Add base units (or local currency) for unit conversion when units are missing in original expression (e.g. 5 to ft = 5 m to ft)</li>
      <li>Belarusian ruble (BYN)</li>
      <li>Improvements and fixes for integrals</li>
      <li>Fix crash when used in Cantor (caused by conflict with Poppler library)</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.6.0" date="2019-11-25">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Major improvements and fixes for integrals (note that the variable of integration argument has moved to 4th position, e.g. integrate(x^2, 1, 5) instead of integrate(x^2, x, 1, 5))</li>
      <li>Automatic detection of variables for undefined symbolic arguments (e.g. for diff(y^2), the derivative is calculated with respect to y instead of defaulting to x)</li>
      <li>Fix uncertainty propagation involving complex numbers (calculate imaginary and real uncertainty separately when using variance formula)</li>
      <li>Fix incorrect solutions to equations not removed</li>
      <li>New functions: dof() for photography depth of field calculation; awg() and awgd() for American Wire Gauge conversion; romberg() for numerical integration; randnorm(), randpoisson(), randrayleigh(), randexp(), and randuniform() for random numbers with different distributions; normdist(), expondist(), and binomdist() for distribution probability calculations</li>
      <li>New units: cmil and kcmil</li>
      <li>rand() (and related functions) now accepts an additional argument for specifying the number of random values to generate</li>
      <li>Option to select custom keypad or application font</li>
      <li>Options to customize the window title: different modes selectable in preferences, command line option, and settitle() function</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.5.0" date="2019-10-23">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Option to use binary prefixes by default for information units and "b?" syntax for conversion to optimal prefix (e.g. 8192 bits to b?byte = 1 kibibyte)</li>
      <li>Bijective base-26 support (including bijective() function)</li>
      <li>Option to use 'j' as default symbol for the imaginary unit (placed in front of the imaginary part)</li>
      <li>Angle/phasor notation for complex numbers</li>
      <li>poisson() function</li>
      <li>Fix steradian conversion</li>
      <li>Fix and improve integral of abs(f(x))</li>
      <li>Add calculate-as-you-type result to history after idle time</li>
      <li>Negate, sum, and "LAST x" RPN buttons, keyboard shortcuts for RPN stack manipulation, and various other RPN improvements</li>
      <li>Fix segfault when saving mode/settings (on exit) if history is empty</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.4.0" date="2019-09-16">
   <description>
    <p>Changes:</p>
     <ul>
      <li>"where"-syntax (e.g. "x+y where x=1 and y=2", or alternatively "x+y/.x=1,y=2", and "x^2=4 where x≥0")</li>
      <li>Improvements to replace() function (now supports replacement functions and parts of polynomials)</li>
      <li>Fix local thousands separator on Windows when localeconv()->thousands_sep is a non-Unicode character > 127 (e.g. non-breaking space, 0xA0)</li>
      <li>Smarter comma interpretation (when defined as decimal separator, but used differently)</li>
      <li>Show warning when multiple decimal separators are used in a single number</li>
      <li>Man pages (documentation for Unix-like operating systems)</li>
      <li>Option to automatically calculate the current expression on each change, as you type</li>
      <li>Fix segfault with command line expression</li>
      <li>Option to delete selected history items</li>
      <li>RPN stack drag and drop</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.3.0" date="2019-07-25">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Support for number bases greater than 32, as well as negative and non-integer number bases</li>
      <li>Support for all number bases, including non-numerical, and specification of digits in base() function</li>
      <li>dBm and dBW units</li>
      <li>Support both micro sign and small mu as symbol for micro prefix</li>
      <li>New programming keypad icon</li>
      <li>Import definitions action in GUI</li>
      <li>Fix parsing of "0x80 mod 3" and similar</li>
      <li>Reduce length of expressions in warnings and errors (primarily when using high precision)</li>
      <li>Improved handling of interval arithmetics for cubic equations</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.2.0" date="2019-05-27">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Updated physical constants (CODATA 2018)</li>
      <li>Programming keypad</li>
      <li>Bookmarks and protect (from disappearing of the end of the list) option for history</li>
      <li>New and updated keypad buttons</li>
      <li>Keypad in number bases dialog</li>
      <li>bitrot() function for bit rotation</li>
      <li>Bitwise XOR, mod and rem operators, % as modulo, // and \ operators for integer division</li>
      <li>Change order of operations for logical and bitwise operators to better match C operator precedence</li>
      <li>Improved support for functions, variables and units with input base > 10</li>
      <li>Unicode support in char() and code()</li>
      <li>Simplification and factorization improvements</li>
      <li>RPN syntax improvements</li>
      <li>Recognize "factor" and "expand" commands at the beginning expressions</li>
      <li>For vector + scalar, add scalar to all components</li>
      <li>uptime variable</li>
      <li>Fix random segfault on automatic unit category selection</li>
      <li>Fix display of number in sexagesimal base or time format</li>
      <li>Fix abs(x)=a for complex x</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.1.0" date="2019-04-15">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Calculation of Si(), Ci(), Shi(), and Chi()</li>
      <li>Convert trigonometric arguments to selected angle unit, and hide angle unit in result</li>
      <li>Hide optional arguments, with default value, in output</li>
      <li>Add optional variable value argument to diff(), for calculation of derivative for a specific x value</li>
      <li>Improved sinc() support</li>
      <li>Improved output with show ending zeroes activated</li>
      <li>Fix ignore system language on Windows</li>
      <li>Fix atomic unit of velocity</li>
      <li>Fix and improve keypad menus, and add dynamic convert to menu to result popup menu</li>
      <li>Fix compilation errors because of erroneous limits.h inclusion</li>
      <li>Fix "factorized result is wrong" error</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="3.0.0" date="2019-03-18">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Implement 2019 redefinition of SI base units (primarily affects physical constants and will not take effect until 20 May)</li>
      <li>Uncertainty propagation improvements/fixes</li>
      <li>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)</li>
      <li>uncertainty() function (can specify relative uncertainty of value)</li>
      <li>Improved polynomial gcd</li>
      <li>Option to ignore system language (locale)</li>
      <li>Option to use two's complement also for hexadecimal numbers</li>
      <li>Switch to exact decimal fractions (fixed) from decimal fractions mode (and vice versa) when exact mode is toggled</li>
      <li>Restore lost signal handlers in the conversion GUI (fixes search, popup menu, etc.)</li>
      <li>Bug fixes and minor feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="2.9.0" date="2019-02-11">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Fix convert button</li>
      <li>Propagation of uncertainty using variance formula (if interval arithmetic is disabled)</li>
      <li>Improved and extended physical constants, now defined in relation to each other (e.g. RK = (μ0c)/(2α))</li>
      <li>Natural, atomic, and Planck units</li>
      <li>Reciprocal unit conversion (e.g. 5 m/s = 0.2 s/m, 60 mpg = 0.039 L/km)</li>
      <li>Updated elements and planets data sets</li>
      <li>+/- syntax for non-numeric values</li>
      <li>raid() function for RAID capacity calculation</li>
      <li>UTC+/-hh[:mm] and CET time zone conversion (using "to")</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="2.8.2" date="2018-12-03">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Wrap lines and right align results in history</li>
      <li>Fix missing prefix for gram (and are) when unit exponent not one and automatic prefixes is off</li>
      <li>Fixes for units with non-linear relation</li>
      <li>Minor bug fixes and feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="2.8.1" date="2018-11-07">
   <description>
    <p>GUI Changes:</p>
     <ul>
      <li>Modified keypad layout</li>
      <li>RPN stack buttons with icons</li>
      <li>Use 'linked' widget style where appropriate</li>
     </ul>
    <p>From libqalculate:</p>
     <ul>
      <li>Interpret a character preceded by '' as an unknown variable (same as in quotation marks)</li>
      <li>Do not show fractions with very large numerators or denominators, by default</li>
      <li>Hectare and decare unit names (in addition to ha/da and hectoare/decaare)</li>
      <li>Always enable units for expressions that ends with "to [unit expression]", "to optimal", or similar</li>
      <li>Improve appearance of "x m/s" and similar</li>
      <li>Fix (1x+ay)^b (was not expanded)</li>
      <li>Fix roman() when used for reversed conversion</li>
      <li>Fix compilation without readline</li>
     </ul>
   </description>
  </release>
  <release version="2.8.0" date="2018-10-29">
   <description>
    <p>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.</p>
    <p>Changes (from libqalculate):</p>
     <ul>
      <li>Equation solved and improved simplification for expressions with trigonometric functions</li>
      <li>General improvements to simplification and equation solving</li>
      <li>Improved factorization</li>
      <li>New magnitude(), entrywise() and hadamard() functions, and new n variable (unknown integer)</li>
      <li>Parse |x| and ||x|| as abs(x) and magnitude(x)</li>
      <li>Use kilo as prefix for gram if automatic prefix is off</li>
      <li>Many bug fixes and minor feature improvements</li>
     </ul>
   </description>
  </release>
  <release version="2.6.2" date="2018-08-13">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Polar and exponential complex forms (changed with mode or with "to" operator/command)</li>
      <li>Fix f(x)+a=a (e.g. x+1=1, which returned false/zero)</li>
      <li>Fix ln(-i)</li>
      <li>Fix automatic unit conversion in RPN mode</li>
      <li>Allow conversion of the current result using standalone "to" expression (e.g. type "to m" to convert current result to meter) in GUI</li>
      <li>Option to disable automatic conversion to local currency (when optimal conversion activated)</li>
      <li>Minor bug fixes</li>
     </ul>
   </description>
  </release>
  <release version="2.6.1" date="2018-07-09">
   <description>
    <p>Changes:</p>
     <ul>
      <li>Do not always download all sources during automatic exchange rates updates (updating of common currencies will be much faster)</li>
      <li>Configurable completion suggestions</li>
      <li>Option to keep insert function dialog open for repeated function calculations</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="2.6.0" date="2018-06-11">
   <description>
    <p>GUI improvements:</p>
     <ul>
      <li>Calendar conversion</li>
      <li>Currency flags in completion suggestions list and result display</li>
      <li>Extended completion suggestions, matching titles (and countries for currencies) when at least three characters are entered</li>
      <li>Completion suggestions for prefixes and prefixed units</li>
      <li>Completion suggestions for "to" commands</li>
      <li>Add duodecimal and roman numerals to number base conversion dialog</li>
      <li>Duodecimal, roman, base #, and partial fraction "to" conversion commands</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
    <p>Changes from libqalculate:</p>
     <ul>
      <li>Calendar conversion</li>
      <li>5'8" notation for feet and inches, 5°12'30" notation for degrees, arcminutes and arcseconds</li>
      <li>Interpret 5m 7cm as 5m+7cm, and 3h 52min 20s as 3h+52min+20s, and similar</li>
      <li>Improved ln() simplifications</li>
      <li>Lunar phase functions</li>
      <li>Fix secondary exchange rates source</li>
      <li>Fix crashes with compiler flag "-D_GLIBCXX_ASSERTIONS"</li>
     </ul>
   </description>
  </release>
  <release version="2.5.0" date="2018-05-15">
   <description>
    <p>GUI improvements:</p>
     <ul>
      <li>Currency flags</li>
      <li>Context menu for conversion list, and middle click for adding unit to expression</li>
      <li>Search entry for functions, units and variables</li>
      <li>Improved convert to menu in unit manager</li>
      <li>Workarounds for bugs in GTK+ themes</li>
     </ul>
    <p>Changes from libqalculate:</p>
     <ul>
      <li>Improved interval arithmetic with dependent values (variables and function arguments). Most differentiable expressions do now return a properly narrow interval</li>
      <li>Experimental limit() function</li>
      <li>Two's complement representation for binary numbers</li>
      <li>Improved currency titles</li>
      <li>bitcmp() function</li>
      <li>Allow all rational numbers for second argument of root()</li>
      <li>Fix segfault when prefix is set in some cases</li>
      <li>Fix a^infinity when a > 1</li>
      <li>Minor bug fixes</li>
     </ul>
   </description>
  </release>
  <release version="2.4.0" date="2018-04-11">
   <description>
    <p>List of changes:</p>
     <ul>
      <li>Simplified percent calculation (e.g. 100 + 20% = 120)</li>
      <li>Direct date and time arithmetic (e.g. "2018-03-10" + 372 h = "2018-03-25T13:00:00"), with time zone support</li>
      <li>Automatic conversion to local currency (in "optimal" conversion mode)</li>
      <li>Calculate each vector element (and each extra argument) separately in many functions (e.g. sin(5, 2, 3) = [-0.95892427, 0.90929743, 0.14112001])</li>
      <li>Unit-like conversion for physical constants (using "to")</li>
      <li>Allow user to change decimal separator (and consquently argument separator) independantly of locale</li>
      <li>Enhanced timastamp() and stamptodate()</li>
      <li>Fix function completion</li>
      <li>Fix lambertw()/productlog()</li>
      <li>Fix display of parsed sexagesimal numbers</li>
     </ul>
   </description>
  </release>
  <release version="2.3.0" date="2018-03-28">
   <description>
    <p>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.</p>
    <p>There is also some important plotting fixes, as well as many minor bug fixes and feature enhancements.</p>
   </description>
  </release>
  <release version="2.2.1" date="2018-01-17">
   <description>
    <p>Version 2.2.1 includes bug fixes and minor feature enhancements.</p>
   </description>
  </release>
  <release version="2.2.0" date="2017-12-07">
   <description>
    <p>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.</p>
    <p>List of main changes:</p>
     <ul>
      <li>Interval arithmetic</li>
      <li>Digit grouping</li>
      <li>Enhanced display of parsed expression</li>
      <li>Use 10^n instead of E-notation for main result display by default</li>
      <li>Bitcoin support (frequent exchange rate updates are recommended)</li>
      <li>Use 'X' and 'E' (or appropriate Unicode characters), instead of 'A' and 'B', in duodecimal numbers (base 12)</li>
      <li>Option to disable units in physical constants</li>
      <li>Fixed engineering mode</li>
      <li>Various bug fixes and minor feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="2.1.0" date="2017-10-02">
   <description>
    <p>The main focus of Qalculate! version 2.1 is consistent handling of roots of negative numbers and equation solving enhancements.</p>
    <p>List of main changes:</p>
     <ul>
      <li>Highlighting of matching parentheses</li>
      <li>Proper display of roots and absolute value</li>
      <li>More than 100 additional currencies (using mycurrency.net)</li>
      <li>Equation solving enhancements</li>
      <li>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)</li>
      <li>Enhanced simplification</li>
      <li>Minor bug fixes and feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="2.0.0" date="2017-08-28">
   <description>
    <p>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.</p>
    <p>List of main changes:</p>
     <ul>
      <li>Redesigned keypad with a lot more functionality</li>
      <li>Multiline expression entry with undo/redo</li>
      <li>Alternative simplified function creation dialog</li>
      <li>Percentage calculation tool</li>
      <li>Binary installer for Microsoft Windows</li>
      <li>Date functions have been rewritten and now support much larger numbers</li>
      <li>Trigonometric functions with angle unit other than radians have been fixed</li>
      <li>Functions with more than one argument can now also be applied to the RPN stack</li>
      <li>New functions: airy(), arg(), besselj(), bessely(), conj(), digamma(), erf(), erfc()</li>
      <li>Many minor enhancements and bug fixes</li>
     </ul>
   </description>
  </release>
  <release version="1.0.99" date="2017-08-09">
   <description>
    <p>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.</p>
   </description>
  </release>
  <release version="1.0.0" date="2017-08-28">
   <description>
    <p>Qalculate! version 1.0 includes the following changes:</p>
     <ul>
      <li>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</li>
      <li>Enhanced factorization</li>
      <li>Revised temperature unit handling</li>
      <li>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</li>
      <li>A long list of bug fixes and minor feature enhancements</li>
     </ul>
   </description>
  </release>
  <release version="0.9.12" date="2017-05-29">
   <description>
    <p>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).</p>
   </description>
  </release>
  <release version="0.9.11" date="2017-03-06">
   <description>
    <p>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.</p>
    <p>Changes:</p>
     <ul>
      <li>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</li>
      <li>Enhanced RPN stack manipulation (swap, rotation and copy) and arithmetics buttons next to stack list and combine RPN options in a single menu</li>
      <li>Calculation of text in spinboxes for integer function arguments</li>
      <li>Option to use multiple instances by default</li>
      <li>Mixed units conversion (e.g. "15 in = 1 ft + 3 in" and "3,2 h = 3 h + 12 min")</li>
      <li>Fixes to unit conversion (e.g. "1/(1 ns) to GHz")</li>
      <li>Fix slow calculation of exponentiations with big numerators in exponents (e.g. "2^0.333333333")</li>
      <li>Critical fixes for RPN syntax</li>
      <li>Fix degree sign</li>
      <li>Fix transformation of last arguments to vector, when only one last argument (fixes function("1+\x"; 1))</li>
      <li>Various other minor enhancements and bug fixes</li>
     </ul>
   </description>
  </release>
  <release version="0.9.9" date="2016-07-26">
   <description>
    <p>Qalculate! version 0.9.9 is a minor release with some important bug fixes, as well as a few new features.</p>
    <p>Changes:</p>
     <ul>
      <li>Only a single instance of the application will run by default (use command line switch '-n' for old behaviour)</li>
      <li>The application will no longer cause segmentation faults when using a locale unsupported by the users system</li>
      <li>Parsing of "today" fixed and "tomorrow" and "yesterday" added</li>
      <li>Qalculate! now compiles, without errors and warning, using clang</li>
     </ul>
   </description>
  </release>
  <release version="0.9.8" date="2016-06-15">
   <description>
    <p>Qalculate! version 0.9.8 includes many bug fixes, but due to limited testing some new bugs have probably been introduced.</p>
    <p>Changes:</p>
     <ul>
      <li>Lots of bug fixes and minor improvements</li>
      <li>The GTK+ UI has been ported to GTK+ 3 and has been polished in the process</li>
      <li>The convert dialog has been transformed into a tab page in the main window, with auto-selection of unit category and continuous conversion</li>
      <li>Less obtrusive display of errors and warnings. They are now shown as tooltips for an icon next to the expression entry</li>
      <li>Spinning animations show calculation/display activity and an icon in the expression entry halts the process, instead of a message dialog</li>
      <li>A tooltip for the result display will show the result in text format less open to interpretation</li>
      <li>Automatic on demand updates of exchanges rates</li>
      <li>Better resizing of main windows. Tabs will be resized instead of result display and keypad view will remember size independently of the history view</li>
      <li>'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</li>
      <li>Three different parsing modes can be chosen from (providing mainly different handling of implicit multiplication). The default 'adaptive' mode has been enhanced</li>
      <li>By default prefixes will not be added to for example imperial units</li>
      <li>Changed handling of degrees Celsius and Fahrenheit. Conversion will take place already during parsing</li>
      <li>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)</li>
      <li>Option to ignore commas in numbers (for use as thousands separator)</li>
      <li>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)</li>
      <li>New units: Hartree, Rydberg, Dalton (same as u)</li>
      <li>Currencies have been updated to reflect the available data from ECB</li>
      <li>Use ~/.local and ~/.conf to store configuration and definitions</li>
      <li>The KDE UI has been abandoned for now and is not included in this release</li>
     </ul>
   </description>
  </release>
 </releases>
</component>
