-
Notifications
You must be signed in to change notification settings - Fork 151
/
ChangeLog
6305 lines (4072 loc) · 236 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2024-11-25 Hanna Knutsson <[email protected]>
* Add plot() function example, and support expression in y=f(x) format
2024-11-20 Hanna Knutsson <[email protected]>
* Fix test of equation solution in some cases (fixes "sqrt(x-1/x)+sqrt(1-1/x)-x=0" when approximation is not exact)
* Fix current value for "help set approximation" when approximation is exact but auto/dual approximation is not reset (after "exact" command)
2024-11-18 Hanna Knutsson <[email protected]>
* Option to specify number of displayed significant digits, instead of using precision (if PrintOptions::max_decimals < -1, digits = -max_decimals)
2024-11-15 Hanna Knutsson <[email protected]>
* Improve decision to automatically convert unchanged quantity with unit
* Fix segfault with very large integer raised by very large integer (integer length multiplied by exponent overflows long long int), e.g. "fs^EiK"
* Fix wrong output of converted unit with non-numerical exponent in some cases (e.g. ft^x converted to m without expansion)
* Improve calculation of formatted string length (for filtering of multiple results in Calculator::calculateAndPrint())
* Remove "timed out" alternative results in Calculator::calculateAndPrint()
* Place "approx." on same line as value (instead of as equals sign) in qalc
* Display "aborted" for long aborted result in qalc
2024-11-11 Hanna Knutsson <[email protected]>
* Fix case conversion of µ to M and similar (compare initial text string when converted back to lower case)
2024-11-06 Hanna Knutsson <[email protected]>
* Add multilimit() function
2024-11-06 Stefan Gerlach <[email protected]>
* Fix issues building with MSVC
2024-11-02 Hanna Knutsson <[email protected]>
* Fix spacing after implicit mulitplication interpretation question in qalc
* Fix formatting when commands/expression is read from file before interactive mode
2024-10-27 Marko Zajc <[email protected]>
* Add triple() function
2024-10-19 Hanna Knutsson <[email protected]>
* Fix clear using Ctrl+L when input line is not empty
* Improved detection of charsets other than UTF-8
2024-10-18 Hanna Knutsson <[email protected]>
* Add calculate as you type (disabled by default) to qalc
2024-10-14 Hanna Knutsson <[email protected]>
* Improve ability to abort matrix functions (e.g. identity() with large argument)
2024-10-07 Hanna Knutsson <[email protected]>
* Do not show warning for logarithmic ratio unit, with quantity, as function argument
2024-09-29 Hanna Knutsson <[email protected]>
* Fix inability to abort randpoisson() with very high rate value
2024-09-28 Hanna Knutsson <[email protected]>
* Fix crash with empty vector in plot function, e.g. plot([])
2024-09-20 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Fix segfault with recursive (self-referencing) function
2024-09-17 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Add nmi symbol for nautical mile
2024-09-01 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Support abbreviations for scientific (sci) and engineering (eng) as options for scientific notation (exp)
2024-08-30 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Fix parsing of 1°2'3" as 1°+2'+3" (and similar)
* Update nounit() function description
2024-08-04 Hanna Knutsson <[email protected]>
* Add Calculator::parseToExpression()
* Minor fixes for "to" conversion in Calculator::calculateAndPrint()
2024-07-24 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Fix saving of percentage interpretation in qalc
2024-07-09 Marko Zajc <[email protected]>
* Disable load() and export() functions when --disable-insecure compile option is enabled
* Fix a potential segfault when freeing DataObject
2024-07-09 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Fix Calculator::reset()
2024-07-01 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Always return false for 1/f(x)=0 (not f(x)=infinity)
* Do not solve ln(f(x))=-infinity
2024-06-15 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Fix qalc not exiting after factorization in non-interactive mode
2024-05-06 Hanna Knutsson <[email protected]>
* Fix a^(f(x))=a^(b*g(x)) where b=2 or b=3
2024-05-01 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Fix -Wdocumentation warnings
2024-04-21 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Add Sun to planets data set
* Add solar radius, mass, and luminosity as units
2024-04-11 Hanna Knutsson <[email protected]>
* Add support for column vector in if() function
2024-04-07 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Add multiples() function (returns multiples of a number within specified range)
2024-04-02 Hanna Knutsson <[email protected]>
* Add powertower() function
* Add recursive depth limit to avoid running out of stack memory (causing segfault)
2024-03-25 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Support integer factorization of integers in matrix/vector, and of numerator and denominator in rational number
2024-03-12 Hanna Knutsson <[email protected]>
* Fix setbits()
2024-03-10 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Support "where" statements, without "where", before main expression, e.g. "a=2, b=3; a^b"
2024-02-18 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Detect spelling errors in qalc options (when using set command)
2024-02-14 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Support scientific notation using 10^x instead of e notation for non-html output and in qalc
2024-01-26 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Detect potential spelling errors in suspicious expressions
2024-01-21 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Allow multiple options, separated by semicolon, with a single --set (-s) command line argument
2024-01-14 Hanna Knutsson <[email protected]>
* lambertw(x*e^x, 0)=x if x>=-1
2024-01-11 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Allow values higher than 1 (true) to specify line width of plot grid
2023-12-28 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Fix log(1, 1)
2023-12-23 Hanna Knutsson <[email protected]>
* Improve handling of zero solution and initial guess in newtonsolve() and secantsolve(), and check validity of solution
2023-12-18 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Ignore spaces when converting text string to integer
2023-10-31 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Add history command, listing expression history
* Ignore underscore in number
2023-10-29 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Fix output of value converted to unit expression with numerical multiplier in denominator, e.g. L/(100 km)
2023-10-18 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Fix Calculator::hasWhereExpression()
2023-09-23 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Fix display of matrices and vectors with complex number form other than rectangular
2023-09-12 Hanna Knutsson <[email protected]>
* Fix besselj() and bessely()
2023-09-11 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Fix for title, ylabel, and xlabel options with whitespace in value, in plot() function
2023-08-19 Hanna Knutsson <[email protected]>
* Fix and improve to Calculator::findMatchUnit() (fixes matching unit for m/s)
2023-08-13 Hanna Knutsson <[email protected]>
* Fix segfault with curly brackets in expression
* Apply automatic unit conversion after conversion to variable
2023-08-10 Hanna Knutsson <[email protected]>
* Fix "E" at end of longitude replaced with "e"
* Add derived units for kJ, kcal, and kcal/g
2023-08-02 Hanna Knutsson <[email protected]>
* Concise uncertainty input (disabled by default)
2023-07-30 Hanna Knutsson <[email protected]>
* Round high precision intervals enclosing integers for integer arguments (excluding order argument of besselj() and bessely())
2023-07-28 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Add support for specifying position of sign bit in floating point functions
2023-07-23 Hanna Knutsson <[email protected]>
* Use international foot as base unit for rod, and add U.S. survey rod unit
2023-07-19 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Fix incomplete calculation in tan() with try exact approximation
2023-06-15 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Fix 0/0=0 (do not return true) and output of 2/0 (and similar)
2023-05-15 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Fix potential memory leak when loading unit data saved with version < 0.6.3
2023-05-05 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Fix element() function for vector when column number is specified (non-zero)
2023-04-14 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Fix some memory leaks
2023-04-12 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Fix segfault in handling of vector variable with uncertainty
* Fix abortion with low max calculation time in qalc
2023-04-04 Hanna Knutsson <[email protected]>
* Do not make any difference between row and column vectors in magnitude(), norm(), and dot() functions
2023-04-02 Hanna Knutsson <[email protected]>
* Fix abbreviation for variable units (varunits) command in information (within qalc and in man page)
2023-04-01 Hanna Knutsson <[email protected]>
* Fix order of argument titles in csum() function
2023-03-26 Hanna Knutsson <[email protected]>
* Add modular exponentiation function, powmod(), with support for calculation of modular inverse
2023-03-25 Hanna Knutsson <[email protected]>
* Fix a^n mod b when n is negative
2023-03-04 Hanna Knutsson <[email protected]>
* Fix segfault in multisolve() and improve removal of equal solutions
2023-03-03 Hanna Knutsson <[email protected]>
* Support elements with units in rref() and rk()
2023-02-27 Hanna Knutsson <[email protected]>
* Always show value of local variables using current output options, in qalc
2023-02-23 Jules Bertholet <[email protected]>
* Add "thou" name to mil unit and make it default and reference
* Add plurals to old French units
2023-02-21 Hanna Knutsson <[email protected]>
* Improve detection of default language on Windows
2023-02-18 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Add "amp" abbreviation to ampere unit
2023-01-26 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Fix reactivation of global object after deletion of conflicting object
2023-01-07 Hanna Knutsson <[email protected]>
* Use "help [OPTION]" to display description for a single set option, in qalc
2023-01-04 Hanna Knutsson <[email protected]>
* EUR has replaced HRK as currency of Croatia
2022-12-30 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Fix unit tests (ordering in output changed)
2022-12-22 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Fix randuniform()
* Fix dual approximation with random number functions
2022-12-14 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Use standard form (sorting) for polynomials
2022-12-07 Hanna Knutsson <[email protected]>
* Allow non-numerical arguments in atan2()
2022-12-02 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Add new SI prefixes (R, r, Q, q)
2022-11-14 Hanna Knutsson <[email protected]>
* Fix automatic/dual fraction format after conversion (e.g. "8 to score")
2022-10-31 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Add units ounce force (ozf) and rack unit (U)
2022-10-24 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Fix slow conversion to optimal or base units of uncertainty with units inside value and/or error
2022-10-14 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Replace new line with white space when saving history in qalc
2022-10-10 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Fix segfault in Calculator destructor (data sets, which are a type of function, were deleted twice)
2022-09-22 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Add primePi(), primes(), nthprime(), nextprime(), prevprime(), and isprime() functions
2022-08-26 NorwayFun <[email protected]>
* Georgian translation
2022-08-25 Hanna Knutsson <[email protected]>
* Avoid ambiguous implicit multiplication warning in more cases involving units
2022-08-22 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Recursively create qalc configuration directory
2022-08-13 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* Replace ounce with fluid ounce during conversion from or to volume unit
2022-08-06 Hanna Knutsson <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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