2024-10-07 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Do not show warning for logarithmic ratio unit, with quantity, as function argument

2024-09-29 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix inability to abort randpoisson() with very high rate value

2024-09-28 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix crash with empty vector in plot function, e.g. plot([])

2024-09-20 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Do not show single input decimal number as only combined fraction if fraction format is set to dual
	* Apply fraction format also for integers if set to percent, permille, or permyriad
	* Add (hidden) support for percent, permille, and permyriad fraction formats in qalc

2024-09-18 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault with recursive (self-referencing) function

2024-09-17 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix save definitions option
	* When questions are avoided (when reading commands/expression from file or in result only mode), create temporary objects for "variable" and "function" commands, do not ask before replacing object, and fail without question for illegal names
	* Avoid asking questions when reading commands/expressions from file before interactive mode
	* Fix line break for output from command line expression or file, before interactive mode
	* Update "exp" option documentation to reflect that custom negative values are allowed
	* "unkeep" command (reverse of "keep")

2024-09-16 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Remove unnecessary calculation for output of integers with non-decimal number base (fixes delay with very high precision)
	* Fix input of negative exponent in scientific e notation with rpn syntax

2024-09-12 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add nmi symbol for nautical mile

2024-09-01 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Do not show single input decimal number as fraction by default if small or large enough to be displayed using scientific notation

2024-08-31 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Support abbreviations for scientific (sci) and engineering (eng) as options for scientific notation (exp)

2024-08-30 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix superfluous "did you mean..." warning for two functions with parenthesis without separator (e.g. "atan2(a,b)atan2(c,d)")
	* Fix definite integral for 1/sqrt(1-x^2), with lower limit <= -1 and/or upper limit >= 1, and similar (temporary workaround)

2024-08-10 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix parsing of 1°2'3" as 1°+2'+3" (and similar)
	* Update nounit() function description

2024-08-04 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add Calculator::parseToExpression()
	* Minor fixes for "to" conversion in Calculator::calculateAndPrint()

2024-07-24 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add free_thread_caches() function
	* Place n and C last in variable isolation priority order
	* Fix interpretation of mH₂O, and related units with Unicode subscript, in qalc
	* Fix memory leaks

2024-07-14 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix saving of percentage interpretation in qalc

2024-07-09 Marko Zajc <marko@zajc.eu.org>

	* Disable load() and export() functions when --disable-insecure compile option is enabled
	* Fix a potential segfault when freeing DataObject

2024-07-09 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Improve compatibility with MSVC (including replacement of variable length arrays)
	* Show error for unrecognized command line options when expression is separated from options by "--"

2024-07-03 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix Calculator::reset()

2024-07-01 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Improve handling of "where" expression when variable name is placed after inequality symbol
	* Improve handling of "where" expression in exact mode
	* Improve removal of n in exact mode

2024-06-27 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Return n >= a + 1 for n > a, and n <= a - 1 for n < a, if a is an integer (and n represents an integer)

2024-06-22 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Always return false for 1/f(x)=0 (not f(x)=infinity)
	* Do not solve ln(f(x))=-infinity

2024-06-15 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add therm and thermie units (IT, ISO, and U.S.)
	* Use exact Btu relation
	* Use symbol "cal" for thermochemical (instead of international table) calorie
	* Add IUNS calorie
	* Fix input of scientific E-notation using lowercase e in numbers using concise interval notation, in expressions

2024-06-11 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Always allow "ignore comma" option (will change default decimal separator if not dot), and show more informative error message for "ignore dot" if decimals separator is dot
	* Do not mark decimal separator question as asked after percentage calculation has been asked

2024-06-10 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add MathStructure::representsFinite() to improve handling when unknown if value is real or complex
	* Fix "bit width" and "signed integer" arguments in setbits()

2024-06-06 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Preserve allow_infinite parameter for recursive comparison in MathStructure::equals()
	* Return true for infinity multiplied by zero in MathStructure::representsUndefined()
	* Add recursion counter to MathStructure::isolate_x() and MathStructure::isolate_x_sub() (variable isolation) to avoid stack overflow
	* Return true if both text strings are empty in equalsIgnoreCase()
	* Fix parenthesis added in front of multiplication sign in some cases
	* Use less strict rules when comparing with previous expression (to avoid infinite loop) when isolating variable, in MathStructure::isolate_x_sub(); * Do not apply x+x^(1/a)=b => x=(b-x)^a if (part of) x represents undefined

2024-06-05 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix negative-size-param (crash) when a variable name/symbol with more than 20 characters is used in "where" expression
	* Fix approximation mode changed with AUTOMATIC_APPROXIMATION_SINGLE in calculate_dual_exact (affects calculate-as-you-type in qalculate-qt)

2024-05-30 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Update values of physical constants with CODATA 2022 values; Change title and names/symbols of weak mixing angle (prepend "sin2" to theta variants and change order)

2024-05-26 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Return exact negative integers in log10()
	* Decrease (potentially) number of false negatives for represents... functions
	* Add descriptions for is... and represents... functions
	* Fix RoundFunction::represents...
	* Check for exact solution equaly simplified as approximation value in calculate_dual_exact when approximation is AUTOMATIC_APPROXIMATION_SINGLE
	* Fix confusing behaviour of complex forms other than rectangular in some case with equalities and inequalities

2024-05-23 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Remove n from equation solution if possible using assumptions of x
	* Fix auto/dual approximation with "where" expression
	* Fix Number::getCentralInteger()
	* "n > a" equals "n >= floor(a)", if a is not an integer, and equivalent for other inequality operators
	* Fix handling of where expressions with multiple inequality statements for a single variable, e.g. "where x>0 and x<10" (parsed expression were as aborted, and calculated value always 1)

2024-05-19 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix potential (but unlikely) segfault when integrating expression with abs() and empty ln()
	* Add allroots() function
	* Fix unnecessary parenthesis (with wrong color for closing bracket) around unit with exponent for colorized HTML output (affects qalculate-qt)

2024-05-12 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add additional names/symbols (tr,pla,rev,revolution,revolutions,cyc,cycle,cycles) to turn unit
	* Add rpm unit (= turns/min)

2024-05-10 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix qalc not exiting after factorization in non-interactive mode

2024-05-06 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix a^(f(x))=a^(b*g(x)) where b=2 or b=3

2024-05-01 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Avoid potential issues with equations and inequalities caused possibly modified comparison type property (primarily potentially resulting in AND instead of OR and vice versa)
	* Fix multiplication sign after exponentiation factor for unformatted output without unicode exponents

2024-04-30 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix "(ax+1)^n > 1" and "(ax+1)^n >= 1", where n is even and a is not 1, returning false

2024-04-27 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix -Wdocumentation warnings

2024-04-21 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Ask for the desired interpretation the first time percent addition is used (e.g. 100 + 10% equals 110 or 100.1)

2024-04-21 Fishhh <hubert.gluchowski19@gmail.com>

	* Fix Number::equals(0, ..., true) when number is infinite (also affects MathStructure::equals(), MathStructure::replace(), and MathStructure::calculateReplace() and replace() function)

2024-04-20 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Do not show error for 2nd argument with unknown variable in root() function
	* Fix precision for approximate data set number values, without uncertainty explicitely specified, with positive scientific e-notation exponent
	* Ignore two's input setting for hexadecimal floating-point literals using 0x...p... notation

2024-04-15 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add Sun to planets data set
	* Add solar radius, mass, and luminosity as units

2024-04-11 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add support for column vector in if() function

2024-04-07 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Relax conditions for (x^a)^b=x^(a*b) and x^a*x^b=x^(a+b) when complex numbers are deactivated (fixes segfaults)

2024-04-06 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add support for solving root(a, x)=b (requires rational value for ln(a)/ln(b))
	* Use parentheses for exponent using scientific notation (with power of 10)
	* Add checkAvailableVersion() variant returning package URL

2024-04-03 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add multiples() function (returns multiples of a number within specified range)

2024-04-02 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add powertower() function
	* Add recursive depth limit to avoid running out of stack memory (causing segfault)

2024-03-25 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Solve equations containing if() function
	* Fix awg(x)=... and awgd(x)=... when default assumption type is not real and fix solve() with these equations

2024-03-21 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Support integer factorization of integers in matrix/vector, and of numerator and denominator in rational number

2024-03-12 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix setbits()

2024-03-10 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* 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

2024-03-08 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Replace special colorize values, for selection of Unicode exponents, with different use_unicode_signs values
	* Use Unicode exponents, in MathStructure::print(), if format is false, even if tagtype is not TAG_TYPE_TERMINAL
	* Fix Unicode exponents with number bases < 10

2024-03-01 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Improve parsing of text arguments - fix quotation mark replaced by feet or inches and % replaced by percent variable, remove quotation marks when parts of argument are quoted separately (a "b" "c" = "a b c"), and do not replace quoted curly brackets in expression unless necessary
	* Do not use sexagesimal output format for very large numbers (when scientific notation is necessary for integer part) and reduce maximal number of decimals (for last position when previous positions is non-zero)
	* Handle case when initial guess results in division by zero, and avoid unnecessary error messages, in newtonsolve()

2024-02-27 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix BTC exchange rate from coinbase, if available from other source, not used before restart after exchange rates update, and do not mark BTC as hidden (places the unit in submenu in GUIs)

2024-02-20 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Support "where" statements, without "where", before main expression, e.g. "a=2, b=3; a^b"

2024-02-18 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Change handling of "where" expression (create temporary variables) to allow previously undefined variable names and to avoid confusing output of parsed expression (e.g. redefined "c" was displayed as SpeedOfLight)

2024-02-16 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Detect spelling errors in qalc options (when using set command)

2024-02-14 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* 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 argument 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
	* Enable parsing of vectors for text arguments
	* Add foreach() function (simplified for function, using vector instead of counter)
	* Add setbits() function
	* Add flip() function (changes order of elements in vectors and matrices)
	* Add "binary bits" option in qalc

2024-02-08 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add LightSecond, LightMinute, and LightHour units
	* Add integerDigits(), digitGet(), and digitSet() functions
	* Add more rounding methods and replace PrintOptions::round_halfway_to_even (and truncate time zone value hack) with PrintOptions::rounding
	* Add PrintOptions::duodecimal_symbols (replace time zone value hack)
	* Replace PrintOptions::lower_case_e with PrintOptions::exp_display and add option for scientific notation without E (10^x)
	* Add ParseOptions::binary_bits (replaces non-boolean values for twos_complement and hexadecimal_twos_complement)
	* Add keep command, which makes variable or function non-temporary, in qalc

2024-02-02 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Check for potential spelling mistakes in unrecognized qalc commands
	* Show error messages for command without argument, if not a reasonable expression, even if "/" is not used

2024-01-31 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add support for hexadecimal floating-point literals using 0x...p... notation (0x1.4p3 = 0x1.4 * 2^3 = 10)
	* In dsolve(), assume that C is real if y is (fixes dsolve(diff(y, x) = y)), and, if y cannot be isolated completely, return resulting equation in solve() function (e.g. dsolve(diff(y , x) = y)= solve(ln(y) = x + C, y))

2024-01-30 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add support for a...b syntax for sequence (vector) of integers
	* Add support for j:k (for sequence of numbers with increment 1), and j:i:k (with increment i) syntax
	* Add colon() function (used by new syntax)
	* Use parentheses for number with scientific notation in more cases

2024-01-29 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Do not list reactivated global objects when using "list" command (without argument)
	* Recognize function name with parentheses appended in argument of "delete" command (useful for deletion of function with same name as variable or unit)
	* Add bitset() and bitget() functions

2024-01-27 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Support scientific notation using 10^x instead of e notation for non-html output and in qalc

2024-01-26 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Allow specification of numbers of bits for two's complement input
	* If number of bits are not enough for output of binary or hexadecimal number, use default, instead of minimal, number of bits

2024-01-22 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Detect potential spelling errors in suspicious expressions

2024-01-21 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix "set cplxform cis"
	* Fix conversion to angle unit for complex angle, cis and polar forms
	* Improve output of complex angle form in some cases
	* Do not display exact result for dual approximation if parsed expression differs (can occur in some cases with conversion to angle unit), and in some cases where the only differences is how exact numbers in function arguments are

2024-01-18 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Allow multiple options, separated by semicolon, with a single --set (-s) command line argument

2024-01-14 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* lambertw(x*e^x, 0)=x if x>=-1

2024-01-11 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix -no... command line options when using double dash, e.g. "--nocurrencies"
	* Avoid radian unit missing error message with --nounits command line option
	* Exit with error status code if command line expression generates error

2024-01-03 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Allow values higher than 1 (true) to specify line width of plot grid

2023-12-28 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add support for "decimals" "to"-conversion (display as decimal fraction)
	* log(x, 1) is always zero when x has non-zero imaginary part

2023-12-25 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix log(1, 1)

2023-12-23 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Improve handling of zero solution and initial guess in newtonsolve() and secantsolve(), and check validity of solution

2023-12-18 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix "to"-conversion to prefix and add "prefix" conversion option (for optimal prefix)
	* Fix parsed expression repeated in result with some functions
	* Allow omission of equals zero in solve() function
	* Convert to simple fraction if value only contains integers, when converting to fixed denominator
	* Improve handling of text arguments with default value consisting of two double quotes (empty string)

2023-12-16 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault in newtonsolve() and secantsolve() when equation does not contain variable
	* Algebra and calculus functions represents scalars if all arguments do

2023-12-14 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add support for two's complement input (short settings "twosin" and "hextwosin") in qalc
	* Fix current value of hextwos in mode help

2023-11-21 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix BTC exchange rate (data now seem to always use USD)
	* Replace exchangerate.host (now requires API key) with currency-api (https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/latest/currencies/eur.json)

2023-11-19 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Improve formatting of base unit(s) in unit information in qalc
	* Fix plural name of U.S. survey rods
	* Improve output of defs2doc

2023-11-13 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Ignore spaces when converting text string to integer

2023-10-31 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Display all exponents 0-9 using Unicode superscript characters (not, as before, only for units), in qalc (using TAG_TYPE_TERMINAL), if these are the only exponents in the expression (behaviour can be altered using uniexp option)

2023-10-30 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add history command, listing expression history
	* Ignore underscore in number

2023-10-29 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add fraction formats for output using percent, permille, and permyriad
	* Add additional year definitions as units
	* Improve handling of (x*sqrt(x)-y*sqrt(y))/(sqrt(x)-sqrt(y))=x+sqrt(x*y)+y

2023-10-27 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Support for specifying a fixed denominator for display of fractions
	* Fix case insensitive comparison for strings with more than two or more consecutive Unicode characters in qalc

2023-10-25 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix parsing of case insensitive object name ending with Unicode character when followed by another Unicode character in expression, e.g. микрометр

2023-10-21 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix output of value converted to unit expression with numerical multiplier in denominator, e.g. L/(100 km)

2023-10-18 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault (infinite loop) when trying to solve (x*sqrt(x)-y*sqrt(y))/(sqrt(x)-sqrt(y))=x+sqrt(x*y)+y

2023-10-06 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix asin(x)=a, acos(x)=a, and atan(x)=a, when a contains an angle unit and default angle unit is set

2023-09-28 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix Calculator::hasWhereExpression()

2023-09-23 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Return gcd of numerators divided by lcm of denominators in gcd() with non-integer rational numbers, and vice versa for lcm()

2023-09-16 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix display of matrices and vectors with complex number form other than rectangular

2023-09-12 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix besselj() and bessely()

2023-09-11 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Require that duodecimal number, entered using 0d... syntax, contains at least two digits, to avoid conflict with decibel units (e.g. 0dB)

2023-08-31 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix for title, ylabel, and xlabel options with whitespace in value, in plot() function

2023-08-19 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix and improve to Calculator::findMatchUnit() (fixes matching unit for m/s)

2023-08-13 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault with curly brackets in expression
	* Apply automatic unit conversion after conversion to variable

2023-08-10 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix "E" at end of longitude replaced with "e"
	* Add derived units for kJ, kcal, and kcal/g

2023-08-02 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Concise uncertainty input (disabled by default)

2023-07-30 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Round high precision intervals enclosing integers for integer arguments (excluding order argument of besselj() and bessely())

2023-07-28 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add support for input of relative uncertainty using percentage (e.g. "5+/-2%") and output of interval using relative or concise (e.g. "1.2345(67)") notation

2023-07-27 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Set unicode property of object name automatically (does not affect usage in definitions file)
	* Keep prefixes for variable value in save() function
	* Fix numerical value of lower and upper options in help text for interval display setting

2023-07-26 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix fibonacci() for non-integers
	* Fix erroneous simplication of exponentiation when power is multiplication and base is a rational number < 1 in some case (e.g. "fibonacci(fibonacci(2))")

2023-07-25 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add support for specifying position of sign bit in floating point functions

2023-07-23 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Use international foot as base unit for rod, and add U.S. survey rod unit

2023-07-19 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add units for Electric Dipole Moment (C*m and Debye)
	* Add units for electrical elastance (F^-1, Daraf, and V/C)
	* Add and N/C as alternative unit for electric field strength
	* Optimize rest of unit expression when converting to partial (insufficient) expression (e.g. 18MA×100ns to J)

2023-07-03 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Replace occurrences in variable values in replace() function, when original expression contains unknown symbol/variable, and for "where" replacement
	* Fix numerical integration when variable is present within other variable values

2023-06-29 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix errornous determination of unit compatibility for equalities with unknown variables
	* Fine-tune detection of approximate units when deciding to calculate uncertainty propagation or not

2023-06-24 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add function, kron(), for Kronecker product
	* Add constants for Pauli matrices
	* Add radius to planets dataset and update other properties

2023-06-21 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix "help set OPTION" when OPTION is an option name supported in addition to the standard name and abbreviation (e.g. "help set parse")

2023-06-17 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix incomplete calculation in tan() with try exact approximation

2023-06-15 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* More consistent addition and removal of angle unit from function arguments
	* Always append radians to return value (even if zero) in relevant functions when default angle is none
	* Do not apply x^(ab)=(x^a)^b rule if ab has unit

2023-06-13 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault in some cases when multiplying single column matrix with empty vector
	* Fix segfault when MathStructure is deleted after Calculator, and in destructor of calculated DynamicVariable
	* Fix besselj(0, 0)
	* Do not use Tamil symbol by default for Sri Lankan rupees

2023-06-11 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Change order of operations to place entrywise and ordinary operators on the same precedence level
	* Always interpret ./, .*, and .^ as entrywise operators if user intention is unclear

2023-06-10 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Do not calculate functions in arguments of functions that are not differentiable, after function calculation fails, before uncertainty calculation (improves efficiency)
	* Do not save mode on exit if "-defaults" command line switch where used
	* Show expression of subfunction (instead of index) in function info
	* Remove duplicated "Units" heading in mode list

2023-05-22 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix 0/0=0 (do not return true) and output of 2/0 (and similar)

2023-05-15 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix newtonsolve() and secantsolve() not returning when no solution can be found (fixes rate() function), and improve speed in some cases

2023-05-09 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix potential memory leak when loading unit data saved with version < 0.6.3

2023-05-05 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Support for custom default angle unit, e.g. turn, arcsec, arcmin
	* Append default angle unit (instead of always radians) when converting value without unit to angle unit

2023-04-17 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix element() function for vector when column number is specified (non-zero)

2023-04-14 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Improve parsing of element-wise operators with comma as decimal separator
	* Fix segfault in some cases with curly brackets in expression

2023-04-13 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix some memory leaks

2023-04-12 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault when conversion to base units fails because of aborted calculations
	* Do not try to calculate norm() and magnitude() for matrices

2023-04-11 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix rref() with different units for different elements
	* Fix segfault trying to solve cbrt(x)^(1/3)-x=0 (and similar)
	* Fix erroneous simplification of sin(x)^2*y-cos(x)*sin(x)^2*y (and similar)
	* Fix division and exponentiation of scalar by matrix/vector, e.g. 4./[8 4.5]

2023-04-10 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault in function assignment with equals sign (e.g. F()=...), when an object with the same name already exists
	* Improve abortion of calculations
	* Replace temporary variables created during calculation after abortion
	* Fix segfault with empty vector in uncertainty calculation
	* Fix segfaults in some corner cases
	* Fix some memory leaks
	* Fix internal id does not exist error (primarily in some cases with functions without parentheses in matrices)

2023-04-06 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault in handling of vector variable with uncertainty
	* Fix abortion with low max calculation time in qalc

2023-04-04 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Do not make any difference between row and column vectors in magnitude(), norm(), and dot() functions

2023-04-02 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix abbreviation for variable units (varunits) command in information (within qalc and in man page)

2023-04-01 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix order of argument titles in csum() function

2023-03-26 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add modular exponentiation function, powmod(), with support for calculation of modular inverse

2023-03-25 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix a^n mod b when n is negative

2023-03-04 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault in multisolve() and improve removal of equal solutions

2023-03-03 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Support elements with units in rref() and rk()

2023-02-27 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Always show value of local variables using current output options, in qalc

2023-02-23 Jules Bertholet <julesbertholet@quoi.xyz>

	* Add "thou" name to mil unit and make it default and reference
	* Add plurals to old French units

2023-02-21 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Improve detection of default language on Windows

2023-02-18 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Make pv(), fv(), and rk() case sensitive, and remove aA abbreviation from Abampere, to avoid conflicts with prefix + unit
	* Allow "prefix" (unlocalized) as alternative for pref/prefixes qalc command

2023-02-14 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix conversion from ounce (interpreted as fluid ounce) to litre with prefix
	* Use max/min preferred for unit ordering (replaces explicit ordering of N*m and W*s)
	* Support "help set [OPTION]" syntax and show "unrecognized option" message on help command failure, in qalc

2023-02-10 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Do not set automatic prefix if resulting multiplier is < 1 or >= 1000, with some exceptions (units which specifies max or min preferred prefix, e.g. km)
	* Default prefix unit property (use for gram, and few other units, instead of hardcoded value)
	* Do not use recently introduced SI prefixes (R, Q, r, q) automatically by default
	* Set zero max preferred prefix for second

2023-02-07 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Use value of fourth argument in genvector() as step size by default if 1 (default), negative, or non-integer, and value of sixth argument is -1 (default)

2023-02-03 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Prefer Nm (torque) over J when the result is a vector with three components
	* Fix unit order for Nm and Ws
	* Always use current number base in both base and exponent in output of scientific notation
	* Indicate correct number base in subscript (in html formatted output) when output in original base fails
	* Do not show multiplier if exactly 1, in html output of scientific notation
	* Fix parsing of scientific e notation when the number is extremely large and exponentiation fails because of floating point overflow

2023-02-01 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Use Unicode symbol for minus in scientific e notation
	* 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

2023-01-27 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add "amp" abbreviation to ampere unit

2023-01-26 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Don't show anything on empty input in qalc
	* Set zero as max prefix for litre
	* Fix prefix selection in denominator when multiplier is higher than the value of the largest prefix
	* Make sure that prefixes are stored in correct order

2023-01-18 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add min and max preferred prefix properties to units, and use kilo as max for meter, gram, and zero as min for byte, and bit)

2023-01-11 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add option to change symbols used for output of digits 10 and 11 in duodecimal numbers. Default digits are now A and B, instead of ↊ and ↋ (or X and E)

2023-01-10 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix reactivation of global object after deletion of conflicting object

2023-01-07 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Use "help [OPTION]" to display description for a single set option, in qalc

2023-01-04 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* EUR has replaced HRK as currency of Croatia

2022-12-30 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Use json exchange rate data from exchangerate.host, mycurrency.net, or floatrates.com (try in mentioned order), as secondary exchange rates source

2022-12-28 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix unit tests (ordering in output changed)

2022-12-22 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Check that output of command, in command() function, is a reasonably sane expression
	* Fix countTotalChildren() with count_function_as_one set to false

2022-12-20 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add m/s^3, m/s^4, m/s^5, and m/s^6 as derived units (improves automatic unit conversion)

2022-12-19 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix randuniform()
	* Fix dual approximation with random number functions

2022-12-14 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault in qalc when set command option and value contains more than three words
	* Fix errornous calculation of arg(x^n) in some cases (when transformed to arg(x)*n without mod 2pi)

2022-12-11 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Use standard form (sorting) for polynomials

2022-12-07 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Allow non-numerical arguments in atan2()

2022-12-02 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Set message print options after unicode setting has been updated using u8 command line option (fixes signs in gnuplot legend)

2022-11-20 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add new SI prefixes (R, r, Q, q)

2022-11-14 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix automatic/dual fraction format after conversion (e.g. "8 to score")

2022-10-31 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Always parse element-wise operator as element-wise function, even if arguments are scalars (fixes variable substitution when variable is vector)

2022-10-27 ioio85 <ioio85@gmail.com>

	* Add units ounce force (ozf) and rack unit (U)

2022-10-24 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix order of user edited global units and look for activated units first for base unit (do not use deactivated global unit)
	* Use current status of limit implicit multiplication setting during parsing of conversion expression
	* Make unit added to original expression for unit conversion more consistent
	* Do not use MathStructure in parentheses property during parsing (simplifies logic and fixes inconsistently displayed parsing of "7d 5h" and similar)
	* Add hr and hrs names to hour unit

2022-10-22 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix genvector() with negative step size or expression as step size, and allow variable in step size
	* Fix genvector() with expression as number of steps
	* If object name does not match full name string in expression, check for complete match with prefix plus unit (fixes Gyr)
	* Make MYR currency case-sensitive to fix conflict with Myr (megayear)

2022-10-21 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Conversion to any type of expression (if ordinary conversion fails, try simple division)
	* Fix milli- and centimeter of water units

2022-10-15 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix slow conversion to optimal or base units of uncertainty with units inside value and/or error

2022-10-14 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix errornous calculation of expressions with physical constant with unit prefix, and unit with the same physical constant in relation to base unit, with interval calculation set to interval arithmetic

2022-10-13 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault when function arguments are provided in a vector and the size of the vector is greater than or equal to the minimum number but less than the maximum number of arguments
	* Fix segfault in mod/rem function with 1/0 as first argument
	* Fix segfault when solving equation with signum() function

2022-10-12 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault when first argument in if() function is vector, but the second argument is not
	* Improve output of unformatted expressions with negative, rational (if output as fraction), and/or complex numbers

2022-10-11 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Replace new line with white space when saving history in qalc

2022-10-10 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add meter of water and related pressure units
	* Add more derived flow rate units
	* Fix slow non-abortable calculation of addition of rational to extremely large floating point number
	* Fix segfault when calculating 2^((10094431424/18310546875)*y^3*z^-1*x^15)
	* Fix segfault when calculating cbrt((cbrt(3)-1)^2 * cos(x)) and similar
	* Fix exact calculation of re((a*i)^(n/2))

2022-10-08 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault during calculation of uncertainty propagation for some expressions with approximate unit relations
	* Replace internal operator characters in unquoted text argument

2022-09-30 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Proper support for uncertainty propagation in total(), sum(), product(), and for() functions
	* Support for vectors and matrices in uncertainty propagation calculation

2022-09-26 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Improve parsing of quotation marks as feet/inch or arcmin/arcsec, and % as percent (avoid parse of s" as sin and similar)
	* Include +/- statement in function argument without parentheses
	* Set prefix for units in nested results in more cases
	* Fix potential (but unlikely) segfault in parsing of unit expression (as CompositeUnit)
	* Add additional numbers for set arguments in help output and man page
	* Update internal exchange rates used tracking to use bit flags
	* Avoid truncation of long values in the middle of a Unicode symbol, in definitions list in qalc

2022-09-25 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault in Calculator destructor (data sets, which are a type of function, were deleted twice)

2022-09-22 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* errorPart() function
	* Consider empty vector as failure in genvector()
	* Return values for approximate variables in exact mode in dimension() and elements()

2022-09-21 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* upperEndpoint(), lowerEndpoint(), and midpoint() / valuePart() functions (for intervals and uncertainties)
	* Fix exact calculation for arguments with approximate vector variables (fail instead of creating a vector with a single element)

2022-09-19 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Do not convert function arguments which do not allow units and do not recalculate functions with converted arguments (fixes "arcsin(0.5+/-0.1) to deg" in exact mode)

2022-09-03 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault in some corner cases when calculating absolute value of imaginary number
	* Fix use of random numbers in iterative functions
	* Replace curly brackets with parentheses
	* Fix conversion to optimal unit of subexpression
	* Fix prefix after conversion to optimal unit when the optimal unit includes a prefix
	* Fix writing beyond end of array during exchange rates check in some cases (results in activation of old style matrices)
	* Fix automatic reactivation of deactivated global object (e.g. after deletion of user variable), if a function with the same name exists (e.g. reactivation of day unit is blocked because of the days function)
	* Add unit examples when asking user for interpretation of implicit multiplication

2022-08-30 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Use standard formatting for quantities with units in output of parsed expression (with PrintOptions::preserve_format)
	* Avoid parsing of implicit multiplication as nested multiplication

2022-08-29 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Add primePi(), primes(), nthprime(), nextprime(), prevprime(), and isprime() functions

2022-08-26 NorwayFun <72336380+NorwayFun@users.noreply.github.com>

	* Georgian translation

2022-08-25 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Avoid ambiguous implicit multiplication warning in more cases involving units

2022-08-22 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix a*b^x+cx=d when a and c have different signs and d is non-zero
	* x+0^x=0 is not solvable
	* Fix unevaluted ln() and wrong combination of addition of ln() with negative arguments in (-a)^x*(-b)^x=c
	* Fix scientific E notation with sign in argument when function is used without parentheses
	* Reset interval calculation status after forced abort;

2022-08-19 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Recursively create qalc configuration directory

2022-08-13 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Support for var=a syntax (quotation marks required for now) for variable assignment with calculated value (as save(a, var,,,1))
	* Use x value for variable assignment with precalculated equation
	* Do not allow colon in names

2022-08-10 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Replace ounce with fluid ounce during conversion from or to volume unit

2022-08-06 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix lambertw() for values very close to zero, e.g. 1e-40 (returned approximately zero instead of 1E-40)
	* Fix "+" ignored after "E" in number bases where "E" is a digit
	* Increase time beore forcibly aborting calculation if precision > 1000, and do not show report as bug message if precision > 10000

2022-08-05 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault in some cases with sgn() function with zero arguments
	* Fix segfault when formatting units in some corner cases
	* Initialize plural property in MathStructure class (caused wrongly displayed plural form of unit name in some cases)

2022-08-03 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix aborting of plot data generation in some cases
	* Return original value for argument representing integer in ceil() and floor(), trunc() and round() functions
	* Improve efficiency of for(), sum() and product() functions in some case

2022-07-31 Adrià Arrufat <1671644+arrufat@users.noreply.github.com>

	* Add clip() function

2022-07-30 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Solve a^x+b^x+...=c (exact or approximate, for real x) in more cases

2022-07-21 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix handling of Unicode powers for adaptive parsing of units (e.g. parse 10m/s² the same as 10m/s^2)

2022-07-14 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Do not set precision higher than allowed by MPFR_PREC_MAX or INT_MAX (show actual precision set in qalc)
	* Increase speed (potentially very noticably when using very high precision) of calculation (determining precision from interval) and output (of floating point numbers), by using mpz_sizeinbase instead of mpfr_log or mpfr_log10

2022-07-13 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Convert rational number to floating point in squaring and multiplication if the resulting numerator or denominator has more than 1 000 000 digits, as previously in exponentiation with powers other than two

2022-07-12 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Truncate number in output of parsed expression and end with ellipsis if unable to display all decimals
	* Always display all digits before decimal separator in output of rational number in parsed expression
	* If parsed expression is approximately displayed, show approximately equal symbol before expression, in qalc

2022-07-07 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Functions for fixed point (Q format) conversion

2022-06-25 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Improve remainder/modulus for numerators with large exponents

2022-06-23 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Free all memory when Calculator object is deleted, and avoid memory leak in DynamicVariable

2022-06-22 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix segfault with (a+b)^-1 in unit expression, after "to"

2022-06-18 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* "clear history" command and option to clear (not save) history on exit

2022-06-13 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix potential issues (e.g. with subtraction of seconds from date) when finding previous leap second (was reading bool beyond end of array, causing issues when not false)

2022-05-25 Hanna Knutsson <hanna.knutsson@protonmail.com>

	* Fix addition of unit to expression without unit (when trying to convert to a unit) in exact mode

2022-05-18 Hanna Knutsson <hanna.knutsson@protonmail.com>

