Skip to content

Qalculate! version 5.0 (library and CLI)

Compare
Choose a tag to compare
@hanna-kn hanna-kn released this 12 Mar 07:50
· 114 commits to master since this release

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). Features include a large library of customizable functions, unit calculations and conversion, symbolic calculations (including integrals and equations), arbitrary precision, uncertainty propagation, interval arithmetic, plotting, and a user-friendly interface (GTK+, Qt, and CLI).

Changes:

  • Detection of potential spelling mistakes (a warning will be shown)
  • 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)
  • 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")
  • New units: LightSecond, LightMinute, and LightHour
  • New functions: bitget(), bitset(), setbits(), integerDigits(), digitGet(), digitSet(), flip(), colon(), and foreach()
  • More rounding methods
  • Support for hexadecimal floating-point literals using 0x...p... notation (0x1.4p3 = 0x1.4 * 2^3 = 10)
  • Add support for "decimals" "to"-conversion (display as decimal fraction)
  • Allow plot grid values higher than 1 (true) to specify line width
  • Improve handling of zero solution and initial guess in newtonsolve() and secantsolve(), and check validity of solution
  • 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)]
  • 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
  • Do not apply "read precision" setting to integer exponents for values with units
  • Change from line to point (or dot) plot style for data with many discontinuous points
  • Use parentheses for number with scientific notation in more cases
  • lambertw(x*e^x, 0)=x if x>=-1
  • Fix dsolve(diff(y, x) = y), and similar
  • Fix log(1, 1) (undefined)
  • Fix "to"-conversion to prefix and add "prefix" conversion option (for optimal prefix)
  • Fix segfault in newtonsolve() and secantsolve() when equation does not contain variable
  • Fix conversion to angle unit for complex angle, cis and polar forms
  • Exchange rates fixes
  • Option to show scientific notation using 10^x, instead of E-notation
  • Add settings for two's complement input (short settings "twosin" and "hextwosin"), and default number of bits ("bits")
  • Add "keep" command, for making variables and functions non-temporary
  • Allow multiple options, separated by semicolon, with a single --set (-s) command line argument
  • Show error messages for command without argument, if not a reasonable expression, even if "/" is not used
  • Exit with error status code if command line expression generates error
  • Fix -no... command line options when using double dash, e.g. "--nocurrencies"
  • Minor bug fixes and feature enhancements

Note that libqalculate version 5.0.0 is not binary compatible with previous versions (recompilation of dependent binaries is required).

For changes in the GUIs, see the release notes for qalculate-gtk and qalculate-qt

Download the source code here:
libqalculate-5.0.0b.tar.gz (updated with incremented library so version)

Download the source code for the graphical user interfaces (qalculate-gtk and qalculate-qt) here:
qalculate-gtk-5.0.0.tar.gz
qalculate-qt-5.0.0.tar.gz

Download Windows binaries here:
64-bit installer
64-bit zip (unpack and run without further installation; no application data are read or written outside of the unpacked directory)
The binaries can also be installed using the Windows Package Manager (winget). The new Qt GUI requires Windows 10 or later. 32-bit binaries (installer and zip) are also available but do not include the Qt GUI.

GNU/Linux binaries:
flatpak packages are available at https://flathub.org/apps/details/io.github.Qalculate.qalculate-qt (Qt GUI) and https://flathub.org/apps/details/io.github.Qalculate (GTK GUI).
snap packages are available at https://snapcraft.io/qalculate-qt (Qt GUI) and https://snapcraft.io/qalculate (GTK GUI).
64-bit (x86) self-contained binaries (GTK GUI) (extract and run from anywhere on most GNU/Linux distributions; no translations included)

For more information visit the website at http://qalculate.github.io/.