pax_global_header00006660000000000000000000000064147607670720014532gustar00rootroot0000000000000052 comment=1baec38e9a37ca36d477d469c56de4aa5837c75e libqalculate-5.5.2/000077500000000000000000000000001476076707200142055ustar00rootroot00000000000000libqalculate-5.5.2/.gitignore000066400000000000000000000006001476076707200161710ustar00rootroot00000000000000*.lo *.o *.la Makefile Makefile.in *~ data/*.xml *.gmo config.* .kdev4 aclocal.m4 autom4te* configure depcomp docs/reference/html* intltool*.in install-sh libqalculate.kdev4 libqalculate.pc libqalculate/.* libtool ltmain.sh missing mkinstalldirs po-defs/.* po/POTFILES po/stamp-it src/.* src/qalc src/unittest *.trs src/*.log stamp-h1 lokalize-scripts/ main.lqa libqalculate.lokalize libqalculate-5.5.2/ABOUT-NLS000066400000000000000000002674741476076707200154600ustar00rootroot000000000000001 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this 'ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU 'gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU 'gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. 1.1 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU 'gettext'. Other packages have their own ways to internationalization, predating GNU 'gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU 'gettext' functions. Installers may use special options at configuration time for changing the default behaviour. The command: ./configure --disable-nls will _totally_ disable translation of messages. When you already have GNU 'gettext' installed on your system and run configure without an option for your new package, 'configure' will probably detect the previously built and installed 'libintl' library and will decide to use it. If not, you may have to to use the '--with-libintl-prefix' option to tell 'configure' where to look for it. Internationalized packages usually have many 'po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at 'configure' time by using the '--disable-nls' switch, all available translations are installed together with the package. However, the environment variable 'LINGUAS' may be set, prior to configuration, to limit the installed set. 'LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.2 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the 'LANG' environment variable to the appropriate 'LL_CC' combination. If you happen to have the 'LC_ALL' or some other 'LC_xxx' environment variables set, you should unset them before setting 'LANG', otherwise the setting of 'LANG' will not have the desired effect. Here 'LL' is an ISO 639 two-letter language code, and 'CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute 'setenv LANG de_DE' (in 'csh'), 'export LANG; LANG=de_DE' (in 'sh') or 'export LANG=de_DE' (in 'bash'). This can be done from your '.login' or '.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, 'de_AT' is used for Austria, and 'pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of 'LL_CC', with 'LL' denoting the language and 'CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as 'LL' or 'LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command 'locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called 'LANGUAGE'. GNU 'gettext' gives preference to 'LANGUAGE' over 'LANG' for the purpose of message handling, but you still need to have 'LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set 'LANGUAGE' to 'sv:de' while leaving 'LANG' to 'sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from 'no' to 'nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under 'nb' and some older ones under 'no', it's recommended for Norwegian users to set 'LANGUAGE' to 'nb:no' so that both newer and older translations are used. In the 'LANGUAGE' environment variable, but not in the 'LANG' environment variable, 'LL_CC' combinations can be abbreviated as 'LL' to denote the language's main dialect. For example, 'de' is equivalent to 'de_DE' (German as spoken in Germany), and 'pt' to 'pt_PT' (Portuguese as spoken in Portugal) in this context. 1.3 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, 'http://translationproject.org/', in the "Teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has '-request' appended. For example, speakers of Swedish can send a message to 'sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to 'coordinator@translationproject.org' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skills are praised more than programming skills, here. 1.4 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of Jun 2014. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am an ar as ast az be bg bn bn_IN bs ca crh cs +---------------------------------------------------+ a2ps | [] [] [] | aegis | | anubis | | aspell | [] [] [] | bash | [] [] [] | bfd | | binutils | [] | bison | | bison-runtime | [] | buzztrax | [] | ccd2cue | | ccide | | cflow | | clisp | | coreutils | [] [] | cpio | | cppi | | cpplib | [] | cryptsetup | [] | datamash | | denemo | [] [] | dfarc | [] | dialog | [] [] [] | dico | | diffutils | [] | dink | [] | direvent | | doodle | [] | dos2unix | | dos2unix-man | | e2fsprogs | [] [] | enscript | [] | exif | [] | fetchmail | [] [] | findutils | [] | flex | [] | freedink | [] [] | fusionforge | | gas | | gawk | [] | gcal | [] | gcc | | gdbm | | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] | gettext-tools | [] [] | gjay | | glunarclock | [] [] [] | gnubiff | [] | gnubik | [] | gnucash | () () [] | gnuchess | | gnulib | [] | gnunet | | gnunet-gtk | | gold | | gphoto2 | [] | gprof | [] | gramadoir | | grep | [] [] [] | grub | [] | gsasl | | gss | | gst-plugins-bad | [] [] | gst-plugins-base | [] [] [] | gst-plugins-good | [] [] [] | gst-plugins-ugly | [] [] [] | gstreamer | [] [] [] [] | gtick | [] | gtkam | [] [] | gtkspell | [] [] [] [] [] | guix | | guix-packages | | gutenprint | [] | hello | [] | help2man | | help2man-texi | | hylafax | | idutils | | iso_15924 | [] | iso_3166 | [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] | iso_639 | [] [] [] [] [] [] [] [] [] | iso_639_3 | [] [] | iso_639_5 | | jwhois | | kbd | [] | klavaro | [] [] [] [] [] | ld | [] | leafpad | [] [] [] [] | libc | [] [] [] | libexif | () | libextractor | | libgnutls | [] | libgphoto2 | [] | libgphoto2_port | [] | libgsasl | | libiconv | [] [] | libidn | [] | liferea | [] [] [] [] | lilypond | [] [] | lordsawar | [] | lprng | | lynx | [] [] | m4 | [] | mailfromd | | mailutils | | make | [] | man-db | [] [] | man-db-manpages | | midi-instruments | [] [] [] | minicom | [] | mkisofs | [] | myserver | [] | nano | [] [] [] | opcodes | | parted | [] | pies | | pnmixer | | popt | [] | procps-ng | | procps-ng-man | | psmisc | [] | pspp | [] | pushover | [] | pwdutils | | pyspread | | radius | [] | recode | [] [] [] | recutils | | rpm | | rush | | sarg | | sed | [] [] [] [] | sharutils | [] | shishi | | skribilo | | solfege | [] [] | solfege-manual | | spotmachine | | sudo | [] [] | sudoers | [] [] | sysstat | [] | tar | [] [] [] | texinfo | [] [] | texinfo_document | [] [] | tigervnc | [] | tin | | tin-man | | tracgoogleappsa... | | trader | | util-linux | [] | ve | | vice | | vmm | | vorbis-tools | [] | wastesedge | | wcd | | wcd-man | | wdiff | [] [] | wget | [] | wyslij-po | | xboard | | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +---------------------------------------------------+ af am an ar as ast az be bg bn bn_IN bs ca crh cs 4 0 2 5 3 11 0 8 25 3 3 1 55 4 74 da de el en en_GB en_ZA eo es et eu fa fi fr +--------------------------------------------------+ a2ps | [] [] [] [] [] [] [] [] [] | aegis | [] [] [] [] | anubis | [] [] [] [] [] | aspell | [] [] [] [] [] [] [] | bash | [] [] [] | bfd | [] [] [] [] | binutils | [] [] [] | bison | [] [] [] [] [] [] [] [] | bison-runtime | [] [] [] [] [] [] [] [] | buzztrax | [] [] [] [] | ccd2cue | [] [] [] [] | ccide | [] [] [] [] [] [] | cflow | [] [] [] [] [] | clisp | [] [] [] [] [] | coreutils | [] [] [] [] [] | cpio | [] [] [] [] [] | cppi | [] [] [] [] [] | cpplib | [] [] [] [] [] [] | cryptsetup | [] [] [] [] [] | datamash | [] [] [] [] | denemo | [] | dfarc | [] [] [] [] [] [] | dialog | [] [] [] [] [] [] [] [] [] | dico | [] [] [] [] | diffutils | [] [] [] [] [] [] | dink | [] [] [] [] [] [] | direvent | [] [] [] [] | doodle | [] [] [] [] | dos2unix | [] [] [] [] [] | dos2unix-man | [] [] [] | e2fsprogs | [] [] [] [] [] | enscript | [] [] [] [] [] [] | exif | [] [] [] [] [] [] | fetchmail | [] () [] [] [] [] [] | findutils | [] [] [] [] [] [] [] [] | flex | [] [] [] [] [] [] | freedink | [] [] [] [] [] [] [] [] | fusionforge | [] [] [] | gas | [] [] [] | gawk | [] [] [] [] [] | gcal | [] [] [] [] | gcc | [] | gdbm | [] [] [] [] [] | gettext-examples | [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] | gjay | [] [] [] [] | glunarclock | [] [] [] [] [] | gnubiff | () [] [] () | gnubik | [] [] [] [] [] | gnucash | [] () () () () () () | gnuchess | [] [] [] [] | gnulib | [] [] [] [] [] [] [] | gnunet | [] | gnunet-gtk | [] | gold | [] [] [] | gphoto2 | [] () [] [] | gprof | [] [] [] [] [] [] | gramadoir | [] [] [] [] [] | grep | [] [] [] [] [] [] [] | grub | [] [] [] [] [] | gsasl | [] [] [] [] [] | gss | [] [] [] [] [] | gst-plugins-bad | [] [] [] | gst-plugins-base | [] [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] [] [] | gstreamer | [] [] [] [] [] [] [] | gtick | [] () [] [] [] | gtkam | [] () [] [] [] [] | gtkspell | [] [] [] [] [] [] [] [] | guix | [] [] | guix-packages | | gutenprint | [] [] [] [] | hello | [] [] [] [] [] [] [] [] | help2man | [] [] [] [] [] [] [] | help2man-texi | [] [] [] | hylafax | [] [] | idutils | [] [] [] [] [] | iso_15924 | [] () [] [] () [] () | iso_3166 | [] () [] [] [] [] () [] () | iso_3166_2 | [] () () () | iso_4217 | [] () [] [] [] () [] () | iso_639 | [] () [] [] () [] () | iso_639_3 | () () () | iso_639_5 | () () () | jwhois | [] [] [] [] [] | kbd | [] [] [] [] [] [] | klavaro | [] [] [] [] [] [] [] | ld | [] [] [] [] | leafpad | [] [] [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] [] () [] [] | libextractor | [] | libgnutls | [] [] [] [] | libgphoto2 | [] () [] | libgphoto2_port | [] () [] [] [] [] | libgsasl | [] [] [] [] [] | libiconv | [] [] [] [] [] [] [] | libidn | [] [] [] [] [] | liferea | [] () [] [] [] [] [] | lilypond | [] [] [] [] [] [] | lordsawar | [] [] | lprng | | lynx | [] [] [] [] [] [] | m4 | [] [] [] [] [] [] | mailfromd | [] | mailutils | [] [] [] [] | make | [] [] [] [] [] | man-db | [] [] [] [] | man-db-manpages | [] [] | midi-instruments | [] [] [] [] [] [] [] [] [] | minicom | [] [] [] [] [] | mkisofs | [] [] [] | myserver | [] [] [] [] | nano | [] [] [] [] [] [] [] | opcodes | [] [] [] [] [] | parted | [] [] [] | pies | [] | pnmixer | [] [] | popt | [] [] [] [] [] [] | procps-ng | [] [] | procps-ng-man | [] [] | psmisc | [] [] [] [] [] [] [] | pspp | [] [] [] | pushover | () [] [] [] | pwdutils | [] [] [] | pyspread | [] [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] | recutils | [] [] [] [] | rpm | [] [] [] [] [] | rush | [] [] [] | sarg | [] [] | sed | [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] [] [] | skribilo | [] [] [] | solfege | [] [] [] [] [] [] [] [] | solfege-manual | [] [] [] [] [] | spotmachine | [] [] [] [] [] | sudo | [] [] [] [] [] [] | sudoers | [] [] [] [] [] [] | sysstat | [] [] [] [] [] [] | tar | [] [] [] [] [] [] [] | texinfo | [] [] [] [] [] | texinfo_document | [] [] [] [] | tigervnc | [] [] [] [] [] [] | tin | [] [] [] [] | tin-man | [] | tracgoogleappsa... | [] [] [] [] [] | trader | [] [] [] [] [] [] | util-linux | [] [] [] [] | ve | [] [] [] [] [] | vice | () () () | vmm | [] [] | vorbis-tools | [] [] [] [] | wastesedge | [] | wcd | [] [] [] [] | wcd-man | [] | wdiff | [] [] [] [] [] [] [] | wget | [] [] [] [] [] [] | wyslij-po | [] [] [] [] | xboard | [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] [] [] | +--------------------------------------------------+ da de el en en_GB en_ZA eo es et eu fa fi fr 119 131 32 1 6 0 94 95 22 13 4 102 139 ga gd gl gu he hi hr hu hy ia id is it ja ka kk +-------------------------------------------------+ a2ps | [] [] [] [] | aegis | [] | anubis | [] [] [] [] | aspell | [] [] [] [] [] | bash | [] [] [] [] | bfd | [] [] | binutils | [] [] [] | bison | [] | bison-runtime | [] [] [] [] [] [] [] [] | buzztrax | | ccd2cue | [] | ccide | [] [] | cflow | [] [] [] | clisp | | coreutils | [] [] | cpio | [] [] [] [] [] [] | cppi | [] [] [] [] [] | cpplib | [] [] | cryptsetup | [] | datamash | | denemo | [] | dfarc | [] [] [] | dialog | [] [] [] [] [] [] [] [] [] [] | dico | | diffutils | [] [] [] [] | dink | [] | direvent | [] | doodle | [] [] | dos2unix | [] [] | dos2unix-man | | e2fsprogs | [] [] | enscript | [] [] [] | exif | [] [] [] [] [] [] | fetchmail | [] [] [] | findutils | [] [] [] [] [] [] [] | flex | [] | freedink | [] [] [] [] | fusionforge | | gas | [] | gawk | [] () [] | gcal | | gcc | | gdbm | | gettext-examples | [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] | gettext-tools | [] [] [] | gjay | [] | glunarclock | [] [] [] [] [] [] | gnubiff | [] [] () | gnubik | [] [] [] | gnucash | () () () () () | gnuchess | | gnulib | [] [] [] [] [] | gnunet | | gnunet-gtk | | gold | [] [] | gphoto2 | [] [] [] [] | gprof | [] [] [] [] | gramadoir | [] [] [] | grep | [] [] [] [] [] [] [] | grub | [] [] [] | gsasl | [] [] [] [] [] | gss | [] [] [] [] [] | gst-plugins-bad | [] [] [] | gst-plugins-base | [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] [] [] [] [] | gtkam | [] [] [] [] [] | gtkspell | [] [] [] [] [] [] [] [] [] [] | guix | | guix-packages | | gutenprint | [] [] [] | hello | [] [] [] [] [] | help2man | [] [] [] | help2man-texi | | hylafax | [] | idutils | [] [] | iso_15924 | [] [] [] [] [] [] | iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | [] [] | iso_4217 | [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] [] [] [] | iso_639_3 | [] [] | iso_639_5 | | jwhois | [] [] [] [] | kbd | [] [] [] | klavaro | [] [] [] [] [] | ld | [] [] [] [] | leafpad | [] [] [] [] [] [] [] () | libc | [] [] [] [] [] | libexif | [] | libextractor | | libgnutls | [] | libgphoto2 | [] [] | libgphoto2_port | [] [] | libgsasl | [] [] [] [] | libiconv | [] [] [] [] [] [] [] | libidn | [] [] [] [] | liferea | [] [] [] [] [] | lilypond | [] | lordsawar | | lprng | [] | lynx | [] [] [] [] | m4 | [] [] [] [] [] | mailfromd | | mailutils | | make | [] [] [] [] | man-db | [] [] | man-db-manpages | [] [] | midi-instruments | [] [] [] [] [] [] [] [] [] | minicom | [] [] [] | mkisofs | [] [] | myserver | [] | nano | [] [] [] [] [] [] | opcodes | [] [] [] | parted | [] [] [] [] [] | pies | | pnmixer | [] [] | popt | [] [] [] [] [] [] [] [] [] [] | procps-ng | | procps-ng-man | | psmisc | [] [] [] [] | pspp | [] [] | pushover | [] | pwdutils | [] | pyspread | | radius | [] | recode | [] [] [] [] [] [] [] | recutils | | rpm | [] | rush | [] | sarg | | sed | [] [] [] [] [] [] [] | sharutils | | shishi | | skribilo | [] | solfege | [] [] | solfege-manual | | spotmachine | | sudo | [] [] [] [] | sudoers | [] [] [] | sysstat | [] [] [] [] | tar | [] [] [] [] [] [] | texinfo | [] [] [] | texinfo_document | [] [] [] | tigervnc | | tin | | tin-man | | tracgoogleappsa... | [] [] [] [] | trader | [] [] | util-linux | [] | ve | [] | vice | () () | vmm | | vorbis-tools | [] [] | wastesedge | [] | wcd | | wcd-man | | wdiff | [] [] [] | wget | [] [] [] [] | wyslij-po | [] [] [] | xboard | | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] [] | +-------------------------------------------------+ ga gd gl gu he hi hr hu hy ia id is it ja ka kk 35 2 47 4 8 2 60 71 2 6 81 11 87 57 0 3 kn ko ku ky lg lt lv mk ml mn mr ms mt nb ne nl +--------------------------------------------------+ a2ps | [] [] | aegis | [] | anubis | [] [] [] | aspell | [] [] | bash | [] [] | bfd | | binutils | | bison | [] | bison-runtime | [] [] [] [] [] [] | buzztrax | | ccd2cue | | ccide | [] [] | cflow | [] | clisp | [] | coreutils | [] [] | cpio | [] | cppi | | cpplib | [] | cryptsetup | [] | datamash | [] [] | denemo | | dfarc | [] [] | dialog | [] [] [] [] [] [] | dico | | diffutils | [] [] [] | dink | [] | direvent | [] | doodle | [] | dos2unix | [] [] | dos2unix-man | [] | e2fsprogs | [] | enscript | [] | exif | [] [] [] | fetchmail | [] | findutils | [] [] | flex | [] | freedink | [] [] | fusionforge | | gas | | gawk | [] | gcal | | gcc | | gdbm | | gettext-examples | [] [] [] [] [] [] | gettext-runtime | [] [] [] | gettext-tools | [] | gjay | | glunarclock | [] [] | gnubiff | [] | gnubik | [] [] | gnucash | () () () () () () () [] | gnuchess | [] [] | gnulib | [] | gnunet | | gnunet-gtk | | gold | | gphoto2 | [] | gprof | [] [] | gramadoir | [] | grep | [] [] | grub | [] [] [] | gsasl | [] | gss | | gst-plugins-bad | [] [] [] | gst-plugins-base | [] [] [] | gst-plugins-good | [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] | gstreamer | [] [] [] | gtick | [] | gtkam | [] [] | gtkspell | [] [] [] [] [] [] [] | guix | | guix-packages | | gutenprint | [] | hello | [] [] [] | help2man | [] | help2man-texi | | hylafax | [] | idutils | [] | iso_15924 | () [] [] | iso_3166 | [] [] [] () [] [] [] [] [] [] | iso_3166_2 | () [] | iso_4217 | () [] [] [] | iso_639 | [] [] () [] [] [] [] | iso_639_3 | [] () [] | iso_639_5 | () | jwhois | [] [] | kbd | [] | klavaro | [] [] | ld | | leafpad | [] [] [] [] [] | libc | [] [] | libexif | [] | libextractor | [] | libgnutls | [] [] | libgphoto2 | [] | libgphoto2_port | [] | libgsasl | [] | libiconv | [] [] | libidn | [] | liferea | [] [] [] | lilypond | [] | lordsawar | | lprng | | lynx | [] | m4 | [] | mailfromd | | mailutils | | make | [] [] | man-db | [] | man-db-manpages | [] | midi-instruments | [] [] [] [] [] [] [] | minicom | [] | mkisofs | [] | myserver | | nano | [] [] [] | opcodes | [] | parted | [] [] | pies | | pnmixer | [] | popt | [] [] [] [] [] | procps-ng | | procps-ng-man | | psmisc | [] | pspp | [] [] | pushover | | pwdutils | [] | pyspread | | radius | [] | recode | [] [] | recutils | [] | rpm | [] | rush | [] | sarg | | sed | [] [] | sharutils | [] | shishi | | skribilo | | solfege | [] [] | solfege-manual | [] | spotmachine | [] | sudo | [] [] [] | sudoers | [] [] [] | sysstat | [] [] | tar | [] [] [] | texinfo | [] | texinfo_document | [] | tigervnc | [] | tin | | tin-man | | tracgoogleappsa... | [] [] [] | trader | [] | util-linux | [] | ve | [] | vice | [] | vmm | [] | vorbis-tools | [] | wastesedge | [] | wcd | [] | wcd-man | [] | wdiff | [] | wget | [] [] | wyslij-po | [] | xboard | [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +--------------------------------------------------+ kn ko ku ky lg lt lv mk ml mn mr ms mt nb ne nl 5 15 4 6 0 13 23 3 3 3 4 11 2 42 1 125 nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr +------------------------------------------------+ a2ps | [] [] [] [] [] [] [] | aegis | [] [] | anubis | [] [] [] | aspell | [] [] [] [] [] [] [] | bash | [] [] [] [] [] [] | bfd | [] [] | binutils | [] [] | bison | [] [] [] | bison-runtime | [] [] [] [] [] [] [] [] | buzztrax | [] | ccd2cue | [] [] | ccide | [] [] [] | cflow | [] [] [] | clisp | [] | coreutils | [] [] [] [] | cpio | [] [] [] | cppi | [] [] [] | cpplib | [] [] [] | cryptsetup | [] [] [] | datamash | [] [] | denemo | | dfarc | [] [] [] | dialog | [] [] [] [] [] [] [] | dico | [] | diffutils | [] [] [] | dink | | direvent | [] [] [] | doodle | [] [] | dos2unix | [] [] [] [] | dos2unix-man | [] [] | e2fsprogs | [] | enscript | [] [] [] [] [] [] | exif | [] [] [] [] [] [] | fetchmail | [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] [] [] | freedink | [] [] [] [] [] | fusionforge | | gas | | gawk | [] | gcal | | gcc | | gdbm | [] [] [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] [] | gjay | [] | glunarclock | [] [] [] [] [] [] | gnubiff | [] | gnubik | [] [] [] [] | gnucash | () () () () () [] | gnuchess | [] [] | gnulib | [] [] [] [] [] | gnunet | | gnunet-gtk | | gold | | gphoto2 | [] [] [] [] [] | gprof | [] [] [] [] | gramadoir | [] [] | grep | [] [] [] [] [] [] | grub | [] [] [] [] [] | gsasl | [] [] [] | gss | [] [] [] [] | gst-plugins-bad | [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] [] | gstreamer | [] [] [] [] [] [] [] | gtick | [] [] [] [] [] | gtkam | [] [] [] [] [] [] | gtkspell | [] [] [] [] [] [] [] [] [] | guix | | guix-packages | | gutenprint | [] [] | hello | [] [] [] [] [] [] | help2man | [] [] [] [] | help2man-texi | [] | hylafax | | idutils | [] [] [] | iso_15924 | [] () [] [] [] [] | iso_3166 | [] [] [] [] () [] [] [] [] [] [] [] [] | iso_3166_2 | [] () [] | iso_4217 | [] [] () [] [] [] [] [] | iso_639 | [] [] [] () [] [] [] [] [] [] | iso_639_3 | [] () | iso_639_5 | () [] | jwhois | [] [] [] [] | kbd | [] [] | klavaro | [] [] [] [] [] | ld | | leafpad | [] [] [] [] [] [] [] [] | libc | [] [] [] | libexif | [] () [] | libextractor | [] | libgnutls | [] | libgphoto2 | [] | libgphoto2_port | [] [] [] [] [] | libgsasl | [] [] [] [] | libiconv | [] [] [] [] [] | libidn | [] [] [] | liferea | [] [] [] [] () [] [] | lilypond | | lordsawar | | lprng | [] | lynx | [] [] | m4 | [] [] [] [] [] | mailfromd | [] | mailutils | [] | make | [] [] [] | man-db | [] [] [] | man-db-manpages | [] [] [] | midi-instruments | [] [] [] [] [] [] [] [] | minicom | [] [] [] [] | mkisofs | [] [] [] | myserver | [] [] | nano | [] [] [] [] [] [] | opcodes | | parted | [] [] [] [] [] [] | pies | [] | pnmixer | [] | popt | [] [] [] [] [] [] | procps-ng | [] | procps-ng-man | [] | psmisc | [] [] [] [] | pspp | [] [] | pushover | | pwdutils | [] | pyspread | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | recutils | [] [] | rpm | [] | rush | [] [] [] | sarg | [] [] | sed | [] [] [] [] [] [] [] [] | sharutils | [] [] [] | shishi | [] [] | skribilo | [] | solfege | [] [] [] | solfege-manual | [] [] | spotmachine | [] [] | sudo | [] [] [] [] [] [] | sudoers | [] [] [] [] | sysstat | [] [] [] [] [] | tar | [] [] [] [] [] | texinfo | [] [] [] | texinfo_document | [] [] | tigervnc | [] [] [] | tin | [] | tin-man | | tracgoogleappsa... | [] [] [] [] | trader | [] [] | util-linux | [] [] | ve | [] [] [] | vice | | vmm | | vorbis-tools | [] [] [] | wastesedge | | wcd | | wcd-man | | wdiff | [] [] [] [] [] | wget | [] [] [] [] [] | wyslij-po | [] [] [] [] | xboard | [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] | +------------------------------------------------+ nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr 7 3 6 114 1 12 88 32 82 3 40 45 7 101 sv sw ta te tg th tr uk ur vi wa wo zh_CN +----------------------------------------------+ a2ps | [] [] [] [] [] | aegis | [] | anubis | [] [] [] [] | aspell | [] [] [] [] [] | bash | [] [] [] [] | bfd | [] [] [] | binutils | [] [] [] | bison | [] [] [] [] | bison-runtime | [] [] [] [] [] [] | buzztrax | [] [] [] | ccd2cue | [] [] [] | ccide | [] [] [] [] | cflow | [] [] [] [] | clisp | | coreutils | [] [] [] | cpio | [] [] [] [] [] | cppi | [] [] [] [] | cpplib | [] [] [] [] [] | cryptsetup | [] [] [] | datamash | [] [] [] | denemo | [] | dfarc | [] [] | dialog | [] [] [] [] [] [] | dico | [] | diffutils | [] [] [] [] [] | dink | [] | direvent | [] [] | doodle | [] [] | dos2unix | [] [] [] [] | dos2unix-man | [] [] [] | e2fsprogs | [] [] [] [] | enscript | [] [] [] [] | exif | [] [] [] [] [] | fetchmail | [] [] [] [] | findutils | [] [] [] [] [] | flex | [] [] [] [] | freedink | [] [] [] | fusionforge | | gas | [] | gawk | [] [] [] | gcal | [] [] [] | gcc | [] | gdbm | [] [] | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] [] [] [] | gjay | [] [] [] | glunarclock | [] [] [] [] | gnubiff | [] [] | gnubik | [] [] [] [] | gnucash | () () () () [] | gnuchess | [] [] [] | gnulib | [] [] [] [] | gnunet | | gnunet-gtk | | gold | [] [] | gphoto2 | [] [] [] [] | gprof | [] [] [] [] | gramadoir | [] [] [] | grep | [] [] [] [] [] | grub | [] [] [] [] | gsasl | [] [] [] [] | gss | [] [] [] | gst-plugins-bad | [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] [] [] | gtkam | [] [] [] [] | gtkspell | [] [] [] [] [] [] [] | guix | | guix-packages | | gutenprint | [] [] [] [] | hello | [] [] [] [] [] [] | help2man | [] [] [] | help2man-texi | [] | hylafax | [] | idutils | [] [] [] | iso_15924 | [] () [] [] () [] | iso_3166 | [] [] () [] [] () [] [] | iso_3166_2 | () [] [] () [] | iso_4217 | [] () [] [] () [] | iso_639 | [] [] [] () [] [] () [] [] | iso_639_3 | [] () [] [] () | iso_639_5 | () [] () | jwhois | [] [] [] [] | kbd | [] [] [] [] | klavaro | [] [] [] [] [] [] | ld | [] [] [] [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] [] () | libextractor | [] [] | libgnutls | [] [] [] [] | libgphoto2 | [] [] [] | libgphoto2_port | [] [] [] [] | libgsasl | [] [] [] [] | libiconv | [] [] [] [] [] | libidn | () [] [] [] | liferea | [] [] [] [] [] | lilypond | [] | lordsawar | | lprng | [] | lynx | [] [] [] [] | m4 | [] [] [] | mailfromd | [] [] | mailutils | [] | make | [] [] [] [] | man-db | [] [] [] | man-db-manpages | [] [] | midi-instruments | [] [] [] [] [] [] | minicom | [] [] | mkisofs | [] [] [] | myserver | [] | nano | [] [] [] [] | opcodes | [] [] [] | parted | [] [] [] [] [] | pies | [] [] | pnmixer | [] [] [] | popt | [] [] [] [] [] [] [] | procps-ng | [] [] | procps-ng-man | [] | psmisc | [] [] [] [] | pspp | [] [] [] | pushover | [] | pwdutils | [] [] | pyspread | [] | radius | [] [] | recode | [] [] [] [] | recutils | [] [] [] | rpm | [] [] [] [] | rush | [] [] | sarg | | sed | [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] [] | skribilo | [] [] | solfege | [] [] [] [] | solfege-manual | [] | spotmachine | [] [] [] | sudo | [] [] [] [] [] | sudoers | [] [] [] [] | sysstat | [] [] [] [] [] | tar | [] [] [] [] [] | texinfo | [] [] [] | texinfo_document | [] | tigervnc | [] [] [] | tin | [] | tin-man | | tracgoogleappsa... | [] [] [] [] [] | trader | [] | util-linux | [] [] [] [] | ve | [] [] [] [] | vice | () () | vmm | | vorbis-tools | [] [] | wastesedge | | wcd | [] [] [] | wcd-man | [] | wdiff | [] [] [] [] | wget | [] [] [] | wyslij-po | [] [] | xboard | [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] | +----------------------------------------------+ sv sw ta te tg th tr uk ur vi wa wo zh_CN 106 1 4 3 0 13 51 115 1 125 7 1 100 zh_HK zh_TW +-------------+ a2ps | | 30 aegis | | 9 anubis | | 19 aspell | | 29 bash | [] | 23 bfd | | 11 binutils | | 12 bison | [] | 18 bison-runtime | [] | 38 buzztrax | | 9 ccd2cue | | 10 ccide | | 17 cflow | | 16 clisp | | 10 coreutils | | 18 cpio | | 20 cppi | | 17 cpplib | [] | 19 cryptsetup | | 14 datamash | | 11 denemo | | 5 dfarc | | 17 dialog | [] | 42 dico | | 6 diffutils | | 22 dink | | 10 direvent | | 11 doodle | | 12 dos2unix | [] | 18 dos2unix-man | | 9 e2fsprogs | | 15 enscript | | 21 exif | | 27 fetchmail | | 19 findutils | | 29 flex | [] | 19 freedink | | 24 fusionforge | | 3 gas | | 5 gawk | | 13 gcal | | 8 gcc | | 2 gdbm | | 10 gettext-examples | [] [] | 40 gettext-runtime | [] [] | 35 gettext-tools | [] | 24 gjay | | 9 glunarclock | [] | 27 gnubiff | | 9 gnubik | | 19 gnucash | () | 6 gnuchess | | 11 gnulib | | 23 gnunet | | 1 gnunet-gtk | | 1 gold | | 7 gphoto2 | [] | 19 gprof | | 21 gramadoir | | 14 grep | [] | 31 grub | | 21 gsasl | [] | 19 gss | | 17 gst-plugins-bad | | 21 gst-plugins-base | | 27 gst-plugins-good | | 32 gst-plugins-ugly | | 34 gstreamer | [] | 32 gtick | | 19 gtkam | | 24 gtkspell | [] [] | 48 guix | | 2 guix-packages | | 0 gutenprint | | 15 hello | [] | 30 help2man | | 18 help2man-texi | | 5 hylafax | | 5 idutils | | 14 iso_15924 | [] | 23 iso_3166 | [] [] | 58 iso_3166_2 | | 9 iso_4217 | [] [] | 28 iso_639 | [] [] | 46 iso_639_3 | | 10 iso_639_5 | | 2 jwhois | [] | 20 kbd | | 17 klavaro | | 30 ld | [] | 15 leafpad | [] | 39 libc | [] | 24 libexif | | 10 libextractor | | 5 libgnutls | | 13 libgphoto2 | | 10 libgphoto2_port | [] | 19 libgsasl | | 18 libiconv | [] | 29 libidn | | 17 liferea | | 29 lilypond | | 11 lordsawar | | 3 lprng | | 3 lynx | | 19 m4 | [] | 22 mailfromd | | 4 mailutils | | 6 make | | 19 man-db | | 15 man-db-manpages | | 10 midi-instruments | [] | 43 minicom | [] | 17 mkisofs | | 13 myserver | | 9 nano | [] | 30 opcodes | | 12 parted | [] | 23 pies | | 4 pnmixer | | 9 popt | [] | 36 procps-ng | | 5 procps-ng-man | | 4 psmisc | [] | 22 pspp | | 13 pushover | | 6 pwdutils | | 8 pyspread | | 6 radius | | 9 recode | | 31 recutils | | 10 rpm | [] | 13 rush | | 10 sarg | | 4 sed | [] | 35 sharutils | | 13 shishi | | 7 skribilo | | 7 solfege | | 21 solfege-manual | | 9 spotmachine | | 11 sudo | | 26 sudoers | | 22 sysstat | | 23 tar | [] | 30 texinfo | | 17 texinfo_document | | 13 tigervnc | | 14 tin | [] | 7 tin-man | | 1 tracgoogleappsa... | [] | 22 trader | | 12 util-linux | | 13 ve | | 14 vice | | 1 vmm | | 3 vorbis-tools | | 13 wastesedge | | 3 wcd | | 8 wcd-man | | 3 wdiff | [] | 23 wget | | 21 wyslij-po | | 14 xboard | | 10 xdg-user-dirs | [] [] | 68 xkeyboard-config | [] | 28 +-------------+ 89 teams zh_HK zh_TW 166 domains 7 42 2809 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If Jun 2014 seems to be old, you may fetch a more recent copy of this 'ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at 'http://translationproject.org/extra/matrix.html'. 1.5 Using 'gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU 'gettext' in your package. Of course you have to respect the GNU Lesser General Public License which covers the use of the GNU 'gettext' library. This means in particular that even non-free programs can use 'libintl' as a shared library, whereas only free software can use 'libintl' as a static library or use modified versions of 'libintl'. Once the sources are changed appropriately and the setup can handle the use of 'gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact 'coordinator@translationproject.org' to make the '.pot' files available to the translation teams. libqalculate-5.5.2/AUTHORS000066400000000000000000000000571476076707200152570ustar00rootroot00000000000000Hanna Knutsson libqalculate-5.5.2/COPYING000066400000000000000000000432541476076707200152500ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. libqalculate-5.5.2/ChangeLog000066400000000000000000007371561476076707200160020ustar00rootroot000000000000002025-02-20 Hanna Knutsson * Convert turn left over after unit conversion to radians (e.g. "10000Nm*250*rpm to W") 2025-02-17 Hanna Knutsson * Split function description into multiple text blocks, at newline, in help/info output in qalc in order to avoid blank lines when output does not fit terminal screen 2025-02-13 Hanna Knutsson * Do not convert to inactive unit * Fix calculate as you type with RPN syntax (update when last character is an operator) * Support calculate as you type with RPN stack enabled * Fix "where" operator using a saved equation (the "where" expression is a variable containing an equality or inequality) * Add Ctrl+I shortcut for input of the previous result, either with text of value, or as temporary variable (replaced in history on exit) for approximate or long values 2025-02-01 Hanna Knutsson * Return x=a*e^(i*r) (with r instead of n), with a warning informing the user that r represents any real number, for abs(x)=a 2025-01-31 Hanna Knutsson * Do not show value twice, if not translated, in description of plot function 2025-01-19 Hanna Knutsson * Fix solve() function with replace() function as first argument (fixes solve2() function) 2025-01-18 Hanna Knutsson * Do not show couldn't write preferences warning if file is a symlink 2025-01-08 Hanna Knutsson * Avoid recalculation of old calculate as you type expression when expression is empty, or calculation of empty expression before any calculation has occured, and calculation or parsing settings have been modified * Add description to ans variable 2025-01-03 Hanna Knutsson * Fix rounding in 1/# conversion to integer (e.g. "1/2 to 0.99") 2025-01-02 Hanna Knutsson * Always use four digits for year in date (e.g. "0064-07-18" instead of "64-07-18") * Support input of date using dd-mm-yyyy format 2024-12-27 Hanna Knutsson * Fix solving of x^4-4x^3+10x^2-12x+1=0, and similar, in exact mode * Use hours or minutes as default unit for conversion to time unit of expression with time format but no units (e.g. "0:00:12 to s") 2024-12-24 Hanna Knutsson * Fix dual/auto approximation when unable to find exact solution to equation * Fix unability to find approximate solutions to some high degree equations (e.g. "x⁴ − 4x³ + 10x² − 12x = −1") 2024-12-12 Hanna Knutsson * Fix terminal columns and rows when piping/redirecting input (call rl_initialize() even if readline() is used) 2024-12-09 Hanna Knutsson * Add factor() function (returns integer or polynomial factors in a vector) * Fix automatic variable detection in select() 2024-12-08 Hanna Knutsson * a(i) and a[i] syntax (the latter with restrictions for a) for element in vector * Set ans variable to solution(s) of equation (as if solve() were used) 2024-12-04 Hanna Knutsson * Fix compilation without readline 2024-11-27 Hanna Knutsson * Fix ans variables with calculate as you type activated 2024-11-25 Hanna Knutsson * Add plot() function example, and support expression in y=f(x) format 2024-11-20 Hanna Knutsson * 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 * 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 * 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 * Fix case conversion of µ to M and similar (compare initial text string when converted back to lower case) 2024-11-06 Hanna Knutsson * Add multilimit() function 2024-11-06 Stefan Gerlach * Fix issues building with MSVC 2024-11-02 Hanna Knutsson * 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 * Add triple() function 2024-10-19 Hanna Knutsson * Fix clear using Ctrl+L when input line is not empty * Improved detection of charsets other than UTF-8 2024-10-18 Hanna Knutsson * Add calculate as you type (disabled by default) to qalc 2024-10-14 Hanna Knutsson * Improve ability to abort matrix functions (e.g. identity() with large argument) 2024-10-07 Hanna Knutsson * Do not show warning for logarithmic ratio unit, with quantity, as function argument 2024-09-29 Hanna Knutsson * Fix inability to abort randpoisson() with very high rate value 2024-09-28 Hanna Knutsson * Fix crash with empty vector in plot function, e.g. plot([]) 2024-09-20 Hanna Knutsson * 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 * Fix segfault with recursive (self-referencing) function 2024-09-17 Hanna Knutsson * 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 * 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 * Add nmi symbol for nautical mile 2024-09-01 Hanna Knutsson * 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 * Support abbreviations for scientific (sci) and engineering (eng) as options for scientific notation (exp) 2024-08-30 Hanna Knutsson * 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 * Fix parsing of 1°2'3" as 1°+2'+3" (and similar) * Update nounit() function description 2024-08-04 Hanna Knutsson * Add Calculator::parseToExpression() * Minor fixes for "to" conversion in Calculator::calculateAndPrint() 2024-07-24 Hanna Knutsson * 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 * Fix saving of percentage interpretation in qalc 2024-07-09 Marko Zajc * Disable load() and export() functions when --disable-insecure compile option is enabled * Fix a potential segfault when freeing DataObject 2024-07-09 Hanna Knutsson * 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 * Fix Calculator::reset() 2024-07-01 Hanna Knutsson * 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 * 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 * Always return false for 1/f(x)=0 (not f(x)=infinity) * Do not solve ln(f(x))=-infinity 2024-06-15 Hanna Knutsson * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * Fix qalc not exiting after factorization in non-interactive mode 2024-05-06 Hanna Knutsson * Fix a^(f(x))=a^(b*g(x)) where b=2 or b=3 2024-05-01 Hanna Knutsson * 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 * 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 * Fix -Wdocumentation warnings 2024-04-21 Hanna Knutsson * 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 * 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 * 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 * Add Sun to planets data set * Add solar radius, mass, and luminosity as units 2024-04-11 Hanna Knutsson * Add support for column vector in if() function 2024-04-07 Hanna Knutsson * 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 * 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 * Add multiples() function (returns multiples of a number within specified range) 2024-04-02 Hanna Knutsson * Add powertower() function * Add recursive depth limit to avoid running out of stack memory (causing segfault) 2024-03-25 Hanna Knutsson * 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 * Support integer factorization of integers in matrix/vector, and of numerator and denominator in rational number 2024-03-12 Hanna Knutsson * Fix setbits() 2024-03-10 Hanna Knutsson * 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 * 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 * 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 * 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 * Support "where" statements, without "where", before main expression, e.g. "a=2, b=3; a^b" 2024-02-18 Hanna Knutsson * 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 * Detect spelling errors in qalc options (when using set command) 2024-02-14 Hanna Knutsson * 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 * 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 * 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 * 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 * 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 * 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 * Support scientific notation using 10^x instead of e notation for non-html output and in qalc 2024-01-26 Hanna Knutsson * 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 * Detect potential spelling errors in suspicious expressions 2024-01-21 Hanna Knutsson * 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 * Allow multiple options, separated by semicolon, with a single --set (-s) command line argument 2024-01-14 Hanna Knutsson * lambertw(x*e^x, 0)=x if x>=-1 2024-01-11 Hanna Knutsson * 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 * Allow values higher than 1 (true) to specify line width of plot grid 2023-12-28 Hanna Knutsson * 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 * Fix log(1, 1) 2023-12-23 Hanna Knutsson * Improve handling of zero solution and initial guess in newtonsolve() and secantsolve(), and check validity of solution 2023-12-18 Hanna Knutsson * 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 * 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 * 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 * 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 * 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 * Ignore spaces when converting text string to integer 2023-10-31 Hanna Knutsson * 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 * Add history command, listing expression history * Ignore underscore in number 2023-10-29 Hanna Knutsson * 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 * 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 * 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 * Fix output of value converted to unit expression with numerical multiplier in denominator, e.g. L/(100 km) 2023-10-18 Hanna Knutsson * 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 * 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 * Fix Calculator::hasWhereExpression() 2023-09-23 Hanna Knutsson * 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 * Fix display of matrices and vectors with complex number form other than rectangular 2023-09-12 Hanna Knutsson * Fix besselj() and bessely() 2023-09-11 Hanna Knutsson * 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 * Fix for title, ylabel, and xlabel options with whitespace in value, in plot() function 2023-08-19 Hanna Knutsson * Fix and improve to Calculator::findMatchUnit() (fixes matching unit for m/s) 2023-08-13 Hanna Knutsson * Fix segfault with curly brackets in expression * Apply automatic unit conversion after conversion to variable 2023-08-10 Hanna Knutsson * Fix "E" at end of longitude replaced with "e" * Add derived units for kJ, kcal, and kcal/g 2023-08-02 Hanna Knutsson * Concise uncertainty input (disabled by default) 2023-07-30 Hanna Knutsson * Round high precision intervals enclosing integers for integer arguments (excluding order argument of besselj() and bessely()) 2023-07-28 Hanna Knutsson * 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 * 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 * 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 * Add support for specifying position of sign bit in floating point functions 2023-07-23 Hanna Knutsson * Use international foot as base unit for rod, and add U.S. survey rod unit 2023-07-19 Hanna Knutsson * 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 * 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 * 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 * 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 * 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 * Fix incomplete calculation in tan() with try exact approximation 2023-06-15 Hanna Knutsson * 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 * 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 * 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 * 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 * Fix 0/0=0 (do not return true) and output of 2/0 (and similar) 2023-05-15 Hanna Knutsson * 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 * Fix potential memory leak when loading unit data saved with version < 0.6.3 2023-05-05 Hanna Knutsson * 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 * Fix element() function for vector when column number is specified (non-zero) 2023-04-14 Hanna Knutsson * 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 * Fix some memory leaks 2023-04-12 Hanna Knutsson * 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 * 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 * 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 * Fix segfault in handling of vector variable with uncertainty * Fix abortion with low max calculation time in qalc 2023-04-04 Hanna Knutsson * Do not make any difference between row and column vectors in magnitude(), norm(), and dot() functions 2023-04-02 Hanna Knutsson * Fix abbreviation for variable units (varunits) command in information (within qalc and in man page) 2023-04-01 Hanna Knutsson * Fix order of argument titles in csum() function 2023-03-26 Hanna Knutsson * Add modular exponentiation function, powmod(), with support for calculation of modular inverse 2023-03-25 Hanna Knutsson * Fix a^n mod b when n is negative 2023-03-04 Hanna Knutsson * Fix segfault in multisolve() and improve removal of equal solutions 2023-03-03 Hanna Knutsson * Support elements with units in rref() and rk() 2023-02-27 Hanna Knutsson * Always show value of local variables using current output options, in qalc 2023-02-23 Jules Bertholet * Add "thou" name to mil unit and make it default and reference * Add plurals to old French units 2023-02-21 Hanna Knutsson * Improve detection of default language on Windows 2023-02-18 Hanna Knutsson * 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 * 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 * 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 * 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 * 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 * 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 * Add "amp" abbreviation to ampere unit 2023-01-26 Hanna Knutsson * 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 * 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 * 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 * Fix reactivation of global object after deletion of conflicting object 2023-01-07 Hanna Knutsson * Use "help [OPTION]" to display description for a single set option, in qalc 2023-01-04 Hanna Knutsson * EUR has replaced HRK as currency of Croatia 2022-12-30 Hanna Knutsson * 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 * Fix unit tests (ordering in output changed) 2022-12-22 Hanna Knutsson * 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 * 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 * Fix randuniform() * Fix dual approximation with random number functions 2022-12-14 Hanna Knutsson * 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 * Use standard form (sorting) for polynomials 2022-12-07 Hanna Knutsson * Allow non-numerical arguments in atan2() 2022-12-02 Hanna Knutsson * 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 * Add new SI prefixes (R, r, Q, q) 2022-11-14 Hanna Knutsson * Fix automatic/dual fraction format after conversion (e.g. "8 to score") 2022-10-31 Hanna Knutsson * 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 * Add units ounce force (ozf) and rack unit (U) 2022-10-24 Hanna Knutsson * 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 * 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 * 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 * Fix slow conversion to optimal or base units of uncertainty with units inside value and/or error 2022-10-14 Hanna Knutsson * 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 * 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 * 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 * Replace new line with white space when saving history in qalc 2022-10-10 Hanna Knutsson * 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 * 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 * 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 * 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 * Fix segfault in Calculator destructor (data sets, which are a type of function, were deleted twice) 2022-09-22 Hanna Knutsson * 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 * 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 * 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 * 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 * 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 * 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 * Avoid ambiguous implicit multiplication warning in more cases involving units 2022-08-22 Hanna Knutsson * 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 * Recursively create qalc configuration directory 2022-08-13 Hanna Knutsson * 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 * Replace ounce with fluid ounce during conversion from or to volume unit 2022-08-06 Hanna Knutsson * 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 * 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 * 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 * Solve a^x+b^x+...=c (exact or approximate, for real x) in more cases 2022-07-21 Hanna Knutsson * 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 * 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 * 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 * 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 * Functions for fixed point (Q format) conversion 2022-06-25 Hanna Knutsson * Improve remainder/modulus for numerators with large exponents 2022-06-23 Hanna Knutsson * Free all memory when Calculator object is deleted, and avoid memory leak in DynamicVariable 2022-06-22 Hanna Knutsson * Fix segfault with (a+b)^-1 in unit expression, after "to" 2022-06-18 Hanna Knutsson * "clear history" command and option to clear (not save) history on exit 2022-06-13 Hanna Knutsson * 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 * Fix addition of unit to expression without unit (when trying to convert to a unit) in exact mode 2022-05-18 Hanna Knutsson * Fix limit of floor(), ceil(), and trunc() 2022-05-11 Hanna Knutsson * Show single digit suffixes using Unicode subscript, in qalc * Make names with a single character followed by digits case-sensitive with suffix by default 2022-04-28 Hanna Knutsson * Polar plot style 2022-04-27 Hanna Knutsson * plot() arguments for specification of plot options (in any order after the third argument) 2022-04-26 Hanna Knutsson * Binary-coded decimals (BCD) - input and output bases, and bcd() function 2022-04-24 Hanna Knutsson * Use capitalized names with underscores removed in output (e.g. "FineStructure" instead of "fine_structure") * ExpressionName::formattedName() for handling of underscores (capitalization, html suffixes, removal) * Alternative CompositeUnit::print() with formatting options * Include names with underscores removed when searching for active objects or checking for conflicts * Deactivate support for names without underscores for completion only names * Fix activation of objects after object that caused deactivation is deleted * Respect require_translation property * Mark l_N, oz_t, lb_t, and rad_radioactivity as using prefix 2022-04-20 Jules Bertholet * Add additional information units (nat, trit, OctalDigit, hartley, nonet, declet, TiB, TB, EB, PB, petabit), and additional names to existing information units (shannon, o, etc.) 2022-04-20 Hanna Knutsson * Set normalized sinc() variant by changing default value of second (non-existing) argument to "pi", or using "set sinc 1" in qalc * Ask the user for the desired sinc() variant (unnormalized or normalized) * Show warning when log() is used with a single argument, and always show second argument of log() 2022-04-19 Jules Bertholet * Add traditional numbers (locale specific): dozen, BakersDozen, score, LongHundred, gross, LongThousand, GreatGross 2022-04-18 Hanna Knutsson * Option to plot real and imaginary parts separately (determined by allow_complex in plot() function and on by default in other cases) * Look for points where plot changes direction (derivative is zero) and include in data * Avoid extremely slow calculation of gamma for negative intervals * Do not return interval in newtonsolve() and secantsolve() if interval arithmetic is deactivated * Remove Cyrillic c name from KGS 2022-04-14 Hanna Knutsson * Improve plot precision for real values before and after non-real values * Variable spacing of x values in plot * Fix plotting of derivatives and integrals 2022-04-13 Hanna Knutsson * Update and add (m^3/s, cumecs, L/s, acre*ft/day, Sverdrup) flow units (volumetric flow rate) * Do not ignore deactivated allow complex for fractional exponents with negative bases 2022-04-12 ioio85 * Add cfm, gpm and gph units 2022-04-10 Hanna Knutsson * Accept more than two arguments in gcd() and lcm() * Interpret a single vector argument as a list of arguments if function requires more than one argument 2022-04-09 Hanna Knutsson * Fix randpoisson() 2022-04-02 Hanna Knutsson * Improve optimal unit selection for unit expression with corresponding composite SI unit (e.g. W/m^2) * Add special case for conversion of units of gravitational constant to optimal unit (do not convert to Gy) * Fix segfault when converting expression without unit in some cases (e.g. "5 to V/1") * Make MathStructure comparison with integer more efficient 2022-03-27 Hanna Knutsson * Do not display error at all when BYN fails to update during complete exchange rates update, and mark BYN as hidden (moves it secondary menus) * Save temporary functions and units in Calculator::saveTemporaryDefinitions() 2022-03-24 Hanna Knutsson * Fix output of (1+f(x))/n * mHg unit (allows use with prefixes other than milli) * Always display abbreviated unit name (symbol) with abbreviated prefix (when unit only has short name) 2022-03-23 Hanna Knutsson * Save definitions on exit (only) if definitions has changed regardless of interactive mode status * Set variables and functions created using save() as modified 2022-03-22 Hanna Knutsson * Restrict use of reciprocal in unit conversion, e.g. invert in "5m/s to s/m" (= 0.2 s/m) but not in "500/lb to g" (= 1.1/g) 2022-03-21 Hanna Knutsson * Do not interpret dot as dot operator if preceded and followed by dots 2022-03-05 Hanna Knutsson * Show successfully updated exchange rates sources in error message when full update has partially failed * Show title of currency in update exchange rates error message for single currency sources 2022-03-04 Hanna Knutsson * Replace *, /, and - with the corresponding operator symbol (determined by message print options) in misplaced operator error messages * Fix error message for a*/b (and similar) * Do not transform original expression (e.g. multiply by base unit if unit is missing), and set correct parsed expression conversion argument, during conversion to unit expression provided in to_struct argument to Calculator::calculate() (primarily relevant for conversion view in qalculate-gtk) 2022-03-01 Hanna Knutsson * Fix segfault (when compiled with -D_GLIBCXX_ASSERTIONS) with local digit grouping when separator is empty (e.g. with ignore locale) 2022-02-28 Hanna Knutsson * Use narrow non-break space instead of thin space as digit separator for reasonably short numbers and between quantity and unit (if thin space is digit grouping separator) * Improve handling suggestsQuotes() argument property * Do not use class="symbol" when quotation marks are used (fixes history layout errors in qalculate-gtk) * Do not remove thin space in print_dual (as it's used in qalculate-qt) * Add safeguards against extremely large vectors causing freezes and crashes 2022-02-21 Hanna Knutsson * Update austronomical unit value 2022-02-19 Hanna Knutsson * Fix segfault (when compiled with -D_GLIBCXX_ASSERTIONS) in matrix multiplication when one of the matrices has exacly one row 2022-02-17 Hanna Knutsson * Fix readprec (duplicate percent) in mode list, in qalc 2022-02-14 Hanna Knutsson * Move "approx." to same place as Unicode almost equal symbol with dual result * Automatically remove superfluous default values from function expressions * Return x = -infinity for a^x = 0 2022-02-11 Hanna Knutsson * Move "approx." to same place as Unicode almost equal symbol with dual result * Add financial rate() function 2022-02-10 Hanna Knutsson * Fix segfault with empty sqrt inside sqrt, e.g. sqrt(1+sqrt()) 2022-02-07 Hanna Knutsson * Fix incompletely calculated nounit(), e.g. in unit conversion * Handle Unicode minus in conversion (disables mixed units) * Fix saving of try exact single approximation mode in qalc * Return x = -infinity for a^x = 0 2022-02-03 Hanna Knutsson * Return the lowest value if there are multiple values with equal frequency in mode() * Calculate statistical functions (e.g. mode(), min(), max(), percentile()) separately for each column of matrix (adds special handling for handle vector property in vector arguments) * Fix duplicated right equality value in output in some cases 2022-01-29 Hanna Knutsson * Add option to disable "simplified" percentage calculations (e.g. intepret 100 + 20% as 100 + 0.2 instead of 100 * 120%) 2022-01-24 Hanna Knutsson * Calculator::saveTemporaryDefinitions() for use in qalculate-qt when saving workspace 2022-01-21 Jakub Jirutka * Do not rewrite -Os to -O2 2022-01-19 Hanna Knutsson * Parse text argument as expression if concatenate function name is found in text string * Fix concatenate returning date * New layout for output of result of equations, in qalc 2022-01-15 Hanna Knutsson * Support input of functions, units, and variables with underscores omitted in names (e.g. µ0 = µ_0), with some exceptions (e.g. if underscore is followed by a single character that is not a digit or a Unicode symbol) 2022-01-13 Hanna Knutsson * Convert K, Hz, and m^-1 to J, and derived units, using conversion factor constants (e.g. 1/(550nm) to eV = 1/(550nm) * m_to_J ≈ 2.25 eV) * Move conversion of expression without unit (e.g. 5 to ft = 5 m to ft) from user interfaces to libqalculate * Allow use of M as 10^6 without unit 2022-01-12 Hanna Knutsson * Add hbar name (for completion) to reduced Planck constant 2022-01-12 Stephan Troyer * Add second Unicode codepoint for µ-sign in variable names 2022-01-05 Hanna Knutsson * Do not assume that char is signed * Fix bitrot() 2022-01-02 Hanna Knutsson * Allow zero (1st and/or 2nd argument) in comb() and perm(), and return zero if second argument (k) is greater than the first (n) 2021-12-27 ioio85 * Add ksi unit 2021-12-27 Hanna Knutsson * Fix Unicode superscript followed by ^ or +/- (e.g. 5²±1) * Interpret sin⁻¹ (with Unicode superscripts) as arcsin, and similar 2021-12-26 Hanna Knutsson * Fix segfault in multisolve() when initial order of equations is not optimal 2021-12-21 Hanna Knutsson * Add divisors() function * Improve select() function 2021-12-17 Hanna Knutsson * Nicer formatted terminal output for matrices (in qalc) * Replace round halfway to even and truncate options, in qalc, with rounding option 2021-12-13 Hanna Knutsson * Option to truncate (instead of round to nearest) numbers in result 2021-12-12 Hanna Knutsson * Add plastic number (ρ) constant 2021-12-10 Hanna Knutsson * Transform vector to matrix with single row and scalar to matrix with a single row and column when a matrix is expected * Transform matrix with single row to vector, and matrix/vector with single element to scalar * Use time limit, instead of wait for keypress with time limit (which does not work), for slow calculations in qalc on Windows 2021-12-08 Hanna Knutsson * Matlab syntax for matrices and vector (within square brackets, space and comma separates columns, semicolon separates rows) 2021-12-03 Hanna Knutsson * Do not try to use iconv if not found 2021-12-02 Hanna Knutsson * Fix MathStructure::containsType(STRUCT_UNIT, false, ?, true) for value containing data set function 2021-11-30 Hanna Knutsson * Do not stop testing functions argument values after first failure * Handle units in plot data; 2021-11-26 Hanna Knutsson * Add name "inv" to matrix inverse function (remove reciprocal function) and add support for scalars 2021-11-25 Hanna Knutsson * Fix transformation of a*sin(x)+b*cos(x) to a*sqrt((b/a)^2+1)*sin(x+atan(b/a)) (primarily fixes some equations) * Add representsNonMatrix() and representsScalar() to many builtin functions (do not rely on representsNumber() which might return false for unknown variables - this fixes limit() unpredictability in some cases) * Make sorting more predictive 2021-11-24 Hanna Knutsson * Apply same logic with separate to command, as with "to" at end of expression, when result contains no unit 2021-11-20 Hanna Knutsson * Fix title of arguments > minimum argument when max arguments = -1, for builtin functions with arguments not defined in code 2021-11-18 Hanna Knutsson * Interpret || as paralell to operator for all units, add support for Unicode paralell to symbol, and move || as paralell to parsing stage 2021-11-17 Hanna Knutsson * Add clear command, with Ctrl+L shortcut 2021-11-14 Hanna Knutsson * Add Calculator::calculateAndPrint() variant with formatting arguments * Remove "(default)" from adaptive mode in qalc * Localize condition expression in argument description 2021-11-12 Hanna Knutsson * Add micrometer and nanometer 2021-11-08 Hanna Knutsson * Support "--" as end of options in qalc command line 2021-11-05 Hanna Knutsson * Fix pearson() and spearman() 2021-11-01 Hanna Knutsson * Avoid precision loss on output of interval when precerve_precision is true (e.g. when saving approximate variable) 2021-10-23 Hanna Knutsson * Fix display of uncompletely solved equation (equality where value on the left is not a variable) with dual approximation * Solve x^(x^(-a))=b * Im(-x)=-Im(x), Re(-x)=-Re(x) 2021-10-22 Hanna Knutsson * Add functions for quadratic and cubic regression (quadraticfit() and cubicfit()) * Allow nested subfunctions (use of subfunction in another subfunction) 2021-10-20 Hanna Knutsson * Configurable SIGINT (Ctrl+C) action (in interactive mode) - by default qalc will now exit, orderly, if inactive 2021-10-19 Hanna Knutsson * Add function for RAM latency calculation * Add function for simple linear regression * Fix genvector() when step size requires evaluation 2021-10-18 Hanna Knutsson * Fix "to unicode" in qalc * Fix a%%-b (interpret %% as mod not percent) * Add (Equilateral) at end of square pyramide function titles * Add --defaults command line option to qalc * Look global definitions in data and ../data first (if running from build directory) * Change title of function category from "Regression" to "Correlation" 2021-10-18 Dani Biró * Unit tests 2021-10-17 Hanna Knutsson * Add vertical space option ("vspace") in qalc 2021-10-10 Hanna Knutsson * Fix parsing of percentage before space (e.g. "10 - x% = 8") * Interpret | before most operators as absolute value instead of bitwise or 2021-10-08 Hanna Knutsson * Show input/output number base in parentheses after expression, in qalc, if the base is not decimal or indicated by the number formatting, and the base was not changed by the most recent command 2021-10-03 Hanna Knutsson * Support plot functions, in plot(), that results in a vector first when evaluated (e.g. plot(entrywise(x^y, [1, 2, 3, 4], y), -5, 5)) * Use frequency as step size, in plot(), if the argument value is not an integer > 1 2021-09-27 Hanna Knutsson * Function for drill bit size conversion 2021-09-30 Hanna Knutsson * Fix errournous simplifications in some cases when incompletely evaluated numerator and denominator are passed to merge_multiplication() * Avoid unnecessary calculations in if() function, when first argument is vector * Output 1/2+x/2 as (1+x)/2 and similar 2021-09-23 Hanna Knutsson * Exact values for Im((a*i)^(n/2) * Improved simplification of radical expressions * 1/(sqrt(a)+1)=(sqrt(a)-1)/(a-1), 1/(sqrt(a)-1)=(sqrt(a)+1)/(a-1) * Additional exact values in tan() 2021-09-21 Hanna Knutsson * Improved exact return values for im(), re(), and arg() * Additional exact return values in atan() * Improved output for complex forms (primarily in exact mode) 2021-09-19 Hanna Knutsson * Improve division for non-rational polynomials 2021-08-28 Hanna Knutsson * Ask the user for correct interpretation (once) when entering expression with ambiguous implicit multiplication * Use LOCALE_CUSTOM_UI_DEFAULT on Windows 2021-08-05 Hanna Knutsson * Fix "l" as symbol for liter in Swedish translations, and other potential undiscovered issues with reference name not properly case-sensitive 2021-07-29 Hanna Knutsson * Save answer to dot and temperature questions in non-interactive mode and do not show the questions in non-interactive terse mode * Fix saving of sub functions with default values 2021-07-18 Hanna Knutsson * Stop parsing function after minimum number of arguments under the same conditions as after maximum number of arguments, when there are no more argument and parentheses are not used (e.g. log 64 / log 2 = log(64)/log(2)) * Stop parsing function that only takes one argument at argument separator, if parentheses are not used 2021-07-15 Hanna Knutsson * Change "assumptions" abbreviation to "asm" * Set both type and sign if assumptions are set to "none" or zero, and set type to number for "complex" * Convert Celsius to Fahrenheit if no calculation was performed 2021-07-14 Hanna Knutsson * Fix handling of OR and AND in multisolve() 2021-07-07 Hanna Knutsson * Fix segfault after failure to convert approximate unit (e.g. cal_fifteen) 2021-07-04 Hanna Knutsson * Add support for "a perm b" (= perm(a,b)), "a comb b" (= comb(a,b)), "a dot b" (= "a.b"), "a cross b" (= cross(a,b)), and Unicode cross product symbol * Add Calculator::getGlobalFunction(), Calculator::getGlobalUnit(), and Calculator::getGlobalVariable(), for more efficient retrieval of objects 2021-07-03 Hanna Knutsson * Avoid use of right-to-left Unicode symbols (do not present the currency symbols for IRR and AFN to the user) * Do not try to load data objects from global definitions dir if data set is local 2021-07-02 Hanna Knutsson * Fix norm() and magnitude() * Add a second argument, p, to norm() * Output abs(x) as |x| 2021-06-30 Hanna Knutsson * Add support for "^^" as XOR operator * always check for "user" directory (regardless of compile time options), on Windows * Output both original and factorized integer, in qalc * Improved HTML output 2021-06-25 Hanna Knutsson * Add support for function creation in save() (e.g. func1():=\x*\y^2, or func1(\a,\b):=\a*\b^2) * QALCULATE_USER_DIR environment variable 2021-06-21 Hanna Knutsson * Always return exact result in base() function, in exact mode 2021-05-30 Hanna Knutsson * Interpret "(10-134)±" as "(10-134)±0" instead of "(10-134)*0" (and similar) * Add operators (".'", ".*", "./", ".^") and functions (replace multiply(), divide(), and pow()) for transpose, element-wise multiplication, division, and power * Modify behaviour of addition with column vector, and addition of row vector to matrix 2021-05-23 Alex Henrie * Catalan translation 2021-05-23 Hanna Knutsson * Vector dot product operator (".") 2021-05-19 leveltrauma * German translation 2021-05-19 Noah <33094578+coolreader18@users.noreply.github.com> * Add "BYO Gnuplot" functionality 2021-05-19 Hanna Knutsson * Integration of x^a*b^(cx^d) (when a is not an integer) 2021-05-18 Hanna Knutsson * Localize data property values 2021-05-11 Hanna Knutsson * Exact calculation of igamma() in some cases 2021-05-05 Hanna Knutsson * Make prefix names more flexible (as other objects), primarily for translations 2021-05-04 Hanna Knutsson * Fix handling of translated definitions with more than one row (primarily translated function descriptions) 2021-04-26 Hanna Knutsson * Add dot() function for vector dot product and disable dot product using multiplication operator or implicit multiplication 2021-04-25 Damir Islamov * Russian translation 2021-04-25 Hanna Knutsson * secantsolve() function for solving equations using secant method * normdistinv() function 2021-04-20 Hanna Knutsson * Inverse of chi-square cumulative distribution * Improve simplification of logical expressions (boolean algebra) * Add boolean assumptions type for unknown variables * Add nand and nor operators * Add spelled out version of logical not operator ("not") * Interpret bitwise operators as logical in some cases 2021-04-19 Hanna Knutsson * newtonsolve() function for solving equations using Newton's method 2021-04-17 Hanna Knutsson * Improve betainc() function and return regularized version * Add inverse incomplete beta function (betaincinv()) * Add inverse functions for F-distribution and Student's t-distribution * Fix cumulative t-distribution for X < 0 * Fix include_equals parameter for max and min of function arguments 2021-04-08 Hanna Knutsson * Add plural forms to translated messages * Set ENABLE_NLS outside of gettext macros 2021-04-04 Hanna Knutsson * Add support for number suffix k (e.g. 2k = 2000) 2021-03-27 Hanna Knutsson * Add support for d(f(x))/dx syntax (equivalent to diff(f(x),x)) 2021-03-25 Hanna Knutsson * Add sexagesimal variants (sexa2, sexa3, longitude, longitude2, latitude, latitude2) 2021-03-24 Hanna Knutsson * Add function for distance between GPS coordinates (geodistance) * Loosen rules for parsing " and ' as arcminutes and arcseconds * Do not append degrees at end of sexagesimal output 2021-03-22 Hanna Knutsson * Add support for solving equalities and inequalities with error functions (erf(), erfc(), erfi(), erfinv()) * Add cauchydist() function 2021-03-21 Hanna Knutsson * Replace tonne with small prefix, with (kilo)gram (e.g. 5 kg instead of 5 mt) 2021-03-16 Hanna Knutsson * Add erfinv() and probit() functions 2021-03-15 Hanna Knutsson * Add functions for exponential and Weibull inverse cumulative distributions (expinv() and wblinv()) * Add cumulative parameter to all statistical distribution functions 2021-03-12 Hanna Knutsson * Add incomplete beta function (betainc()) * betadist(), fdist(), and tdist() functions 2021-03-08 Hanna Knutsson * Add chisqdist(), weibulldist, and gammadist() functions * Fix gammainc() function 2021-03-01 Hanna Knutsson * Add command() function (runs external command) * Improve handling of expressions with log-based units * Fix conversion to multiple units, of which one is a temperature unit, with relative temperature units activated (e.g. g/oC to g/oF) * Improve conversion of expression with multiple units to a single unit (e.g. m/W to W) * Fix compilation with readline version < 7 2021-02-08 Hanna Knutsson * Save handle_vector property 2021-01-28 Hanna Knutsson * Allow prefixes, with full name, without units (e.g. kilo = 10^3) 2021-01-14 Hanna Knutsson * Temperature calculation modes (absolute, relative, hybrid) 2021-01-08 Hanna Knutsson * Fix saving of local data objects (user data was deleted) 2021-01-06 Hanna Knutsson * Add daysInMonth() function 2021-01-05 Hanna Knutsson * Always place units with prefixes before other units * Improve prefixes when expression contains both units that do and units that do not use prefixes * Fix kWh composite unit 2021-01-04 Hanna Knutsson * Modify behaviour of percent addition when first term is percentage (e.g. 10%+50%=60% instead of 10%+50%=15%) 2020-12-25 Hanna Knutsson * Change keybinding for store command to Ctrl+A * Apply standard terminal action for keybindings (Ctrl+A, Ctrl+E, Ctrl+F) if current input is not empty * Ask for name if store command is used without argument 2020-12-22 Hanna Knutsson * Fix saving of local data objects * Add Unicode symbols (not used by default) for Ångström, Kelvin, liter, and pound 2020-12-19 Hanna Knutsson * Fix set conv mixed in qalc * Use x, y, z as function arguments if '\' is not found in function expression of qalc function command 2020-12-12 Juan Carlos Alonso * Fix BYN exchange rate url 2020-12-12 Hanna Knutsson * Fix saving to an existing variable (using save() or ":=") of a value containing the very same variable 2020-12-11 Hanna Knutsson * Chain calculation parsing mode * RPN syntax as parsing mode 2020-12-06 Hanna Knutsson * Fix uninitialized PrintOptions::base_display and set default value to BASE_DISPLAY_NONE (fixes issues in floating point format output) * Fix output of negative numbers with floating point format 2020-11-26 Hanna Knutsson * Make all currency codes, except CUP and KGS, case insensitive * Make cup unit (avoid conflict with Cuban pesos) and gcd() function (avoid conflict with gigacandela) case sensitive 2020-11-21 Hanna Knutsson * Fix precision in output of expression after RPN operation in qalc 2020-11-19 Hanna Knutsson * Do not output Unicode cube root symbol (often has low legibility) * Show cbrt(a) instead of a^(1/3) in result (when PrintOptions::halfexp_to_sqrt is true) 2020-11-18 Hanna Knutsson * Fix never ending loop with log-based unit in trigonometric function * Use false/true instead of 0/1 for result of equality or inequality 2020-11-17 Hanna Knutsson * Fix segfault in isolate x with exponentiation factor without x in base 2020-11-16 Hanna Knutsson * Add automatic and dual approximation and fraction options to Calculator::calculateAndPrint() 2020-11-08 Hanna Knutsson * Fix segfault in Calculator::convertTimeOut(), and potentially Calculator::calculateRPN() (fixes conversion in the unit manager in qalculate-gtk) 2020-11-07 Hanna Knutsson * Do not ask before overwriting temporary variables in qalc * Add Ctrl-R shortcut for store command in qalc 2020-11-06 Hanna Knutsson * Add "precalculate expression" argument (default false) to save() (this also changes the behaviour of ":=") * Fix local time zone on Windows * Fix matrix/vector multiplication when the matrix/vector is stored in an approximate variable * Fix parsing of expression with multiple degree signs * Support multiple equivalent custom digits, separated by semicolon (e.g. "0;aA1;bB2;cC3"), in base() function * Phoneword digit set in base() function 2020-11-02 Hanna Knutsson * Automatic (default) and dual approximation in qalc 2020-10-30 Hanna Knutsson * Always place unit with prefix first 2020-10-29 Hanna Knutsson * Use Unicode symbols for >=, <=, and != in function argument description and function condition (in qalc and defs2doc) 2020-10-28 Hanna Knutsson * Automatic (default) and dual fractions options, in qalc, which shows simple, mixed, and/or decimal fractions depending on format and contents of expression and result 2020-10-25 Hanna Knutsson * Fix quoted degree symbol in function argument (e.g. code("°")) 2020-10-23 Hanna Knutsson * Support for different character encodings in code() function * Fix Unicode number base (multiply with 2^32 for each position) * Fix default separator in load() and export() * Always perform conversion to optimal (SI) unit when the expression is a number multiplied by a unit and input equals output 2020-10-22 Hanna Knutsson * Add matrix rank (rk) and reduced row echelon form (rref) functions * Add support for d/dx notation for derivatives, e.g. d/dx sin(x) = diff(sin(x)) 2020-10-20 Hanna Knutsson * Replace variables with corresponding units (e.g. c with c_unit) in unit expressions 2020-10-18 Hanna Knutsson * Fix date/time output includes (wrong) decimals (zeroes) in some cases (e.g. with nextlunarphase()) * Improve handling of ignore comma/dot option outside of calculated expression in qalc * Set arguments for comb() and perm() as positive integers 2020-10-16 Hanna Knutsson * Support for Unicode quotation marks * Improved Unicode fraction handling 2020-10-15 Hanna Knutsson * Fix parsing of "°²" and similar * Do not use degree symbol when degree unit is base in exponentiation 2020-10-09 Hanna Knutsson * Activate formatting and coloring on Windows 10 (set ENABLE_VIRTUAL_TERMINAL_PROCESSING) * Fix press enter to continue and to abort on Windows 2020-10-02 Hanna Knutsson * Define rad as a base unit for now (fixes issues with lumen) and add special case for conversion of rad and related units to length ratios (e.g. m/m) * Fix rates.json not installed 2020-09-30 Hanna Knutsson * Compiled definitions without GIO * Add MC, MS, M+, M- commands and MR/MRC variable in qalc 2020-09-25 Hanna Knutsson * Improve plot (and genvector()) speed for user functions * Fix show information for multiple matching objects in qalc * Add yr and annus names for year unit, röntgen name for roentgen (R) unit, and rem for roentgen equivalent man * Add Rutherford (Rd), millirem (mrem), mrem/s, and erg/g units * Show radioactivity in rem_radioactivity as suffix (subscript) 2020-09-18 Hanna Knutsson * Allow scientific e-notation without preceding digit, e.g. E2=1E2, with warning message 2020-09-17 Hanna Knutsson * Do not save x, y, and z as user variables if global variables are not loaded 2020-09-14 Hanna Knutsson * Show information for all matching objects (if there are multiple objects with the same name) with info command * Show information about prefixes with the info command and list prefixes with find command, "list prefixes", and --list-prefixes * Use thin space on Windows 10 * Remove ending white-space from from expression when separating "to"-expression; 2020-09-11 Hanna Knutsson * Fix cot(pi/2), coth(pi/2*i), arccot(0), arcsch(0), and arcoth(0), and simplify inverse sec, csc, and cot * Show currencies in parsed expression using ISO 4217 code (e.g. USD instead dollar) * Do not use "$", "dollar", and "dollars" for USD and remove cent, if symbol for local currency is "$" * Do not use "£" as symbol for GBP if symbol for local currency is "£" 2020-09-09 Hanna Knutsson * Use thin space on Windows 10 * Use B as abbreviation for byte instead of bel * Show information for all matching objects (if there are multiple objects with the same name) with info command * Show information about prefixes with the info command * List prefixes with find command, "list prefixes", and --list-prefixes 2020-09-08 Hanna Knutsson * Use "noenhanced" Gnuplot option (fixes plot titles with exponents with more than one character) 2020-09-05 Hanna Knutsson * Fix conversion from km/L to mpg (and similar) * Do not use variable units in conversion when units are missing from the original value 2020-09-04 Hanna Knutsson * Fix logarithmic y scale in plot 2020-08-31 Hanna Knutsson * Increase default precision in qalc to 10 2020-08-21 Hanna Knutsson * Transform vector to matrix with one column (column vector) for matrix arguments 2020-08-15 Hanna Knutsson * Treat vector as column vector for matrix multiplication (when 1st factor is a matrix and 2nd factor is a vector) 2020-08-11 Hanna Knutsson * Show information about wrong number of arguments for explicit commands (using /) * Fix help text for info command * Fix variable command when illegal name cannot be converted to valid name 2020-08-10 Hanna Knutsson * Add support for ohm unicode symbol and inverted ohm (for siemens) * Add biot (Bi) name for abampere * Add abhenry (abH) unit * Fix display of unit with negative exponent and factor 1 (do not display as division) * Display multiplication of non-abbreviated and abbreviated similarily 2020-08-08 Hanna Knutsson * Fix conversion to ratio * Replace J/T with A*m^2 2020-08-07 Hanna Knutsson * Add binary prefixes zebi and yobi * Hide composite SI units for which a specific name/symbol exist * Do not use prefixes by default with most CGS units * New composite units: cP, cStoke, mTorr, dyn/cm² * Digit grouping after decimal separator (in groups of three, with standard digit grouping) * Use middle dot for multiplication and Unicode symbols for exponents 2 and 3 in composite units when Unicode is used 2020-08-05 Hanna Knutsson * Add kph/kmph (km/h) 2020-08-03 Hanna Knutsson * Fix BYN exchange rate (was inverted) * Fix BYR exchange rate * Fix updating of BYN and BTC exchange rates * Fix update date for exchange rates not from ECB 2020-08-01 Hanna Knutsson * Add arcsin, arccos, arsinh, arcosh, etc. as names for inverse trigonometric and hyperbolic functions * Interpret sin^-1, cos^-1, etc. as inverse functions (arcsin, arccos, etc.) * Fix parsing of negative power in function arguments without parenthesis * Add deftorad() function 2020-07-28 Hanna Knutsson * Add Euler's totient function 2020-07-26 VicSanRoPe * Spanish translation 2020-07-24 Hanna Knutsson * Load custom exchange rates from LOCAL_DATA_DIR/custom_exchange_rates, with one "x ABC = y DEF" (e.g. "1USD=70.86RUB") on each row 2020-07-11 Hanna Knutsson * Extend man page with commands, settings, syntax, and examples sections 2020-07-06 Hanna Knutsson * Support use of right arrow (including "->") as alternative to "to" for conversion (e.g. 5m->ft) 2020-07-05 Hanna Knutsson * Only apply PrintOptions::negative_exponents to units * Always use negative exponents instead of division when all units have negative exponents * Use middle dot instead of multiplication x in unit expressions * Case insensitive sorting of units, variables and functions * Add more references in qalc to the GUI manual 2020-06-30 Hanna Knutsson * Normalize numbers with fractional exponents, e.g. sqrt(a)^-b=sqrt(a)^b/a, a^(-2/3)=a^(1/3)/a, a^(2/3)=a^(-1/3)*a, and simplify roots with rational multipliers after evaluation * Improvements for mixed fractions * Avoid excessive parentheses with negated powers 2020-06-23 Hanna Knutsson * Fix plus-minus sign in misplaced character/operators error messages 2020-06-08 Hanna Knutsson * Fix placement (last) of constant of definite integral * sin(x*pi) and tan(x*pi) equals zero if x represents an integer 2020-06-05 Hanna Knutsson * Fix segfault when parsing an expression that contains a prefix with more than one letter and a unit exponent (2 or 3) without exponentiation operator, e.g. dam3 2020-06-01 Hanna Knutsson * Fix use of equals sign in qalc command line arguments (e.g. "qalc --base=16") 2020-05-30 Hanna Knutsson * Support for +, -, (, ) superscripts * Use × (U+00D7) as default multiplication sign 2020-05-29 Hanna Knutsson * Syntax highlighting using colors in qalc * Remove space around division in unit expression * Enable Unicode by default * Use Unicode superscript for units (when placed separately and negative exponents are disabled) 2020-05-28 Hanna Knutsson * Support N-Ary Summation symbol, in addition to sigma, for sum() function 2020-05-24 Hanna Knutsson * Allow multiple "to"-conversions in one expression (e.g. "5 m/s to hex to ft to h = 0xE6AF.1E*ft∕h) * Support specification of number of bits for hexadecimal "to" conversion (4 to hex16 = 0004) 2020-05-21 Hanna Knutsson * Divide value with time units by hours if time format is used * Fix sexagesimal, and time format, output when 3rd section is rounded to 60 * Show decimals, in 3rd section, with sexagesimal base and time format * Improved handling of intervals for sexagesimal base and time format 2020-05-11 Hanna Knutsson * If argument 2 in replace() is vector and argument 3 is not, evaluate argument 3 and test if vector, e.g. replace(x+y+z,[x,y,z],multisolve([x+y=2,x+z=3,y+z=4],[x,y,z])) 2020-05-10 Hanna Knutsson * Show warning for ambiguous implicit expression (e.g. 6/2(1+2)) in adaptive parsing mode * Fix use of comma as AND in "where" expression 2020-05-06 Hanna Knutsson * Option to compile definitions into binary (--enable-compiled-definitions, requires GIO) 2020-04-30 Hanna Knutsson * Tau (2pi) variable 2020-04-28 Hanna Knutsson * Interpret text after hashtag (#) in expression as comments 2020-04-24 Hanna Knutsson * Accept angle (value with angle unit or value > 1 and < 360) in nextlunarphase() 2020-04-22 Hanna Knutsson * Fix removal of default angle unit from trigonometric functions in output when factor is one 2020-04-19 Hanna Knutsson * Fix automatic conversion to Newton * Fix display of fraction in exact decimal fraction mode when indicate repeating decimals is active (in GUI) * Fix display of repeating decimals (do not add additional whitespace when Unicode is off) * Fix x^2=25m^2 where x>0 (was evaluated as false), and similar in exact mode 2020-04-18 Hanna Knutsson * Fix segfault with empty sin() or sinh() in equation 2020-04-14 Hanna Knutsson * Fix segfault when running qalc in non-interactive mode and gnuplot is missing (issue #184) 2020-04-13 Hanna Knutsson * Fix nextlunarphase(), for values > 0.8 and < 0.2 (issue #183) 2020-03-27 Hanna Knutsson * Fix segfault during calculation of atan(acos(x)), atan(asin(x)), and asin(atan(x)) when angle unit is deg or gra 2020-03-26 Hanna Knutsson * Fix order of prime factors 2020-03-03 Hanna Knutsson * Add persistent parameter, with default true value if qalc is started in non-interactive mode (avoids immediate closing of plot window), to plot() function 2020-02-28 Hanna Knutsson * Fix max decimals option for intervals displayed with significant digits (was used as both max and min) 2020-02-22 Hanna Knutsson * Add "Number of decimals" and "Round halfway to even" (default away from zero) arguments to round() function 2020-02-15 Hanna Knutsson * Restore A and B (case insensitive) digits in input of duodecimal number * Use 0d as prefix for input of duodecimal numbers * Always interpret expression as duodecimal if it contains duodecimal Unicode characters 2020-02-13 Hanna Knutsson * IEEE 754 floating point (binary) conversion - functions float(), floatBits(), floatError(), floatParts(), and floatValue(), and "to" conversion using binary16/fp16, binary32/fp32/float, binary64/fp64/double, fp80, and binary128/fp128 * Support specification of number of bits for binary "to" conversion (4 to bin16 = 0000 0000 0000 0100) * Fix rounding with max decimals in some cases 2020-02-11 Hanna Knutsson * Fix segfault in solve() with AND and OR in solution 2020-02-01 Hanna Knutsson * Modify behavior of floor(), ceil(), trunc and round() - mark result as exact, allow approximate calculation of argument in exact mode, return interval when appropriate (e.g. floor(interval(1.5,2.5))=interval(1, 2)) * Increase input buffer length (maximum length of line) in qalc 2020-01-31 Hanna Knutsson * Write interval using significant digits in CSV file 2020-01-27 Hanna Knutsson * Fix 1kOhm||1kOhm (and similar) 2020-01-24 Hanna Knutsson * Do not include pregenerated reference documentation in source package and move documentation generation from autogen.sh to Makefile 2020-01-16 Hanna Knutsson * Fix sign of real part when multiplying complex number by infinity 2020-01-15 Hanna Knutsson * Fix segfault when simplifying sin((infinity-i)+(-infinity+i)) and similar 2020-01-11 Hanna Knutsson * Rename IdentityFunction class to avoid crash in Cantor because of conflict with Poppler library class with same name 2020-01-07 Hanna Knutsson * Fix integral of asin(x)^-2 * Fix integral of a^(b+cx)/x (where a<0) * Fix integrate(1/(a+b*i*x^(1/3)),c,0) 2020-01-06 Hanna Knutsson * Retrieve exchange rate for BYN (Belarusian ruble) from nbrb.by 2020-01-04 Hanna Knutsson * Fix segfault when solving sqrt(x)!=-1 and similar 2019-12-30 Hanna Knutsson * (-x)^a*x^b=-(-x)^(a+b) if b is odd * tan((2n+1)*pi/2) might be either plus or minus infinity for each n (let function fail) 2019-12-27 Hanna Knutsson * Add base units (or local currency) to expression when "to"-expression specifies unit conversion and original expression does not include any units 2019-12-20 Hanna Knutsson * Fix display of factorized 5/7234234234*x+5/9234234*y and similar (a(bx+y) where a and/or b are rational number displayed approximately) * Fix cosh(x)^2+sinh(x)^2 2019-12-14 Hanna Knutsson * bernoulli() function (number or polynomial) * Support second argument in zeta() for Hurwitz zeta * Exact values in zeta() for negative integers and even integers 2019-12-11 Hanna Knutsson * Improved interval handling in besselj() and bessely(), and in gamma(), zeta(), and airy() when argument is negative 2019-12-10 Hanna Knutsson * Fix never ending loop in isolate x with interval() containing interval * Improvements for x^(ax)=b * Simplify output of sin(x)=a and cos(x)=a, when a=0 or a=1 2019-12-08 Hanna Knutsson * Fixes and improvements for lambertw(x)=a * Support complex arguments with non-zero imaginary and real parts in Si(), Ci(), Shi(), and Chi() 2019-12-04 Hanna Knutsson * Split up big source files 2019-12-03 Hanna Knutsson * Support complex numbers in Ei() (and li()) * Extend supported arguments for Li() * zeta() for all reals 2019-12-02 Hanna Knutsson * Support complex numbers in erf(), erfi(), and erfc() * Integrals of fresnelc() and fresnels() * Integrals of 1/sin(ax)^n and 1/cos(ax)^n where n>2 * Improved handling of angle arguments 2019-11-30 Hanna Knutsson * Imaginary error function * Fresnel integrals S and C * Add id property to ExpressionItem to remove the need to add a variable for each new math function to Calculator class 2019-11-29 Hanna Knutsson * Support for calculation of Lambert W for all branches and complex numbers 2019-11-27 Hanna Knutsson * Integral of a^(b*x)*c^(-d*x^2) * Improve handling of definite integrals with abs() * Fix definite integral for ln(abs(ax^b+c)) where and ax^b+b=0 and a*x^b is not an integer for lower or upper limit of x (0*infinity in result) 2019-11-24 Hanna Knutsson * Innumerous integration enhancements and fixes * Fix begin temporary enable interval arithmetic without end (fixes some equations after exact mode has been disabled) * Improve solution tests * Use local instead of global buffer for i2s() and similar * Include uncertainty() function when replacing function arguments and where replacements with variables 2019-11-23 Hanna Knutsson * Fix infinity^x=a (x != log(a, infinity)) * Fix interval replacement with variable in exact mode 2019-11-22 Hanna Knutsson * Fix incorrect solutions to equations not removed 2019-11-17 Hanna Knutsson * Circular mil units (cmil and kcmil/MCM) * American wire gauge (awg) functions (area and diameter) 2019-11-16 Hanna Knutsson * Remove "using namespace std" from header files 2019-11-13 Hanna Knutsson * Fix ending zeroes and min decimals for approximate rational numbers * Improved output of significant figures for number intervals in some cases 2019-11-11 Hanna Knutsson * Calculate uncertainty propagation, using variance formula, separately for imaginary and real numbers * Numerous improvements/fixes for integrals 2019-11-08 Hanna Knutsson * Do not automatically recalculate expressions with answer variables when calculation/parsing mode has changed (CLI) 2019-11-06 Hanna Knutsson * sinh(i*x)=i*sin(x), cosh(i*x)=cos(x), tanh(i*x)=i*tan(x) 2019-11-05 Hanna Knutsson * Fix segfault when parsing "∠∠" * Restrict the max number of displayed digits to 100000 when scientific notation is completely disabled * Recognize the unicode fraction slash (interpreted as division sign) * Only parse ' and " as foot and inch with number bases <= 16 * Check if complex tanh is continuous for definite integral 2019-11-04 Hanna Knutsson * Automatic detection of unknown variable (if corresponding argument is set to undefined or zero) in functions * romberg() and montecarlo() functions for numerical integration * root(x, a)*abs(x)^((a-1)/a)=x * Use ln(abs(x)) instead of ln(x^2)/2 (in integral) * Move integrate() variable argument from 2nd to 4th position 2019-10-31 Hanna Knutsson * Much improved numerical integration (using Romberg's method) * integrate() argument which force numerical integration only * Calculator::clearMessages() 2019-10-28 Hanna Knutsson * Depth of field (dof) function 2019-10-27 Hanna Knutsson * Fix numerical integration error calculation 2019-10-26 Hanna Knutsson * expondist(), binomdist(), randpoisson(), randrayleigh(), and randexp() functions 2019-10-25 Hanna Knutsson * Add argument specifying number of values in random number functions * randnorm(), randuniform(), and normdist() functions 2019-10-24 Hanna Knutsson * Fix integral of a^(b*x^c) 2019-10-18 Hanna Knutsson * Allow angle argument in cis() * Fix complex exponential form when default angle unit is not radians * Complex cis form * Complex angle/phasor notation (input and output) 2019-10-16 Hanna Knutsson * Option to use "j" as default symbol for the imaginary unit in qalc 2019-10-15 Hanna Knutsson * Fix definite integral of abs(cos(x)) and similar * Improve integration of abs(f(x)) * Fix sgn(x) = 0 * abs(x^a) = abs(x)^a if a is real * ln(x^2) = 2*ln(x) if x > 0; 2019-10-10 Hanna Knutsson * Bijective base-26 support (including bijective() function) * Fix never ending loop when formatting unknowns with more than one character, in qalc 2019-10-09 Hanna Knutsson * Option to use binary prefixes by default for information units * "b?"-syntax (unit expression prefix) for optimal binary prefix (e.g. "b?byte") * Improvements for '?' (optimal prefix) in conversion expression 2019-10-08 Hanna Knutsson * poisson() function * Define steradian as rad^2 (was wrongly defined as m/m instead of m^2/m^2) for improved solid angle conversion * Add square degree as a solid angle (composite) unit 2019-10-01 Hanna Knutsson * Fixes for when narrow no-break space is local digit grouping separator * Calculate inverse when division operation is applied to RPN stack with only one value 2019-09-17 Hanna Knutsson * Only read first value (both values were concatenated as one) from /proc/uptime 2019-08-28 Hanna Knutsson * Add kgf/cm^2 composite unit and interpret kg/cm^2 as kgf/cm^2 when converting pressure 2019-08-22 Hanna Knutsson * Allow replacement of >1 and * "where"-syntax (e.g. "x+y where x=1 and y=2", or alternatively "x+y/.x=1,y=2", and "x^2=4 where x>0") 2019-08-19 Hanna Knutsson * Interpret comma as vector/argument separator if decimal separator is comma but numbers contains multiple commas or comma at end, e.g. [5,2,3,x]=[5;2;3;x], and add misplaced decimal separator warning for unhandled cases 2019-08-09 Hanna Knutsson * Fix local thousands separator on Windows when localeconv()->thousands_sep is a non-Unicode character > 127 (e.g. non-breaking space, 0xA0) 2019-07-31 Hanna Knutsson * Man page 2019-07-22 Hanna Knutsson * Add Calculator::setLocalCurrency() (overrides currency specified by LC_MONETARY) 2019-07-16 Hanna Knutsson * Support both micro sign and small mu as symbol for micro prefix * Allow translation of prefixes * Fix English spelling of "deca" 2019-07-15 Hanna Knutsson * Treat text after '_' as suffix by default when user creates a new function, unit, or variable * Check for duplicate names when loading imported definitions 2019-07-13 Hanna Knutsson * Add "to unicode" conversion * Display messages generated during initial loading of definitions immediately (instead of after first calculation) in qalc 2019-07-11 Hanna Knutsson * Add support for text arguments when hiding default function values in output * Fix italicization of symbol when function argument 2019-07-04 Hanna Knutsson * dec() function * Fix show ending zereos for non-integer rational numbers with non-decimal radix * Improved handling of interval arithmetics for cubic equations 2019-06-29 Hanna Knutsson * General support for bases > 36, negative bases, and non-integer bases * Reduce length of expressions in messages (primarily when using high precision) * Fix max decimals for small intervals with +/- display enabled 2019-06-24 Hanna Knutsson * Add support for bases > 36, negative bases, and non-integer bases, in base() function * Remove replacements (not updated properly) for obsolete currencies * Fix parsing of "0x80 mod 3" and similar 2019-06-11 Hanna Knutsson * dBm and dBW units 2019-05-23 Hanna Knutsson * Fix abs(x)=a for complex x 2019-05-20 Hanna Knutsson * CODATA 2018 update for physical constants 2019-05-14 Hanna Knutsson * Improved operator support for RPN syntax * Fix "percent" interpreted as "/ cent" * xor() => lxor(), bitxor() => xor() 2019-05-12 Hanna Knutsson * Fix segfault in findMatchingUnit() * Fix crash with empty factorial * Fix crashes with vectors containing empty vector ([[]]) and matrices with only one row and column 2019-05-09 Hanna Knutsson * Show binary, octal, decimal, and hexadecimal result when using qalc in programming mode * Do not save bases and caret as xor when using qalc in programming mode 2019-05-08 Hanna Knutsson * For vector + scalar, add scalar to all components * Round bitwise right shift downwards by default (arithmetic two's complement shift) * Treat all non-zero values as boolean true (was positive true, non-positive false) * bitrot() function for bit rotation * Add signedness argument to bitcmp() * Handle decimal shift operator steps with base < 10; 2019-05-04 Hanna Knutsson * Combine consecutive Unicode powers in one power 2019-05-03 Hanna Knutsson * Support for Unicode fractions * Support base prefixes with input bases other than decimal 2019-05-02 Hanna Knutsson * -p BASE command line option for programming mode (same as -b "BASE BASE" -s "xor^") in qalc * Support setting both input and output base with "base" command/option in qalc * Do not require space between command line option and number in qalc (e.g. -b16) * Fix seqfault with -set command line option in qalc, for some options changing expression parsing 2019-05-01 Hanna Knutsson * " mod " and " rem " operators * Unicode support in char() and code() 2019-04-30 Hanna Knutsson * div() function (integer division) * '%' as rem * "//" and "\" (if followed by space, number, +, -, ! or ~) for integer division (truncated) * RPN syntax support for bitwise operations * Allow compatible functions, variable, and functions with input base > 10 2019-04-29 Hanna Knutsson * Support Ɔ (open O) in roman numbers * Fixes for '|' in roman numbers * Support compl, bitor, and bitand as alternatives to ~, | and & 2019-04-27 Hanna Knutsson * Recognize "factor" and "expand" commands at the beginning of the expression * Change order of operations for logical and bitwise operators to better match C operator precedence * Always show spaces around spelled out logical operators * Bitwise XOR operator * Add alternative unicode symbols for bitwise and, or, exclusive or and not * Caret as XOR option in qalc 2019-04-24 Hanna Knutsson * Fix factorization with uncalculated power of number (do not factorize) * Fix explicit mixed units conversion when automatic mixed units conversion is disabled * Fix "set autoconversion 0" in qalc (deactivate mixed units conversion) * Fix segfault on factorization of "167772160y^4 − 41607495680y^2 − 11748245499y − 2147483648" 2019-04-23 Hanna Knutsson * Accept date and time separated by space instead of 'T' * Remove old SI definitions * uptime variable * Increase precision of "now" * Always truncate seconds in output date and time * Improve output of factorized result with approximately displayed values 2019-04-18 Hanna Knutsson * Improved simplification (polynomial long division) and factorization * Allow vector of values in replace() * Fix represents number test (should be either non-zero base OR, not AND, positive exponent) 2019-04-15 Hanna Knutsson * Fix crash when formatting 1 / ((0 × 0)(1 / 0)^2) 2019-04-14 Hanna Knutsson * Remove wide interval messages if final result is within precision * Fix options not output for "help set" in qalc * Rename "simplify" to "expand", to avoid confusion 2019-04-13 Hanna Knutsson * Simplify y*f(x)+z*f(x) to (y+z)*f(x) 2019-04-12 Hanna Knutsson * Support for "portable" Windows version 2019-04-11 Hanna Knutsson * Improve currency symbol placement * Fix loading of interval arithmetic setting * Do not display more than the significant digits with non-decimal bases for intervals * Fix display of ending zeroes for approximate integers * Do not show fractions for approximate values with show ending zeroes activated * Fix display of roman numeral reciprocal * Show no item found message when find/search command fails * Improvements to polynomial division * Never add minus sign to ± value (uncertainty) 2019-04-09 Hanna Knutsson * Fix potential segfault in acosh calculation * Add general number interval order check * acosh(0)=0.5i*pi, acosh(1)=0, and acosh(x)=acosh(-x)+i*pi when x<=-1 * atanh(x)=atanh(1/x)-0.5i*pi when x > 1 * Fix segfault in Number::square(), and possibly Number::recip() with (relatively) extremely small imaginary part 2019-04-04 Hanna Knutsson * Add optional variable value argument to diff() * Hide optional arguments with default value in output * Fix integrate(sinc(x),x,0,infinity) and similar (should return pi/2 instead of Si(x)) 2019-04-03 Hanna Knutsson * Improve effeciency and precision, in approximate mode, of diff() * Proper interval arithmetic for airy() with arguments >= -1 * Fix ignore locale on Windows 2019-04-01 Hanna Knutsson * Do not use angle unit in Si() and Ci() * Convert trigonometric arguments to selected angle unit * Hide current angle unit from result in qalc * Fix equations with inverse trigonometric functions when default angle unit is none * Never show ending zeroes for roman numerals * More flexible im() and re() 2019-03-29 Hanna Knutsson * Calculation of Si(), Ci(), Shi(), and Chi() * Integration of sinc() * sinc(x)*x=sin(x) * Use sinc() for derivative of Si() 2019-03-27 Hanna Knutsson * Fix atomic unit of velocity * Improve findMatchingUnit() 2019-03-25 Hanna Knutsson * Fix limits.h inclusion (fixes compilation errors) 2019-03-24 Hanna Knutsson * Fix "factorized result is wrong" because of non-simplified value in logical and calculation 2019-03-20 Hanna Knutsson * Fix make check (add test.cc and defs2doc.cc to POTFILES.in and add data files to POTFILES.skip) 2019-03-18 Hanna Knutsson * Fix rational power interval in some cases * Improve gcd() with non-integer coefficients * Fix segfault when rounding some intervals 2019-03-16 Hanna Knutsson * Fix heuristic gcd * Fix limit((6x^3) ∕ (7x − 2x^2 − 5),infinity) and similar 2019-03-14 Hanna Knutsson * Fix square of complex interval 2019-03-09 Hanna Knutsson * Fix show ending zeroes for rational numbers * Avoid multiplication of very long polynomials (fixed) 2019-03-05 Hanna Knutsson * Ignore locale option (CLI) * Handle empty set option value (in most cases by assuming "on") (CLI) 2019-03-04 Hanna Knutsson * Fixes for equations with uncertainty propagation * Fix cubic equation in exact mode in some cases * Fix a^x=b if it is now known if a and b is zero * Layout fixes when formatting "= approx. 'a'" 2019-03-02 Hanna Knutsson * Two's complement for hexadecimal 2019-02-25 Hanna Knutsson * Use old SI definitions until 2019-05-20 * Update translations * Hide unit and constant suffixes in result 2019-02-22 Hanna Knutsson * Fix exact decimals mode * Fixes for conversion to base units with nonlinear unit relations * Do not show nonlinear unit conversion warning unnecessarily * Fix compilation on 64-bit Windows * Uncertainty propagation improvements * Fixes for conversion to base units or optimal units involving approximate relations in exact mode * Improved simplification with nounit() factors * Fix variable reparsing when variable units are (de)activated 2019-02-17 Hanna Knutsson * Replace decimal with exact decimal rational numbers when exact mode is toggled on (CLI) 2019-02-16 Hanna Knutsson * Separate interval calculation / uncertainty propagation method choice (from interval arithmetic for approximate functions and irrational numbers) * Enable interval arithmetic by default (CLI) * Relative uncertainty property for variables, units and data objects * Fixes for complex uncertainty propagation * Fix uncertainty propagation using variance formula with multiple non-variable intervals (was calculated using interval arithmetic, potentially after expansion) * Uncertainty function (absolute or relative uncertainty) * Line break in variable info value (CLI) * Show expression in function info (CLI) 2019-02-09 Hanna Knutsson * Enable show ending zeroes by default 2019-02-04 Hanna Knutsson * Disable CLI text formatting on Windows 2019-01-30 Hanna Knutsson * Unformat variable value (fixes units with prefixes) * Improve plus-minus interval display * Fix conversion to constant when unit conversion fails * Fix optimal conversion to C * Fix find matching unit in some cases (when unit order differs) * Electronvolt units 2019-01-26 Hanna Knutsson * +/- syntax for non-numeric values * g (and not g/mol) is base unit for u 2019-01-24 Hanna Knutsson * Only show 2 significant decimals (and equal amount of decimals for main value) for uncertainty of number with +/- display * Improve constants (including relations between physical constants) 2019-01-22 Hanna Knutsson * nounit() improvements 2019-01-20 Hanna Knutsson * Calculate propagation of uncertainty using variance formula if interval arithmetic is deactivated * Fix randomly activated interval arithmetic (uninitialized variable) 2019-01-19 Hanna Knutsson * Many new physical constants (included particle masses in u and MeV/c^2) * Use kg instead g for physical constant to get the correct value when units in constants are disabled * Define Planck units as units instead of variables * Some atomic units * Unit variants of c and reduced Planck constant * Support uncertainty in parentheses for units * Handle incorrect use of '=' for assignment in for(), and add example 2019-01-12 Hanna Knutsson * Update elements data set (update values and add standard uncertainty to atomic weight) * Update planets data set * Support uncertainty in parentheses for variables and data objects (e.g. "4.002 602(2)") * Add uncertainty and range (in brackets) support for data objects 2019-01-10 Hanna Knutsson * Support UTC+/-hh[:mm] and CET time zone conversion (using "to") * Time zone display fixes * Support some time zone abbreviations 2019-01-06 Hanna Knutsson * Physcal unit relation constants 2019-01-02 Hanna Knutsson * Fix limit((1+\a/x)^x,infinity), and similar 2018-12-31 Hanna Knutsson * Support vectors of conditions and expression in if() * Assume false if not true argument in if() 2018-12-30 Hanna Knutsson * raid() function for RAID capacity calculation 2018-12-23 Hanna Knutsson * Allow "to"-conversion for variable without units 2018-12-17 Hanna Knutsson * Use prefixes with litre by defult 2018-12-10 Hanna Knutsson * Reciprocal unit conversion (e.g. 5 m/s = 0.2 s/m, 60 mpg = 0.039 L/km) 2018-12-02 Hanna Knutsson * Fix missing prefix for gram when exponent of gram is not one and automatic prefixes is off 2018-11-13 Hanna Knutsson * Fixes for units with non-linear relation * Use single quotation marks for unknowns with one character 2018-11-12 Hanna Knutsson * Improve line breaks * UTF-8 algorithms tweaks 2018-11-09 Hanna Knutsson * Fix handling of unicode chars for \a (="a") syntax * Only use italics for quoted single characters 2018-11-07 Hanna Knutsson * Improve appearance of x*m/s and similar * Hectare/decare improvements 2018-11-06 Hanna Knutsson * Proper line breaks in qalc * Fix (x+y)^a (was not expanded!) 2018-11-05 Hanna Knutsson * Line count fixes 2018-11-04 Hanna Knutsson * Do not transform rational numbers to integers in numerator and denominator if the resulting integers is not displayed in exact format * Add set options shortcuts and add option descriptions to help set, in qalc * Set restrict_fraction_length to true for 'set fractions fraction' in qalc * Hectare and decare units (in addition to ha/da and hectoare/decaare) 2018-11-01 Hanna Knutsson * Fix roman() when used for reversed conversion with number that includes zero (issue #93) 2018-10-31 Hanna Knutsson * Fix compilation without readline 2018-10-30 Hanna Knutsson * Always interpret expression that begins with '/' as a command in qalc * Interpret a character preceded by '\' as an unknown variable (same as in quotation marks) * Replace text in quotation marks with italic text in qalc * Always enable units for expressions that ends with "to [unit expression]", "to optimal", or similar 2018-10-29 Hanna Knutsson * Group options in qalc * Fix values for x when log(x) and Li(x) represents positive * Fix a*b^x+cx=d * Fixes for interval calculations with complex derivative * Improve trigonometric interval calculations 2018-10-28 Hanna Knutsson * Simplify e^(a*pi*i) to (-1)^a and apply further simplifications to (-1)^a instead * raised the to power" => "raised to the power" * Fix atanh(x)=a when im(a) < 0 (no solution exists) * Fix temporarily activated interval arithmetics leading to lasting deactivation * Fix magnitude() definition 2018-10-27 Hanna Knutsson * Solve a^(2x)+a^x=b, a^(-x)+a^x=b, and similar * Solve a*sinh(x)+b*cosh(x)=c * Fix atan(i) and atan(-i) * Simplify e^(i*atan(a)) to (1+a*i)/sqrt(a^2+1) * Generalize e^(a*pi*i) for all rational a * Simplify (a/b)^c to a^c/b^c if a and b are integers * Fix unrecognized gcd failure * Fix segfault on n*1^infinity * Fix atan(i) and atan(-i) * Fix atanh(x)=a when im(a) < 0 (no solution exists) * Fix temporarily activated interval arithmetics leading to lasting deactivation 2018-10-26 Hanna Knutsson * Fixes for default angle unit other than radians * Solve a^(b*x)+x=c in exact mode * ln(a*i+b) interval fix * Fix for trigonometric functions with division by argument * Improve polynomial exponentiation limit calculation 2018-10-25 Hanna Knutsson * Simplify arg(e^(a*i)), ln(e^(a*i)) and (e^(a*i))^b * Calculate approximate value to determine sign in abs(), arg(), sgn(), heaviside and dirac(), in exact mode * Use ln()=ln(abs(x))+arg(x)i in more cases in exact mode * Fix infinite loop in trigonometric simplifications * Only remove near zero part of complex number interval if interval includes zero 2018-10-24 Hanna Knutsson * Remove probably zero imaginary part from numbers in plot data * ln() simplifications for complex arguments * Fix approximate comparison between rational number and interval * Fix never ending loop in polynomial division * Fix (-x)^(-2/3) and similar when x is assumed negative * abs(a^(b*i))=1 if a is positive and b is real * Fix endless loop with abs(interval) base and polynomial power 2018-10-23 Hanna Knutsson * Fix endless loop with (x^8)^(52^(1/10)) and similar if x is assumed negative * Fix simplification of a*log(b)+c*log(d) when b or d is complex * Fix "E-" in +/- number interval specification * Fix segfault in interval variable factorization 2018-10-22 Hanna Knutsson * Simplify (e^(a*i))^(b) when a and b are real numbers, and b equals 1/2 or abs(a) < pi * Test result for ln(x)=a if a is complex * Solutions for x*ln(a*x)=b and x^2*ln(a*x)=b, and a*x+ln(b*x)=c * Fix precision property for a^(+/-infinity) 2018-10-21 Hanna Knutsson * Newton-raphson fixes/improvements * Use Lambert W branches for complex solutions * Add solution for a*b^x+cx=d when d != 0 * Calculate all complex solutions for x^(a/b)=c * Make n variable available to user 2018-10-20 Hanna Knutsson * Univariate factorization (non-square free) for polynomial factors with degree >= 2 (simple algorithm based on Kronecker method) * Add branch argument to lambertw() (only the principal branch is calculated) * Fix segfault in gcd with very large polynomial degree (restrict to < 1000) 2018-10-18 Hanna Knutsson * Improve a*x*b^(c*x)=d * Solve a*b^x+cx=0 * Improve x^(a*x^b)=c * Simplification and factorization fixes * sqrt(a)/a=1/sqrt(a) for rational numbers * Fix a^x=b for complex x, and (-1)^x=1 and (-1)^x=1 for real x 2018-10-17 Hanna Knutsson * Allow interval and infinity when determining if equal for logical and, and or * Improve a^x=b * Return exact result for x^x=a in some cases 2018-10-16 Hanna Knutsson * Fix a^x=b when a is zero * Fix abs(x)=-a * Fix segfault on 1^(a/b) in exact mode when a or b are extremely large * 1^a always exactly 1 if not a is infinite * Set maximum argument for cosh and sinh calculation (< 2^28) * Set maximum order for bessely() to 1000 (too slow above) * Fix log(a^x, b) when a is negative or x is complex * Fix parsing of thin space in numbers 2018-10-15 Hanna Knutsson * Fix adaptive interval display (when +/- in expression) * Fix E-notation for +/- (parse 1E4+/-1E2 as 10000+/-100) * Improve precision of asin(a*i); Fix ln(a*ln(pi)) * Fix segfault in polynomial division * Fix polynomial division in some complex cases 2018-10-14 Hanna Knutsson * sin(i*x)=i*sinh(x), etc. * a^(b*c)!=(a^b)^c if b is complex * Replace with temporary variable in replace() if replacement value is interval * Replace n with single possible value in equation result for unknown variable with interval 2018-10-13 Hanna Knutsson * Fix radian unit with prefix in trigonometric functions * Fix critically slow handling of many AND OR combinations * Fix segfault in aborted sort * Fix rounding in some cases with intervals * Fix display of zero with strict exp mode * Fix factorization segfault * Trigonometric simplification fix 2018-10-12 Hanna Knutsson * Fix illegal vales for acos(x)=a * Fix atanh(-infinity*i) * Set exact value for atanh() with infinite argument * Fix root(-ax, n) when n is even * Fix sinh(x)=a * Use parentheses for complex numbers (not used if formatted) * Do not use prefixes for angle units by default * Set PrintOptions for messages * Fix 'n' and 'C' variable assumptions * Fix various segfaults * Always place number/zero on right side of comparison in formatted result 2018-10-11 Hanna Knutsson * Use quadratic equation formula directly for ax^d+bx^(2d)=c (solve for x^d) * Fix/improve trigonometric transformations 2018-10-10 Hanna Knutsson * Fix segfault in during formatting * Fix 1/x=0 when x may be infinite * Improve comparison tests * Fix factorization segfault * Fix MathStructure::unformat() 2018-10-09 Hanna Knutsson * Improve precision of ax+bx^2=0 * Improve formatting of values in error/warning output * Use kilo as prefix for gram if automatic prefix is off * Set max exponent for use of mpfr_pow_z * Fix logical AND segfaults * asin() fixes for complex interval 2018-10-08 Hanna Knutsson * Fix acosh(x)=a * Add random expression testing * Fix segfault on 0^(-e) and similar * Fix asin() and acos() for complex numbers * Restrict maximum argument value for sin(), cos() and tan() using current precision * Trigonometric simplification improvements 2018-10-05 Hanna Knutsson * sqrt(a)/a=1/sqrt(a) for integers 2018-10-02 Hanna Knutsson * a*sin(x)+b*cos(x)=a*sqrt((b/a)^2+1)*sin(x+atan(b/a)); sin(sqrt(3)/2)=pi/3, tan(sqrt(3)/3)=pi/6, etc. 2018-09-30 Hanna Knutsson * sin(acos(x))=sqrt(1-x^2) and similar 2018-09-29 Hanna Knutsson * Solve equations with trigonometric functions * sin(a*i)=i*sinh(a), cos(a*i)=cosh(a), tan(a*i)=i*tanh(a) 2018-09-28 Hanna Knutsson * If x might be complex solution for a^x = b is x = (i*pi*n + ln(a)) / ln(b) and similar * Add "C" (for integrals) and "n" (integer) unknown variables (not user accessible) * Trigonometric functions improvements/fixes 2018-09-25 Hanna Knutsson * f(a.b*pi+x) equals (-) f(0.b*pi+x) for sin(), cos() and tan(), e.g. sin(3.37pi+x)=-sin(0.37pi+x) 2018-09-24 Hanna Knutsson * Remove negative sign from trigonometric function argument (e.g. sin(-x)=-sin(x)) 2018-09-20 Hanna Knutsson * Parse |x| and ||x|| as abs(x) and magnitude(x) * Fix Avogadro constant uncertainty 2018-09-18 Hanna Knutsson * Add magnitude(), entrywise() and hadamard() functions 2018-08-10 Hanna Knutsson * Option to disable automatic conversion to local currency (when optimal conversion activated) 2018-08-09 Hanna Knutsson * Fix f(x)+a=a (e.g. x+1=1) * Fix automatic unit conversion after RPN stack calculations 2018-08-08 Hanna Knutsson * Polar and exponential complex number forms 2018-08-01 Hanna Knutsson * Fix ignore comma for RPN syntax 2018-07-22 Hanna Knutsson * Fix ln(-i) 2018-07-09 Hanna Knutsson * Fix display of negative number interval with +/- interval display when uncertainty is lower than global precision * Fix display of addition with negative non-integer number (show "x - a" instead of "x + -a") 2018-06-11 Hanna Knutsson * Do not automatically update all exchange rates sources if not needed 2018-06-09 Hanna Knutsson * Use mycurrency.net html instead of the json data, which has not been for a month 2018-06-04 Hanna Knutsson * Only use two's complement representation for integers * Use a * base^b for extremely long numbers in bases other than decimal 2018-06-02 Hanna Knutsson * When using two's complement representation on negative non-integers, use the same number of decimals as without two's complement representation * Fix round() for negative rational numbers! 2018-06-01 Hanna Knutsson * Interpret 5m 7cm (and similar, for m and L) as 5m+7cm, and 3h 5min (and similar) as 3h+5min * Interpret m2 and m3 as m^2 and m^3 (as before), but m4 as m*4 2018-05-31 Hanna Knutsson * Treat definitions in non-standard user files as global (not directly editable), in order to avoid duplication * Add Calculator::calculateAndPrint() function 2018-05-30 Hanna Knutsson * Add "to base #" conversion * Lunar phase functions 2018-05-27 Hanna Knutsson * Calendar conversion * Add "to" conversion for display of numbers in roman, sexagesimal, or time format 2018-05-21 Hanna Knutsson * Search for matching functions, variables and units using 'list' (or 'find') command in qalc * Improved ln() simplifications 2018-05-19 Hanna Knutsson * Do not automatically convert to broken down composite unit c for x*a+x*b (and similar), if a and b are both aliases for c * Allow 1°2'3" format for degree, arminute and arcsecond * Add arcsec and armin reference name to Arcminute and Arcsecond * Use prime symbols for sexagesimal output format 2018-05-18 Hanna Knutsson * Fix crash when expression contains '>', '<' or '=', and libqalculate is compiled with -D_GLIBCXX_ASSERTIONS * Allow 5'8" format for feet and inches 2018-05-16 Hanna Knutsson * Treat rates.json with "Internal Server Error" message as failed exchange rates download 2018-05-14 Hanna Knutsson * Ignore empty lines and lines beginning with # or // in batch file 2018-05-13 Hanna Knutsson * Fix never ending loop in (-x)^(2/3) if x is assumed negative * Fix x/(x^(3/4)+x) and similar when x is assumed positive 2018-05-06 Hanna Knutsson * Improved series titles in plot() * Derivative for bessely() * Improved product log deriative 2018-05-03 Hanna Knutsson * Add titles to currency list in qalc 2018-05-01 Hanna Knutsson * Add countries property to currencies * Add "(obsolote)" to relevant currencies titles 2018-04-26 Hanna Knutsson * Enhanced interval arithmetic with dependent intervals 2018-04-24 Hanna Knutsson * New currency names and titles (contributed by majumeke) 2018-04-19 Hanna Knutsson * Two's complement representation * bitcmp() function * Option to interprete binary number using two's complement representation in bin() * Allow all rational numbers for second argument of root() 2018-04-18 Hanna Knutsson * Fix a^infinity when a > 1 * limit() function 2018-04-11 Hanna Knutsson * Fix segfault when prefix is set in some cases 2018-04-09 Hanna Knutsson * "to"-conversion for physical constants 2018-04-06 Hanna Knutsson * Calculate each vector element (and each extra argument) separately in many functions (e.g. sin(5, 2, 3) = [-0.95892427, 0.90929743, 0.14112001]) 2018-04-05 Hanna Knutsson * Only remove quotation marks at beginning and end of command line expression if they are the only ones 2018-04-03 Hanna Knutsson * Direct date and time calculation * Return date and time in stamptodate() * Time zone conversion 2018-04-02 Hanna Knutsson * Use local currency as "optimal" currency unit 2018-04-01 Hanna Knutsson * Allow user to change decimal separator (and consequently argument separator) * Fix lambertw() 2018-03-31 Hanna Knutsson * Fix display of parsed sexagesimal number * Do not remove spaces within quotation marks 2018-02-29 Hanna Knutsson * Change how percent (and permille, permyriad) addition and subtract is calculated (100+20%=120) 2018-03-28 Hanna Knutsson * Allow ParseOptions::comma_as_separator to have effect on unlocalizeExpression() and localizeExpression() even if Calculator::useDecimalPoint(true) has not been called. 2018-03-26 Hanna Knutsson * Fix complex atan() * Derivative of arg() * ln(x^a)=ln(x)*a if 1>a>-1 and a!=0 2018-03-24 Hanna Knutsson * Fix segmentation fault when calculating arg(-x) 2018-03-22 Hanna Knutsson * Derivative of gamma(), besselj(), heaviside(), Ci(), Si(), Shi(), Chi(), Ei(), Li(), li(), erf(), erfc(), sinc(), factorial and comparisons, and use dirac() for derative of sgn(). * Complete the square when factorizing 2018-03-20 Hanna Knutsson * --version (-v) command line option for qalc * Make data and config directories recursively 2018-03-15 Hanna Knutsson * Always display rational exponents as fractions if numerator and denominator is less than ten * Fix endless loop when factorizing expression with sgn() * Number display fixes 2018-03-11 Hanna Knutsson * Fix endless loop with (5^x)^(1/3)*5^x * Precalculate in replace() function if original value not found 2018-03-07 Hanna Knutsson * Fix segmentation fault root() in some cases 2018-03-06 Hanna Knutsson * ln(x^a)=a*ln(x) only when x is positive 2018-03-05 Hanna Knutsson * Increase efficieny of trigonometric functions in some cases * Fix 1^x * Allow final interval expansion for high precision intervals 2018-03-02 Hanna Knutsson * Fix endless loop when solving (x^(1/3))^3 * (x^(1/3))^2 + (x^(1/3))^2!=0 and similar with variable substitution 2018-02-27 Hanna Knutsson * Improved handling of blocked messages * sin(x)^2+cos(x)^2=1 2018-03-23 Hanna Knutsson * Partial fractional decomposition * << operator for MathStructure and Number 2018-02-19 Hanna Knutsson * Enhanced integration * Numerical approximation of definitive integral (using Simpson's rule) * Fix exact (-a)^(-b/c) * Fix derivative of acosh 2018-02-10 Hanna Knutsson * dsolve() function for differential equations * Simplify result inbetween each run for high order derivatives to increase performance 2018-02-08 Hanna Knutsson * Show a more informative message and fail in autogen.sh when doxygen and API docs is missing 2018-02-02 Hanna Knutsson * Icelandic Krónur added to ECB data 2018-01-26 Hanna Knutsson * Use mpfr_rootn_ui with mpfr version >= 4.0.0 2018-01-24 Hanna Knutsson * Support negative exponents and k > n in binomial function 2018-01-23 Hanna Knutsson * Set Gnuplot samples to avoid unsmooth smoothed curve 2018-01-19 Hanna Knutsson * Check if plot data is continuous 2018-01-18 Hanna Knutsson * Use auto_y_min/auto_y_max/y_min/y_max plot parameters * Increase default number of plot samples 2018-01-15 Hanna Knutsson * Add vacuum_permeability and vacuum_permittivity as names for magnetic and electric constants * Add completion only names to enable completion of greek letters from the roman letter names 2018-01-14 Hanna Knutsson * Fix segfault on extremum(cot(x),x) 2018-01-04 Hanna Knutsson * Fix variables (including electric constant) with units parameter and pi in expression 2018-01-02 Hanna Knutsson * Fix unicode signs in expressions with quotations 2017-12-11 Hanna Knutsson * sinc() function 2017-12-08 Hanna Knutsson * Suppress gnuplot error output in terminal 2017-12-05 Hanna Knutsson * Fix x = 0 m && x != 0 2017-12-01 Hanna Knutsson * Fix exact calculation of sqrt(-1/8) 2017-11-30 Hanna Knutsson * Infinity fixes/enhancements. Unsigned infinity removed. 2017-11-27 Hanna Knutsson * Fix (a+b*i)^0 2017-11-22 Hanna Knutsson * Enhanced display of repeating decimals * Fix numbers less than 1 when max decimals is 0 * Enhanced display of parsed expression * Digit grouping 2017-11-16 Hanna Knutsson * Option to disable units in physical constants 2017-11-13 Hanna Knutsson * Fix engineering mode (exp mode < -1) for rational numbers < 1 with few decimals * Fix complex number multiplication (a+b*i)*(c+d*i) 2017-11-12 Hanna Knutsson * Interval arithmetic 2017-10-09 Hanna Knutsson * Bitcoins * Use 'X' and 'E' (or approprioate unicode characters) instead of 'A' and 'B' in duodecimal numbers * Set approximate flag in zeta 2017-09-26 Hanna Knutsson * Enhanced simplification of expressions with polynomial division * Data with invalid values are plotted as discontinuous function 2017-09-24 Hanna Knutsson * Fix thread not terminated on Calculator deletion (issue #45) 2017-09-23 Hanna Knutsson * Fix 5/(x−y)−3/(2x−2y)=7(2x-2y) * Factorization fixes * sqrt(-a)=sqrt(a)*i 2017-09-19 Hanna Knutsson * Fix convert cbrt(L) to optimal unit * Fix automatic prefixes for negative numbers 2017-09-18 Hanna Knutsson * Fix ^4 and ^5 unicode signs * Fix for sqrt(a)=b*sqrt(c) * Calculate all complex roots for x^a=b * arg() enhancements 2017-09-15 Hanna Knutsson * Comparison functions for date class 2017-09-14 Hanna Knutsson * Version check function 2017-09-12 Hanna Knutsson * Additional exchange rates source (mycurrency.net with over 100 additional currencies) * Enhanced equation solving 2017-09-09 Hanna Knutsson * abs() and sgn() enhancements 2017-09-02 Hanna Knutsson * cbrt() and root() now always returns real root 2017-08-30 Hanna Knutsson * Fix solving of (a+x)/(b+x)=c 2017-08-25 Hanna Knutsson * Duplicate the RPN register at the top, instead of pushing zeroes, on RPN enter with empty expression (fixes qalculate-gtk issue #22) * Implementation of all R algorithms in percentile function * Use a formula for exponentiation with a complex power that preserves precision better 2017-08-24 Hanna Knutsson * Fix inconsistent parsing - x^22x=x^22*x, x^2x=x^(2*x) (now x^2x=x^2*x) * Do not round exact integers in EXP_NONE/"Simple" mode (its only annoying) 2017-08-23 Hanna Knutsson * Remove duplicate history entries in qalc * Fix factorization issues 2017-08-22 Hanna Knutsson * Precision variable 2017-08-20 Hanna Knutsson * Fix sum(x/x,0,10) and avoid warning for sum(x/x,1,10), and similar * Unicode ellipsis * Return zero for plot() 2017-08-19 Hanna Knutsson * Enable plotting on Windows (gnuplot must be installed separately) * Support middle dot (00B7) as multiplication sign 2017-08-17 Hanna Knutsson * Ability to apply functions with multiple arguments to the rpn stack (including using the whole stack for functions with a vector as argument) * Fix clang compilation 2017-08-16 Hanna Knutsson * Fix compilation on Ubuntu 16.04 * Move function in fincance to parent category and update description of pmt() 2017-08-14 Hanna Knutsson * Derivatives of inverse and hyberbolic functions * Make for() more efficient 2017-08-11 Hanna Knutsson * Enhance gamma(). Add digamma(), arg(), conj(), besselj(), bessely(), airy(), erf(), erfc() 2017-08-10 Hanna Knutsson * Fix decimal exact fractional format for large numerators and denominators * Avoid display of numbers with extremely large number of digits (> 10000000) for all options 2017-08-09 Hanna Knutsson * Fix trigonometric functions with angle unit other than radian 2017-08-07 Hanna Knutsson * Include system-wide exchange rates file to avoid issues with missing currencies and the need to ask first-time users questions * Reactivate deactivated global variables, units and functions after conflicting local object has been removed 2017-08-06 Hanna Knutsson * Set argument min/max from requested integer type 2017-08-05 Hanna Knutsson * Fixes for MS Windows (now compiles, and runs without apparent issues, with MinGW) 2017-08-04 Hanna Knutsson * Rewritten date functions with support for larger numbers * Check if variable exists in save (:=) function * Fix case insensitive comparison where upper and lower case string have different length 2017-08-03 Hanna Knutsson * Use libcurl instead of gvfs/wget * Remove glib dependency (require instead iconv and icu) 2017-08-02 Hanna Knutsson * Handle errors on thread read and write (seems to solve issue #38) 2017-08-01 Hanna Knutsson * Fix max decimals 2017-07-31 Hanna Knutsson * Use default evaluation options with approximate calculation in plot function * Use GMP and MPFR instead of CLN 2017-07-29 Hanna Knutsson * Fix 3(x+1)(x+y)^3 to factors = 81((x + y) / 3)^3 * (x + 1) 2017-07-27 Hanna Knutsson * Fix engineering exp mode in qalc and allow divisors other than 3 * Do not round digits before decimal point for exact values with exp mode off * Fix sin(pi+x) and cos(pi+x) 2017-07-22 Hanna Knutsson * Fix multiplication of matrix by (row) vector 2017-07-21 Hanna Knutsson * Interpret 1e.1 as 1^10*0.1 instead of 1*e*0.1, and enable use of 'e' as unknown 2017-07-20 Hanna Knutsson * Example property for functions 2017-07-19 Hanna Knutsson * More efficient factorials * Fix Number::print() not able to terminate with very large numbers (halted at cln::expt_pos with y = 0) * Fix termination of MathStructure::print() and format() with very large size * Add extra termination points for MathStructure with large size and do not sort numbers when aborted * Fix display of large integers in fractional modes * Make product() and sum() more efficient * Fix for() * Check that step size gives finite number of data points and set max data points to 1000000 * Increase speed of Number::print() with huge numbers 2017-07-18 Hanna Knutsson * Add option to use step size instead of sampling rate for plot function * Fix non-decimal numbers with rpn syntax 2017-07-17 Hanna Knutsson * Prefer non-hidden composite units over alternatives with multiple units, in optimal unit conversion (5 m/s^2 instead of 0.005 N/g) 2017-07-16 Hanna Knutsson * New Calculator::calculate() variant that calculates a parsed expression * Command line option for maximum calculation and display time 2017-07-15 Hanna Knutsson * Fix formatting of (x^2)/(10y) (was (1*x^2)/(10y)) * STRUCT_ABORTED MathStructure type 2017-07-10 Hanna Knutsson * Rename Calculator::printMathStructureTimeOut() to Calculator::print() 2017-07-09 Hanna Knutsson * Do not convert temperature units if other units are converted, when converting to optimal or base units * More efficient conversion to base units that solves issues with temperature units in conversion to base and optimal units * Lower the maximum exponent to avoid slow division 2017-07-06 Hanna Knutsson * Prefer positive exponents over negative, unless the result includes a another unit with positive exponent (fixes Hz) 2017-07-02 Hanna Knutsson * Do not convert to composite units in mixed units conversion * Fix mixed units forced by default in separate unit conversion 2017-07-01 Hanna Knutsson * Update elements data set * Do not try to calculate zeta for values larger than 100 000 * Controlled termination of plot() 2017-06-30 Hanna Knutsson * Fix x^-y (=x^(-y)) 2017-06-28 Hanna Knutsson * Do not try to calculate extreme exponentiations 2017-06-27 Hanna Knutsson * Controlled calculation termination handling points 2017-06-26 Hanna Knutsson * Polynomial gcd fixes * Do not crash when factorizing 1 * Use clock_gettime() instead of gettimeofday() if avaiable 2017-06-17 Hanna Knutsson * Remove "none" and "non-matrix" assumptions from qalc and when loading definitions from previous versions (<= 0.9.12) * Fix transpose() and (matrix+1)*(matrix-1) * For cases when 0x cannot be assumed to zero, the same should be true for 0x^b 2017-06-12 Hanna Knutsson * Enhanced factorization/simplifaction (including hybrid mode) 2017-06-07 Hanna Knutsson * Revised temperature unit handling 2017-06-05 Hanna Knutsson * Updated automatic conversion - controls that new units really is better than old (fixes V^3) and splits up POST_CONVERSION_BEST in POST_CONVERSION_OPTIMAL_IS and POST_CONVERSION_OPTIMAL (prioritises original units) 2017-05-14 Hanna Knutsson * Use gio when available instead of deprecated gvfs-copy * Save default preferences when running qalc the first time even if in non-interactive mode * Fix ask if fetch exchange rates first qalc run 2017-05-05 Hanna Knutsson * unit/unit/unit = (unit/unit)/unit with adaptive parsing * Fix "1 W Ohm /K/K" 2017-03-31 Hanna Knutsson * Build fixes (Check for libtoolize instead of libtool in autogen.sh; Include Doxyfile in dist files) 2017-03-19 Hanna Knutsson * Merge Windows support fork (chengsun) 2017-02-20 Hanna Knutsson * Use top of the stack twice (instead of zero) for operations (except subtract) when only one value is available 2017-02-18 Hanna Knutsson * "Pop", "copy", "rotate", "move" commands for RPN stack manipulation in qalc * Enable both (or one of) RPN stack and syntax with the "rpn" command in qalc 2017-02-17 Hanna Knutsson * Fix functions with RPN syntax * Swap command for RPN stack manipulation in qalc 2017-02-16 Hanna Knutsson * Do not always reparse expression when parse options have changed * Introduce message categories and stages * Hide parsing stage messages when only recalculating or angle unit has changed in qalc 2017-02-15 Hanna Knutsson * Fix transform last arguments to vector, when only one last argument (fixes function("1+\x"; 1)) 2017-02-14 Hanna Knutsson * New commands for creation of simple functions and variables (with specified expression) in qalc * Do not allow empty names 2017-02-10 Hanna Knutsson * Fix and increase the size of the list of prime numbers * Handle recursive variables (give error and return undefined) * Replace ans with ans2 in ans (and ans2 in ans2...) in qalc 2017-02-08 Hanna Knutsson * Fix set rpn syntax in qalc * Fix set command, in qalc, for variables with spaces 2017-01-26 Hanna Knutsson * Do not raise by exponent numerator larger than 10 000 or smaller than -10 000, when exact exponantiation has failed (fixes slow calculation of for example 2^0.333333333 in "try exact" mode). 2016-12-13 Hanna Knutsson * Do not save mode changes in batches file * Add 'comma as separator' option to qalc and only show 'dot as separator' when dot is not used as decimal separator 2016-12-11 Hanna Knutsson * Use https://www.ecb.europa.eu insead of http://www.ecb.int 2016-11-09 Hanna Knutsson * Add symbol for Czeck koruna 2016-10-30 Hanna Knutsson * Fix u and 1/u to optimal, and handle unforeseen situations better in optimal units conversion 2016-09-07 Hanna Knutsson * Plot functions 2016-09-02 Hanna Knutsson * Fix saving of precision of unit relation 2016-09-01 Hanna Knutsson * Fix "to base" * Mixed units conversion (e.g. 75.2 min = 1 h + 15 min + 12 s) 2016-08-23 Hanna Knutsson * Fix unit conversion (e.g. 1/s to ms) * Fix unit conversion (e.g. 1/ns to GHz) 2016-08-08 Hanna Knutsson * Fix degree sign 2016-08-05 Hanna Knutsson * Fix compilation without readline 2016-07-21 Hanna Knutsson * Do not use unicode signs in definitions list and show both abbreviated and long name 2016-07-20 Hanna Knutsson * 'delete' command, for removal of user-defined variables, in qalc 2016-07-18 Hanna Knutsson * Option to list all functions, variables or units in qalc 2016-07-17 Hanna Knutsson * 'list' command, which displays a list of user defined variables, functions and units, in qalc 2016-07-12 Hanna Knutsson * Avoid warning message if exchange rates file does not exist 2016-07-08 Hanna Knutsson * Fix errors and warnings when compiling with clang, and fix unordered_map/hash_map issues 2016-07-06 Hanna Knutsson * Fix crash when using locale missing on system 2016-06-29 Hanna Knutsson * Fix parsing of "today" and add "tomorrow" and "yesterday" 2016-06-11 Hanna Knutsson * Show actual number of days since last exchange rates update 2016-06-10 Hanna Knutsson * Fix localization of command line arguments 2016-06-09 Hanna Knutsson * Improve exchange rates handling * Add interactive command line option to qalc. Exit after commands from file have been executed unless interactive mode has been explicitly selected. 2016-06-07 Hanna Knutsson * Do not check if exchange rates is up to date when using currencies with fixed exchange rate (currencies replaced by euro) * Warn about old exchange rates again after one week if the application has not been restarted (Calculator object not recreated) * Make sure precision and if approximate is not lost from units, functions and variables * Update physical constants from CODATA Recommended Values 2014 * Fix unit precision from definitions 2016-06-03 Hanna Knutsson * sqrt(7/4) = sqrt(7)/2, sqrt(2)/2−(1/sqrt(2)) equals exactly zero 2016-05-27 Hanna Knutsson * Allow special "to" commands directly in expression * New "to" commands: factors and fraction * Fix segmentation fault when aborting non-interactive qalc (do not use readline) 2016-05-26 Hanna Knutsson * to bin, oct, hex, bases commands in qalc 2016-05-25 Hanna Knutsson * Use ? or 0 in front of unit expression to control if missing prefix should be set 2016-05-24 Hanna Knutsson * Use MULTIPLICATION_SIGN_X by default * Use prefix for more units, add centigrades name for celsius, add Dalton unit and move units to new Atomic Mass category 2016-05-23 Hanna Knutsson * Add unicode signs for powers 0 and 4-9, and cube root 2016-05-20 Hanna Knutsson * Redesigned parsing of spaces in multiplication and division and new parse options to ignore whitespace or not treat implicit multiplication differently from explicit 2016-05-19 Hanna Knutsson * Fix stack editing 2016-05-17 Hanna Knutsson * New print safer abort/timeout system 2016-05-15 Hanna Knutsson * Add thread cancellation point in factorize number function to make crash less likely * Attempt to make print thread cancellation less crash prone 2016-05-11 Hanna Knutsson * Do not add default angle unit if one is already present * Disable inclomplete uncertainty propagation support for now 2016-05-10 Hanna Knutsson * Do not keep zero radians * Always simplify before integration 2016-05-08 Hanna Knutsson * Fix bug #108 by not checking for x in function arguments when isolating x, thus stopping infinite loop * Fix sqrt(x)*sqrt(x) 2016-05-05 Hanna Knutsson * Fix endless loops in gcd functions (solves bug #64) 2016-05-03 Hanna Knutsson * Use standard location for data and configuration (~/.local and ~/.conf) 2016-05-02 Hanna Knutsson * An attempt to solve the convert to unit issues: - Transform Kelvin, Celsius, Farenheit to builtin units. - Convert to kelvin when parsing, to make the conversion visible to the user, after implicit multiplication. - Fix s/g to kg = s*kg/g^2. - Do not set new prefix when converting to unit expression without prefix. * Add Hartree and Rydberg units 2016-04-30 Hanna Knutsson * Update build files and increment version number 2016-04-29 Hanna Knutsson * Update currencies (fix currencies recently recplaced by euro, add new currencies and add additional unicode signs) * Allow decimals in sexagesimal numbers (request #26) 2016-04-28 Hanna Knutsson * Catch CLN exceptions (fixes various bugs) * Fix bug #79 and #127 * Option to ignore commas * Apply most of the portability patch in bug #124 2016-04-26 Hanna Knutsson * Fix preservation of case sensitivity in translated names * Do not append zeroes to decimals if number is approximate or is shown approximately 2016-04-25 Hanna Knutsson * Clarify how "Payment for a loan" works * Fix "function" function when argument vector is too small * Fix result for unsuccessful integration with limits * Fix self-referencing in save function 2016-04-24 Hanna Knutsson * Fix fibonacci function. Remove from program code and use the golden ratio. 2016-04-21 Hanna Knutsson * Fix conversion to unit with prefix (bug #150) * Fix conversion from unit with prefix (bug #97 and #104) 2016-04-19 Hanna Knutsson * Introduce use_with_prefix property for units, to not use prefixes by defaults for units outside SI and CGS systems (solves bug #66) * Partially revert commit [83fe08] * Warn about bad integrate function * Fix abbreviation for Rydberg constant (bug #140) 2016-04-18 Hanna Knutsson * Include for std::sort() * Use unordered_map instead of hash_map for new gcc versions * Fix warnings (including bug #143) * Provide a proper fix for bug 3020050 / #121 (without removing valid warning messages) * Fix parsing of (0xff) (bug #102) * Warn when raising zero by imaginary power (bug #141) * Fix incorrect factorization (bug #130) 2009-01-05 Jonathan Stickel * General build updates and bug fixes, including the ability to build against cln >= 1.2. * Bug fix for segfaults with some uses of integrate() (bug 2537772). 2008-03-17 Hanna Knutsson * Fix reduction of vector size. Fixes bug 1913388. 2007-08-27 Hanna Knutsson * Begin work on propagation of uncertainties * Allow parentheses for vectors (a bit stricter parsing) * brackets_as_parentheses parse option 2007-08-23 Hanna Knutsson * 2/5m = 2/(5m); 2/5 m = (2/5)*m 2007-08-22 Hanna Knutsson * Make DataSet::calculate virtual * dataset.object.property and object.property (with parse_options.default_dataset set) syntax 2007-08-21 Hanna Knutsson * Fix crash with unsupported operator in RPN syntax (bug 1778267) 2007-08-07 Hanna Knutsson * New Simplified Chinese translation (Roy Qu ) 2007-06-17 Hanna Knutsson * Miscellaneous fixes before release 2007-04-27 Hanna Knutsson * New functions: addTime(), isNumber(), isReal(), isRational(), isInteger(), representsNumber(), representsReal(), representsRational(), representsInteger() * Show argument name instead of \x in argument condition 2007-04-26 Hanna Knutsson * Use Lambert W to solve equations * Fix infinite loop when solving some equations * New functions: addDays(), addMonths(), addYear() 2007-04-19 Hanna Knutsson * Enhance lambertw() * Add the Omega constant 2007-04-18 Hanna Knutsson * Implement the Lambert W function 2007-04-17 Hanna Knutsson * Avoid floating point underflow by, in approximate mode, checking against the value of pi in sin() and cos() * Add more exact values for sin() and cos() 2007-04-15 Hanna Knutsson * Fix simplification of (1-1/x)^3 and similar 2007-03-31 Hanna Knutsson * Add grams of TNT (gTNT/gramTNT) and tons of TNT (tTNT/tonTNT) units 2007-03-29 Hanna Knutsson * Fix parsing of unit expressions (when converting) such as W/(m K) * Expand data on elements 2007-03-20 Hanna Knutsson * Fix clumsy mistakes in setPrefixes() leading to crashes * Add typographic units * Add some old french length units * Add alternative name "variations" for permutations * Fix atomic mass unit being put in second density category 2006-12-16 Hanna Knutsson * New French translation (Nicolas Laug ) 2006-11-18 Hanna Knutsson * Update Swedish translation 2006-11-07 Hanna Knutsson * Update Dutch translation (Jaap Woldringh ) 2006-11-02 Hanna Knutsson * Use "name := value" as shortcut for save(value; name) * Return value in save() 2006-09-10 Hanna Knutsson * Group integer factors in powers 2006-09-05 Hanna Knutsson * Integer factorization * Heaviside Step Function, Rectangular Function, Triangular Function, and Ramp Function * Kronecker Delta, Sigmoid, and Logit Transformation 2006-08-18 Hanna Knutsson * Generate API docs from autogen.sh * Radius instead of diameter as argument for circumference() 2006-07-21 Hanna Knutsson * Interpret 0x[0-9,a-f] as hexadecimal number (do not require first digit to be 0-9) 2006-07-03 Hanna Knutsson * Add optional upper and lower limit arguments to integrate() for definite integrals * Add cross() function * Handle powers with multiplication as base when setting prefixes * Split powers with units when placing units separately * Increment version number 2006-06-21 Hanna Knutsson * Fix parsing of "x!)!" * Use Julian year for light-year value 2006-06-20 Hanna Knutsson * Use "Display units separately" also for quantities with multiple terms 2006-06-10 Hanna Knutsson * Add base 3 exponent mode * Add "Engineering" display mode 2006-06-06 Hanna Knutsson * Unevaluated arguments were used when checking for numerical arguments in logn(), which caused log2(16/2) to first be evaluated to ln(16/2)/ln(2). 2006-06-01 Hanna Knutsson * Polishing before 0.9.4 release 2006-05-18 Hanna Knutsson * Fix libqalculate.so unresolved symbols with patch from Thomas de Grenier de Latour, add GLIB_LIBS to LIBADD 2006-05-09 Hanna Knutsson * Add additional localization options for use in KDE GUI 2006-05-03 Hanna Knutsson * Update API documentation * Clean up Unit API * More function descriptions * tetrahedron(), tetrahedron_sa(), tetrahedron_height(), sqpyramid(), sqpyramid_sa() and sqpyramid_height() functions * Do not update the stack until the calculation is finished * stack() and register() functions * Add true RPN mode to qalc * Add "rpn", "stack" and "clear stack" commands, and "lowercase e", "lowercase numbers", "spell out logical", "dot as separator" and "rpn" set command options in qalc * Update Swedish translation 2006-04-28 Hanna Knutsson * Update API documentation * equation => formula in MathFunction * Do less in setFormula() if formula is empty 2006-04-27 Hanna Knutsson * Fix parsed expression for RPN operation * Remove capitalization from argument titles 2006-04-24 Hanna Knutsson * Fix bug #1475373 ("1 kg m/s" was simplified to "1000 m/s") 2006-04-23 Hanna Knutsson * README.translate with information for translators * Update Swedish translation 2006-04-22 Hanna Knutsson * Prepend !category! to strings, which might have different translations in different contexts, in data files 2006-04-21 Hanna Knutsson * Add the completed Dutch translation * New name format in data files * Update Dutch translation to new name format 2006-04-13 Hanna Knutsson * Fix horrible, horrible bug that caused all number arguments to require numbers to be rational 2006-04-09 Hanna Knutsson * Ignore definition names beginning with colon, for plural names where the original name does not differ * Set vectors and matrices as the first argument by default * Add more function descriptions 2006-04-08 Hanna Knutsson * Options to use dot as thousands separator when it is not the default decimal sign * require_translation property for definitions, used in the large numbers category 2006-04-06 Hanna Knutsson * Update RPN functions * Update API documentation * Change usecs argument to msecs 2006-04-04 Hanna Knutsson * Plugins * True RPN mode 2006-04-03 Hanna Knutsson * Set min and max in argument definition for zeta() * Set exact value for zeta with argument 2, 4, 6, 8 or 10 and set infinity for 1 2006-04-02 Hanna Knutsson * Symmetric matrix => Square matrix * Some text string changes * Accept vectors in elements function 2006-04-01 Hanna Knutsson * Interpret 0x..., 0o... and 0b... as hexadecimal, octal and binary numbers, respectively, when base is decimal 2006-03-29 Hanna Knutsson * Remove deleted data set from the data set list, not only the function list (fix crash on delete and update list view) 2006-03-28 Hanna Knutsson * Fix contains... functions (and thereby integration) 2006-03-25 Hanna Knutsson * Ignore commas in numbers * Start API documentation 2006-03-13 Hanna Knutsson * Approximate comparison fixes * Add PrintOptions->restrict_to_parent_precision (default true) * Do not produce a result with multiplications inside multiplications (fixes prefixes with simplification) 2006-02-26 Hanna Knutsson * Approximate comparison * Avoid floating point overflow and underflow by not lowering precision in comparison and always using long floats * Use floating point raise more often in approximate mode 2006-02-21 Hanna Knutsson * Fix show ending zeroes when max decimals is set to off by a max value below zero 2006-02-11 Hanna Knutsson * Do not use "Read Precision" in plot 2005-01-30 Hanna Knutsson * isodate(), localdate(), timestamp(), stamptodate() functions 2005-01-27 Hanna Knutsson * cos(x*pi*rad) equals 1 if x is even, not -1 2005-12-20 Hanna Knutsson * Warn about denominators assumed non-zero option 2005-12-19 Hanna Knutsson * Various fixes and enhancements * Update Swedish translation 2005-12-14 Hanna Knutsson * Fix ln(e^x) * Isolate x in log(x) for inequalities * Factorize x^2-y^2 and x^3-y^3 2005-12-13 Hanna Knutsson * Isolate x fixes * Fix merging of common factor with multiplication 2005-12-12 Hanna Knutsson * Assume that simple unit relations do not negate * Fix ?+(+infinity) 2005-12-11 Hanna Knutsson * Fix non-commutative multiplication (multiplication with possible matrices) 2005-12-09 Hanna Knutsson * Fix isolate x with "x^2 > -5" and similar * Do not calculate y in "x && y" and "x || y" if x is false or true, respectively 2005-12-08 Hanna Knutsson * New assumption type "non-matrix" for unknowns with commutative multiplication * Finish isolate x / solve changes 2005-12-06 Hanna Knutsson * Isolate x and solve fixes * Fix matrix multiplication 2005-12-04 Hanna Knutsson * Isolate x updates * Put AND within OR (to get nicer inequalities) 2005-12-03 Hanna Knutsson * Isolate x using AND and OR instead of vector * Enhanced inequalities handling in isolate x * Simplify AND and OR with comparisons (ex x < 5 && x < 3 = x < 3) * Display "x < 3 && x > 1" as "1 < x < 3" 2005-12-01 Hanna Knutsson * Incorporate ginac sqrfree updates between version 1.2.3 and 1.3.3 * Assorted fixes 2005-11-30 Hanna Knutsson * Only treat e as E if preceded by number * Do not test float number for infinite series * Check factorized numerators and denominators for negative powers 2005-11-29 Hanna Knutsson * Parse -x/y as (-x)/y instead of -(x/y) * Print multiplication in negation with parentheses when excessive parentheses is on * Do not display (x)(y)^z with multiplication sign * Sort x^2*y^3 + 10xy - 3x + 8 instead of x^2*y^3 - 3x + 10xy + 8 2005-11-28 Hanna Knutsson * Updated function arguments parsing ignoring space after function name and not stopping parsing of single argument without parentheses until space or right parenthesis without corresponding left parenthesis * Be more strict with 0/x if x is not non-zero * Fix 1E-1 = 1e-1 * Calculate as float when 1.0001 > base < 0.9999 and exponent is greater than 10000 or less than -10000 2005-11-27 Hanna Knutsson * Unknown variable with sign non-negative or non-positive represents real number * Update assumption type after setting sign and vice versa * Assume again when dividing that units do not convert to zero * "Einstein per Meter per Second" => "Einstein per Meter Squared per Second" 2005-11-26 Hanna Knutsson * Be more restrictive with unknown variables/symbols with unknown type (might be unit or vector) 2005-11-25 Hanna Knutsson * Update qalc with new factorization and some more * Option for qalc to read commands from a file first * Fix unit comparisons * Fix handling of units with function in relation saved in approximate variable 2005-11-24 Hanna Knutsson * Sort out some power transformations 2005-11-23 Hanna Knutsson * More fixes (I'm not very good at keeping track of them) 2005-11-22 Hanna Knutsson * Preserve factorization print option (for (3/4*(x+1))/(y+1)) 2005-11-21 Hanna Knutsson * Lots of evaluation and factorization fixes * Pass parent to some functions so the reference can be replaced for the whole child * New MathStructure sorting algorithm using the fact that the structure usually already is well sorted, reducing the time to factorize (x+y)^50 to a third 2005-11-19 Hanna Knutsson * Add rational polynomial parameter to arguments * Add rational number parameter to number arguments * Add polynomial functions -- coeff(), lcoeff(), pcontent(), degree(), etc. * Fix lcoefficient (confused by l in ldegree mening low and l in coefficient leading) * A more efficient differentiate function for sqrfree 2005-11-18 Hanna Knutsson * Fixes * Determinant from GiNaC * Only use the new inverse function for numeric matrices 2005-11-17 Hanna Knutsson * "borrow" sqrfree factorization and related functions from GiNaC * Make evaluation more efficient (avoid recalculations) 2005-11-10 Hanna Knutsson * MathStructure gcd() and lcm() * New simplification using factorization and factorization combing denominators * Increment library soname number (QALCULATE_CURRENT) 2005-11-07 Hanna Knutsson * Much more efficient determinant calculation * Fix x*y^-1*y^-1+x*y^-1 * Fix cases when (x-1)^-1*(x-1)^-1 not returned (x-1)^-2 * Much more efficient inverse matrix calculation 2005-11-06 Hanna Knutsson * Use quotient rule in differentation to possible get simpler results then if always using the product rule * Fix fetching of exchange rates with gnome-vfs < 2.10 * Fix display of fractions in fractional mode "Decimal (Try Exact)" * Differentiation fixes * Do unicode stuff correctly (a sequence of unicode characters was sometimes counted as one) 2005-11-05 Hanna Knutsson * Fix (x+1)/x (= 1 + 1/x) * Simplification by combining divisions * Reversed polynomial division (ex. (x+1)/(x^2+2x+1) = 1/(x+1)) 2005-11-04 Hanna Knutsson * Compile without warnings with -pedantic and -Wextra 2005-11-03 Hanna Knutsson * Fix simplification of (ax^b+cx^d)/x * Fix (xy/z)+1/z * Fix suggested multiplication sign before and after power 2005-11-02 Hanna Knutsson * More parse polishing * Fix for cln-1.1.10 and remove all "obfuscating" cln operators * Builtin function's represents...() was not used because of missing const in declaration 2005-10-31 Hanna Knutsson * Cleaner parsing (same result but looks nicer) 2005-10-30 Hanna Knutsson * Add metre/metres for meter/meters * nounit() function 2005-10-29 Hanna Knutsson * Fix Kibit interpretation (was kibitonne, is now kibibit) and similar * Update setting of parsed structure and to expression in calculate function * Update qalc 2005-10-28 Hanna Knutsson * Option to reduce transformation when parsing and print formating * Support for binary and other prefixes * Information units (bit, byte, etc.) and binary prefixes * Neper and Bel units 2005-10-26 Hanna Knutsson * Update Swedish translation * light_year => lightyear * Fix unended function information when optional arguments 2005-10-22 Hanna Knutsson * Add SIGN_SMALLCIRCLE and SIGN_MULTIBULLET to utf8_pos_is_valid_in_name to fix completion 2005-10-21 Hanna Knutsson * Lots of new units 2005-10-20 Hanna Knutsson * Only give "Error in unit expression" message on errors in CompositeUnit parsing * Do not accumulate the error count between levels for temporary stop messages 2005-10-19 Hanna Knutsson * Add arguments past max arguments to unended_function 2005-10-18 Hanna Knutsson * Put seperation of unit expression to string in calculate function in a separate function * Add stopped warnings count 2005-10-17 Hanna Knutsson * Print option to hide underscores (if not for suffix) in names * Adjust precision of constants 2005-10-16 Hanna Knutsson * Add unended_function to parse_options and put unended function there when parsing 2005-10-15 Hanna Knutsson * mmHg unit * Ideal Gas Constant 2005-10-13 Hanna Knutsson * Fortnight unit * More composite units for convenience * Foot-Candle unit * Fix conversion footcandle <-> lux * Einstein unit 2005-10-11 Hanna Knutsson * More composite units for convenience (km, mm, ml, km/h, etc.) 2005-10-08 Hanna Knutsson * Move currency definitions to currencies.xml * Functions for loading sepearate global definitions files * Create angle units if not loaded from definitions files 2005-10-05 Hanna Knutsson * Do not create qalculate symlink to qalc (confusing when installing GUI in other location) * Use gnomevfs-copy instead of wget if available * Allow user to specify wget arguments * Update currencies 2005-09-21 Hanna Knutsson * mph and mpg units 2005-08-21 Hanna Knutsson * Fix (1/2)^n < 0.5 * Fix replacement of unicode signs when skipping quotes * Fix 0 oC to oF (0*unit != 0) 2005-06-11 Hanna Knutsson * Remove requirement glib-2.0 >= 2.4 and require libxml2 >= 2.3.8 * Do not let << take precedence over >> read from left to right 2005-06-10 Hanna Knutsson * Do not use unicode prefix names for long names * xor() and bitxor() is NOT algebra * Add even() and odd() functions * shift() function and operators ("<<" and ">>") * Add functins for getting exchange rates url and file name to allow interface to do the downloading themselves 2005-06-09 Hanna Knutsson * Support for "e" instead of "E" in result 2005-06-07 Hanna Knutsson * SIGN_POWER_1, ... => "^(1)", ... instead of "^1", ... 2005-06-06 Hanna Knutsson * Update Swedish translation 2005-06-05 Hanna Knutsson * Reminder => Remainder * Reminder (mod) => Modulus * Bitwise NOT (~) * xor() and bitXor() * Clean up expression such (x && y) > 0 * Update currencies (more added) * Warn the use that objects with '~' in name will be lost * Keep loading/saving after error * Do not crash when saving data sets (initialize cat_i_prev) * Do not load nameless objects 2005-06-02 Hanna Knutsson * Bitwise AND (&), OR (|), XOR * Remove old giac stuff 2005-06-01 Hanna Knutsson * Non-static getElement() function * Initialize saved_locale before use 2005-05-15 Hanna Knutsson * Max values seem to have been lost a long time ago -- add them again 2005-05-07 Hanna Knutsson * Initialize ids_i * Fix documentation typos * Fix includes.h for gcc-4.0 2005-03-06 Hanna Knutsson * 5e2 = 5E2 = 500 and 5e = 5*e 2005-02-08 Hanna Knutsson * Update solve2() 2005-02-06 Hanna Knutsson * Dialog with buttons works in gtk+-2.6.2 * Do not look at function arguments in contains... functions 2005-02-02 Hanna Knutsson * Update integration and differentiation (sin(x) != sin(x)*rad) after change in sin() and cos() behaviour 2005-01-25 Hanna Knutsson * Fix RPN crash and don't add lonely stack value to itself * Workaround freeze with message dialog without buttons 2005-01-24 Hanna Knutsson * Use the last operator for leftover stack values 2004-11-30 Hanna Knutsson * Show base (if not decimal, hexadecimal or non-standard) as subscript 2004-11-26 Hanna Knutsson * Fix "Convert result" button * Use singular instead of abbreviated name for completion 2004-11-21 Hanna Knutsson * Fix draw unit * Add alternative multiplication dot signs * Enhance preferences safety 2004-11-16 Hanna Knutsson * Check if unicode characters can be displayed 2004-11-10 Hanna Knutsson * Revert back somewhat to the old behaviour of not rounding exact numbers not in exponential format 2004-10-25 Hanna Knutsson * Generate vector function 2004-10-24 Hanna Knutsson * Rearrange plot dialog * Do not update plot data when not changed * Make x variable separate for each plot function 2004-10-22 Hanna Knutsson * Fix angle arguments by adding option default angle unit none where angle units must be specified * Represents... for some functions * Some tweaks 2004-10-21 Hanna Knutsson * Fix 0.5! 2004-10-20 Hanna Knutsson * Fix comparison of unit with unknown * Try with assumptions set to unknown in solve function if not successful 2004-10-19 Hanna Knutsson * Fix when size_t not is unsigned int 2004-10-17 Hanna Knutsson * Disable plural forms not at the end of text strings (metersqrt(5) = meter * sqrt(5) instead of meters * qrt(5)) * Replace new lines with in definition xml files until we have a better solution 2004-10-14 Hanna Knutsson * Speed-up csum when component(i, "v") is used * Give messages in the right order (reversed) * Update obsolete plot documentation * Clean up parsing * Add limit implicit multiplication mode * Fix unit conversion * Fix m*s -> 1 m*s 2004-10-13 Hanna Knutsson * More speed-ups 2004-10-12 Hanna Knutsson * Limit qalc history to 100 entries * Increase qalculate-gtk history to 25 entries * Store children i math structures as pointers to reduce copying of large vectors 2004-10-11 Hanna Knutsson * Help buttons in variable edit, unit edit, function edit and plot dialogs * Make definitions loading more than twice as fast * -set command line option for qalc 2004-10-10 Hanna Knutsson * defs2doc program for generation of definition list in help * Make help book and add appendix for lists of functions, variables and units * Fix broken CVS 2004-10-09 Hanna Knutsson * promille -> permille * Permille sign * permyriad * Fix atan() ignoring angle unit * Add exact value for atan(1) = 1/4 pi and atan(-1) = -1/4 pi 2004-10-08 Hanna Knutsson * Install headers * Added pkgconfig file libqalculate.pc * Remove inclusion of config.h in installed headers * Include library headers with * Rename src/calclib src/libqalculate 2004-10-07 Hanna Knutsson * Update exchange rates command in qalc * Update Swedish translation * Add last set options to qalc * Allow user to type - when unicode signs is disabled * Division sign selection * Use selected multiplication and division sign in text printing 2004-10-06 Hanna Knutsson * Fix qalc Ctrl+D crash (exit when read line is NULL) * Do not require two tabs to show completion list * Do not show all output directly if terminal is too small * Split out localization of definitions into po-defs * Add full support for non-utf8 local characters in qalc * Various qalc tweaks 2004-10-05 Hanna Knutsson * Fix equalsIgnoreCase() for unicode chars and make more efficient * Make qalc case insensitive and add extend localization * Change package name to qalculate 2004-10-04 Hanna Knutsson * Use readline for qalc * Change class Function to MathFunction * Only use plural name when short multiplication * qalc completion * Autoconf updates -- make compilation of qalc and qalculate-gtk optional as well as readline * qalc save variable, set assumptions, and more 2004-10-03 Hanna Knutsson * Ask if exchange rates shall be downloaded the first qalculate run * Number base 1 makes no sense * More work on qalc 2004-10-02 Hanna Knutsson * Change n for micro to u * Command line program "qalc" * Get rid of traces of separate angle unit variable 2004-10-01 Hanna Knutsson * Add filter to save result to image file dialog * Install libqalculate as a shared library 2004-09-30 Hanna Knutsson * Alternative to use step size instead of sampling rate for generation of plot data * Big approximate and precision check and fix * Message about the limited functionality of the gamma function 2004-09-29 Hanna Knutsson * Gamma for rational numbers with denominator 2 * Double and multi factorials * Tweak parsing of !-factorials * Modify CLN error message * hyperfactorial() and superfactorial() * Make factorials more efficient by using CLN numbers directly 2004-09-28 Hanna Knutsson * Allow arguments to only be used in sub functions * Remove countArgOccurence() as it is not needed any more * Drop support for gtk+ < 2.4 * Fix large integers displayed inexact was reported as exact * Stop gamma() if argument is not an integer * Read precision from zero with decimals (0.000...) * Set precision from function and its arguments after function calculation 2004-09-27 Hanna Knutsson * "Inverse" -> "Matrix Inverse" * Fix isolate_x() when comparison type is not equals * Make plot non-numerical error more informative and include non-reals * No use to have if() arguments as text, as they now only are parsed initially * Fix trimmean() and winsormean() * Localize "timed out" * Version 0.6.4 2004-09-26 Hanna Knutsson * Fix selection of variable to solve * New solve2() function * New multisolve() function * Do not add modified data object once more * Do not check against new data objects for duplicates * Get a default name for new vector/matrix just as with other known variables * Display error when plot data contains non-numerical values * Show function condition in function description * Update Swedish translation * We need to sort fully recursively before merging factors in factorize() * Fix factorization with duplicate factor with a in (ax+b) greater than one * Add new expression to expression history after set unknowns * Use g_find_program_in_path() to check if gnuplot and wget is available to avoid terminal output 2004-09-25 Hanna Knutsson * unitedit_glade was used in variable dialogs * Use factorization in isolate_x() * Improve isolate_x() * Check if terms is equal (or a = -b) with the current precision in subtract and add to be able to find very small numbers that really are zero * isolate_x() fixes * Preserve evaluation options through factorization 2004-09-24 Hanna Knutsson * Include both "liter" and "litre" to avoid confusion * Add "tonne" for metric ton * Prefer keeping the original unit if equally good when converting to best unit * Merge infinite numbers with somewhat known structures * Be a bit more strict with undefined values * Ohm and farad are SI units 2004-09-23 Hanna Knutsson * Increase space after imaginary i by 1 * Fix never ending loop in getBestPrefix() * Fix (2x)/(5(yz)) --> (2x)/(5yz) * Take into account place_units_separately in improve_division_multipliers() * Increase space at end of parenthesis by 1 * Change components() to dimension() * Set correl() as a different name for pearson() instead of a separate function * Check that the dimension of vectors is equal in pearson() and spearman() * Test if polynomial division reduces the size of the expression * Stop after editing data set from edit function function * Tweak data set info printing removing tabs * Save Image -> Save Image... 2004-09-22 Hanna Knutsson * Fix data object edit option menu * Do not show error when global data file cannot be loaded for local data set * Update data property list also when the data set is new * Fix setting data set function name * Set default argument names for data set when entries are empty * Do not delete original property and add new -- set original with new to not invalidate references in objects * Position progress dialog center parent, and set unknowns and convert to unit expression under mouse * Once again, fix prefix selection when prefix is first before/after zero 2004-09-21 Hanna Knutsson * Rational factorization of higher degree polynomials 2004-09-20 Hanna Knutsson * Some result display tweaks * Update function titles and argument names * Update Swedish translation * Update documentation * Print quotation marks for symbolic structures when not allow unusable * Display e*e^x with multiplication sign 2004-09-19 Hanna Knutsson * Full factorization of quadratic polynomials * Transform sqrt(8) to 2*sqrt(2) (and similar) in exact mode * Fix xy-xy=xy !!! * Fix repeated apply in unknowns dialog 2004-09-18 Hanna Knutsson * Updated result sorting * (-x-y)/z --> -(x+y)/z 2004-09-17 Hanna Knutsson * Set unknowns dialog * More refined selection of popup menu items to show * Polynomial division * More reliable internal sorting 2004-09-16 Hanna Knutsson * Extensive enhancements of symbolic division * Alternative to assume that unknown denominators are non-zero 2004-09-12 Hanna Knutsson * Ex. 1/(x+10)=5, test if x+10 is zero after solve 2004-09-11 Hanna Knutsson * Evaluation options was not always preserved when converting to best units * Display x^(5/2) as x^2*sqrt(x) 2004-09-10 Hanna Knutsson * Internal sorting fixes * Update documentation * Update Swedish translation * Use displayed name when sorting 2004-09-09 Hanna Knutsson * Make factorization more functional 2004-09-08 Hanna Knutsson * Integration fixes * Use representsNonZero() for arguments that must be non-zero 2004-09-07 Hanna Knutsson * "times", "plus", "minus", "per", "AND", "OR" 2004-09-06 Hanna Knutsson * Finish GUI and user modifications for data sets 2004-09-01 Hanna Knutsson * rm -f qalculate; $(LN_S) qalculate-gtk qalculate 2004-08-28 Hanna Knutsson * Edit and save data objects * Finish system property of units * Clean up some left over plural and singular stuff * Add unit system to edit GUI 2004-08-26 Hanna Knutsson * Planets data set * Day and Julian Year * Fix set icon * Do not always make Calculator message window transient for main window * Save and load accel map 2004-08-25 Hanna Knutsson * data collection -> data set * Complete data set GUI 2004-08-24 Hanna Knutsson * Complete most of the data collection stuff * Move elements to data collection format 2004-08-23 Hanna Knutsson * Fix diff() with variables and functions that contains x * Simple integration 2004-08-22 Hanna Knutsson * ans2, ans3, ans4 and ans5 * google/googleplex -> googol/googolplex * thousand and hundred * Reduce min result area height * Put angle mode in evalution options * Status text * Save to image * Initial work on data collection concept 2004-08-20 Hanna Knutsson * Fix RPN mode * include errno.h 2004-08-16 Hanna Knutsson * Remove giac arguments * Update documentation 2004-08-15 Hanna Knutsson * Fix prefix selection when first positive/negative exponent prefix * No prefix in result prefix menu * Only left parenthesis where added around vector! * Make the title for mils more descriptive * FIx matrix multiplication 2004-08-14 Hanna Knutsson * Make no comparison to solve error message more informative * Do not factorize if factor is not non-zero * Fix prefix selection with negative exponent prefixes * Fix prefix selection with denominator prefix enabled 2004-08-13 Hanna Knutsson * Fix concatenate() * Add localized full name to ans variable * Make sure that completion pops down when going back in history * Set minimum arguments to 1 for mergevectors() 2004-08-12 Hanna Knutsson * Fix derangements() which was broken due to changed interpretation of -1^x * CALCULATOR->u_rad was null * True and False variables * "yes" -> "Yes" and "no" -> "No" * Localize "True" and "False" radio buttons * Add *.xml.in files to the dist tar sources * Complete exp1 in "2+5exp1" * Add undefined variable * Fix ids in text arguments when function is used in other function (fixes distribution functions) * Show classification in atom() dialog 2004-08-11 Hanna Knutsson * Remove double decimal points * Nicer unit printing * Warn in name edit dialog if name is used * Update documentation * Use gtk-paste instead of gtk-go-forward icon for insert * Properties dialog for atoms in periodic table * Respect max decimals with show ending zeroes * Fix precision typos which made objects with undefined precision approximate * Make element properties selectable * Paste function instead of value of element property * Display classification in element dialog * Unformat parsed function expression * Make sure that no unwanted prefixes are left when function expression has been parsed * BMI (Body Mass index) function added (just to prove that Qalculate! is more than a scientific calculator) 2004-08-10 Hanna Knutsson * Reduce number of element properties for now and verify * Periodic table * Update Swedish translation 2004-08-09 Hanna Knutsson * Do not be backwards compatible for definitions saved with the current version * Update Swedish translation * Where there is approximate there shall also be precision * More physical constants * Fix formatting of x/unit * Add atomic mass unit, u * Add si again * Elements! * Ignore initial zeroes for precision 2004-08-08 Hanna Knutsson * Finish names GUI * Finish new number precision system * Menu item for read precision * Option to show ending decimals (to see actual precision) * Fix parsing of numbers with base < 10 and decimal point 2004-08-07 Hanna Knutsson * Initial work on GUI for new name system * Treat whole ending number as suffix (for log10) 2004-08-06 Hanna Knutsson * More work on name system * Remove quarter unit * Regenerate definition files * Remove duplicate names 2004-08-05 Hanna Knutsson * Do not prefix currencies in all locales 2004-08-04 Hanna Knutsson * New system for variable, unit and function names * Solve quadratic equations 2004-07-31 Hanna Knutsson * System property for units ("si" value only used for now) * Optional automatic conversion to best or base units * Update version number in global definition files * Add CGS units 2004-07-30 Hanna Knutsson * Mark SI units * Convert to best unit now only converts to SI units * Mass Fraction (kg/kg) * Fix insert and edit composite unit 2004-07-29 Hanna Knutsson * Electron Volt is approximate 2004-07-21 Hanna Knutsson * Fix arg() * ...and disable it as it does not work correctly * Fix i being display multiple times 2004-07-20 Hanna Knutsson * Focus tweaks 2004-07-19 Hanna Knutsson * -5^2 = (-5)^2 -> = -(5^2) * Beautify 2 * -1 * Fix not 2004-07-18 Hanna Knutsson * Show if precalculation display is approximate * Show if approximate conversion in units manager * Enable unicode signs in from-unit label * Deillion -> Decillion * Refine when to update result and display of result * Ability to disable complex results * Ability to disable infinite results 2004-07-17 Hanna Knutsson * Update variable lists in GUI after save function has been called * Do not let the user type any braces in the expression entry * Select added plot series and let enter in plot expression entry modify selected (if any selected) * Fix rad unit being dropped in unsolved sin/cos function * Fix plus/minus before id * Show precalculation result in history view 2004-07-16 Hanna Knutsson * Oops! operators does not include parenthesis * Use unicode operators in text printing * base == 10 -> base >= 2 && base <= 10 (in parsing) * Refine CSV export dialog * Sort out some getActive... vs get... * Fix too many arguments warning * Increase function parsing efficiency (decrease number of MathStructure copies) * Produce vector imediately on parse * Export button in variables dialog * Split number base expression and export csv dialogs from main.glade * Remove lines * Update Swedish translation * Update documentation * Fix nameTaken() * Fix overwriting variable * Remove deleted items from recent units/variables/functions * Do not try to insert deleted variable 2004-07-15 Hanna Knutsson * More work on base in parse options * Fix E in rpn mode * Parsing tweaking * GUI for number base in expression 2004-07-14 Hanna Knutsson * Alternative to round halfway integers to even (instead of upwards) * Make qalculate symlink from qalculate-gtk * Fix addColumns() and import of CSV file to matrix * Export to CSV file * if, function, error, warning, load, save and title functions were not activated (oops!) * Let argument definitions parse default values * Do not parse ! as factorial if functions is disabled * Ability to set number base for expression parsing * Allow full expressions in base functions 2004-07-13 Hanna Knutsson * Ability to set all number bases from 2 to 36 from GUI * Documentation updates * Alternative to use lower case letters in numbers * Fix double decimal point with integers * Fix decimal reduction rounding * Fix precision rounding * Fix approximate indication with multiple numbers * Fix printing of empty vector 2004-07-12 Hanna Knutsson * Update documentation * Force use of -O2 instead of -Os * Revert back to a^b^c = a^(b^z) (I don't remember changing it) * Unknowns disabled by default * Copy subfunctions * GUI for subfunctions 2004-07-11 Hanna Knutsson * Do not segfault on exit * Fix compilation warnings 2004-07-10 Hanna Knutsson * Do not try to fetch exchange rates everytime they are missing * Set fetch timeout to 5 seconds on first run * Inform user that we are trying to fetch exchange rates * Update fetch exchange rates at startup in preferences dialog 2004-07-05 Hanna Knutsson * Follow ISO 8601 standard for week numbers (glib doesn't) * Sort out approximation with rounding 2004-07-03 Hanna Knutsson * Fix input of numbers in bases > 10 * Is approximate? fixes * usleep() is obsolete. use nanosleep() instead * Terminate threads before exit * Include unistd.h in main.cc for pipes 2004-06-24 Hanna Knutsson * definitions -> subfunctions * save subfunctions * Function::countSubfunctions() * Fix for() * Fix creation of vectors with zero or one component * Pass parse options to function parsing * Variables might contain functions * Fix approximate integer printing * Fix try exact 2004-06-23 Hanna Knutsson * Release v. 0.6 * Do not create a new thread for every calculation and printing 2004-06-21 Hanna Knutsson * ... 2004-06-18 Hanna Knutsson * Continue converting to new internal structures 2004-06-14 Hanna Knutsson * Continue converting to new internal structures 2004-05-25 Hanna Knutsson * Converting to new internal structures 2004-05-12 Hanna Knutsson * New internal structures (Manager -> MathStructure) 2004-04-05 Hanna Knutsson * Find linear function * Do not automatically recalculate on precision spinbutton update and add recalculate button to avoid annoying problems * More multiple root updates * Do not just clear the window, clear the pixbuf too * MatrixArgument->type should not return TEXT_ARGUMENT * Multiple roots updates 2004-04-04 Hanna Knutsson * Put in some restrictions and enable multiple roots * Disable multiple roots * Remove 0 == any number from Manager->equals * try x^(y+z) = x^y*x^z and x^(yz) = x^y^z 2004-04-03 Hanna Knutsson * Capitulate in search for exact as long as possible to fix alternatives * Recalculate directly on angle unit change * Enable multiple roots again * Do not ignore unsolvable comparison * Remove imaginary or real part present because of approximate floating point numbers * Do not display errors for arguments in exact precalculation * Do not display extra trailing zeros * Make comparison between floats in lower precision (but not less than user defined precision) * Fix printing of toplevel negative complex number * Return -(x^(1/3)) for (-x)^(1/3) 2004-04-02 Hanna Knutsson * Remove integrate parts that does not work * Do not crash on i^4 * Disable broken multiple roots 2004-04-01 Hanna Knutsson * Hyperbolic and inverse does not take angle arguments * Fix raise by matrix * Fix raise by alternatives * Fix drawing of function 2004-03-31 Hanna Knutsson * More solve work * Fix sorting of alternatives * Fix wrong add alternatives to alternatives logic * Clean after multiplication raise... (serious bug) * Quadratic equations * Non-giac solve function and automatic "solving" of comparisons * Better comparison equals printing * Minimal non-giac integrate function 2004-03-30 Hanna Knutsson * Finance -> Economics/Finance * Demand Elasticity function * Fix that all arguments wanted text after function editing * Free temporary composite units * Fix sin(x)/tan(x) * No (+ -) in printing with complex numbers * Fix sorting of complex numbers 2004-03-29 Hanna Knutsson * Release v. 0.5 * More extensive, verbose and fault-tolerant roman input 2004-03-28 Hanna Knutsson * Set exact button for edit variable * Fix diff() with power without x * Fix compilation with gtk+ < 2.3 * Do not crash on abort sum() (memory leak is better) * Change line width instead of drawing multiple lines * Use barckets instead of parenthesis when drawing matrix * Use commas for vector drawing * Fix matrix text printing 2004-03-27 Hanna Knutsson * Do not let user disable loading of global definitions * Do not raise if makes approximate in exact mode * Cleanup unused functions * Fix hypotenuse and make non-builtin * Automatically act on "calculate variables" * Set e as default second argument in log() 2004-03-26 Hanna Knutsson * time() * week(), weekday(), year(), month(), day() * Allow "today" for dates * Use both localized and non-localized "to" * Sexagesimal number display * Fix prefixes with simple display format * Sexagesimal number input * (2 > 0) + (2 > 0) = 2 * (2 > 0) * Polynomial division refinements 2004-03-25 Hanna Knutsson * Roman numerals * Polynomial division 2004-03-24 Hanna Knutsson * Fix printing of complex numbers with negative imaginary part and no real part * re() and im() * Fix unit conversion * Imperial and U.S. capacity units * Fix nested product() and sum() * Correct treatment of (), "", '', and {} in text argument 2004-03-23 Hanna Knutsson * Symbols for sum, product and ohm * derangements() * sum() and product() corresponding to the signs * sum() -> total() * Reorganisation of function categories 2004-03-22 Hanna Knutsson * Complete convert to best unit 2004-03-21 Hanna Knutsson * Make result context menu context sensitive * Protect intValue and longIntValue against overflow * Fix printing of exponent 1E... * Convert to best unit (beginning) * Convert to base units 2004-03-20 Hanna Knutsson * Define sin and cos as expressions * e^(i*pi) = -1 ... * ln -1 = i*pi, ln i = i*pi/2, ln -i = -i*pi/2 * permanent() * Print short currency unit before value * Factorize independent of giac * Make my own derive function default 2004-03-19 Hanna Knutsson * asec, acsc, acot, sech, csch, coth, asech, acsch, acoth * cis * As we now have complex number, define inverse trigonometric functions as expressions * sec, csc, cot * "CAS" -> "Calculus" * Update my own derive function and enable it if giac is not used * Fix ln() argument so that e can pass through 2004-03-18 Hanna Knutsson * Show error when custom condition is not met * area, ascii and char functions * Limits function should accept negative numbers for end. Fixes trimmed, weighted and winsorized mean. * Nicer text printing of matrices and vectors 2004-03-17 Hanna Knutsson * Save size of history dialog * Show a nice little help message the first time Qalculate! is started * Update Swedish translation * "quaert" -> "quart" * Do not insert parenthesis when completing if they already are there * New error message when matrix has no inverse * Make abort messages localized and nicer * Limit width of result display text * Use transparent pixbuf for result to not look ugly with pixmap themes * Support newer Giac versions 2004-03-16 Hanna Knutsson * Serious try to fix the localized decimal point and comma once and for all * Use [] for vectors and matrices * Use Page Up and Page Down for expression history instead to allow completion to use Up and Down keys * huh! do not sort functions. * "European 30/365" -> "European 30/360" * Fix date calculations * Add "allow_complex" property for number arguments * Fix abs (for complex numbers) 2004-03-15 Hanna Knutsson * Handle CLN errors better * Font selection for expression entry * Replace Fraction and Integer with new Number class 2004-03-12 Hanna Knutsson * Set selected font in custom font dialog * Save time by first destroying completion then updating list then creating new completion on update * Do not crash when updating completion after new variable * Bring up user interface as soon as possible * Make completion block work * Move recent objects to to the top of object menus * "buttons" -> "keypad" * Completion finished * Ugly fix to not complete on completed * Add units to completion if not composite * Use g_utf8_next_char and g_utf8_prev_char 2004-03-11 Hanna Knutsson * Advanced completion in expression * Popup menu for resultview 2004-03-10 Hanna Knutsson * Lower default precision * Make history button a regular button * Reworked GUI -- menubar, expander, history window... * Release 0.4.2a * Set correct name on separator again * Fix some compiler warnings * Fix compilation without Giac 2004-03-08 Hanna Knutsson * Release 0.4.2 * Proofread manual * Allow currencies to be put in front of quantity * Cent, yen, pound and dollar signs * Remove debug output related to Giac * Fix some troubles printing complex numbers 2004-03-07 Hanna Knutsson * Update Swedish translation * First manual draft finished * Remove compiler warnings 2004-03-06 Hanna Knutsson * Gnuplot does not like quotation signs * Do not abort when locale not supported by C library 2004-03-05 Hanna Knutsson * Fix unit conversion of ex. ch^2 to acre * Some menu fixes * More user documentation 2004-03-04 Hanna Knutsson * Move calculate multiple roots option to result menu * Move unit display options to a unit display submenu * Begin writing the manual * Add help menu item if libgnome is available * Add build structure for gnome style user documentation 2004-03-03 Hanna Knutsson * Fix exponential display in non-fractional mode with negative exponents * Fix big mistake in log (if negative exact result, returned zero) * Use "tab" for tab ("\t") a separator in load 2004-03-01 Hanna Knutsson * Load CSV file as matrix function (load) * File argument * Replace localized decimal point with dot in plot data * Save history (20 rows) * Expression entry history * "Save Result" -> "Store Result" 2004-02-28 Hanna Knutsson * Calculate command line expression 2004-02-26 Hanna Knutsson * Release 0.4.1 * Fix parsing of text arguments * Replace strptime with g_date_set_parse 2004-02-24 Hanna Knutsson * Destroy widgets after autoconnect 2004-02-19 Hanna Knutsson * Use the new file chooser * "Select file to import" --> "Select file to export" 2004-02-18 Hanna Knutsson * Release 0.4 * Fix tanh 2004-02-15 Hanna Knutsson * Reenable checks for arguments that results in infinity * Fix comparison with complex numbers (not solvable) 2004-02-12 Hanna Knutsson * Add giac functions in functions.xml 2004-02-11 Hanna Knutsson * Fix binomial arguments * Update Swedish translation 2004-02-10 Hanna Knutsson * Remove PACKAGE and VERSION warnings with giac * Permutations and combinations 2004-02-09 Hanna Knutsson * Start even if gnuplot is not present 2004-02-08 Hanna Knutsson * Complex numbers: log, pow, root 2004-02-07 Hanna Knutsson * Filter out all duplicate errors * Fix compilation without giac * Forward: "Copy Result" menu item * Forward: Correctly calculate divison by root with multiple solutions. * Forward: Remove unused non-portable function. 2003-11-02 Hanna Knutsson * Complex numbers... * Complex number printing * Use Newton's Binomial Formula for raised addition manager * Binomial function * Manager::set(const Integer*) * Start work on complex numbers 2003-10-30 Hanna Knutsson * Show argument names when too few arguments * Really no need to have exp, exp2 and exp10 as builtins * Log tweaks * More trigonometric tweaks * Giac might actually return -1*1 (we prefer -1) * Catch giac errors * Define tan, asinh, acosh, atanh as sin(x)/cos(x), log(x+sqrt(x^2+1)), ... * Handle pi correctly in trigonometric functions * Delay calculation of inexact values * New variable manager 2003-10-29 Hanna Knutsson * Giac function * Factorize in result menu * New functions: diff, integrate, solve * Giac support * Do not crash when printing a manager with matrix 2003-10-27 Hanna Knutsson * Release Qalculate-GTK version 0.3.1 * Left over missing setPrecise() in builtin functions * Fix printing of function manager * Fix display of only number in numerator * Parenthesis adjustments * Update swedish translation * More extensive error handling for misplaced operators * Replace "**" with "^" * Fix parenthesis in Manager::print() * Recreated Manager::print() from gtk drawing function * Optional prefix for denominator * Reworked composite unit printing * Reworked prefix handling * Reworked drawing of MULTIPLICATION_MANAGER * Fix loadLocalDefinitions() * Year and Century units * Fix parsec, light year, astronomical unit, and torr * Plural fixes * Draw unit names with "_" replaced by space 2003-10-24 Hanna Knutsson * Compability fixes for Unit.cc * change strold to strol in HEX() * remove ld2s() * provide another workaround for strptime * some warnings left * remove llpow() as it only creates problems * __USE_XOPEN for strptime * Replace insert(0, 1, ...) with insert(begin(), 1, ...) * Fix ALL warnings * Ignore blanks in BIN(), OCT(), HEX(), BASE() * Fix number bases dialog 2003-10-23 Hanna Knutsson * Do not use scandir as Solaris does not support it * Access hash_map header properly * Update POTFILES.in for new glade files * Remove #include from Calculator.h 2003-10-22 Hanna Knutsson * Split up glade file * minute -> min * Now function can have the same name as a unit or variable, but units and variables cannot have the same name 2003-10-21 Hanna Knutsson * Release Qalculate-GTK version 0.3 * Disable convert in units dialog when no unit selected * Revert fractional button to use combined fractional display, but treat it as normal fractional display for regular text * Draw parenthesis around not alone manager (not power) with childs in denominator * Add a bit more space behind italic text to not cut tall chars off * More drawing fixes 2003-10-20 Hanna Knutsson * Include all bytes in unicode char for unknown variables in setFunctionsAndVariables() * Fix Manager->print(), and as below * Display x^-y as 1/x^y in non-scientific mode * Draw multiplication manager fixes * Put menus before items * More TODO * Also add icon.xpm * Add qalculate.h to Makefile.am to get it included in dist * Accel fixes and additions * Move "convert number basis" to the other menu * Reorder some buttons to follow HIG * Make convert unit dialog non-modal 2003-10-19 Hanna Knutsson * Display ^0.5 as square root * Fix display of ugly -x^-0.5 (still ugly but no duplicate ones and spaces) * Stop display errors a bit more... 2003-10-18 Hanna Knutsson * Do not delete selection on sqrt button clicked but act as with the other functions * Make answer variables a special case which cannot be edited and does not display result in variable dialog * Change "first"/"second" axis to "primary"/"secondary" * Put axis after smooth * Fix rms(), stdev(), stdevp() * Fix error in setFunctionsAndVariables that stopped unknown variables after something was set * Remove CVS version title * Write something in AUTHORS and NEWS * Hidden property in function and unit edit dialogs * Hide some annoying composite units (m/m and m2/m2) * Hide hidden items in menus * New hidden property for ExpressionItem (meant for some composite units and sub functions) 2003-10-17 Hanna Knutsson * Finally implement angle units and allow direct specification of angle unit in trigonometric functions * rem and rad units renamed to rem_radioactivity and rad_radioactivity * Some swedish translation updates * Some tooltip updates * Some TODO updates * Fill in the last argument titles and add some descriptions * Set min arguments to zero if lower (and max to -1) * Argument names and descriptions for matrix and vector functions * Rename title "Power" with "X raised to Y" to solve translation conflict with the category "Power" * Fix 0^0 warning 2003-10-16 Hanna Knutsson * If add argument button is not sensitive, modify argument instead on enter * Fix arguments for process() * Titles for functions and arguments in utilities category * Put buttons in first tab * Default to show buttons * Remove quotes from default values in insert function dialog * Matrix multiplication error message * Better error message for misplaced operators * Updated swedish translation * More argument names * Fix category selection after editing * Argument names for all geometry functions * Do not use "free" for argument == NULL but printlong() of default argument 2003-10-15 Hanna Knutsson * Do not add extra space after matrix in GTK widget * Update rank() and sort() to new comparison that not only allows fractions * Update min() and max() to new comparison that not only allows fractions * Go back to builtin sum() function as sum() is used often and csum() is rather slow * eurocent and cent * Fix yearfrac() for basis = 1 * More TODO * Category "Matrices" -> "Matrices & Vectors", "Financial" -> "Finance" 2003-10-13 Hanna Knutsson * Finally make class variables in Manager protected * setPrecise(fraction()->isPrecise()) after operation directly on Manager::fraction() * Change output of "log" button to log10 * Write more in TODO 2003-10-11 Hanna Knutsson * Update plot on add/modify/remove * Use only one gnuplot process/window and close it on exit * Fix crach on create new variable dialog * Delete the submenus, not the menu item, when updating * Do not update treeviews if not created * Save plot settings * Switch to enums for style and smoothing 2003-10-10 Hanna Knutsson * More plot stuff * Change step to steps * Make that the second tab page is realised * Save plot as postscript, eps, png, svg, fig or latex * Set a nicer font for gnuplot * Plot dialog: tabwidget, paired matrix, save * Plots: logscale, style, separate smoothing for each line, title, grid, color, linewidth, borders * Set timeout for wget and error on fail * Check if wget and gnuplot is available 2003-10-08 Hanna Knutsson * Plot dialog * Lots of plotting stuff * Hide on destroy and delete events for non-modal windows * Place terms with negative sign in the back when not using scientific sorting * Do not display more than one minus * Change compare() in Manager to sortCompare() and add real compare() function * Plot vector * Plotting with gnuplot * Fix crash with no argument definitions and variable number of arguments * Do not recreate currencies, just change the relation 2003-10-07 Hanna Knutsson * Fully enable builtin units * Do not print the same error message more than once * Fetch exchange rates from ECB * Fix crash by removing new line for alternative manager and gettextize the "or" while we are at it * Root functions non-abs * Fix argument check on alternative manager * Remove unnecessary gtk_main_iteration() as they create lots of problems * Do not unref wrong Manager in conversion in units dialog * Fix check of arguments in functions with unlimited number of arguments * Remove (again) prepended "1" for composite units * Fix prefixes 2003-10-06 Hanna Knutsson * Allow disabling of multiple roots * "Recently Used"-menu * Fix rounding of negative numbers * Fix adding ALTERNATIVE_MANAGER to ALTERNATIVE_MANAGER * Change GUI code to allow unrestrained category depth * Load builtin unit definitions even if we have no such * Do not write active and precise attributes when true * Organize definitions files in a category tree structure * Make execute button in insert function dialog non-stock * Change button text to "Insert" * Fix insert function with undefined arguments * Use a frame for description in insert function dialog 2003-10-02 Hanna Knutsson * Use & for & * Fix NOT * Fix signedness function (and comparisons) * Replace "<" with "<" and ">" with ">" * Display NOT_MANAGER * Make it configurable in preferences * Do not use annoying prefixes (hekto, deka, centi, deci) by default * Change unit conversion from printing value to using a value id as was originally intended * Delete string alternative "," when switching locale * #ifdef out fenv.h and floating point exceptions as they are only obstructing portability when using CLN * Cleanup * Warning function * Disable message function for now 2003-10-01 Hanna Knutsson * Updated swedish translation * Do not actually lower the precision below 10 to prohibit overflow * Do not act when setting the initial value of spinbuttons * Precision and decimals dialog need not be modal * Actually load the correct nodes for the locale * New simpler algorithm for reading function arguments, which handles citations correctly * Accept zero length strings * Concatenate and Length functions * Save function 2003-09-30 Hanna Knutsson * Execute expression when updating result display if expression has changed * Do not display more than 1500 digits in result display widget and not more than 500000 digits in history (works for me at least) * Restrict display time in variables dialog * Restrict value length if variables dialog * Delay calculation of variables * Remove signs menu * Try to speed up determinant (not very succeful) 2003-09-29 Hanna Knutsson * A little icon for the window * Update display outside of thread * Do not reverse order when transforming manager * Merge boolean operations into Manager class to enable unsolved operations * Make sure that thread actually is canceled before resuming * Change log to log10 and logn to log * Ignore syntax error function without parentesis are space before argument * New better algorithm for Calculator::setFunctionsAndVariables() * Nicer functions, variables and units dialogs * Show a nice progress dialog * More information (syntax and arguments) in description in functions dialog * Sort categories in edit dialogs 2003-09-27 Hanna Knutsson * Safer threads * Switch unit->name() to short name and add singular to enable translation * Enable xml data translation * Use less attributes in xml * Implement GUI editing of argument rules * Replace empty optional value with default value * Fill in default values in insert function dialog * Add ability to abort long calculations * ...and slow result display 2003-09-25 Hanna Knutsson * New condition for functions which can test the relation between arguments * Error function * Boolean operators * For (loop) function * Fix crash on delete inactive definition in GUI * Definition edit fixes 2003-09-24 Hanna Knutsson * Move defintions to library and PACKAGE_DATA_DIR/qalculate * Place local definitions in ~/.qalculate/definitions and load everything in that directory * XML definitions files * Update function edit dialog to new argument definitions, and turn function expression entry into a textview * Furthering argument definitions: new Argument classes that tests type and value * Fix parenthesis madness and handle missing left parenthesis 2003-09-22 Hanna Knutsson * ExpressionItem::isRegistered() * Once again constants -- new DynamicVariable class that recalculates value when precision has changed * Fix ...E-... * Fix root for negative results * Fix log for negative results * Fix display of ...E... * Fix infinite loop with prefixes <= 10E-1 * Check file format and version of definitions file 2003-09-21 Hanna Knutsson * Fix error message when too many arguments * Change "years_between_dates" to "yearfrac" * Fix day counting basis (hopefully gnumeric has done it right) * More financial functions * Fix mod, rem and frac * Better RPN support 2003-09-20 Hanna Knutsson * RPN Mode * Clean up EqItem.cc * Add variables for constants functions * Load definitions in exact mode * Reset (and restore) mode when loading definitions * Lots of tooltips (too many perhaps?) * Some definitions fixes * Function edit dialog: turn argument entry into a list view and add argument type * Do not locally save global deactivations 2003-09-18 Hanna Knutsson * Big restructuring to fix editing of global definitions, including deactivation of definitions and a new virtual ExpressionItem class * More error messages in matrix functions * Check if matrix operations were successful * Correct bad setPrecise(false) call in matrix * Speed up csum function for large vectors in statistical functions * Fix addition^integer * Fix display of 1/-x * Fix sqrt() * Fix display of fraction with 'E' * Fix display of 5*5^x * Fix detection of long prefixes * Fix 'E' (now we can have it in names) * Type label, spin buttons, date picker etc. in insert function dialog * Argument type 2003-09-15 Hanna Knutsson * Fix insert function dialog * Add scrollbars to table in matrix edit dialog * CSV file import * Lots of statistical functions: range, harmonic mean, geometric mean, trimmed mean, winsorized mean, quadratic mean, quartile, decile, percentile, interquartile range, variance, standard error, mean deviation, pearson, spearman's rho, covariance, correlation, pooled variance, paired t-test, unpaired t-test... * Add limits to custom sum function and allow references to other than current element (x_i-1) * Limits * Clean up base conversion functions * Fix If function 2003-09-11 Hanna Knutsson * Sort function * Buttons to set if precise in variable and unit edit dialogs * Exact mode * Use vectors in max, min, mode and median * Make constants functions for more flexible precision 2003-09-10 Hanna Knutsson * Change behavior of decimals settings * CLN support (requirement for now, in place of GMP) * Disable gnome support in glade file 2003-09-09 Hanna Knutsson * More accurate roots using Newton's Method with the libc function as initial value * Require GMP (it is not a priority right now to fix my own integer implementation) * GUI for edit/create matrix/vector * Remove repaint artifacts * Rank function 2003-09-08 Hanna Knutsson * Pearson Correlation and Spearman's rho (still needs rank function) * Replace hardcoded statistical functions * Utility functions: csum (Custom sum), process (Process vector components) * Vector (\v) in user functions * Function function for immediate creation and execution of a custom function * Indicate infinite sequence of decimals (configurable) * Custom font selection * Vector * Better alignment 2003-09-07 Hanna Knutsson * Use GtkDrawingArea to make result display nicer * More matrix functions: cofactor, adjoint, inverse 2003-09-03 Hanna Knutsson * Matrix functions: determinant (det), identity, transpose, element, columns, rows, matrix * Multiple solutions (4^0.5 = 2 or -2) * More work on matrices 2003-09-02 Hanna Knutsson * Beginning of matrix support * Fix zero division 2003-09-01 Hanna Knutsson * factorial function and ! * frac and int functions * Menu items for fractional representation * Turn "use prefixes" into check menu item 2003-08-31 Hanna Knutsson * Move builtin functions to fraction system * Reactivate display modes, decimals and precision * Use GMP if available in Integer class (much faster) 2003-08-30 Hanna Knutsson * Show if result is exact or not * Arbitrary precision * Move from long double to Fraction 2003-08-24 Hanna Knutsson * Decimal string to fraction * Date functions (for financial functions) * Fixes 2003-08-23 Hanna Knutsson * Localized dot and more 2003-08-22 Hanna Knutsson * Fractions and restructuring 2003-08-20 Hanna Knutsson * CALCULATOR macro (removes Calculator object from all classes) * New Prefix class and new get/add prefix functions; prefixes stored in a sorted vector * New get Function/Variable/Unit(index) functions 2003-08-20 Hanna Knutsson * Fraction button * Fraction Manager * New Fraction class 2003-08-19 Hanna Knutsson * Add title label to insert function dialog * Remove duplicate adding of answer variables, and remove from global definitions file... and gettextize 2003-08-18 Hanna Knutsson * Qalculate! version 0.2 released * Last minute fixes * More unicode * Fix display of exponent of exponent * Put unicode chars on buttons in code and add option to disable unicode signs * Unicode math operators * Save version info to configuration file * Update version number 2003-08-17 Hanna Knutsson * Only put "1 " in front of unit in toplevel * Fix 5*5^m (endless loop in Manager::convert) * Unscientific mode gives inexact result display -- disable for now * Disable installation of old German translation (will enable again after v0.2) * Create en_GB and en_US locales to get that nice square root sign * Do not shrink result label on clear * Do not expand menu buttons * Make functions dialog a bit nicer * Make units dialog a bit nicer * More energy and pressure units * Some constants * Write variables to file with maximum precision * Show variable title in menu and tree * Unit expression conversion fixes * Make operators wrap selection in parenthesis instead of deleting it, thus they operate on the result after execute * Insert ^ directly instead of waiting for another key press. * Fix annoying repositioning of text cursor in n-bases dialog * Update conversion in units dialog after focus out event in entries * Remove empty parenthesis after zero argument functions * Fix disabling of units * Fix unclosed brackets * restrict abs() to numbers * Change Function::name(string), Unit::title(string), etc. to setTitle(), setName() 2003-08-16 Hanna Knutsson * Google style in expression conversion (ex. 5 m to ft = 16.4 ft) * Small unit conversion fix (1 km/1 kg => 1 km/kg). * More units. * Fix loading of alias unit that is defined before its base unit in file * Modify priotrity for calculations so that inexplicit multiplication is calculated before division (2/2(x) = 2/(2*x)) and functions (sin 2x(x) = sin (2x*x), but sin(2x)(x) is still sin(2x)*x) * Some restructuring * Unbreak brokeness from last fix * Move three small dialogs to Glade * Convert button 2003-08-15 Hanna Knutsson * Fix bracket madness breaking unbrackened division (!) * About dialog 2003-08-14 Hanna Knutsson * Fix loading of argument names for builtin functions * Do not add argument names in code for builtin functions, read from definitions file instead * Fix crash when creating new unit * Disable OK button for editing global definitions until structure is sorted out * Beautify dialogs * Functions, variables and units buttons in main window * Sorting menus * Tree lists implemented for units, variables and functions dialogs * Submenus implemented for unit, variable and function menus * Connect "convert to"-button in unit managaer to new conversion system * Complete set of SI units * Various fixes 2003-08-13 Hanna Knutsson * Remove duplicate functions * Do not save unchanged global definitions in users definitions files * Selectable prefix in result * Fully functional unit conversion! 2003-08-12 Hanna Knutsson * Interpret "apple" as an unknown variable named apple * Add base conversion dialog * Beautify units dialog * Store pointer to unit in GUI to simplify the Unit/ComplexUnit mess * Enable editing/creation of composite units * New Greatest Common Divisor (gcd) function * First try at differentiation * Fix division 2003-08-11 Hanna Knutsson * Beautify insert function dialog * Populate category combos * Turn base unit combo into entry as it probably is not a good idea to fill the combo with all units * Gladeify the variable and function edit dialogs hidden callbacks.cc (gladeification finished?) * Beautification of dialogs * Huge gladeification of signals and widget references 2003-08-10 Sven Herzberg * data/qalculate.glade: don't know what exactly, but i'm sure that we got rid of one c dialog more * src/callbacks.cc: * src/interface.cc: 2003-08-10 Hanna Knutsson * Use for all exponents for consistency * New elegant and intelligent sorting, not only for internal purposes * Updated swedish translation. * Gettextized error messages. * Updaterad Calculator::error(). * Only enable prefixes in front of units * Fix disable/enable variables/functions/units/unknown * Found true evil in Manager::sort(). This should solve many problems. :-) * Enable binary output for larger numbers * Fix nested functions * Fix prefix followed be unit * Fix functions without parenthesis * correct widget name (units_option_menu_to_unit) * handle long result by making the window not resizable and the result label wrap 2003-08-09 Hanna Knutsson * Swedish translation * More strings to translate * Binary output * Fix BASE() * Fix prefixes in expression * Added ability to disable unknown variables * Support unsolved function -- now log(x) returns log(x) instead of the result of log(0) * Fix prefix display mode (only use in front of units to avoid confusion and support exponents) 2003-08-08 Hanna Knutsson * Set LC_NUMERIC to "C" to make strold() happy * Minor restructuring in preparation for different decimal points * Comment out debug output. Now (x+y)^50 takes 1 instead of 100 seconds. For those interested, the result of (x+y)^100 is 24287 pixels wide... 2003-08-08 Sven Herzberg * data/qalculate.glade, * src/interface.cc: glade-ified the preferences dialog 2003-08-08 Sven Herzberg * data/qalculate.glade, * src/interface.cc: glade-ified the units dialog * po/de.po: updated translation 2003-08-08 Sven Herzberg * src/interface.cc: removed unneccessary variables 2003-08-08 Sven Herzberg * data/qalculate.glade, * src/interface.cc: glade-ified the variables dialog 2003-08-08 Sven Herzberg * src/interface.cc: removed unneccessary variables 2003-08-08 Sven Herzberg * data/qalculate.glade, * src/callbacks.cc, * src/interface.cc: finished moving the menus 2003-08-08 Sven Herzberg * data/qalculate.glade, * src/callbacks.cc, * src/interface.cc: moving the menus to a (hidden) menubar to solve a warning regarding an accelerator group 2003-08-08 Hanna Knutsson * Move generated menus one step up * Add finalize() after conversion in callbacks.cc 2003-08-08 Hanna Knutsson * Some more fixes that I do not remember * Fix (x+y)^(6+n) * Fix kWs = W^2 * s^2 in Calculator.cc * Do not convert units during the whole calculation, do it in finalize() afterwards instead * Make units work even better. * Move OCT, HEX, BIN and BASE functions to category "Number Bases" 2003-08-08 Sven Herzberg * configure.in: added -Wall stuff again (was just a typo) * src/interface.cc: removed some unneccessary variables from create_window 2003-08-08 Sven Herzberg * data/qalculate.glade: includes the complete main window now * src/callbacks.cc: removed the GtkHSeparator (the're not used anymore) * src/interface.cc: moved the whole main window to the glade file 2003-08-07 Sven Herzberg * data/qalculate.glade: added the expression menu and the result menu * po/de.po: updated translation * src/callbacks.cc: glade updates * src/interface.cc: glade updates 2003-08-07 Sven Herzberg * src/interface.cc, * src/interface.h, * src/main.cc: as the return value of create_window was only used to display the widget, made create_window a void method and display widget from there 2003-08-07 Sven Herzberg * configure.in: added libglade dependency * data/Makefile.am: added glade file * data/qalculate.glade: user interface definition * src/callbacks.cc: removed the extern GtkWidget *window * src/interface.cc: started migration to glade * src/interface.h: started migration to glade * src/main.cc: started migration to glade 2003-08-07 Sven Herzberg * .cvsignore: cvs update has less warnings now * configure.in: added de to ALL_LINGUAS * data/qalculate.desktop.in: fixed the starter * po/.cvsignore: cvs update has less warnings now * po/de.po: updated german translation 2003-08-07 Sven Herzberg * data/Makefile.am: added fixes for kde pre-3.2 (aka stable) 2003-08-07 Sven Herzberg * .cvsignore: cvs update has less warnings now * configure.in: some beautification (will fix -Wall later this day) * data/.cvsignore: cvs update has less warnings now * data/Makefile.am: added desktop file * data/qalculate.desktop.in: desktop file template * po/.cvsignore: cvs update has less warnings now * po/POTFILES.in: added data/qalculate.desktop * po/de.po: added german translation 2003-08-07 Sven Herzberg * src/main.cc: some beautification * src/main.h: made enums from #defines (are the values relevant?) 2003-08-06 Hanna Knutsson * Removed some debug output * Fix (x+y)^5, but unfortunately not (x+y)^6... * Even better unit conversion. * Change Ctrl+V to Ctrl+M for manage variables 2003-08-06 Sven Herzberg * Makefile.am: make dist works now * configure.in: added data/Makefile.am * data/.cvsignore: cvs update has less warnings now * data/Makefile.am: make dist works now, make install too * po/.cvsignore: cvs update has less warnings now 2003-08-06 Sven Herzberg * .cvsignore: cvs update has less warnings now * Makefile.am: added data as subdir * acconfig.h: removed (templates are deprecated) * configure.in: added libtool * data/Makefile.am: added config file installation * po/.cvsignore: cvs update has less warnings now * src/.cvsignore: cvs update has less warnings now * src/Makefile.am: switched to libtool now * src/calclib/.cvsignore: cvs update has less warnings now * src/calclib/Makefile.am: using libtool now 2003-08-04 Hanna Knutsson * Optional arguments for functions * More functions... * Implemented if...then...else function * "config" -> "definition" * Added Execute button to insert function dialog * Added some financial functions libqalculate-5.5.2/INSTALL000066400000000000000000000220241476076707200152360ustar00rootroot00000000000000Copyright 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the `--target=TYPE' option to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc will cause the specified gcc to be used as the C compiler (unless it is overridden in the site shell script). `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. libqalculate-5.5.2/Makefile.am000066400000000000000000000006241476076707200162430ustar00rootroot00000000000000## Process this file with automake to produce Makefile.in ACLOCAL_AMFLAGS = -I m4 SUBDIRS = po-defs po-defs/fixed data libqalculate src man po docs EXTRA_DIST = config.rpath \ autogen.sh \ README.translate \ tests/* \ libqalculate.pc.in pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libqalculate.pc if HAVE_DOXYGEN .PHONY: docs docs: $(MAKE) -C $(top_srcdir)/docs/reference docs endif libqalculate-5.5.2/NEWS000066400000000000000000000000151476076707200147000ustar00rootroot00000000000000see changeloglibqalculate-5.5.2/README000066400000000000000000000134141476076707200150700ustar00rootroot00000000000000Qalculate! library and CLI Qalculate! is a multi-purpose cross-platform desktop calculator. It is simple to use but provides power and versatility normally reserved for complicated math packages, as well as useful tools for everyday needs (such as currency conversion and percent calculation). Features include a large library of customizable functions, unit calculations and conversion, symbolic calculations (including integrals and equations), arbitrary precision, uncertainty propagation, interval arithmetic, plotting, and a user-friendly interface (GTK+, Qt, and CLI). 1. Requirements * GMP and MPFR * libxml2 * libcurl, icu, gettext (recommended) * iconv, readline (recommended for CLI) * Gnuplot 1.7 (optional) * doxygen (for compilation of git version) For Linux distributions which provide separate development packages, these must be installed for all the required libraries (e.g. libmpfr-dev) before compilation. 2. Installation In a terminal window in the top source code directory run * ./autogen.sh (not required if using a release source tarball, only if using the git version) * ./configure * make * make install (as root) * ldconfig (if necessary, as root) If libqalculate is installed in /usr/local (default) you may need to add /usr/local/lib to the library path of the system (add /usr/local/lib to a file under /etc/ld.so.conf.d/ and run ldconfig). 3. API Documentation The API documentation is included in the package and is installed in $docdir/libqalculate/html (usually /usr/share/doc/libqalculate/html). It is generated when running autogen.sh. It is also available online at reference/index.html. 4. Using the CLI program "qalc" To calculate a single expression from the command line (non-interactive mode) enter "qalc EXPRESSION" (e.g. qalc 5+2) "qalc --help" shows information about command line options in non-interactive mode. If you run "qalc" without any mathematical expression the program will start in interactive mode, where you can enter multiple expressions with history and completion, manipulate the result and change settings. Type "help" in interactive mode for more information. A man page is also available (shown using the command "man qalc", or online at https://qalculate.github.io/manual/qalc.html). 5. Other Applications The main user interfaces for libqalculate are qalculate-gtk (https://github.com/Qalculate/qalculate-gtk) and qalculate-qt (https://github.com/Qalculate/qalculate-qt). Other software using libqalculate include * KDE Plasma Workspace (https://www.kde.org/workspaces/plasmadesktop/) * Cantor (http://kde.org/applications/education/cantor/) * Step (http://kde.org/applications/education/step/) * Qalculate widget for KDE Plasma (https://store.kde.org/p/1155946/) 6. Features * Calculation and parsing: * Basic operations and operators: + - * / mod ^ E () && || ! < > >= <= != ~ & | << >> xor * Fault-tolerant parsing of strings: log 5 / 2 .5 (3) + (2( 3 +5 = ln(5) / (2.5 * 3) + 2 * (3 + 5) * Expressions may contain any combination of numbers, functions, units, variables, vectors and matrices, and dates * Supports complex and infinite numbers * Propagation of uncertainty * Interval arithmetic (for determination of the number of significant digits or direct calculation with intervals of numbers) * Supports all common number bases, as well as negative and non-integer radices, sexagesimal numbers, time format, and roman numerals * Ability to disable functions, variables, units or unknown variables for less confusion: e.g. when you do not want (a+b)^2 to mean (are+barn)^2 but ("a"+"b")^2 * Controllable implicit multiplication * Matrices and vectors, and related operations (determinants etc.) * Verbose error messages * Arbitrary precision * RPN mode * Result display: * Supports all common number bases, as well as negative and non-integer radices, sexagesimal numbers, time format, and roman numerals * Many customization options: precision, max/min decimals, complex form, multiplication sign, etc. * Exact or approximate: sqrt(32) returns 4 * sqrt(2) or 5.66 * Simple and mixed fractions: 4 / 6 * 2 = 1.333... = 4/3 = 1 + 1/3 * Symbolic calculation: * E.g. (x + y)^2 = x^2 + 2xy + y^2; 4 "apples" + 3 "oranges" * Factorization and simplification * Differentiation and integration * Can solve most equations and inequalities * Customizable assumptions give different results (e.g. ln(2x) = ln(2) + ln(x) if x is assumed positive) * Functions: * Hundreds of flexible functions: trigonometry, exponents and logarithms, combinatorics, geometry, calculus, statistics, finance, time and date, etc. * Can easily be created, edited and saved to a standard XML file * Units: * Supports all SI units and prefixes (including binary), as well as imperial and other unit systems * Automatic conversion: ft + yd + m = 2.2192 m * Explicit conversion: 5 m/s to mi/h = 11.18 miles/hour * Smart conversion: automatically converts 5 kg*m/s^2 to 5 N * Currency conversion with retrieval of daily exchange rates * Different name forms: abbreviation, singular, plural (m, meter, meters) * Can easily be created, edited and saved to a standard XML file * Variables and constants: * Basic constants: pi, e, etc. * Lots of physical constants (with or without units) and properties of chemical element * CSV file import and export * Can easily be created, edited and saved to a standard XML file * Flexible - may contain simple numbers, units, or whole expressions * Data sets with objects and associated properties in database-like structure * Plotting: * Uses Gnuplot * Can plot functions or data (matrices and vectors) * Ability to save plot to PNG image, postscript, etc. * Several customization options * and more... libqalculate-5.5.2/README.md000066400000000000000000000276411476076707200154760ustar00rootroot00000000000000# libqalculate Qalculate! library and CLI ![Image of qalc](http://qalculate.github.io/images/qalc.png) Qalculate! is a multi-purpose cross-platform desktop calculator. It is simple to use but provides power and versatility normally reserved for complicated math packages, as well as useful tools for everyday needs (such as currency conversion and percent calculation). Features include a large library of customizable functions, unit calculations and conversion, symbolic calculations (including integrals and equations), arbitrary precision, uncertainty propagation, interval arithmetic, plotting, and a user-friendly interface (GTK+, Qt, and CLI). ## Requirements * GMP and MPFR * libxml2 * libcurl, icu, gettext (recommended) * iconv, readline (recommended for CLI) * Gnuplot (optional) * doxygen (for compilation of git version) For Linux distributions which provide separate development packages, these must be installed for all the required libraries (e.g. libmpfr-dev) before compilation. ## Installation Instructions and download links for installers, binaries packages, and the source code of released versions of Qalculate! are available at https://qalculate.github.io/downloads.html. In a terminal window in the top source code directory run * `./autogen.sh` *(not required if using a release source tarball, only if using the git version)* * `./configure` * `make` * `make install` *(as root, e.g. `sudo make install`)* * `ldconfig` *(if necessary, as root)* If libqalculate is installed in /usr/local (default) you may need to add /usr/local/lib to the library path of the system (add /usr/local/lib to a file under /etc/ld.so.conf.d/ and run ldconfig). ## API Documentation The API documentation is included in the package and is installed in $docdir/libqalculate/html (usually /usr/share/doc/libqalculate/html). It is generated when running autogen.sh. It is also available online at http://qalculate.github.io/reference/index.html. ## Using the CLI program 'qalc' To calculate a single expression from the command line (non-interactive mode) enter `qalc mathematical expression` *(e.g. qalc 5+2)* `qalc --help` shows information about command line options in non-interactive mode. If you run `qalc` without any mathematical expression the program will start in interactive mode, where you can enter multiple expressions with history and completion, manipulate the result and change settings. Type `help` in interactive mode for more information. A man page is also available (shown using the command `man qalc`, or online at https://qalculate.github.io/manual/qalc.html). ## Other Applications The main user interfaces for libqalculate are qalculate-gtk (https://github.com/Qalculate/qalculate-gtk) and qalculate-qt (https://github.com/Qalculate/qalculate-qt). Other software using libqalculate include * KDE Plasma Workspace (https://www.kde.org/workspaces/plasmadesktop/) * Cantor (http://kde.org/applications/education/cantor/) * Step (http://kde.org/applications/education/step/) * Qalculate widget for KDE Plasma (https://store.kde.org/p/1155946/) ## Features * Calculation and parsing: * Basic operations and operators: + - * / mod ^ E () && || ! < > >= <= != ~ & | << >> xor * Fault-tolerant parsing of strings: log 5 / 2 .5 (3) + (2( 3 +5 = ln(5) / (2.5 * 3) + 2 * (3 + 5) * Expressions may contain any combination of numbers, functions, units, variables, vectors and matrices, and dates * Supports complex and infinite numbers * Propagation of uncertainty * Interval arithmetic (for determination of the number of significant digits or direct calculation with intervals of numbers) * Supports all common number bases, as well as negative and non-integer radices, sexagesimal numbers, time format, and roman numerals * Ability to disable functions, variables, units or unknown variables for less confusion: e.g. when you do not want (a+b)^2 to mean (are+barn)^2 but ("a"+"b")^2 * Controllable implicit multiplication * Matrices and vectors, and related operations (determinants etc.) * Verbose error messages * Arbitrary precision * RPN mode * Result display: * Supports all common number bases, as well as negative and non-integer radices, sexagesimal numbers, time format, and roman numerals * Many customization options: precision, max/min decimals, complex form, multiplication sign, etc. * Exact or approximate: sqrt(32) returns 4 * sqrt(2) or 5.66 * Simple and mixed fractions: 4 / 6 * 2 = 1.333... = 4/3 = 1 + 1/3 * Symbolic calculation: * E.g. (x + y)^2 = x^2 + 2xy + y^2; 4 "apples" + 3 "oranges" * Factorization and simplification * Differentiation and integration * Can solve most equations and inequalities * Customizable assumptions give different results (e.g. ln(2x) = ln(2) + ln(x) if x is assumed positive) * Functions: * Hundreds of flexible functions: trigonometry, exponents and logarithms, combinatorics, geometry, calculus, statistics, finance, time and date, etc. * Can easily be created, edited and saved to a standard XML file * Units: * Supports all SI units and prefixes (including binary), as well as imperial and other unit systems * Automatic conversion: ft + yd + m = 2.2192 m * Explicit conversion: 5 m/s to mi/h = 11.18 miles/hour * Smart conversion: automatically converts 5 kg*m/s^2 to 5 N * Currency conversion with retrieval of daily exchange rates * Different name forms: abbreviation, singular, plural (m, meter, meters) * Can easily be created, edited and saved to a standard XML file * Variables and constants: * Basic constants: pi, e, etc. * Lots of physical constants (with or without units) and properties of chemical element * CSV file import and export * Can easily be created, edited and saved to a standard XML file * Flexible - may contain simple numbers, units, or whole expressions * Data sets with objects and associated properties in database-like structure * Plotting: * Uses Gnuplot * Can plot functions or data (matrices and vectors) * Ability to save plot to PNG image, postscript, etc. * Several customization options * and more... _For more details about the syntax, and available functions, units, and variables, please consult the manual (https://qalculate.github.io/manual/)_ ## Examples (expressions) _Note that semicolon can be replaced with comma in function arguments, if comma is not used as decimal or thousands separator._ ### Basic functions and operators sqrt 4 _= sqrt(4) = 4^(0.5) = 4^(1/2) = 2_ sqrt(25; 16; 9; 4) _= \[5 4 3 2\]_ sqrt(32) _= 4 × √(2) (in exact mode)_ cbrt(−27) _= root(-27; 3) = −3 (real root)_ (−27)^(1/3) _≈ 1.5 + 2.5980762i (principal root)_ ln 25 _= log(25; e) ≈ 3.2188758_ log2(4)/log10(100) _= log(4; 2)/log(100; 10) = 1_ 5! _= 1 × 2 × 3 × 4 × 5 = 120_ 5\2 _= 5//2 = trunc(5 / 2) = 2 (integer division)_ 5 mod 3 _= mod(5; 3) = 2_ 52 to factors _= 2^2 × 13_ 25/4 × 3/5 to fraction _= 3 + 3/4_ gcd(63; 27) _= 9_ sin(pi/2) − cos(pi) _= sin(90 deg) − cos(180 deg) = 2_ sum(x; 1; 5) _= 1 + 2 + 3 + 4 + 5 = 15_ sum(\i^2+sin(\i); 1; 5; \i) _= 1^2 + sin(1) + 2^2 + sin(2) + ... ≈ 55.176162_ product(x; 1; 5) _= 1 × 2 × 3 × 4 × 5 = 120_ var1:=5 _(stores value 5 in variable var1)_ var1 × 2 _= 10_ 5^2 #this is a comment _= 25_ sinh(0.5) where sinh()=cosh() _= cosh(0.5) ≈ 1.1276260_ plot(x^2; −5; 5) _(plots the function y=x^2 from -5 to 5)_ ### Units 5 dm3 to L _= 5 dm^3 to L = 5 L_ 20 miles / 2h to km/h _= 16.09344 km/h_ 1.74 to ft _= 1.74 m to ft ≈ 5 ft + 8.5039370 in_ 1.74 m to -ft _≈ 5.7086614 ft_ 100 lbf × 60 mph to hp _≈ 16 hp_ 50 Ω × 2 A _= 100 V_ 50 Ω × 2 A to base _= 100 kg·m²/(s³·A)_ 10 N / 5 Pa _= (10 N)/(5 Pa) = 2 m²_ 5 m/s to s/m _= 0.2 s/m_ 500 € − 20% to $ _≈ $451.04_ 500 megabit/s × 2 h to b?byte _≈ 419.09516 gibibytes_ ### Physical constants k\_e / G × a\_0 _= (coulombs\_constant / newtonian\_constant) × bohr\_radius ≈ 7.126e9 kg·H·m^−1_ ℎ / (λ\_C × c) _= planck ∕ (compton\_wavelength × speed\_of\_light) ≈ 9.1093837e-31 kg_ 5 ns × rydberg to c _≈ 6.0793194E-8c_ atom(Hg; weight) + atom(C; weight) × 4 to g _≈ 4.129e-22 g_ (G × planet(earth; mass) × planet(mars; mass))/(54.6e6 km)^2 _≈ 8.58e16 N (gravitational attraction between earth and mars)_ ### Uncertainty and interval arithmetic _"±" can be replaced with "+/-"; result with interval arithmetic activated is shown in parenthesis_ sin(5±0.2)^2/2±0.3 _≈ 0.460±0.088 (0.46±0.12)_ (2±0.02 J)/(523±5 W) _≈ 3.824±0.053 ms (3.825±0.075 ms)_ interval(−2; 5)^2 _≈ interval(−8.2500000; 12.750000) (interval(0; 25))_ ### Algebra (5x^2 + 2)/(x − 3) _= 5x + 15 + 47/(x − 3)_ (\a + \b)(\a − \b) _= ("a" + "b")("a" − "b") = 'a'^2 − 'b'^2_ (x + 2)(x − 3)^3 _= x^4 − 7x^3 + 9x^2 + 27x − 54_ factorize x^4 − 7x^3 + 9x^2 + 27x − 54 _= x^4 − 7x^3 + 9x^2 + 27x − 54 to factors = (x + 2)(x − 3)^3_ cos(x)+3y^2 where x=pi and y=2 _= 11_ gcd(25x; 5x^2) _= 5x_ 1/(x^2+2x−3) to partial fraction _= 1/(4x − 4) − 1/(4x + 12)_ x+x^2+4 = 16 _= (x = 3 or x = −4)_ x^2/(5 m) − hypot(x; 4 m) = 2 m where x > 0 _= (x ≈ 7.1340411 m)_ cylinder(20cm; x) = 20L _(calculates the height of a 20 L cylinder with radius of 20 cm)_ _= (x = (1 / (2π)) m)_ _= (x ≈ 16 cm)_ asin(sqrt(x)) = 0.2 _= (x = sin(0.2)^2)_ _= (x ≈ 0.039469503)_ x^2 > 25x _= (x > 25 or x < 0)_ solve(x = y+ln(y); y) _= lambertw(e^x)_ multisolve(\[5x=2y+32, y=2z, z=2x\]; \[x, y, z\]) _= \[−32/3 −128/3 −64/3\]_ dsolve(diff(y; x) − 2y = 4x; 5) _= 6e^(2x) − 2x − 1_ ### Calculus diff(6x^2) _= 12x_ diff(sinh(x^2)/(5x) + 3xy/sqrt(x)) _= (2/5) × cosh(x^2) − sinh(x^2)/(5x^2) + (3y)/(2 × √(x))_ integrate(6x^2) _= 2x^3 + C_ integrate(6x^2; 1; 5) _= 248_ integrate(sinh(x^2)/(5x) + 3xy/sqrt(x)) _= 2x × √(x) × y + Shi(x^2) / 10 + C_ integrate(sinh(x^2)/(5x) + 3xy/sqrt(x); 1; 2) _≈ 3.6568542y + 0.87600760_ limit(ln(1 + 4x)/(3^x − 1); 0) _= 4 / ln(3)_ ### Matrices and vectors \[1, 2, 3; 4, 5, 6\] _= ((1; 2; 3); (4; 5; 6)) = \[1 2 3; 4 5 6\] (2×3 matrix)_ 1...5 = (1:5) = (1:1:5) = _\[1 2 3 4 5\]_ (1; 2; 3) × 2 − 2 _= \[(1 × 2 − 2), (2 × 2 − 2), (3 × 2 − 2)\] = \[0 2 4\]_ \[1 2 3\].\[4 5 6\] = dot(\[1 2 3\]; \[4 5 6\]) _= 32 (dot product)_ cross(\[1 2 3\]; \[4 5 6\]) _= \[−3 6 −3\] (cross product)_ \[1 2 3; 4 5 6\].×\[7 8 9; 10 11 12\] _= hadamard(\[1 2 3; 4 5 6\]; \[7 8 9; 10 11 12\]) = \[7 16 27; 40 55 72\] (hadamard product)_ \[1 2 3; 4 5 6\] × \[7 8; 9 10; 11 12\] _= \[58 64; 139 154\] (matrix multiplication)_ \[1 2; 3 4\]^-1 _= inverse(\[1 2; 3 4\]) = \[−2 1; 1.5 −0.5\]_ ### Statistics mean(5; 6; 4; 2; 3; 7) _= 4.5_ stdev(5; 6; 4; 2; 3; 7) _≈ 1.87_ quartile(\[5 6 4 2 3 7\]; 1) _= percentile((5; 6; 4; 2; 3; 7); 25) ≈ 2.9166667_ normdist(7; 5) _≈ 0.053990967_ spearman(column(load(test.csv); 1); column(load(test.csv); 2)) _≈ −0.33737388 (depends on the data in the CSV file)_ ### Time and date 10:31 + 8:30 to time _= 19:01_ 10h 31min + 8h 30min to time _= 19:01_ now to utc _= "2020-07-10T07:50:40Z"_ "2020-07-10T07:50CET" to utc+8 _= "2020-07-10T14:50:00+08:00"_ "2020-05-20" + 523d _= addDays(2020-05-20; 523) = "2021-10-25"_ today − 5 days _= "2020-07-05"_ "2020-10-05" − today _= days(today; 2020-10-05) = 87 d_ timestamp(2020-05-20) _= 1 589 925 600_ stamptodate(1 589 925 600) _= "2020-05-20T00:00:00"_ "2020-05-20" to calendars _(returns date in Hebrew, Islamic, Persian, Indian, Chinese, Julian, Coptic, and Ethiopian calendars)_ ### Number bases 52 to bin _= 0011 0100_ 52 to bin16 _= 0000 0000 0011 0100_ 52 to oct _= 064_ 52 to hex _= 0x34_ 0x34 = hex(34) _= base(34; 16) = 52_ 523<<2&250 to bin _= 0010 1000_ 52.345 to float _≈ 0100 0010 0101 0001 0110 0001 0100 1000_ float(01000010010100010110000101001000) _= 1715241/32768 ≈ 52.345001_ floatError(52.345) _≈ 1.2207031e-6_ 52.34 to sexa _= 52°20′24″_ 1978 to roman _= MCMLXXVIII_ 52 to base 32 _= 1K_ sqrt(32) to base sqrt(2) _≈ 100000_ 0xD8 to unicode _= Ø_ code(Ø) to hex _= 0xD8_ libqalculate-5.5.2/README.translate000066400000000000000000000146001476076707200170620ustar00rootroot00000000000000The Qalculate! developer(s) are thankful for every possible translation and willing to answer any questions or help with any problems you may have as a translator. Please read through this document before starting the translation. Qalculate! is split up into one library package (libqalculate, which also includes the text interface) and GUI packages (currently only qalculate-gtk). The GUI packages contain translations for the GUI text as usual in the po directory. The libqalculate translations are split up into two -- translation of error messages, type information and the text interface in po, and translation of definitions of functions, variables, units, etc. in po-defs (merged with the data files in data). The source packages for libqalculate and qalculate-gtk do not include any .pot files. Instead the pot file is created with "intltool-update --pot". You can then run "msginit --locale=??" or just copy the pot-file to ??.po. The translation file is updated with "intltool-update language code" (ex. intltool-update sv, for the Swedish translation) from the po directories. intltool-update is distributed with intltool. The translation of the libqalculate message strings in po-defs requires some further knowledge. These are merged with the xml data files in libqalculate/data. The different types of message strings in these files are: Data objects: Values of text properties Data sets: Categories, titles, names, descriptions, property titles, property names and property descriptions Functions: Categories, titles, names, descriptions and argument titles Variables/constants: Categories, titles and names Units: Categories, titles and names Currencies: Categories, titles, countries, and names Prefixes: Names To distinguish equal text strings with different meanings (for example "Mercury" as a planet and as a chemical element), some text strings are preceded by "!type!" (for example "!units!" for units). Everything between and including a exclamation mark in the beginning and the second exclamation mark is not displayed in the application. Translators do not need to include "!type!" in the translation. Names require some special considerations from the translator. The names are used to reference an object in a mathematical expression and to display them in a result. An object can have any number of names but each must be fully unique, with the exception that functions can have names used by other types of objects (for example "min" is used as a name for the minute unit but also for a function returning smallest value in a vector). The translation does not need to have the same number of names as the untranslated object. There are some characters which are reserved for other purposes (mainly mathematical operators) and may not be included in names. These are - ~ + - * / ^ & | ! <> = ' @ ? \ { } " . , ; : ( ) [ ], - spaces, tabs and newline characters, and - unicode signs for operators. No name may begin with a digit and units are not allowed to contain a digit anywhere. All names of a object are contained in one text string. The names are separated by commas (','). The order of names decides their priority, which name is by default used for display and input. Each name may be preceded by a number of properties before a colon (':'). The format of the names strings is thus [properties1:]name1,[properties2:]name2,... The possible properties are - 'a': the name is an abbreviation, - 'c': the name is case-sensitive, - 'i': the name should not be presented to the user for input (but looks good for display), - 'o': the name is appropriate for completion, but should never be presented to the user, - 'p': the name is in plural form, - 'r': the name is used as reference, - 's': the name ends with a suffix (the text after the last '_' will displayed as subscript with the '_' removed, often used in combination with 'i'), and - 'u': the name contains a unicode sign. All properties are off by default, except for names with only one sign which are interpreted as abbreviations by default, and for abbreviations which by default are case-sensitive. A property can be turned off by preceding it with a minus '-'. The reference property tells that the name will be available to all users regardless of the language used. If a reference name is not included in the translated list of names, it is appended at the end by the program. The translator can include the reference names to select the position of the name and change all properties except 'r', 'c' and 'u'. All untranslated first names have the reference property explicitly specified, so names can easily be distinguished from other text strings by the preceding properties and colon. Most functions and variables have only one name. Units usually have an abbreviated name, a normal name and a name in plural form. Units should always have a name in plural form if it differs from the singular form. Property names work like the names described above except that 'r' for reference is the only possible property. Below follow some examples from the Swedish translation. msgid "ar:m,meter,p:meters,metre,p:metres" msgstr "a:m,meter" The meter unit has the abbreviated reference name "m" (case-sensitive), a normal name "meter" and a plural form "meters". Meter does also in addition have a different spelling in English. The Swedish name for meter is the same as in English but the plural form is the same as the singular, and no alternative spelling exist. msgid "r:mean" msgstr "medel" The name of the mean function is translated to "medel", but since "mean" is specified as a reference name it is appended by the program as the second name (results in "medel,r:mean"). msgid "ar:SEK" msgstr "a-c:kr,a:SEK,krona,p:kronor" The English version can only use the three character code for the Swedish currency since the other names can be used for other currencies, but the translation can assume that the user refers to the local currency. msgid "-r:billion" msgstr "miljard,p:miljarder" The constants for large numbers follows two different systems in different countries. With the "short scale" billion means 1e9, while it with the "long scale" means 1e12. Therefore, these constants do not have any reference name. The short scale is used in most English-speaking countries, while in Sweden the long scale is used. qalc commands and options to commands in libqalculate/po/ follows the same principles as reference names, meaning that the untranslated message string is kept in addition to the translated. libqalculate-5.5.2/TODO000066400000000000000000000006601476076707200146770ustar00rootroot00000000000000* Lambert W branches * Quoted ")" in function * Replace pointers to unit when unit type has changed (a different object must be created) * Enhanced integration * More functions * More units * Increase support for non-glibc systems * Sane and stable API * Script/code plugins for advanced functions * Load data set from csv file * Complete non-square free factorization * Simplification of division by polynomial with roots libqalculate-5.5.2/autogen.sh000077500000000000000000000074101476076707200162100ustar00rootroot00000000000000#!/bin/sh # Run this to generate all the initial makefiles, etc. srcdir=`dirname $0` test -z "$srcdir" && srcdir=. DIE=0 (test -f $srcdir/configure.ac) || { echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" echo " top-level package directory" exit 1 } (autoconf --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`autoconf' installed." echo "Download the appropriate package for your distribution," echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" DIE=1 } (grep "^IT_PROG_INTLTOOL" $srcdir/configure.ac >/dev/null) && { (intltoolize --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`intltool' installed." echo "You can get it from:" echo " ftp://ftp.gnome.org/pub/GNOME/stable/sources/intltool/" DIE=1 } } (grep "^LT_INIT" $srcdir/configure.ac >/dev/null) && { (libtoolize --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`libtool' installed." echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/" DIE=1 } } grep "^AM_GLIB_GNU_GETTEXT" $srcdir/configure.ac >/dev/null && { grep "sed.*POTFILES" $srcdir/configure.ac >/dev/null || \ (glib-gettextize --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`glib' installed." echo "You can get it from: ftp://ftp.gtk.org/pub/gtk" DIE=1 } } (automake --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`automake' installed." echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/" DIE=1 NO_AUTOMAKE=yes } # if no automake, don't bother testing for aclocal test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: Missing \`aclocal'. The version of \`automake'" echo "installed doesn't appear recent enough." echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/" DIE=1 } if test "$DIE" -eq 1; then exit 1 fi if test x$NOCONFIGURE = x -a -z "$*"; then echo "**Warning**: I am going to run \`configure' with no arguments." echo "If you wish to pass any to it, please specify them on the" echo \`$0\'" command line." echo fi case $CC in xlc ) am_opt=--include-deps;; esac for coin in `find $srcdir -path $srcdir/CVS -prune -o -name configure.ac -print` do dr=`dirname $coin` if test -f $dr/NO-AUTO-GEN; then echo skipping $dr -- flagged as no auto-gen else echo processing $dr ( cd $dr aclocalinclude="$ACLOCAL_FLAGS" if grep "^AM_GLIB_GNU_GETTEXT" configure.ac >/dev/null; then echo "Creating $dr/aclocal.m4 ..." test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 echo "Running glib-gettextize... Ignore non-fatal messages." echo "no" | glib-gettextize --force --copy echo "Making $dr/aclocal.m4 writable ..." test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 fi if grep "^IT_PROG_INTLTOOL" configure.ac >/dev/null; then echo "Running intltoolize..." intltoolize --copy --force --automake fi if grep "^LT_INIT" configure.ac >/dev/null; then if test -z "$NO_LIBTOOLIZE" ; then echo "Running libtoolize..." libtoolize --force --copy fi fi echo "Running aclocal $aclocalinclude ..." aclocal $aclocalinclude if grep "^AC_CONFIG_HEADERS" configure.ac >/dev/null; then echo "Running autoheader..." autoheader fi echo "Running automake --gnu $am_opt ..." automake --add-missing --gnu $am_opt echo "Running autoconf ..." autoconf ) fi done conf_flags="--enable-maintainer-mode" if test x$NOCONFIGURE = x; then echo Running $srcdir/configure $conf_flags "$@" ... $srcdir/configure $conf_flags "$@" \ && echo Now type \`make\' to compile. || exit 1 else echo Skipping configure process. fi libqalculate-5.5.2/config.rpath000077500000000000000000000442161476076707200165240ustar00rootroot00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2016 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's _LT_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in ecc*) wl='-Wl,' ;; icc* | ifort*) wl='-Wl,' ;; lf95*) wl='-Wl,' ;; nagfor*) wl='-Wl,-Wl,,' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; xl* | bgxl* | bgf* | mpixl*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) wl= ;; *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; newsos6) ;; *nto* | *qnx*) ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) wl='-Qoption ld ' ;; *) wl='-Wl,' ;; esac ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's _LT_LINKER_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; haiku*) ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then : else ld_shlibs=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd2.[01]*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) case "$host_cpu" in powerpc*) library_names_spec='$libname$shrext' ;; m68k) library_names_spec='$libname.a' ;; esac ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd[23].*) library_names_spec='$libname$shrext$versuffix' ;; freebsd* | dragonfly*) library_names_spec='$libname$shrext' ;; gnu*) library_names_spec='$libname$shrext' ;; haiku*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; *nto* | *qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; tpf*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <= 2.3.8]) AC_SUBST(LIBXML_CFLAGS) AC_SUBST(LIBXML_LIBS) AM_ICONV() dnl -------------------------------- dnl | check for doxygen |----------------------------------------- dnl -------------------------------- AC_CHECK_PROGS([DOXYGEN], [doxygen]) if test -z "$DOXYGEN"; then AC_MSG_WARN([Doxygen not found - API documentation will not be generated]) fi AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"]) dnl -------------------------------- dnl | check for readline |----------------------------------------- dnl -------------------------------- QALCULATE_TEXT="" LN_QALCULATE="" USE_READLINE="yes" READLINE_LIBS="" if test "x$enable_textport" = "xyes" ; then QALCULATE_TEXT="qalc$EXEEXT" LN_QALCULATE="qalc" AC_MSG_CHECKING([whether to use readline]) AC_ARG_WITH(readline, [ --with-readline use readline in text port [[default=yes, default tries -lncurses, -lcurses, -ltermcap, -ltinfo]] ], [case "${withval}" in yes) USE_READLINE="yes" ; AC_MSG_RESULT([yes]) ;; no) USE_READLINE="no" ; AC_MSG_RESULT([no]) ;; only) USE_READLINE="yes" EXTRA_LIBREADLINE_DEPS=" " AC_MSG_RESULT([yes (using only readline)]) ;; *) USE_READLINE="yes" EXTRA_LIBREADLINE_DEPS="${withval}" AC_MSG_RESULT([yes (using extra libraries ${withval})]) ;; esac],[AC_MSG_RESULT([${USE_READLINE}])]) dnl Checks for libraries. dnl When checking readline, check using extra libraries first. dnl We want to protect against the link somehow succeeding, but only dnl failing at runtime, as seems to happen on some BSD systems. if test "$USE_READLINE" = yes ; then AC_CHECK_HEADERS(readline/readline.h readline/history.h) if test "x${ac_cv_header_readline_readline_h}" != "xyes" -o "x${ac_cv_header_readline_history_h}" != "xyes"; then AC_MSG_WARN([Could not find the headers for libreadline.]) else if test "$EXTRA_LIBREADLINE_DEPS" = "" ; then unset ac_cv_lib_readline_readline AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true, HAVE_LIBREADLINE=false, -lncurses) if test x${HAVE_LIBREADLINE} = xtrue ; then echo " Using -lreadline -lncurses" EXTRA_LIBREADLINE_DEPS=-lncurses AC_DEFINE(HAVE_LIBREADLINE, [1], [Define if the text port uses readline]) else unset ac_cv_lib_readline_readline AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true, HAVE_LIBREADLINE=false, -lcurses) if test x${HAVE_LIBREADLINE} = xtrue ; then echo " Using -lreadline -lcurses" EXTRA_LIBREADLINE_DEPS=-lcurses AC_DEFINE(HAVE_LIBREADLINE, [1], [Define if the text port uses readline]) else unset ac_cv_lib_readline_readline AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true, HAVE_LIBREADLINE=false, -ltinfo) if test x${HAVE_LIBREADLINE} = xtrue ; then echo " Using -lreadline -ltinfo" EXTRA_LIBREADLINE_DEPS=-ltinfo AC_DEFINE(HAVE_LIBREADLINE, [1], [Define if the text port uses readline]) else unset ac_cv_lib_readline_readline AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true, HAVE_LIBREADLINE=false, -ltermcap) if test x${HAVE_LIBREADLINE} = xtrue ; then echo " Using -lreadline -ltermcap" EXTRA_LIBREADLINE_DEPS=-ltermcap AC_DEFINE(HAVE_LIBREADLINE, [1], [Define if the text port uses readline]) else unset ac_cv_lib_readline_readline AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true, HAVE_LIBREADLINE=false) if test x${HAVE_LIBREADLINE} = xtrue ; then AC_DEFINE(HAVE_LIBREADLINE, [1], [Define if the text port uses readline]) fi fi fi fi fi else unset ac_cv_lib_readline_readline AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true, HAVE_LIBREADLINE=false, ${EXTRA_LIBREADLINE_DEPS}) if test x${HAVE_LIBREADLINE} = xtrue ; then echo " Using -lreadline ${EXTRA_LIBREADLINE_DEPS}" AC_DEFINE(HAVE_LIBREADLINE, [1], [Define if the text port uses readline]) fi fi if test x${HAVE_LIBREADLINE} = xtrue; then READLINE_LIBS="-lreadline -lhistory ${EXTRA_LIBREADLINE_DEPS}" else AC_MSG_WARN([Could not find libreadline.]) fi fi fi fi AC_SUBST(READLINE_LIBS) AC_SUBST(QALCULATE_TEXT) AC_SUBST(LN_QALCULATE) QALCULATE_DEFS2DOC="" if test "x$enable_defs2doc" = "xyes" ; then QALCULATE_DEFS2DOC="defs2doc$EXEEXT" fi AC_SUBST(QALCULATE_DEFS2DOC) QALCULATE_TEST="" if test "x$enable_tests" = "xyes" ; then QALCULATE_TEST="test$EXEEXT" fi AC_SUBST(QALCULATE_TEST) QALCULATE_UNITTEST="" if test "x$enable_unittests" = "xyes" ; then QALCULATE_UNITTEST="unittest$EXEEXT" fi AC_SUBST(QALCULATE_UNITTEST) AC_SEARCH_LIBS([nanosleep],[rt posix4]) dnl ------------------------------------- dnl | internationalization (i18n) support |------------------------------------ dnl ------------------------------------- GETTEXT_PACKAGE=libqalculate AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The package name for gettext]) dnl Please keep this in alphabetical order ALL_LINGUAS="ca de es fr ka nl ru sv zh_CN" AM_GNU_GETTEXT(external) AM_GNU_GETTEXT_VERSION([0.19.8]) if test "$USE_NLS" = yes; then AC_DEFINE([ENABLE_NLS], [1], [Define to 1 if translation of program messages to the user's native language is requested.]) fi dnl AM_GLIB_GNU_GETTEXT sets $DATADIRNAME AC_MSG_CHECKING(locale directory) if test "x$prefix" = "xNONE"; then PACKAGE_LOCALE_DIR=$ac_default_prefix/share/locale else PACKAGE_LOCALE_DIR=$prefix/share/locale fi dnl lconv AC_CHECK_MEMBERS([struct lconv.int_p_cs_precedes,] dnl [struct lconv.int_n_cs_precedes],[],[],[AC_INCLUDES_DEFAULT #include ]) AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "$PACKAGE_LOCALE_DIR", [The directory in which qalculate's locale data will be stored]) AC_MSG_RESULT("$PACKAGE_LOCALE_DIR") QALCULATE_PODEFS_RULE='%.po: $(top_srcdir)/po-defs/$@ $(top_srcdir)/po-defs/remove-untranslated.cc; $(top_builddir)/po-defs/fixpo $(top_srcdir)/po-defs/$@ $@' AC_SUBST(QALCULATE_PODEFS_RULE) INTLTOOL_QALCULATE_DEFINITIONS_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_builddir)/po-defs/fixed/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po-defs/fixed/.intltool-merge-cache $(top_builddir)/po-defs/fixed $< [$]@' AC_SUBST(INTLTOOL_QALCULATE_DEFINITIONS_RULE) dnl -------- dnl | output |----------------------------------------------------------------- dnl -------- AC_CONFIG_FILES([ Makefile src/Makefile libqalculate/Makefile data/Makefile po/Makefile.in po-defs/Makefile po-defs/fixed/Makefile docs/Makefile docs/reference/Makefile man/Makefile libqalculate.pc ]) AC_OUTPUT libqalculate-5.5.2/data/000077500000000000000000000000001476076707200151165ustar00rootroot00000000000000libqalculate-5.5.2/data/Makefile.am000066400000000000000000000007541476076707200171600ustar00rootroot00000000000000# # data/Makefile.am for qalculate # xmldir = $(datadir)/qalculate xml_in_files = currencies.xml.in datasets.xml.in elements.xml.in functions.xml.in planets.xml.in prefixes.xml.in units.xml.in variables.xml.in if COMPILED_DEFINITIONS noinst_DATA = $(xml_in_files:.xml.in=.xml) eurofxref-daily.xml rates.json else xml_DATA = $(xml_in_files:.xml.in=.xml) eurofxref-daily.xml rates.json endif @INTLTOOL_QALCULATE_DEFINITIONS_RULE@ EXTRA_DIST = \ $(xml_in_files) $(xml_DATA) $(noinst_DATA) libqalculate-5.5.2/data/currencies.xml.in000066400000000000000000000756551476076707200204310ustar00rootroot00000000000000 <_title>Currency <_title>European Euro <_names>a-cr:EUR,au:€,euro,p:euros <_countries>Andorra, Austria, Belgium, Croatia, Cyprus, Estonia, Finland, France, Germany, Greece, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Portugal, San Marino, Slovakia, Slovenia, Spain, Vatican City <_title>U.S. Dollar <_names>a:$,a-cr:USD,dollar,p:dollars <_countries>United States, East Timor, Ecuador, El Salvador, Micronesia, Marshall Islands, Palau, Zimbabwe <_title>Japanese Yen <_names>a-cr:JPY,au:¥,yen <_countries>Japan <_title>Danish Krone <_names>a-cr:DKK <_countries>Denmark <_title>British Pound <_names>a-cr:GBP,au:£ <_countries>United Kingdom <_title>Thai Baht <_names>a-cr:THB <_countries>Thailand <_title>Swedish Krona <_names>a-cr:SEK <_countries>Sweden <_title>Swiss Franc <_names>a-cr:CHF <_countries>Switzerland <_title>Norwegian Krone <_names>a-cr:NOK <_countries>Norway <_title>Bulgarian Lev <_names>lev,a-cr:BGN <_countries>Bulgaria <_title>Russian Ruble <_names>a-cr:RUB,au:₽,ruble <_countries>Russia <_title>Philippine Peso <_names>a-cr:PHP,au:₱ <_countries>Philippines <_title>Malaysian Ringgit <_names>acr:MYR,ac:myr <_countries>Malaysia <_title>Chinese Yuan Renminbi <_names>a-cr:CNY <_countries>China <_title>Indonesian Rupiah <_names>a-cr:IDR,rupiah <_countries>Indonesia <_title>Czech Koruna <_names>a-cr:CZK,au-c:Kč <_countries>Czech Republic <_title>Hungarian Forint <_names>forint,a-cr:HUF <_countries>Hungary <_title>Polish Zloty <_names>a-cr:PLN,au:zł,zloty <_countries>Poland <_title>Romanian Leu <_names>a-cr:RON <_countries>Romania <_title>Turkish New Lira <_names>a-cr:TRY,au:₺ <_countries>Turkey <_title>Australian Dollar <_names>a-cr:AUD <_countries>Australia <_title>Canadian Dollar <_names>a-cr:CAD <_countries>Canada <_title>Hong Kong Dollar <_names>a-cr:HKD <_title>New Zealand Dollar <_names>a-cr:NZD <_countries>New Zealand <_title>Singapore Dollar <_names>a-cr:SGD <_countries>Singapore <_title>South Korean Won <_names>a-cr:KRW,au:₩,won <_countries>South Korea <_title>South African Rand <_names>a-cr:ZAR <_countries>South Africa <_title>Indian Rupee <_names>a-cr:INR,au:₹,rupee <_countries>India <_title>Israeli New Sheqel <_names>a-cr:ILS,au:₪,sheqel <_countries>Israel <_title>Mexican Peso <_names>a-cr:MXN <_countries>Mexico <_title>Brazilian Real <_names>a-cr:BRL <_countries>Brazil <_title>Icelandic Krónur <_names>a-cr:ISK <_countries>Iceland <_title>Bitcoin <_names>a-cr:BTC,au:₿,a:XBT,bitcoin,p:bitcoins <_title>Kenya Shilling <_names>a-cr:KES <_countries>Kenya <_title>Afghan Afghani <_names>a-cr:AFN,aio:؋ <_countries>Afghanistan <_title>Albanian Lek <_names>a-cr:ALL <_countries>Albania <_title>Algerian Dinar <_names>a-cr:DZD <_countries>Algeria <_title>Angolan Kwanza <_names>a-cr:AOA <_countries>Angola <_title>Eastern Caribbean Dollar <_names>a-cr:XCD <_countries>Antigua and Barbuda, Dominica, Grenada, Montserrat, Saint Kitts and Nevis, Saint Lucia, Saint Vincent and the Grenadines, Anguilla <_title>Argentine Peso <_names>a-cr:ARS <_countries>Argentina <_title>Armenian Dram <_names>a-cr:AMD,au:֏ <_countries>Armenia <_title>Aruban Florin <_names>a-cr:AWG <_countries>Aruba <_title>Netherlands Antillean Guilder <_names>a-cr:ANG <_countries>Curaçao, Sint Maarten <_title>Azerbaijani Manat <_names>a-cr:AZN,au:₼ <_countries>Azerbaijan <_title>Bahamian Dollar <_names>a-cr:BSD <_countries>Bahamas <_title>Bahraini Dinar <_names>a-cr:BHD <_countries>Bahrain <_title>Bangladeshi Taka <_names>a-cr:BDT,au:৳ <_countries>Bangladesh <_title>Barbadian Dollar <_names>a-cr:BBD <_countries>Barbados <_title>Belarusian Ruble <_names>a-cr:BYN <_countries>Belarus <_title>Belarusian Ruble p. (obsolete) <_names>a-cr:BYR <_title>Belize Dollar <_names>a-cr:BZD <_countries>Belize <_title>West African CFA Franc <_names>a-cr:XOF,a:CFA <_countries>Benin, Burkina Faso, Guinea-Bissau, Ivory Coast, Mali, Niger, Senegal, Togo <_title>Bermudian Dollar <_names>a-cr:BMD <_countries>Bermuda <_title>Bolivian Boliviano Bs <_names>a-cr:BOB <_countries>Bolivia <_title>Bosnia and Herzegovina Convertible Mark <_names>a-cr:BAM <_countries>Bosnia and Herzegovina <_title>Botswana Pula <_names>a-cr:BWP <_countries>Botswana <_title>Brunei Dollar <_names>a-cr:BND <_countries>Brunei <_title>Burundian Franc <_names>a-cr:BIF <_countries>Burundi <_title>Cambodian Riel <_names>a-cr:KHR,aiu:៛ <_countries>Cambodia <_title>Central African CFA Franc <_names>a-cr:XAF,a:FCFA <_countries>Cameroon, Central African Republic, Chad, Republic of the Congo, Equatorial Guinea, Gabon <_title>Cape Verdean Escudo <_names>a-cr:CVE <_countries>Cape Verde <_title>Cayman Islands Dollar <_names>a-cr:KYD <_countries>Cayman Islands <_title>Chilean Peso <_names>a-cr:CLP <_countries>Chile <_title>Colombian Peso <_names>a-cr:COP <_countries>Colombia <_title>Comorian Franc <_names>a-cr:KMF <_countries>Comoros <_title>Democratic Republic of the Congo (Congolese Franc) <_names>a-cr:CDF <_countries>Democratic Republic of the Congo <_title>Costa Rican colón <_names>a-cr:CRC <_countries>Costa Rica <_title>Cuban Peso <_names>acr:CUP <_countries>Cuba <_title>Djiboutian Franc <_names>a-cr:DJF <_countries>Djibouti <_title>Dominican Peso <_names>a-cr:DOP <_countries>Dominican Republic <_title>Egyptian Pound <_names>a-cr:EGP <_countries>Egypt <_title>El Salvadoran Colon (obsolete) <_names>a-cr:SVC <_title>Eritrean Nafka <_names>a-cr:ERN <_countries>Eritrea <_title>Ethiopian Birr <_names>a-cr:ETB <_countries>Ethiopia <_title>Falkland Islands Pound <_names>a-cr:FKP <_countries>Falkland Islands <_title>Fijian Dollar <_names>a-cr:FJD <_countries>Fiji <_title>CFP franc <_names>a-cr:XPF <_countries>French Polynesia, New Caledonia, Wallis and Futuna <_title>Gambian Dalasi <_names>a-cr:GMD <_countries>Gambia <_title>Georgian Lari <_names>a-cr:GEL,au:₾ <_countries>Georgia <_title>Ghanaian Cedi <_names>a-cr:GHS,au:₵ <_countries>Ghana <_title>Gibraltar Pound <_names>a-cr:GIP <_countries>Gibraltar <_title>Guatemalan Quetzal <_names>a-cr:GTQ <_countries>Guatemala <_title>Guernsey Pound <_names>a-cr:GGP <_countries>Guernsey <_title>Guinean Franc <_names>a-cr:GNF <_countries>Guinea <_title>Guyanese Dollar <_names>a-cr:GYD <_countries>Guyana <_title>Haitian Gourde <_names>a-cr:HTG <_countries>Haiti <_title>Honduran Lempira <_names>a-cr:HNL <_countries>Honduras <_title>Iranian Rial <_names>a-cr:IRR,aio:﷼ <_countries>Iran <_title>Iraqi Dinar <_names>a-cr:IQD <_countries>Iraq <_title>Jamaican Dollar <_names>a-cr:JMD <_countries>Jamaica <_title>Jordanian Dinar <_names>a-cr:JOD <_countries>Jordan <_title>Kazakhstani Tenge <_names>a-cr:KZT,au:₸ <_countries>Kazakhstan <_title>North Korean Won <_names>a-cr:KPW <_countries>North Korea <_title>Kuwaiti Dinar <_names>a-cr:KWD <_countries>Kuwait <_title>Kyrgyzstani Som <_names>acr:KGS <_countries>Kyrgyzstan <_title>Lao Kip <_names>a-cr:LAK,au:₭ <_countries>Laos <_title>Lebanese Pound <_names>a-cr:LBP <_countries>Lebanon <_title>Lesotho Loti <_names>a-cr:LSL <_countries>Lesotho <_title>Liberian Dollar <_names>a-cr:LRD <_countries>Liberia <_title>Libyan Dinar <_names>a-cr:LYD <_countries>Libya <_title>Macanese Pataca <_names>a-cr:MOP <_countries>Macau <_title>Macedonian Denar <_names>a-cr:MKD <_countries>Macedonia <_title>Malagasy Ariary <_names>a-cr:MGA <_countries>Madagascar <_title>Malawian Kwacha <_names>a-cr:MWK <_countries>Malawi <_title>Maldivian Rufiyaa <_names>a-cr:MVR <_countries>Maldives <_title>Mauritanian Ouguiya <_names>a-cr:MRU <_countries>Mauritania <_title>Mauritian Rupee <_names>a-cr:MUR <_countries>Mauritius <_title>Moldovan Leu <_names>a-cr:MDL <_countries>Moldova <_title>Mongolian Tögrög <_names>a-cr:MNT,au:₮ <_countries>Mongolia <_title>Moroccan Dirham <_names>a-cr:MAD <_countries>Morocco <_title>Mozambican Metical <_names>a-cr:MZN <_countries>Mozambique <_title>Myanmar (Burmese Kyat) <_names>a-cr:MMK <_countries>Myanmar <_title>Namibian Dollar <_names>a-cr:NAD <_countries>Namibia <_title>Nepalese Rupee <_names>a-cr:NPR <_countries>Nepal <_title>Nicaraguan Córdoba <_names>a-cr:NIO <_countries>Nicaragua <_title>Nigerian Naira <_names>a-cr:NGN,au:₦ <_countries>Nigeria <_title>Omani Rial <_names>a-cr:OMR <_countries>Oman <_title>Pakistani Rupee <_names>a-cr:PKR <_countries>Pakistan <_title>Panamaian Balboa <_names>a-cr:PAB <_countries>Panama <_title>Papua New Guinean Kina <_names>a-cr:PGK <_countries>Papua New Guinea <_title>Paraguayan Guaraní <_names>a-cr:PYG,au:₲ <_countries>Paraguay <_title>Peruvian Sol <_names>a-cr:PEN <_countries>Peru <_title>Qatari Riyal <_names>a-cr:QAR <_countries>Qatar <_title>Rwandan Franc <_names>a-cr:RWF <_countries>Rwanda <_title>São Tomé and Príncipe Dobra <_names>a-cr:STD <_countries>Sao Tome and Principe <_title>Saudi Riyal <_names>a-cr:SAR <_countries>Saudi Arabia <_title>Serbian Dinar <_names>a-cr:RSD <_countries>Serbia <_title>Seychellois Rupee <_names>a-cr:SCR <_countries>Seychelles <_title>Sierra Leonean Leone <_names>a-cr:SLL <_countries>Sierra Leone <_title>Solomon Islands Dollar <_names>a-cr:SBD <_countries>Solomon Islands <_title>Somali Shilling <_names>a-cr:SOS <_countries>Somalia <_title>Sri Lankan Rupee <_names>a-cr:LKR,aou:௹ <_countries>Sri Lanka <_title>Sudanese Pound <_names>a-cr:SDG <_countries>Sudan <_title>Surinamese Dollar <_names>a-cr:SRD <_countries>Suriname <_title>Swazi Lilangeni <_names>a-cr:SZL <_countries>Swaziland <_title>Syrian Pound <_names>a-cr:SYP <_countries>Syria <_title>New Taiwan Dollar <_names>a-cr:TWD <_countries>Taiwan <_title>Tajikistani Somoni <_names>a-cr:TJS <_countries>Tajikistan <_title>Tanzanian Shilling <_names>a-cr:TZS <_countries>Tanzania <_title>Tongan Paʻanga <_names>a-cr:TOP <_countries>Tonga <_title>Trinidad and Tobago dollar <_names>a-cr:TTD <_countries>Trinidad and Tobago <_title>Tunisian Dinar <_names>a-cr:TND <_countries>Tunisia <_title>Turkmenistan Manat <_names>a-cr:TMT <_countries>Turkmenistan <_title>Ugandan Shilling <_names>a-cr:UGX <_countries>Uganda <_title>Ukrainian Hryvnia <_names>a-cr:UAH,au:₴ <_countries>Ukraine <_title>United Arab Emirates Dirham <_names>a-cr:AED <_countries>United Arab Emirates <_title>Uruguayan Peso <_names>a-cr:UYU <_countries>Uruguay <_title>Uzbekistan Soʻm <_names>a-cr:UZS <_countries>Uzbekistan <_title>Vanuatu Vatu <_names>a-cr:VUV <_countries>Vanuatu <_title>Venezuelan Bolívar <_names>a-cr:VES <_title>Vietnamese Đồng <_names>a-cr:VND,au:₫ <_countries>Vietnam <_title>Yemeni Rial <_names>a-cr:YER <_countries>Yemen <_title>Zambian Kwacha <_names>a-cr:ZMW <_countries>Zambia <_title>Euro Cent <_names>r:eurocent,p:eurocents EUR 1/100 1 <_title>Cent (USD) <_names>au:¢,r:cent,p:cents USD 1/100 1 true <_title>Belgian Franc (obsolete) <_names>a-cr:BEF EUR 1/40.3399 1 true <_title>Croatian Kuna (obsolete) <_names>a-cr:HRK EUR 1/7.53450 1 true <_title>Greek Drachma (obsolete) <_names>a-cr:GRD,au:₯ EUR 1/340.750 1 true <_title>French Franc (obsolete) <_names>a-cr:FRF,au:₣ EUR 1/6.55957 1 true <_title>Italian Lira (obsolete) <_names>a-cr:ITL EUR 1/1936.27 1 true <_title>Dutch Guilder (obsolete) <_names>a-cr:NLG EUR 1/2.20371 1 true <_title>Portuguese Escudo (obsolete) <_names>a-cr:PTE EUR 1/200.482 1 true <_title>Deutsche Mark (obsolete) <_names>a-cr:DEM EUR 1/1.95583 1 true <_title>Spanish Peseta (obsolete) <_names>a-cr:ESP,au:₧ EUR 1/166.386 1 true <_title>Irish Pound (obsolete) <_names>a-cr:IEP EUR 1/0.787564 1 true <_title>Luxembourg Franc (obsolete) <_names>a-cr:LUF EUR 1/40.3399 1 true <_title>Austrian Schilling (obsolete) <_names>a-cr:ATS EUR 1/13.7603 1 true <_title>Finnish Markka (obsolete) <_names>a-cr:FIM EUR 1/5.94573 1 true <_title>Slovenian Tolar (obsolete) <_names>a-cr:SIT EUR 1/239.640 1 true <_title>Cypriot Pound (obsolete) <_names>a-cr:CYP EUR 1/0.585274 1 true <_title>Estonian Kroon (obsolete) <_names>a-cr:EEK EUR 1/15.6466 1 true <_title>Slovak Koruna (obsolete) <_names>a-cr:SKK EUR 1/30.1260 1 true <_title>Maltese Lira (obsolete) <_names>a-cr:MTL EUR 1/0.429300 1 true <_title>Latvian Lats (obsolete) <_names>a-cr:LVL EUR 1/0.702800 1 true <_title>Lithuanian Litas (obsolete) <_names>a-cr:LTL EUR 1/3.45280 1 libqalculate-5.5.2/data/datasets.xml.in000066400000000000000000000132361476076707200200620ustar00rootroot00000000000000 <_title>Data Sets <_title>!datasets!Elements elements.xml This data uses material from the Wikipedia, under the Creative Commons Attribution-ShareAlike License <_names>r:atom <_title>!datasets!Element <_title>Symbol text true <_names>r:symbol <_title>!datasets!Number number true <_names>!datasets!r:number <_title>Name text true <_names>r:name <_title>Classification <_description>A number representing an element group: 1 Alkali Metal 2 Alkaline-Earth Metal 3 Lanthanide 4 Actinide 5 Transition Metal 6 Metal 7 Metalloid 8 Polyatomic Non-Metal 9 Diatomic Non-Metal 10 Noble Gas 11 Unknown chemical properties number <_names>r:class <_title>Atomic Mass <_description>The property uses standard atomic weight, when determined, or the mass number. number u true <_names>r:mass,r:weight <_title>Boiling Point number K true <_names>r:boiling <_title>Melting Point number K true <_names>r:melting <_title>Density <_description>Density at STP (gases) or near room temperature number g/cm^3 true <_names>r:density <_title>X Position number true <_names>r:x_pos <_title>Y Position number true <_names>r:y_pos <_title>Planets planets.xml This data uses material from the Wikipedia articles "Earth" (http://www.wikipedia.org/wiki/Earth), "Jupiter" (http://www.wikipedia.org/wiki/Jupiter), "Mars" (http://www.wikipedia.org/wiki/Mars), "Mercury (planet)" (http://www.wikipedia.org/wiki/Mercury_(planet)), "Neptune" (http://www.wikipedia.org/wiki/Neptune), "Pluto" (http://www.wikipedia.org/wiki/Pluto), "Saturn" (http://www.wikipedia.org/wiki/Saturn), "Uranus" (http://www.wikipedia.org/wiki/Uranus), and "Venus" (http://en.wikipedia.org/wiki/Venus), under Creative Commons Attribution-ShareAlike License <_names>r:planet <_title>Planet <_title>Name text true <_names>r:name <_title>Orbital Period (Year) number d true <_names>!datasets!r:year <_title>Average Orbital Speed number km/s true <_names>r:speed <_title>Eccentricity number true <_names>r:eccentricity <_title>Inclination (to ecliptic) number true <_names>r:inclination <_title>Number of Satellites number <_names>r:satellites <_title>!datasets!Mass number kg true <_names>r:mass <_title>Mean Density number g/cm^3 true <_names>r:density <_title>Surface Area number km^2 true <_names>!datasets!r:area <_title>Equatorial Gravity number m/s^2 true <_names>r:gravity <_title>Mean Surface Temperature number K true <_names>r:temperature <_title>Mean Radius number km true <_names>r:radius libqalculate-5.5.2/data/elements.xml.in000066400000000000000000000715021476076707200200660ustar00rootroot00000000000000 <_name>Hydrogen 9 [1.00784, 1.00811] 20.271 13.99 8.988E-5 1 1 <_name>Helium 10 4.002602(2) 4.222 0.95 1.786E-4 18 1 <_name>Lithium 1 [6.938, 6.997] 1603 453.65 0.534 1 2 <_name>Beryllium 2 9.0121831(5) 2742 1560 1.85 2 2 <_name>Boron 7 [10.806, 10.821] 4200 2349 2.35 13 2 <_name>Carbon 8 [12.0096, 12.0116] 2.266 14 2 <_name>Nitrogen 9 [14.00643, 14.00728] 77.355 63.15 1.2504E-3 15 2 <_name>Oxygen 9 [15.99903, 15.99977] 90.188 54.36 0.001429 16 2 <_name>Fluorine 9 18.998403163(6) 85.03 53.48 0.001696 17 2 <_name>Neon 10 20.1797(6) 27.104 24.56 0.0009002 18 2 <_name>Sodium 1 22.98976928(2) 1156.090 370.944 0.968 1 3 <_name>Magnesium 2 [24.304, 24.307] 1363 923 1.738 2 3 <_name>Aluminum 6 26.9815384(3) 2743 933.47 2.70 13 3 <_name>Silicon 7 [28.084, 28.086] 3538 1687 2.3290 14 3 <_name>Phosphorus 8 30.973761998(5) 553.7 317.3 1.823 15 3 <_name>Sulfur 8 [32.059, 32.076] 717.8 388.36 2.07 16 3 <_name>Chlorine 9 [35.446, 35.457] 239.11 171.6 0.0032 17 3 <_name>Argon 10 [39.792, 39.963] 87.302 83.81 0.001784 18 3 <_name>Potassium 1 39.0983(1) 1032 336.7 0.862 1 4 <_name>Calcium 2 40.078(4) 1757 1115 1.55 2 4 <_name>Scandium 5 44.955908(5) 3109 1814 2.985 3 4 <_name>Titanium 5 47.867(1) 3560 1941 4.506 4 4 <_name>Vanadium 5 50.9415(1) 3680 2183 6.0 5 4 <_name>Chromium 5 51.9961(6) 2944 2180 7.19 6 4 <_name>Manganese 5 54.938043(2) 2334 1519 7.21 7 4 <_name>Iron 5 55.845(2) 3134 1811 7.874 8 4 <_name>Cobalt 5 58.933194(3) 3200 1768 8.90 9 4 <_name>Nickel 5 58.6934(4) 3003 1728 8.908 10 4 <_name>Copper 5 63.546(3) 2835 1357.77 8.96 11 4 <_name>Zinc 5 65.38(2) 1180 692.68 7.14 12 4 <_name>Gallium 6 69.723(1) 2673 302.9146 5.91 13 4 <_name>Germanium 7 72.630(8) 3106 1211.40 5.323 14 4 <_name>Arsenic 7 74.921595(6) 887 1090 5.727 15 4 <_name>Selenium 8 78.971(8) 958 494 4.81 16 4 <_name>Bromine 9 [79.901, 79.907] 332.0 265.8 3.1028 17 4 <_name>Krypton 10 83.798(2) 119.93 115.78 0.003749 18 4 <_name>Rubidium 1 85.4678(3) 961 312.45 1.532 1 5 <_name>Strontium 2 87.62(1) 1650 1050 2.64 2 5 <_name>Yttrium 5 88.90584(1) 3203 1799 4.472 3 5 <_name>Zirconium 5 91.224(2) 4650 2128 6.52 4 5 <_name>Niobium 5 92.90637(1) 5017 2750 8.57 5 5 <_name>Molybdenum 5 95.95(1) 4912 2896 10.28 6 5 <_name>Technetium 5 98 4538 2430 11 7 5 <_name>Ruthenium 5 101.07(2) 4423 2607 12.45 8 5 <_name>Rhodium 5 102.90549(2) 3968 2237 12.41 9 5 <_name>Palladium 5 106.42(1) 3236 1828.05 12.023 10 5 <_name>Silver 5 107.8682(2) 2435 1234.93 10.49 11 5 <_name>Cadmium 5 112.414(4) 1040 594.22 8.65 12 5 <_name>Indium 6 114.818(1) 2345 429.7485 7.31 13 5 <_name>Tin 6 118.710(7) 2875 505.08 7.265 14 5 <_name>Antimony 7 121.760(1) 1908 903.78 6.697 15 5 <_name>Tellurium 7 127.60(3) 1261 722.66 6.24 16 5 <_name>Iodine 9 126.90447(3) 457.4 386.85 4.933 17 5 <_name>Xenon 10 131.293(6) 165.051 161.40 0.005894 18 5 <_name>Cesium 1 132.90545196(6) 944 301.7 1.93 1 6 <_name>Barium 2 137.327(7) 2118 1000 3.51 2 6 <_name>Lanthanum 3 138.90547(7) 3737 1193 6.162 3 9 <_name>Cerium 3 140.116(1) 3716 1068 6.770 4 9 <_name>Praseodymium 3 140.90766(1) 3403 1208 6.77 5 9 <_name>Neodymium 3 144.242(3) 3347 1297 7.01 6 9 <_name>Promethium 3 145 3273 1315 7.26 7 9 <_name>Samarium 3 150.36(2) 2173 1345 7.52 8 9 <_name>Europium 3 151.964(1) 1802 1099 5.264 9 9 <_name>Gadolinium 3 157.25(3) 3273 1585 7.90 10 9 <_name>Terbium 3 158.925354(8) 3396 1629 8.23 11 9 <_name>Dysprosium 3 162.500(1) 2840 1680 8.540 12 9 <_name>Holmium 3 164.930328(7) 2873 1734 8.79 13 9 <_name>Erbium 3 167.259(3) 3141 1802 9.066 14 9 <_name>Thulium 3 168.934218(6) 2223 1818 9.32 15 9 <_name>Ytterbium 3 173.045(10) 1469 1097 6.90 16 9 <_name>Lutetium 3 174.9668(1) 3675 1925 9.841 3 6 <_name>Hafnium 5 178.49(2) 4876 2506 13.31 4 6 <_name>Tantalum 5 180.94788(2) 5731 3290 16.69 5 6 <_name>Tungsten 5 183.84(1) 6203 3695 19.3 6 6 <_name>Rhenium 5 186.207(1) 5903 3459 21.02 7 6 <_name>Osmium 5 190.23(3) 5285 3306 22.59 8 6 <_name>Iridium 5 192.217(2) 4403 2719 22.56 9 6 <_name>Platinum 5 195.084(9) 4098 2041.4 21.45 10 6 <_name>Gold 5 196.966570(4) 3243 1337.33 19.30 11 6 <_name>!elements!Mercury 5 200.592(3) 629.88 234.3210 13.534 12 6 <_name>Thallium 6 [204.382, 204.385] 1746 577 11.85 13 6 <_name>Lead 6 207.2(1) 2022 600.61 11.34 14 6 <_name>Bismuth 6 208.98040(1) 1837 544.7 9.78 15 6 <_name>Polonium 6 209 1235 527 9.196 16 6 <_name>Astatine 7 210 610 575 6.35+/-0.15 17 6 <_name>Radon 10 222 211.5 202 0.00973 18 6 <_name>Francium 1 223 950 300 2.9+/-0.1 1 7 <_name>Radium 2 226 2010 973 5.5 2 7 <_name>Actinium 4 227 3500+/-300 1500 10 3 10 <_name>Thorium 4 232.0377(4) 5061 2023 11.7 4 10 <_name>Protactinium 4 231.03588(1) 4300 1841 15.37 5 10 <_name>Uranium 4 238.02891(3) 4404 1405.3 19.1 6 10 <_name>Neptunium 4 237 4447 912+/-3 20.45 7 10 <_name>Plutonium 4 244 3505 912.5 19.816 8 10 <_name>Americium 4 243 2880 1449 12 9 10 <_name>Curium 4 247 3383 1613 13.51 10 10 <_name>Berkelium 4 247 2900 1259 14.78 11 10 <_name>Californium 4 251 1743 1173 15.1 12 10 <_name>Einsteinium 4 252 1269 1133 8.84 13 10 <_name>Fermium 4 257 1800 9.7(1) 14 10 <_name>Mendelevium 4 258 1100 10.3(7) 15 10 <_name>Nobelium 4 259 1100 9.9(4) 16 10 <_name>Lawrencium 4 266 1900 16.1+/-0.5 3 7 <_name>Rutherfordium 5 267 5800 2400 23.2 4 7 <_name>Dubnium 5 268 29.3 5 7 <_name>Seaborgium 5 269 35.0 6 7 <_name>Bohrium 5 270 37.1 7 7 <_name>Hassium 5 269 41 8 7 <_name>Meitnerium 11 278 37.4 9 7 <_name>Darmstadtium 11 281 34.8 10 7 <_name>Roentgenium 11 282 28.7 11 7 <_name>Copernicium 5 285 12 7 <_name>Nihonium 11 286 1430 700 16 13 7 <_name>Flerovium 11 210 289 14 7 <_name>Moscovium 11 290 1400 670 13.5 15 7 <_name>Livermorium 11 293 1085+/-50 708.5+/-71.5 12.9 16 7 <_name>Tennessine 11 294 883 723+/-100 7.2+/-0.1 17 7 <_name>Oganesson 11 294 350+/-30 18 7 libqalculate-5.5.2/data/eurofxref-daily.xml000066400000000000000000000030621476076707200207460ustar00rootroot00000000000000 Reference rates European Central Bank libqalculate-5.5.2/data/functions.xml.in000066400000000000000000005707751476076707200203020ustar00rootroot00000000000000 <_title>Matrices & Vectors <_title>Construct Vector <_names>r:vector <_description>Returns a vector with listed elements. <_title>Elements <_title>Generate Vector <_names>r:genvector $name(x^2, 1, 5) = [1 4 9 16 25] <_description>Returns a vector generated from a function with a variable (default x) running from min to max. The 4th argument is either the step between each value of the variable, if the 6th argument is 1 or if the value is 1 (default), negative, or not an integer and the 6th argument is -1 (default), or the number of elements. <_title>Function <_title>Min <_title>Max <_title>Dimension / Step size <_title>Variable <_title>Use step size <_title>Colon Function (number sequence vector) <_names>r:colon $name(1, 0.5, 3) = [1 1.5 2 2.5 3] <_description>Returns a sequence of numbers as a vector. <_title>Starting value <_title>Increment or Ending value <_title>Ending value <_title>Sort <_names>r:sort <_description>Returns a sorted vector. $name([6 1 4]) = [1 4 6] <_title>Vector <_title>Ascending <_title>Rank <_names>r:rank <_description>Returns a vector with values of elements replaced with their mutual ranks. $name([6 1 4]) = [3 1 2] <_title>Vector <_title>Ascending <_title>Flip <_names>r:flip <_description>Reverses the order of elements in a matrix or vector. If dimension is 1, the order of rows is reversed, if 2 column order is changed, and if 0 (default) both are changed. $name([1 2 3]) = [3 2 1] <_title>Matrix/vector <_title>Dimension <_title>Vector Limits <_names>r:limits <_description>Returns a part of a vector between two positions. <_title>Vector <_title>Lower limit <_title>Upper limit <_title>Dimension <_names>r:dimension <_description>Returns the number of elements in a vector. <_title>Vector <_title>Merge Vectors <_names>r:mergevectors <_description>Returns a vector with the elements from two vectors. <_title>Vector 1 <_title>Vector 2 <_title>Construct Matrix <_names>r:matrix <_description>Returns a matrix with specified dimensions and listed elements. Omitted elements are set to zero. <_title>Rows <_title>Columns <_title>Elements <_title>Convert Matrix to Vector <_names>r:matrix2vector <_description>Puts each element of a matrix in vertical order in a vector. <_title>Matrix <_title>Matrix Area <_names>r:area <_description>Returns a part of a matrix. <_title>Matrix <_title>Start row <_title>Start column <_title>End row <_title>End column <_title>Rows <_names>r:rows <_description>Returns the number of rows in a matrix. <_title>Matrix <_title>Columns <_names>r:columns <_description>Returns the number of columns in a matrix. <_title>Matrix <_title>Extract Row as Vector <_names>r:row <_description>Returns a row in a matrix as a vector. <_title>Matrix <_title>Row <_title>Extract Column as Vector <_names>r:column <_description>Returns a column in a matrix as a vector. <_title>Matrix <_title>Column <_title>Elements <_names>r:elements <_description>Returns the number of elements in a matrix or vector. <_title>Matrix/vector <_title>Element <_names>r:element <_description>Returns the element at specified position in a matrix (row and column) or vector (index). <_title>Matrix/vector <_title>Row/index <_title>Column <_title>Transpose <_names>r:transpose <_description>Returns the transpose of a matrix. <_title>Matrix <_title>Identity <_names>r:identity <_description>Returns the identity matrix of a matrix or with specified number of rows/columns. <_title>Matrix or rows/columns <_title>Determinant <_names>r:det <_description>Calculates the determinant of a matrix. <_title>Matrix <_title>Permanent <_names>r:permanent <_description>Calculates the permanent of a matrix. The permanent differs from a determinant in that all signs in the expansion by minors are taken as positive. <_title>Matrix <_title>Adjugate (Adjoint) <_names>r:adj <_description>Calculates the adjugate or adjoint of a matrix. <_title>Matrix <_title>Cofactor <_names>r:cofactor <_description>Calculates the cofactor of the element at specified position. <_title>Matrix <_title>Row <_title>Column <_title>Matrix Inverse <_names>r:inv,r:inverse <_description>Calculates the inverse of a matrix. The inverse is the matrix that multiplied by the original matrix equals the identity matrix (AB = BA = I). <_title>Matrix <_title>Load CSV File <_names>r:load <_description>Returns a matrix imported from a CSV data file. <_title>Filename <_title>First data row <_title>Separator <_title>Export To CSV File <_names>r:export <_description>Exports a matrix to a CSV data file. <_title>Matrix/vector <_title>Filename <_title>Separator <_title>Magnitude <_names>r:magnitude <_description>Calculates the magnitude of a value. This function returns the same value as abs() for all values except vectors. <_title>Value <_title>Matrix Rank <_names>ra:rk <_title>Matrix <_title>Reduced Row Echelon Form <_names>r:rref <_title>Matrix <_title>Concatenate Horizontally r:horzcat <_title>Matrix 1 <_title>Matrix 2 <_title>Concatenate Vertically r:vertcat <_title>Matrix 1 <_title>Matrix 2 <_title>Entrywise Function <_names>r:entrywise <_description>Calculates a new matrix or vector using each separate element in matrix/vector 1 and the corresponding (in the same row and column) elements in matrix/vector 2. An unlimited number of matrices/vectors can be specified, with each matrix/vector argument followed by the corresponding variable used in the function argument. $name(x / y, [4 10 12], x, [2 2 4], y) = [2 5 3] <_title>Function <_title>Matrices/vectors and variables <_title>Norm (length) <_names>r:norm <_description>Calculates the norm/length of a vector. <_title>Vector <_title>Exponent (p) <_title>Dot Product <_names>r:dot <_description>Calculates the dot product of two vectors. <_title>Vector 1 <_title>Vector 2 <_title>Element-wise Multiplication <_names>r:multiply,times,hadamard <_title>Factor 1 <_title>Factor 2 <_title>Element-wise Right Division <_names>r:divide,rdivide <_title>Numerator <_title>Denominator <_title>Element-wise Power <_names>r:pow,r:raise,power <_title>Base <_title>Exponent <_title>Cross Product <_names>r:cross <_description>Calculates the cross product of two 3-dimensional vectors. ((element(\x,2)*element(\y,3))-(element(\x,3)*element(\y,2)),(element(\x,3)*element(\y,1))-(element(\x,1)*element(\y,3)),(element(\x,1)*element(\y,2))-(element(\x,2)*element(\y,1))) <_title>Vector 1 dimension(\x)==3 <_title>Vector 2 dimension(\x)==3 <_title>Scalar Triple Product <_names>r:triple_product,triple <_description>Calculates the scalar-valued triple product of three 3-dimensional vectors. det([\x; \y; \z]) <_title>Vector 1 dimension(\x)==3 <_title>Vector 2 dimension(\x)==3 <_title>Vector 3 dimension(\x)==3 <_title>Kronecker Product <_names>r:kron <_title>Matrix 1 <_title>Matrix 2 <_title>Combinatorics <_title>Factorial <_description>Calculates the factorial of an integer. Multiplies the argument with every lesser positive integer (n(n-1)(n-2)...2*1). Can also be entered as a number followed by one exclamation mark. $name(5) = 5! = 5 * 4 * 3 * 2 * 1 = 120 <_names>r:factorial <_title>Value <_title>Double Factorial <_names>r:factorial2 <_description>Calculates the double factorial of an integer. Multiplies the argument with every second lesser positive integer (n(n-2)(n-4)...). Can also be entered as a number followed by two exclamation marks. $name(5) = 5!! = 5 * 3 * 1 = 15 <_title>Value <_title>Multifactorial <_names>r:multifactorial <_description>Calculates the multifactorial of an integer. Multiplies the argument with every x lesser positive integer (n(n-x)(n-2x)...). Can also be entered as a number followed by three or more exclamation marks. $name(18, 4) = 18!!!! = 18 * 14 * 10 * 6 * 2 = 30 240 <_title>Value <_title>Factorial <_title>Binomial Coefficient <_names>r:binomial n k <_title>Hyperfactorial <_names>r:hyperfactorial product(x^x,1,\x,x) <_description>Calculates the hyperfactorial of an integer. Multiplies the argument raised by itself with every lesser positive integer raised by themselves (1^1 * 2^2 ... n^n). $name(3) = (3^3) * (2^2) * (1^1) = 108 <_title>Value 1 <_title>Superfactorial <_names>r:superfactorial product(factorial(x),0,\x,x) <_description>Calculates the superfactorial of an integer. Multiplies the factorial of the argument with the factorial of every lesser positive integer (1! * 2! ... n!). $name(5) = 5! * 4! * 3! * 2! * 1! = 34 560 <_title>Value 0 <_title>Permutations (Variations) <_names>r:perm,variations if(\y>\x,0,\x!/(\x-\y)!) <_description>Returns the number of possible arrangements of an ordered list with a number of objects to choose from and a list size. If there are three objects (1, 2 and 3) that are put in a list with two positions, the alternatives are [1, 2], [2, 1], [1, 3], [3, 1], [2, 3] and [3, 2], and thus the number of permutations is 6. <_title>Objects 0 <_title>Size 0 <_title>Combinations <_names>r:comb if(\y>\x,0,\x!/(\y!*(\x-\y)!)) <_description>Returns the number of possible arrangements of an unordered list with a number of objects to choose from and a list size. If there are three objects (1, 2 and 3) that are put in a list with place for two, the alternatives are [1, 2], [1, 3], and [2, 3], and thus the number of combinations is 3. <_title>Objects 0 <_title>Size 0 <_title>Derangements <_names>r:derangements <_description>Returns the number of possible rearrangements of an ordered list, of a certain size, where none of the objects are in their original positions. If the original list is [1, 2, 3], the possible derangements are [2, 3, 1] and [3, 1, 2], and thus the number of derangements is 2. factorial(\x)*sum(((-1)^"i")/factorial("i"),0,\x,"i") <_title>Number of elements 1 <_title>Number Theory <_title>Absolute Value <_names>r:abs <_title>Value <_title>Arithmetic <_title>Signum <_names>r:sgn <_title>Number <_title>Value for zero <_title>Numerator <_names>r:numerator <_title>Number <_title>Denominator <_names>r:denominator <_title>Number <_title>Remainder <_names>r:rem <_title>Numerator <_title>Denominator <_title>Modulus <_names>r:mod <_title>Numerator <_title>Denominator <_title>Modular Exponentiation <_description>Finds the modular inverse for negative exponents, and is otherwise equivalent to mod(a^b, c). For negative exponents the greatest common divisor of the numerator and the denominator must be 1. <_names>r:powmod,power_mod <_title>Numerator <_title>Exponent <_title>Denominator <_title>Parallel Sum <_names>r:parallel <_title>Integer Division <_names>r:div trunc(\x/\y) <_title>Numerator <_title>Denominator <_title>Negate <_names>r:neg -\x <_title>Value false <_title>Subtract <_names>r:subtract element(\x,1)-sum(element(\x,"i"),2,elements(\x)) elements(\x)>=2 <_title>Terms <_title>Polynomials <_title>Coefficient <_names>r:coeff <_title>Polynomial <_title>Number <_title>Variable <_title>Leading Coefficient <_names>r:lcoeff <_title>Polynomial <_title>Variable <_title>Trailing Coefficient <_names>r:tcoeff <_title>Polynomial <_title>Variable <_title>Polynomial Degree <_names>r:degree <_title>Polynomial <_title>Variable <_title>Lowest Degree (Valuation) <_names>r:ldegree <_title>Polynomial <_title>Variable <_title>Content Part <_names>r:pcontent <_title>Polynomial <_title>Variable <_title>Primitive Part <_names>r:primpart <_title>Polynomial <_title>Variable <_title>Unit Part <_names>r:punit <_title>Polynomial <_title>Variable <_title>Prime Numbers <_title>Nth Prime Number <_names>r:nthprime <_title>Index (n) <_title>Prime Counting Function <_description>Returns the number of prime numbers less than or equal to the specified number. <_names>r:primePi,ou:primeπ,o:prime_pi <_title>Value <_title>Next Prime Number <_description>Returns the next prime number greater than or equal to the specified number. <_names>r:nextprime <_title>Value <_title>Previous Prime Number <_description>Returns the largest prime number smaller than or equal to the specified number. <_description> <_names>r:prevprime <_title>Value <_title>Is Prime Number <_names>r:isprime <_title>Value <_title>Prime Numbers Less Than or Equal <_description>Returns a vector containing all the prime numbers less than or equal to the specified number. <_names>r:primes <_title>Value <_title>Greatest Common Divisor <_names>rc:gcd,c:GCD <_title>Value 1 <_title>Value 2 <_title>Value 3 <_title>Least Common Multiple <_names>r:lcm <_title>Value 1 <_title>Value 2 <_title>Value 3 <_title>Divisors <_names>r:divisors <_title>Value <_title>Factors <_names>r:factor <_description>Performs integer or polynomial factorization, and returns the factors in a vector. Mode determines the return value for integer factorization as follows. 0: all prime factors 1: factors without duplicates 2: factors and exponents in a matrix with two columns 3: the exponent after each factor in vector <_title>Value <_title>Mode <_title>Bernoulli Number/Polynomial <_description>Returns the nth Bernoulli number or polynomial (if the second argument is non-zero). <_names>r:bernoulli <_title>Index (n) <_title>Variable <_title>Euler's Totient Function <_description>Counts the positive integers up to a given integer n that are relatively prime to n. <_names>r:totient,au:φ,phi <_title>n <_title>Fibonacci Number <_names>r:fibonacci <_description>Returns the n-th term of the Fibonacci sequence. \x if(isInteger(\1),(golden^\1−(1−golden)^\1)/sqrt(5),(golden^\x-cos(\x*pi*rad)*golden^(-\x))/sqrt(5)) <_title>Index (n) false <_title>Multiples <_names>r:multiples <_description>Returns all multiples of a value in the specified range. $name(9, 50, 100) = [54 63 72 81 90 99] if(ceil(\y/abs(\x))>floor(\z/abs(\x)),[],genvector("i"*abs(\x),ceil(\y/abs(\x)),floor(\z/abs(\x)),1,"i",1)) \y<=\z <_title>Value true <_title>Min false <_title>Max false <_title>Rounding <_title>Rounding <_title>Round <_names>r:round <_description>Round to nearest integer or decimal. If the second argument is zero, the value is rounded towards the nearest integer, otherwise the value is rounded to the corresponding number of digits to the right (if positive) or left (if negative) of the decimal point. Available rounding methods (3rd argument): half away from zero (0), half to even (1), half to odd (2), half toward zero (3), half up (4), half down (5), half random (6), toward zero (7), away from zero (8), up (9), down (10) <_title>Value <_title>Number of decimals <_title>Rounding method <_title>Round Downwards <_names>r:floor <_title>Value <_title>Round Upwards <_names>r:ceil <_title>Value <_title>Round Towards Zero <_names>r:trunc <_title>Value <_title>Integer Part <_names>r:int <_title>Value <_title>Fractional Part <_names>r:frac <_title>Value <_title>Integer Digits <_names>r:integerDigits <_title>Number <_title>Base <_title>Length <_title>Get Digit <_names>r:digitGet,numberDigit <_description>Returns digit at specified position (index of first digit left of decimal sign is zero). <_title>Number <_title>Position <_title>Base <_title>Set Digit <_names>r:digitSet <_description>Sets the digit at specified position (index of first digit left of decimal sign is zero). <_title>Number <_title>Position <_title>Value <_title>Base <_title>Clip <_names>r:clip <_description>Clips or limits the input value to be between the lower and upper bounds. min(max(\x, \Y{-infinity}), \Z{infinity}) \y<=\z <_title>Value <_title>Lower bound false <_title>Upper bound false <_title>Number Bases <_title>Number Base <_names>r:base <_description>Returns a value from an expression using the specified number base (radix). For bases between -62 and 62 full mathematical expressions (including operators and functions) are supported, while for other bases the specified expression is converted to a single number. Bases ≤ 36 use digits 0-9 and A-Z (case insensitive). Bases between 37 and 62 uses case sensitive letters (0-9, A-Z, a-z) as digits ('z' equals 61). Bases over 62 use Unicode characters as digits, with the character code as value (e.g. '0' equals 48). Escaped characters are in this case supported (e.g. '\0' = 0, '\523' = 523, '\x7f' = 127). Negative bases use the same digits as the corresponding positive bases and the digits used for non-integer bases are determined by rounding the base away from zero. Bases that are not real numbers by default use digits 0-9 and A-Z. The set of digits used can be selected using the third argument (defaults to 0 for automatic selection). Set it to 1 for digits 0-9 and A-Z, 2 for 0-9, A-Z and a-z, 3 for Unicode digits, and 4 for phonewords (e.g. ABC=2, CDE=3, etc.), or enter a text string with all digits placed in ascending order (e.g. "0123456789") and optionally separated by semicolon (to enable multple equivalent digits, e.g. "0;aA1;bB2;cC3"). When the set of digits is manually selected, the specified expression is always converted to a single number. <_title>Number <_title>Base <_title>Set of digits <_title>Binary <_names>r:bin <_description>Returns a value from a binary expression. If two's complement is true, numbers beginning with '1' are interpreted as negative binary numbers using two's complement. <_title>Binary number <_title>Two's complement <_title>Octal <_names>r:oct <_description>Returns a value from an octal expression. <_title>Octal number <_title>Decimal <_names>r:dec <_description>Returns a value from a decimal expression. <_title>Decimal number <_title>Hexadecimal <_names>r:hex <_description>Returns a value from a hexadecimal expression. If two's complement is true, numbers beginning with 8 or higher are interpreted as negative hexadecimal numbers using two's complement. <_title>Hexadecimal number <_title>Two's complement <_title>Bijective base-26 <_names>r:bijective <_description>Returns a value from an expression in bijective base-26. Conversion in the opposite direction is also supported. <_title>Bijective base-26 number <_title>Binary-Coded Decimal (BCD) <_names>r:bcd <_title>Binary-coded decimal number <_title>Packed <_title>Integers <_title>Even <_names>r:even <_title>Number <_title>Odd <_names>r:odd <_title>Number <_title>Special Functions <_title>Gamma Function <_names>r:gamma <_title>Digamma Function <_names>r:digamma,psi <_title>Beta Function <_names>r:beta <_title>Error Function <_names>r:erf <_title>Complementary Error Function <_names>r:erfc <_title>Imaginary Error Function <_names>r:erfi <_title>Inverse Error Function <_names>r:erfinv <_title>Polylogarithm <_names>rc:Li,polylog <_title>Order <_title>Argument <_title>Airy Function <_names>r:airy <_title>Bessel Function of the First Kind <_names>r:besselj <_title>Order <_title>Argument <_title>Bessel Function of the Second Kind <_names>r:bessely <_title>Order <_title>Argument <_title>Riemann Zeta <_description>Calculates Hurwitz zeta function if the second argument is not 1. <_names>r:zeta <_title>Integral point <_title>Hurwitz zeta argument <_title>Kronecker Delta <_names>r:kronecker,kronecker_delta <_description>Returns 0 if i != j and 1 if i = j. \x=\Y{0} <_title>Value 1 (i) false false <_title>Value 2 (j) false false <_title>Logit Transformation <_names>r:logit ln(\x/(1-\x)) <_title>Value <_title>Probit Function <_names>r:probit sqrt(2)*erfinv(2\x-1) <_title>Value 0 1 <_title>Sigmoid Function <_names>r:sigmoid 1/(1+e^(-\x)) <_title>Value false <_title>Step Functions <_title>Heaviside Step Function <_names>r:heaviside,au:θ <_description>Discontinuous function also known as "unit step function". Returns 0 if x < 0, 1 if x > 0, and 1/2 if x = 0. <_title>Dirac Delta Function <_names>r:dirac,au:δ <_description>Returns 0 if x is non-zero, and infinity if x is zero. <_title>Ramp Function <_names>r:ramp (\x+abs(\x))/2 <_title>Value false false <_title>Rectangular Function <_names>r:rectangular heaviside(\x+(1/2))-heaviside(\x-(1/2)) <_title>Value false false <_title>Triangular Function <_names>r:triangular if(abs(\x)<1,1-abs(\x),0) <_title>Value false false <_title>Complex Numbers <_title>Real Part <_names>r:re,au:ℜ <_title>Complex number <_title>Imaginary Part <_names>r:im,au:ℑ <_title>Complex number <_title>Principal Argument <_names>r:arg <_title>Complex number <_title>Complex Conjugate <_names>r:conj re(\x)-i*im(\x) <_title>Complex number false <_title>Exponents & Logarithms <_title>Square Root <_names>au:√,r:sqrt <_description>Returns the principal square root (for positive values the positive root is returned). <_title>Value <_title>Cube Root <_names>r:cbrt,aou:∛ <_description>Returns the third real root. <_title>Value <_title>Nth root <_names>r:root <_description>Returns the real root. For negative values the degree must be odd. Complex values are not allowed. <_title>Value <_title>Degree (n) <_title>All Roots <_names>r:allroots $name(4, 2) = [2 -2] <_title>Value <_title>Degree (n) <_title>Square <_names>r:sq <_title>Value <_title>Exponential (e^x) <_names>r:exp <_title>Exponent <_title>Natural Logarithm <_names>r:ln <_title>Value <_title>Base-N Logarithm <_names>r:log <_title>Value <_title>Base <_title>Lambert W Function (Omega Function, Product Log) <_names>r:lambertw,productlog <_description>Returns the inverse function for x*e^x as ln() does for e^x. Only the principal branch and real valued results are currently supported. <_title>Value <_title>Branch <_title>Complex Exponential (Cis) <_names>r:cis <_title>Exponent <_title>Power Tower <_names>r:powertower $name(2, 4) = 2^(2^(2^2)) = 65 536 <_title>Value <_title>Order <_title>Base-2 Logarithm <_names>rs:log2 <_description>Returns the base n logarithm. log(\x,2) <_title>Value false 0 <_title>Base-10 Logarithm <_names>rs:log10 <_description>Returns the base n logarithm. log(\x,10) <_title>Value false 0 <_title>2 raised to the power X <_names>rs:exp2 2^\x <_title>Exponent <_title>10 raised to the power X <_names>rs:exp10 10^\x <_title>Exponent <_title>Square root (x * pi) <_names>r:sqrtpi <_description>Returns the non-negative square root of x * pi abs((\x*pi)^(1/2)) <_title>Non-negative value 0 <_title>Trigonometry <_title>Sine <_names>r:sin <_title>Angle <_title>Cosine <_names>r:cos <_title>Angle <_title>Tangent <_names>r:tan <_title>Angle <_title>Inverse Sine <_names>r:arcsin, r:asin <_title>Inverse Cosine <_names>r:arccos, r:acos <_title>Inverse Tangent <_names>r:arctan, r:atan <_title>Hyperbolic Sine <_names>r:sinh <_title>Hyperbolic Cosine <_names>r:cosh <_title>Hyperbolic Tangent <_names>r:tanh <_title>Inverse Hyperbolic Sine <_names>r:arsinh, r:asinh <_title>Inverse Hyperbolic Cosine <_names>r:arcosh, r:acosh <_title>Inverse Hyperbolic Tangent <_names>r:artanh, r:atanh <_title>Four-quadrant Inverse Tangent <_names>r:atan2, arctan2 <_description>Computes the principal value of the argument function applied to the complex number x+iy. <_title>Y <_title>X <_title>Cardinal Sine (Sinc Function) <_names>r:sinc <_title>Radians to Default Angle Unit <_names>r:radtodef <_title>Radians <_title>Default Angle Unit to Radians <_names>r:deftorad \x/radtodef(1) <_title>Value <_title>Secant <_names>r:sec 1/cos(\x) <_title>Angle false true <_title>Cosecant <_names>r:csc 1/sin(\x) <_title>Angle false true <_title>Cotangent <_names>r:cot cos(\x)/sin(\x) <_title>Angle false true <_title>Hyperbolic Secant <_names>r:sech 1/cosh(\x) false <_title>Hyperbolic Cosecant <_names>r:csch 1/sinh(\x) false <_title>Hyperbolic Cotangent <_names>r:coth cosh(\x)/sinh(\x) false <_title>Inverse Secant <_names>r:arcsec, r:asec acos(1/\x) false <_title>Inverse Cosecant <_names>r:arccsc, r:acsc asin(1/\x) false <_title>Inverse Cotangent <_names>r:arccot, r:acot if(\x=0,radtodef(pi/2),atan(1/\x),1) false <_title>Inverse Hyperbolic Secant <_names>r:arsech, r:asech acosh(1/\x) false <_title>Inverse Hyperbolic Cosecant <_names>r:arcsch, r:acsch if(\x=0,plus_infinity,asinh(1/\x),1) false <_title>Inverse Hyperbolic Cotangent <_names>r:arcoth, r:acoth if(\x=0,pi/2*i,atanh(1/\x),1) false <_title>Miscellaneous <_title>IEEE 754 Floating-Point <_names>r:float <_description>Reads a number in a IEEE 754 floating-point format. The number will be read as a binary number, unless it contains digits other than 1 or 0. If the third argument (exponent bits) is set to zero, the standard number of exponent bits will be used (e.g. 8 for 32-bit format). <_title>Floating-point number (binary) <_title>Number of bits <_title>Number of exponent bits <_title>Position of sign bit <_title>IEEE 754 Floating-Point Bits <_names>r:floatBits <_description>Converts a value to a number in a IEEE 754 floating-point format and returns the number corresponding to the binary representation. If the third argument (exponent bits) is set to zero, the standard number of exponent bits will be used (e.g. 8 for 32-bit format). <_title>Value <_title>Number of bits <_title>Number of exponent bits <_title>Position of sign bit <_title>IEEE 754 Floating-Point Error <_names>r:floatError <_description>Calculates the error (the difference between the original and the converted value) when converting a value to a IEEE 754 floating-point format. If the third argument (exponent bits) is set to zero, the standard number of exponent bits will be used (e.g. 8 for 32-bit format). <_title>Value <_title>Number of bits <_title>Number of exponent bits <_title>Position of sign bit <_title>IEEE 754 Floating-Point Components <_names>r:floatParts <_description>Converts a value to a number in a IEEE 754 floating-point format and returns sign, exponent, and significand in a vector. If the third argument (exponent bits) is set to zero, the standard number of exponent bits will be used (e.g. 8 for 32-bit format). <_title>Value <_title>Number of bits <_title>Number of exponent bits <_title>Position of sign bit <_title>IEEE 754 Floating-Point Value <_names>r:floatValue <_description>Returns the closest value that can be represented by a IEEE 754 floating-point format. If the third argument (exponent bits) is set to zero, the standard number of exponent bits will be used (e.g. 8 for 32-bit format). <_title>Value <_title>Number of bits <_title>Number of exponent bits <_title>Position of sign bit <_title>Roman Number <_names>r:roman <_description>Returns the value of a roman number. <_title>Roman number <_title>Distance Between GPS Coordinates <_names>r:geodistance,gpsdistance <_description>Calculates the distance between two geodetic coordinates using Vincenty's formulae (with datum WGS 84), or, in case of failure, the Haversine forumla. Each coordinate can be specified using a numerical value (representing decimal degrees), an angle (e.g. with degree unit), or a text string ending with N, S, E, or W (S for negative latitude, W for negative longitude). <_title>Latitude 1 <_title>Longitude 1 <_title>Latitude 2 <_title>Longitude 2 <_title>Convert to/from Q Format (Fixed Point) <_names>r:qFormat if((\A{0}=0&&isInteger(\x)),if(\Z{0}=0,\x/2^\y,\x/2^\z),if([\Z{0}==0,abs(\x)>2^\y],[round(\x*2^\y),sgn(\x)*2^(\y+\z)+warning("overflow")],round(\x*2^\z))) \z=0||abs(\x)<=2^(\y+\z) <_description>Converts to or from fixed point number. Corresponds to Qm.n format where m is the second argument and n is the third argument. m does not include the sign bit. If the value is an integer, and the fourth argument is false, the value is converted from fixed point, otherwise to. <_title>Value true <_title>Bits (integer part) 0 <_title>Bits (fraction part) 0 <_title>Always convert to <_title>Q Format Error (Fixed Point) <_names>r:qError abs(\x-qFormat(qNum(\x,\y,\Z{0}),\y,\z)) <_title>Value true <_title>Bits (integer part) 0 <_title>Bits (fraction part) 0 <_title>Body Mass Index (BMI) <_names>-r:bmi <_description>Calculates the Body Mass Index. The resulting BMI-value is sometimes interpreted as follows (although varies with age, sex, etc.): Underweight < 18.5 Normal weight 18.5-25 Overweight 25-30 Obesity > 30 Note that you must use units for weight (ex. 59kg) and length (ex. 174cm). $name(127 lb, 5ft + 4in) = 21.80 (\x/(1000g))/(\y/m)^2 <_title>Weight <_title>!human!Height <_title>RAID Space <_names>r:raid <_description>Calculates RAID array disk capacity usable for data storage. If the combination of number of disks and RAID level is invalid, zero is returned. Supported RAID levels are 0, 1, 2, 3, 4, 5, 6, 1+0/10, 0+1, 5+0/50, 6+0/60, and 1+6. Stripes are optional and only used for nested RAID levels (except 1+0). $name(4, 12, 5) = 12 if((\x="0",\x="1"||\x="1E",\x="2",\x="3"||\x="4"||\x="5",\x="6",\x="10"||\x="1+0",\x="01"||\x="0+1",\x="1+6",\x="50"||\x="5+0",\x="60"||\x="6+0"),(\z*\y,if(\z>=2,\y,0),if(\z>=3,(\z-log(\z+1,2))*\y,0),if(\z>=3,(\z-1)*\y,0),if(\z>=4,(\z-2)*\y,0),if(\z>=4&&even(\z),\z/2*\y,0),if(\z>=4,\z/\A{2}*\y,0),if(\z>=8,(\A-2)*\y,0),if(\z>=6,(\z-\A)*\y,0),if(\z>=8,(\z-\A*2)*\y,0)),error("Unknown RAID level"),1) <_title>RAID level <_title>Capacity of each disk <_title>Number of disks 1 <_title>Stripes 2 <_title>RAM Latency <_names>r:ramlatency $name(3600, 18) = 10 ns (\A{2}*\y+(\Z{1}-1))/if(isNumber(\x),\x*MHz,\x) <_title>Data Rate <_title>CAS Latency 0 <_title>Word 1 <_title>Transfers per Clock Cycle 1 <_title>Depth of Field <_names>r:dof <_description>Returns the estimated distance between the nearest and the farthest objects that are in acceptably sharp focus in a photo. Enter focal length (e.g. 50 mm) and distance (e.g. 5 m) with units, and f-stop without unit (2.8, 4.0, 5.6, etc.). Specify either a cicle of confusion diameter limit (e.g. 0.05 mm) or the sensor size of the camera - 0="35mm", 1="APS-H", 2="APS-CN" (Nikon, Pentax, Sony), 3="APS-C" (Canon), 4="4/3" (Four Thirds System), or 5='1"' (Nikon 1, Sony RX10, Sony RX100) - for a diameter based on d/1500. $name(50 mm, 2.8, 2 m, "APS-C") ≈ 161 mm 2*\z^2*\y*if((\A{0}=0||\a="35mm"||\a="35 mm"||\a=35mm,\a=1||\a="APS-H",\a=2||\a="APC-CN",\a=3||\a="APS-C",\a=4||\a="3/4"||\a=3/4,\a=5||\a='1"'||\a="1"||\a=1in||\a=1),(0.029mm,0.023mm,0.019mm,0.018mm,0.015mm,0.011mm),\a,1))/\x^2 <_title>Focal Length <_title>F-stop (aperture) 0 <_title>Distance <_title>Circle of confusion or sensor size <_title>American Wire Gauge Cross-Section Area <_names>r:awg <_description>For gauges larger than 0000 (4/0), please use negative values (00=-1, 000=-2, 0000=-3, 00000=-4, etc). For conversion to AWG, use an equation (e.g. awg(x) = 20 mm^2). 25*8464^((36-if((\x="0000"||\x="4/0",\x="000"||\x="3/0",\x="00"||\x="2/0",\x="1/0"),(-3,-2,-1,0),dec(\x),1))/39)*cmil AWG <_title>American Wire Gauge Diameter <_names>r:awgd <_description>For gauges larger than 0000 (4/0), please use negative values (00=-1, 000=-2, 0000=-3, 00000=-4, etc). For conversion to AWG, use an equation (e.g. awgd(x) = 5 mm). 1.27E-4*92^((36-if((\x="0000"||\x="4/0",\x="000"||\x="3/0",\x="00"||\x="2/0",\x="1/0"),(-3,-2,-1,0),dec(\x),1))/39)*m AWG <_title>Drill Bit Size <_names>r:drillbit <_description>Returns drill bit gauge number or letter, if argument is fraction or diameter value with length unit, or drill bit diameter (with length unit), if argument is an integer or an upper-case character (quoted) $name("A") = 0.234 in; $name(4.4 mm) = 17 if(isNumber(\x),\x,\x/in) [0.413,0.404,0.397,0.386,0.377,0.368,0.358,0.348,0.339,0.332,0.323,0.316,0.302,0.295,0.290,0.281,0.277,0.272,0.266,0.261,0.257,0.250,0.246,0.242,0.238,0.234,0.228,0.221,0.213,0.209,0.2055,0.204,0.201,0.199,0.196,0.1935,0.191,0.189,0.185,0.182,0.180,0.177,0.173,0.1695,0.166,0.161,0.159,0.157,0.154,0.152,0.1495,0.147,0.144,0.1405,0.136,0.1285,0.120,0.116,0.113,0.111,0.110,0.1065,0.104,0.1015,0.0995,0.098,0.096,0.0935,0.089,0.086,0.082,0.081,0.0785,0.076,0.073,0.070,0.067,0.0635,0.0595,0.055,0.052,0.0465,0.043,0.042,0.041,0.040,0.039,0.038,0.037,0.036,0.035,0.033,0.032,0.031,0.0292,0.028,0.026,0.025,0.024,0.0225,0.021,0.020,0.018,0.016,0.0145,0.0135,0.013,0.0125,0.012,0.0115,0.011,0.0105,0.010,0.0095,0.0091,0.0087,0.0083,0.0079,0.0075,0.0071,0.0067,0.0063,0.0059,0.0055,0.0051,0.0047,0.0043,0.0039,0.0035,0.0031,0.0027,0.0023,0.0019] if((isInteger(\x),isNumber(\1),len(\x)=1&&code(\x)<91&&code(\x)>64),(if(\x>107||\x<1,undefined,element(\2,\x+26)*in),if(sum(\1>(element(\2,"i")+element(\2,"i"+1))/2,1,132,"i")>106,char(sum(\1>(element(\2,"i")+element(\2,"i"+1))/2,1,132,"i")-42),107-sum(\1>(element(\2,"i")+element(\2,"i"+1))/2,1,132,"i")),element(\2,26-(code(\x)-65))*in),undefined, 1) Diameter or Gauge <_title>Statistics <_title>Descriptive Statistics <_title>Sum (total) <_names>r:total,r:add <_title>Data <_title>Percentile <_names>r:percentile <_title>Vector <_title>Percentile (%) <_title>Quantile algorithm (as in R) <_title>Min <_names>r:min <_description>Returns the lowest value. <_title>Vector <_title>Max <_names>r:max <_description>Returns the highest value. <_title>Vector <_title>!statistics!Mode <_names>r:mode <_description>Returns the most frequently occurring value. <_title>Vector <_title>Range <_names>r:range <_description>Calculates the difference between the min and max value. max(\x)-min(\x) <_title>Data <_title>Median <_names>r:median percentile(\x,50) <_title>Data <_title>Quartile <_names>r:quartile percentile(\x,25*\y,\Z{8}) <_title>Data <_title>Quartile 0 4 <_title>Quantile Algorithm (as in R) 1 9 <_title>Decile <_names>r:decile percentile(\x,10*\y,\Z{8}) <_title>Data <_title>Decile 0 10 <_title>Quantile Algorithm (as in R) 1 9 <_title>Interquartile Range <_names>r:iqr <_description>Calculates the difference between the first and third quartile. quartile(\x,3,\Y{8})-quartile(\x,1,\Y{8}) <_title>Data <_title>Quantile Algorithm (as in R) 1 9 <_title>Number of Samples <_names>r:number <_description>Returns the number of samples. dimension(\x) <_title>Data true <_title>Random Numbers <_title>Random Number <_names>r:rand <_description>Generates a pseudo-random number. Returns a real number between 0 and 1, if ceil is zero (default), or an integer between 1 and (including) ceil. <_title>Ceil <_title>Number of values <_title>Normally Distributed Random Number <_names>r:randnorm <_title>Mean <_title>Standard deviation <_title>Number of values <_title>Poisson Distributed Random Number <_names>r:randpoisson <_title>Rate (λ) <_title>Number of values <_title>Uniformly Distributed Random Number <_names>r:randuniform \x+rand(0,\Z{1})*(\y-\x) \x<=\y <_title>Lower limit false <_title>Upper limit false <_title>Number of values 1 <_title>Random Number Between Limits <_names>r:randbetween <_description>Returns an integer between (including) bottom and top. rand(\y-\x+1,\Z{1})+\x-1 \x<=\y <_title>Bottom <_title>Top <_title>Number of values 1 <_title>Exponential Random Number <_names>r:randexp -ln(rand(0,\Y{1}))/\x <_title>Rate parameter 0 <_title>Number of values 1 <_title>Rayleigh Distributed Random Number <_names>r:randrayleigh \x*sqrt(-2*ln(rand(0,\Y{1}))) <_title>Sigma 0 <_title>Number of values 1 <_title>Means <_title>Mean <_names>r:mean,average,au:x̄ total(\x)/dimension(\x) <_title>Data true <_title>Harmonic Mean <_names>r:harmmean dimension(\x)/csum(1,-1,0,"y"+1/"x","x","y",\x) <_title>Data true <_title>Geometric Mean <_names>r:geomean abs(csum(1,-1,1,"y"*"x","x","y",\x)^(1/dimension(\x))) <_title>Data true <_title>Trimmed Mean <_names>r:trimmean mean(limits(sort(\x),round(dimension(\x)/100*\y)+1,round(dimension(\x)/100*(100-\y)))) <_title>Data <_title>Trimmed percentage (at each end) <_title>Winsorized Mean <_names>r:winsormean sort(\x) dimension(\x) round(dimension(\x)/100*\y) (element(\1,\2-\3)*\3+element(\1,\3+1)*\3+total(limits(\1,\3+1,\2-\3)))/\2 <_title>Data true <_title>Winsorized percentage (at each end) <_title>Weighted Mean <_names>r:weighmean dimension(\x) min(dimension(\x),dimension(\y)) csum(1,\2,0,"y"+"x"*element("v","i"+\1),"x","y",mergevectors(\x,\y),"i","v")/total(limits(\y,1,\2)) <_title>Data <_title>Weights <_title>Quadratic Mean (RMS) <_names>r:rms abs((csum(1,-1,0,"y"+"x"^2,"x","y",\x)/dimension(\x))^(1/2)) <_title>Data true <_title>Moments <_title>Standard Deviation (entire population) <_names>r:stdevp abs(varp(\x)^(1/2)) <_title>Data true <_title>Standard Deviation (random sampling) <_names>r:stdev abs(var(\x)^(1/2)) <_title>Data true <_title>Variance (entire population) <_names>r:varp mean(\x) csum(1,-1,0,"y"+("x"-\1)^2,"x","y",\x)/dimension(\x) <_title>Data true <_title>Variance (random sampling) <_names>r:var mean(\x) csum(1,-1,0,"y"+("x"-\1)^2,"x","y",\x)/(dimension(\x)-1) <_title>Data true <_title>Standard Error <_names>r:stderr abs((var(\x)/dimension(\x))^(1/2)) <_title>Data true <_title>Mean Deviation <_names>r:meandev mean(\x) csum(1,-1,0,"y"+abs("x"-\1),"x","y",\x)/dimension(\x) <_title>Data true <_title>Covariance <_names>r:cov,r:covar mean(\x) mean(\y) dimension(\x) min(dimension(\x),dimension(\y)) csum(1,\4,0,"y"+("x"-\1)*(element("v","i"+\3)-\2),"x","y",mergevectors(\x,\y),"i","v")/(\4) <_title>Data 1 <_title>Data 2 <_title>Pooled Variance <_names>r:poolvar mean(\x) mean(\y)^2 (csum(1,-1,0,"y"+("x"-\1)^2,"x","y",\x)+csum(1,-1,0,"y"+("x"-\2)^2,"x","y",\y))/(dimension(\x)+dimension(\y)-2) <_title>Data 1 <_title>Data 2 <_title>Regression <_title>Simple Linear Fit <_names>r:linearfit <_description>Returns the linear function, for a set of x and y values, estimated using simple linear regression with a single explanatory variable using the ordinary least squares method. If the vector of y values is empty, the first argument is used for sequential y values (with x values 1, 2, ..., n). It is possible to pass both x and y values in a two column matrix as the first argument. dimension(\x)=dimension(\y) || dimension(\y)=0 if((dimension(\Y{[]})>0,rows(\x)>1&&columns(\x)=2),(\x,column(\x,1)),genvector("i",1,dimension(\x),1,"i",1)) if((dimension(\y)>0,rows(\x)>1&&columns(\x)=2),(\y,column(\x,2)),\x) ((covar(\1,\2)/varp(\1))*(x-mean(\1)))+mean(\2) <_title>X Values <_title>Y Values <_title>Quadratic Fit <_names>r:quadraticfit <_description>Fit data to a polynomial of degree 2, using least-squares method. If the vector of y values is empty, the first argument is used for sequential y values (with x values 1, 2, ..., n). It is possible to pass both x and y values in a two column matrix as the first argument. dimension(\x)=dimension(\y) || dimension(\y)=0 if((dimension(\Y{[]})>0,rows(\x)>1&&columns(\x)=2),(\x,column(\x,1)),genvector("i",1,dimension(\x),1,"i",1)) if((dimension(\y)>0,rows(\x)>1&&columns(\x)=2),(\y,column(\x,2)),\x) multisolve(("a"*total(\1.^4)+"b"*total(\1.^3)+"c"*total(\1.^2)=total((\1.^2).*\2),"a"*total(\1.^3)+"b"*total(\1.^2)+"c"*total(\1)=total(\1.*\2),"a"*total(\1.^2)+"b"*total(\1)+"c"*dimension(\1)=total(\2)),("a","b","c")) element(\3,1)*x^2+element(\3,2)*x+element(\3,3) <_title>X Values <_title>Y Values <_title>Cubic Fit <_names>r:cubicfit <_description>Fit data to a polynomial of degree 3, using least-squares method. If the vector of y values is empty, the first argument is used for sequential y values (with x values 1, 2, ..., n). It is possible to pass both x and y values in a two column matrix as the first argument. dimension(\x)=dimension(\y) || dimension(\y)=0 if((dimension(\Y{[]})>0,rows(\x)>1&&columns(\x)=2),(\x,column(\x,1)),genvector("i",1,dimension(\x),1,"i",1)) if((dimension(\y)>0,rows(\x)>1&&columns(\x)=2),(\y,column(\x,2)),\x) multisolve(("a"*total(\1.^6)+"b"*total(\1.^5)+"c"*total(\1.^4)+"d"*total(\1.^3)=total((\1.^3).*\2),"a"*total(\1.^5)+"b"*total(\1.^4)+"c"*total(\1.^3)+"d"*total(\1.^2)=total((\1.^2).*\2),"a"*total(\1.^4)+"b"*total(\1.^3)+"c"*total(\1.^2)+"d"*total(\1)=total(\1.*\2),"a"*total(\1.^3)+"b"*total(\1.^2)+"c"*total(\1)+"d"*dimension(\1)=total(\2)),("a","b","c","d")) element(\3,1)*x^3+element(\3,2)*x^2+element(\3,3)*x+element(\3,4) <_title>X Values <_title>Y Values <_title>Correlation <_title>Statistical Correlation <_names>r:cor covar(\x,\y)/(stdev(\x)*stdev(\y)) <_title>Data 1 <_title>Data 2 <_title>Pearson's Correlation Coefficient <_names>r:pearson,r:correl dimension(\x)=dimension(\y) total(\x) total(\y) dimension(\x) dimension(\y) (\x.\y-\1*\2/\3)/abs(((\x.\x-(\1^2)/\3)*(\y.\y-(\2^2)/\4))^(1/2)) <_title>Data 1 <_title>Data 2 <_title>Spearman's Rho <_names>r:spearman dimension(\x)=dimension(\y) pearson(rank(\x),rank(\y)) <_title>Data 1 <_title>Data 2 <_title>Statistical Tests <_title>Unpaired T-Test <_names>r:ttest poolvar(\x,\y)^2 (mean(\x)-mean(\y))/abs(((\1)/dimension(\x)+(\1)/dimension(\y))^(1/2)) <_title>Data 1 <_title>Data 2 <_title>Paired T-Test <_names>r:pttest mean(\x-\y)/stderr(\x-\y) <_title>Data 1 <_title>Data 2 <_title>Distribution <_title>Binomial Distribution <_names>r:binomdist <_description>Returns the probability mass or cumulative distribution function of the binomial distribution. if(\A{0},sum(binomial(\y,"i")*\z^"i"*(1-\z)^(\y-"i"),0,\x,"i"),binomial(\y,\x)*\z^\x*(1-\z)^(\y-\x)) <_title>Number of successes (k) 0 <_title>Number of trials (n) 0 <_title>Probability (p) 0 1 <_title>Cumulative <_title>Exponential Distribution <_names>r:expondist <_description>Returns the probability density or cumulative distribution function of the exponential distribution. if(\Z{0},1-e^(-\y*\x),\y*e^(-\y*\x)) <_title>X 0 <_title>Rate (λ) 0 <_title>Cumulative <_title>Exponential Inverse Cumulative Distribution <_names>r:expinv -ln(1-\x)/\y <_title>P 0 1 <_title>Rate (λ) 0 <_title>Logistic Distribution <_names>r:logistic <_description>Returns the probability density or cumulative distribution function of the logistic distribution. if(\A{0},1/(1+e^(-(\x-\Z{0})/\y)),e^(-(\x-\z)/\y)/(\y*(1+e^(-(\x-\z)/\y))^2) <_title>X <_title>Scale (s) 0 <_title>Location (μ) <_title>Cumulative <_title>Normal Distribution <_names>r:normdist <_description>Returns the probability density or cumulative distribution function of the normal distribution. if(\A{0},(1+erf((\x-\Y{0})/(\Z{1}*sqrt(2))))/2,1/\Z*1/(sqrt(2pi))*e^(−1/2*((\x−\Y)/\Z)^2)) <_title>X <_title>Mean (μ) <_title>Standard deviation (σ) \x^2>0 <_title>Cumulative <_title>Inverse Normal Cumulative Distribution <_names>r:normdistinv probit(\x)*\Z{1}+\Y{0} <_title>P 0 1 <_title>Mean (μ) <_title>Standard deviation (σ) \x^2>0 <_title>Pareto Distribution <_names>r:pareto <_description>Returns the probability density or cumulative distribution function of the Pareto distribution. if(\A{0},1-(\z/\x)^\y,\y*\z^\y/\x^(\y+1)) \x>=\z <_title>X <_title>Shape (α) 0 <_title>Scale (x_m) 0 <_title>Cumulative <_title>Poisson Distribution <_names>r:poisson <_description>Returns the probability density or cumulative distribution function of the Poisson distribution. if(\Z{0},e^(-\y)*sum((\y^"i")/("i"!),0,floor(\x),"i"),(\y^\x*e^(-\y))/(\x!)) <_title>X 0 <_title>Rate (λ) 0 <_title>Cumulative <_title>Rayleigh Distribution <_names>r:rayleigh <_description>Returns the probability density or cumulative distribution function of the Rayleigh distribution. if(\Z{0},1-e^(-\x^2/(2\y^2)),\x/\y^2*e^(-\x^2/(2\y^2))) <_title>X 0 <_title>Scale (σ) 0 <_title>Cumulative <_title>Rayleigh Tail Distribution <_names>r:rayleightail <_description>Returns the probability density p(x) at x for a Rayleigh tail distribution with scale parameter sigma and a lower limit. (from Gnumeric) if(\x<\y,0,(\x/\z)/\z*exp(((\y/\z)+(\x/\z))*((\y/\z)-(\x/\z))/2)) <_title>X <_title>Lower limit <_title>Scale (σ) 0 <_title>Gamma Distribution <_names>r:gammadist <_description>Returns the probability density or cumulative distribution function of the gamma distribution. if(\A{0},1-igamma(\y,\x/\z)/gamma(\y),\x^(\y-1)*e^(-\x/\z)/(gamma(\y)*\z^\y)) <_title>X 0 <_title>Shape (k) 0 <_title>Scale (θ) 0 <_title>Cumulative <_title>Chi-Square Distribution <_names>r:chisqdist <_description>Returns the probability density or cumulative distribution function of the chi-square distribution. gammadist(\x,\y/2,2,\Z{0}) <_title>X 0 <_title>Degrees of freedom (k) 1 <_title>Cumulative <_title>Inverse of Chi-Square Cumulative Distribution <_names>r:chisqdistinv (probit(\x)+sqrt(2*\y-1)^2)/2 if((\x=0,\x=1),(0,plus_infinity),newtonsolve(1-igamma(\y/2,"x"/2)/gamma(\y/2)=\x,if(\1<=0,1e-6,\1),"x")) <_title>P 0 1 <_title>Degrees of freedom (k) 1 <_title>Weibull Distribution <_names>r:weibulldist <_description>Returns the probability density or cumulative distribution function of the Weibull distribution. if(\A{0},1-e^(-(\x/\y)^\z),\z/\y*(\x/\y)^(\z-1)*e^(-(\x/\y)^\z)) <_title>X 0 <_title>Scale (λ) 0 <_title>Shape (k) 0 <_title>Cumulative <_title>Weibull Inverse Cumulative Distribution <_names>r:wblinv \y(-ln(1-\x))^(1/\z) <_title>P 0 1 <_title>Scale (λ) 0 <_title>Shape (k) 0 <_title>Beta Distribution <_names>r:betadist <_description>Returns the probability density or cumulative distribution function of the beta distribution. if(\A{0},betainc(\x,\y,\z),\x^(\y-1)*(1-\x)^(\z-1)/beta(\y,\z)) <_title>X 0 1 <_title>Shape (α) 0 <_title>Shape (β) 0 <_title>Cumulative <_title>Student's t-distribution <_names>r:tdist <_description>Returns the probability density or cumulative distribution function of the Student's t distribution. if(\Z{0},if(\x<0,betainc(\y/(\x^2+\y),\y/2,1/2)/2,1-betainc(\y/(\x^2+\y),\y/2,1/2)/2),gamma((\y+1)/2)/(sqrt(\y*pi)*gamma(\y/2))*(1+\x^2/\y)^(-(\y+1)/2)) <_title>X <_title>Degrees of freedom (v) 1 <_title>Cumulative <_title>Inverse Cumulative Student's t-distribution <_names>r:tdistinv betaincinv(if(\x<0.5,2*\x,2*(1-\x)),\y/2,1/2) if((\x=0,\x=1,\x<0.5),(minus_infinity,plus_infinity,-sqrt((\y-\1*\y)/\1)),sqrt((\y-\1*\y)/\1)) <_title>P 0 1 <_title>Degrees of freedom (v) 1 <_title>F-distribution <_names>r:fdist <_description>Returns the probability density or cumulative distribution function of the F-distribution. if(\A{0},betainc(\y*\x/(\y*\x+\z),\y/2,\z/2),sqrt((\y*\x)^\y*\z^\z/(\y*\x+\z)^(\y+\z))/(\x*beta(\y/2,\z/2))) <_title>X 0 <_title>Degrees of freedom (numerator) 1 <_title>Degrees of freedom (denominator) 1 <_title>Cumulative <_title>Inverse Cumulative F-distribution <_names>r:fdistinv betaincinv(\x,\y/2,\z/2) if(\x=1,plus_infinity,(\1*\z)/(\y-\1*\y)) <_title>P 0 1 <_title>Degrees of freedom (numerator) 1 <_title>Degrees of freedom (denominator) 1 <_title>Cauchy Distribution <_names>r:cauchydist <_description>Returns the probability density or cumulative distribution function of the Cauchy distribution. if(\A{0},1/pi*atan((\x-\y)/\z)+1/2,1/(pi*\z*(1+((\x-\y)/(\z))^2))) <_title>X 0 <_title>Location (x_0) <_title>Scale (γ) 0 <_title>Cumulative <_title>Date & Time <_title>Construct Date <_names>r:date <_description>Returns a date. Available calendars are gregorian (1), hebrew (2), islamic (3), persian (4), indian (5), chinese (6), julian (7), milankovic (8), coptic (9), ethiopian (10), egyptian (11). The Chinese year uses an epoch of 2697 BCE and chinese leap months are indicated by adding 12 to the month number (e.g. leap month 4 = 16). <_title>Year <_title>Month <_title>Day <_title>Calendar <_title>Construct Date and Time <_names>r:datetime <_title>Year <_title>Month <_title>Day <_title>Hour <_title>Minute <_title>Second <_title>Days between two dates <_names>r:days <_description>Returns the number of days between two dates. Basis is the type of day counting you want to use: 0: US 30/360, 1: real days (default), 2: real days/360, 3: real days/365 or 4: European 30/360. <_title>First date <_title>Second date <_title>Day counting basis <_title>Financial function mode <_title>Years between two dates <_names>r:yearfrac <_description>Returns the number of years (fractional) between two dates. Basis is the type of day counting you want to use: 0: US 30/360, 1: real days (default), 2: real days/360, 3: real days/365 or 4: European 30/360. <_title>First date <_title>Second date <_title>Day counting basis <_title>Financial function mode <_title>Week of Year <_names>r:week <_title>Date <_title>Week begins on Sunday <_title>Day of Week <_names>r:weekday <_title>Date <_title>Week begins on Sunday <_title>Month <_names>r:month <_title>Date <_title>Day of Month <_names>r:day <_title>Date <_title>Year <_names>r:year <_title>Date <_title>Day of Year <_names>r:yearday <_title>Date <_title>Current Time <_names>r:time <_title>Time Value <_names>r:timevalue <_description>Returns the time part, in fractional hours, of a date and time value. <_title>Date <_title>Date to Unix Timestamp <_names>r:timestamp <_title>Date <_title>Unix Timestamp to Date <_names>r:stamptodate,unix2date <_description>Returns the local date and time represented by the specified Unix timestamp (seconds, excluding leap seconds, since 1970-01-01). Supports time units. <_title>Timestamp <_title>Add Days <_names>r:addDays <_title>Date <_title>Days <_title>Add Months <_names>r:addMonths <_title>Date <_title>Months <_title>Add Years <_names>r:addYears <_title>Date <_title>Years <_title>Add Time <_names>r:addTime <_description>Adds a time value to a date. The value can be positive or negative, but must use a unit based on seconds (such as day and year). Fractions of days are truncated. \x+\y <_title>Date <_title>Time isNumber(\x/s) <_title>Lunar Phase <_names>r:lunarphase <_description>Returns the lunar phase, as a number between 0 and 1, for the specified date. This value corresponds to an angle between 0 and 360 degrees. 0 represents new moon, 0.5 full moon, and 0.25 and 0.75 quarter moons. <_title>Date <_title>Find Lunar Phase <_names>r:nextlunarphase <_description>Returns the date when the specified lunar phase occurs. The function searches forward beginning at the specified date. The lunar phase is specified as a number between 0 and 1, where 0 represents new moon, 0.5 full moon, and 0.25 and 0.75 quarter moons. Angle values are also allowed (e.g. π rad = 180° which corresponds to a value of 0.5). Values above 1, without unit, are interpreted as degrees. <_title>Lunar Phase <_title>Start Date <_title>Days in Month <_names>r:daysInMonth month(\X{today}) year(\x) if((\1=2,\1=4||\1=6||\1=9||\1=11),(if(\2%4=0&&(\2%100!=0||\2%400==0),29,28),30),31) <_title>Date <_title>Utilities <_title>Intervals & Uncertainties <_title>Interval <_names>r:interval <_description>Returns a closed interval with the specified endpoints. <_title>Lower endpoint <_title>Upper endpoint <_title>Uncertainty <_names>r:uncertainty <_description>Specifies the absolute or relative (default) uncertainty/error of a value. <_title>Value <_title>Uncertainty <_title>Uncertainty is relative <_title>Lower Endpoint (interval) <_names>r:lowerEndpoint <_description>Returns the lower endpoint of a numerical interval. <_title>Value <_title>Upper Endpoint (interval) <_names>r:upperEndpoint <_description>Returns the upper endpoint of a numerical interval. <_title>Value <_title>Midpoint (interval) <_names>r:midpoint,valuePart <_description>Returns the midpoint between the endpoints of a numerical interval, or the value part of a value with uncertainty/error. <_title>Value <_title>Get Uncertainty <_names>r:errorPart <_description>Returns the absolute (default) or relative uncertainty/error of a numerical value. <_title>Value <_title>Uncertainty is relative <_title>Plot Functions and Vectors <_names>r:plot $name(5x + 2, -10, 10) <_title>Expression or vector <_title>Minimum x value <_title>Maximum x value <_title>Options <_title>Unicode Value <_names>r:code <_description>Encodes a Unicode character or text string using the selected format. Supported encodings are UTF-8 (0), UTF-16 (1), and UTF-32 (2). If the third argument is true, each separate code unit (8, 16, or 32 bits depending on encoding) is placed in a vector. <_title>Character <_title>Encoding <_title>Use vector <_title>Unicode Character <_names>r:char <_title>Value <_title>Length of string <_names>r:len <_title>Text <_title>Concatenate Strings <_names>r:concatenate <_title>Text string 1 <_title>Text string 2 <_title>Replace <_names>r:replace <_description>Replaces a certain value in an expression with a new value. The expression is calculated before the replacement if the fourth argument is true. <_title>Expression <_title>Original value <_title>New value <_title>Precalculate expression <_title>Strip Units <_names>r:nounit,strip_units <_description>Removes all units from an expression. No unit conversion or prefix changes are performed before the removal. $name(5 km) = 5; $name(5 m + 2 ft) = 7 <_title>Expression <_title>Process Vector Elements <_names>r:process <_title>Function <_title>Element variable <_title>Vector <_title>Index variable <_title>Vector variable <_title>Process Matrix Elements <_names>r:processm <_title>Function <_title>Element variable <_title>Matrix <_title>Row variable <_title>Column variable <_title>Matrix variable <_title>Custom Sum of Elements <_names>r:csum <_title>First element <_title>Last element <_title>Initial value <_title>Function <_title>Element variable <_title>Value variable <_title>Vector <_title>Index variable <_title>Vector variable <_title>Select Vector Elements <_names>r:select <_title>Vector <_title>Condition <_title>Element variable <_title>Select first match <_title>Function <_names>r:function <_title>Expression <_title>Arguments <_title>Title <_names>r:title <_title>Name <_title>Display Error <_names>r:error <_title>Message <_title>Display Warning <_names>r:warning <_title>Message <_title>Display Message <_names>r:message <_title>Message <_title>Save as Variable or Function <_names>r:save <_description>Stores a value in a variable or saves an expression as a function. A function is created if the name includes parentheses (e.g. "f()"). Optionally the function arguments can be specified in the name (e.g. "save(a+b,f(a,b))"). Otherwise the function arguments are expected to be referred to in the expression using \x, \y, \z ,\a , \b..., or x, y, z (e.g. "save(x+y,f())"). If a function was created, the processed function expression is returned as a text string, otherwise the value is returned. The ":=" operator (e.g. var1:=10) is a shortcut for this function. <_title>Value <_title>Name <_title>Category <_title>Title <_title>Precalculate expression <_title>RPN Stack Register <_names>r:register <_description>Returns the value of a RPN stack register. <_title>Index <_title>RPN Stack Vector <_names>r:stack <_description>Returns the RPN stack as a vector. <_title>Is Number <_names>r:isNumber <_description>Returns true if evaluated argument value is explicitely a real, complex, or infinite number (has number type). <_title>Value <_title>Is Real <_names>r:isReal <_description>Returns true if evaluated argument value is explicitely a real number (has number type with zero complex part). <_title>Value <_title>Is Rational <_names>r:isRational <_description>Returns true if evaluated argument value is explicitely a rational number (has rational type). <_title>Value <_title>Is Integer <_names>r:isInteger <_description>Returns true if evaluated argument value is explicitely an integer (has integer type). $name(5 + 2) = 1; $name(x) = 0; $name(log(0.2, 5)) = 0 <_title>Value <_title>Represents Number <_names>r:representsNumber <_description>Returns true if value is or represents a number (scalar without unit). False negatives are allowed. <_title>Value <_title>Represents Real <_names>r:representsReal <_description>Returns true if value is or represents a real number. False negatives are allowed. <_title>Value <_title>Represents Rational <_names>r:representsRational <_description>Returns true if value is or represents a rational number. False negatives are allowed. <_title>Value <_title>Represents Integer <_names>r:representsInteger <_description>Returns true if value is or represents an integer. False negatives are allowed. $name(2n) = 1; $name(log(0.2, 5)) = 0 <_title>Value <_title>External Command <_names>r:command <_title>Command <_title>Argument <_title>Logical <_title>For...Do <_names>r:for $name(1, x, x < 10, x + 1, 2, y * x, y) = 725 760 <_title>Initial value of counter <_title>Counter variable <_title>For condition <_title>Counter update function <_title>Initial value <_title>Do function <_title>Value variable <_title>For Each Element...Do <_names>r:foreach $name(1...5, 0, y + x) = 15 <_title>Matrix/vector <_title>Initial value <_title>Do function <_title>Value variable <_title>Element variable <_title>If...Then...Else <_names>r:if <_description>Tests a condition and returns a value depending on the result. Vectors can be used for argument 1 and 2, instead of nested functions. <_title>Condition <_title>Expression if condition is met <_title>Expression if condition is NOT met <_title>Assume false if not true <_title>Bitwise Exclusive OR <_names>r:xor <_title>Value 1 <_title>Value 2 <_title>Logical Exclusive OR <_names>r:lxor <_title>Value 1 <_title>Value 2 <_title>Bitwise Shift <_description>Applies logical or arithmetic bitwise shift to an integer. The second argument specifies the number of steps that each binary bit is shifted to the left (use negative values for right shift). <_names>r:shift <_title>Number <_title>Steps <_title>Arithmetic shift using two's complement <_title>Bitwise Complement (Not) <_description>Applies bitwise NOT to an integer of specified bit width and signedness (use 1 for signed and 0 for unsigned). If bit width is zero, the smallest necessary number of bits (of 8, 16, 32, 64, 128, ...) will be used. <_names>r:bitcmp <_title>Number <_title>Bit width <_title>Signed integer <_title>Bit Rotation <_description>Applies circular bitwise shift to an integer of specified bit width and signedness (use 1 for signed and 0 for unsigned). The second argument specifies the number of steps that each binary bit is shifted to the left (use negative values for right shift). If bit width is zero, the smallest necessary number of bits (of 8, 16, 32, 64, 128, ...) will be used. <_names>r:bitrot <_title>Number <_title>Steps <_title>Bit width <_title>Signed integer <_title>Set Bit <_description>Set binary bit at specified position. The index of the least significant bit is 1. Specify bit width and signedness (use 1 for signed and 0 for unsigned) to allow sign changes when the most significant bit is set. $name(8, 3) = 12 <_names>r:bitset <_title>Number <_title>Position <_title>Value <_title>Bit width <_title>Signed integer <_title>Set Multiple Bits <_description>Set binary bits at specified range with binary bits from an integer (index 1 to length of range). The index of the least significant bit is 1. Specify bit width and signedness (use 1 for signed and 0 for unsigned) to allow sign changes when the most significant bit is set. $name(0xFFFF, 9, 12, 0xA) = 0xFAFF <_names>r:setbits <_title>Number <_title>First position <_title>Last position <_title>Value <_title>Bit width <_title>Signed integer <_title>Get Bit <_description>Returns the binary bit at the specified position. The index of the least significant bit is 1. If last index is non-zero the bits from (first) position to, and including, last position are returned as a new binary number. $name(12, 3) = 1; $name(0b01011100, 2; 4) = 0b00000110 = 6 <_names>r:bitget <_title>Number <_title>Position <_title>Last position <_title>Algebra <_title>Summation <_names>au:Σ,au:∑,r:sum <_description>Corresponds to the summation symbol. Adds terms for each x ranging from the lower to the upper limit. $name(x^2, 1, 5) = 1^2 + 2^2 + 3^2 + 4^2 + 5^2 = 55 <_title>Term expression <_title>Lower limit (i) <_title>Upper limit (n) <_title>Index variable <_title>Product of a sequence <_names>au:Π,r:product <_description>Corresponds to the product symbol. Multiplies factors for each x ranging from the lower to the upper limit. $name(x^2, 1, 5) = 1^2 * 2^2 * 3^2 * 4^2 * 5^2 = 14400 <_title>Factor expression <_title>Lower limit (i) <_title>Upper limit (n) <_title>Index variable <_title>Solve for multiple variables <_names>r:multisolve <_title>Equation vector <_title>Variable vector <_title>Solve equation <_names>r:solve <_title>Equation <_title>With respect to <_title>Solve differential equation <_names>r:dsolve <_title>Equation <_title>Initial condition: function value (y) <_title>Initial condition: argument value (x) <_description>Solves a differential equation and returns the value of y(x). The derivative in the equation should be in the format diff(y, x). Only first-order differential equations are currently supported. $name(2 * diff(y, x) - y = 4x, 5, 2) = 21e^(x/2) / e - 4x - 8 <_title>Solve using Newton's Method <_names>r:newtonsolve <_title>Equation <_title>Initial estimate <_title>Variable <_title>Precision <_title>Max iterations <_title>Solve using Secant Method <_names>r:secantsolve <_title>Equation <_title>Initial estimate 1 <_title>Initial estimate 2 <_title>Variable <_title>Precision <_title>Max iterations <_title>Solve for two variables <_names>r:solve2 <_description>Solves two equations with two unknown variables. Returns the value of the first variable. solve(replace(\x,\A{y},solve(\y,\A)),\Z{x}) <_title>Equation 1 <_title>Equation 2 <_title>Variable 1 <_title>Variable 2 <_title>Find Linear Function <_names>r:linearfunction <_description>Finds the linear function for the straight line between two distinct points. (\a-\y)/(\z-\x)*("x"-\x)+\y <_title>x1 <_title>y1 <_title>x2 <_title>y2 <_title>Calculus <_title>Differentiate <_names>r:diff,derivative <_title>Function <_title>With respect to <_title>Order <_title>Variable value <_title>Integrate <_names>r:integrate,integral,au:∫ <_title>Function <_title>Lower limit <_title>Upper limit <_title>Variable of integration <_title>Force numerical integration <_title>Romberg Integration <_names>r:romberg <_title>Function <_title>Lower limit <_title>Upper limit <_title>Min iterations <_title>Max iterations <_title>Variable of integration true <_title>Monte Carlo Integration <_names>r:montecarlo <_title>Function <_title>Lower limit <_title>Upper limit <_title>Number of samples <_title>Variable of integration <_title>Limit <_description>Returns the two-sided limit of the function if direction is zero, limit from left (below) if direction is -1, or limit from right (above) if direction is +1. <_names>r:limit <_title>Function <_title>Value to approach <_title>Variable <_title>Direction <_title>Limit with Multiple Variables <_names>r:multilimit <_description>Returns limit of a function for multiple variables. The limit is calculated recursively, for one variable in each iteration, with the result of each iteration used as function in the next. $name(x^2/(x+y)*y, [x y], [-2 1]) = -4 dimension(\y)=dimension(\z) foreach(1...dimension(\y),\x,limit("$mlvalue",element(\z,"$mlindex"),element(\y,"$mlindex"),element(\A{0},if(dimension(\A)<"$mlindex",dimension(\A),"$mlindex"))),"$mlvalue","$mlindex") <_title>Function <_title>Variable vector <_title>Value vector <_title>Direction vector <_title>Extreme Values <_names>r:extremum solve(diff(\x, \Y{x})=0, \Y) <_title>Function <_title>With respect to <_title>Named Integrals <_title>Logarithmic Integral <_names>rc:li,logint <_description>The integral of 1/ln(x). <_title>Exponential Integral <_names>rc:Ei,expint <_description>The integral of e^x/x. <_title>Sine Integral <_names>rc:Si,sinint <_description>The integral of sin(x)/x. <_title>Cosine Integral <_names>rc:Ci,cosint <_description>The integral of cos(x)/x. <_title>Hyperbolic Sine Integral <_names>rc:Shi,sinhint <_description>The integral of sinh(x)/x. <_title>Hyperbolic Cosine Integral <_names>rc:Chi,coshint <_description>The integral of cosh(x)/x. <_title>Fresnel Integral S <_names>r:fresnels <_description>The integral of sin(pi*x^2/2). <_title>Fresnel Integral C <_names>r:fresnelc <_description>The integral of cos(pi*x^2/2). <_title>Upper Incomplete Gamma Function <_names>r:igamma <_title>Lower Incomplete Gamma Function <_names>r:gammainc gamma(\x)-igamma(\x,\y) <_title>Regularized Incomplete Beta Function <_names>r:betainc <_title>Inverse Regularized Incomplete Beta Function <_names>r:betaincinv <_title>Geometry <_title>Triangle <_title>Hypotenuse <_names>r:hypot sqrt(\x^2+\y^2) <_title>Side A <_title>Side B <_title>Triangle Area <_names>r:triangle (\x*\y)/2 <_title>Base <_title>Height <_title>Triangle Perimeter <_names>r:triangle_perimeter \x+\y+\z <_title>Side A <_title>Side B <_title>Side C <_title>Circle <_title>Circle Area <_names>r:circle <_description>Calculates the area of a circle using the radius \x^2*pi <_title>Radius <_title>Circle Circumference <_names>r:circumference <_description>Calculates the area of a circle using the radius \x*2*pi <_title>Radius <_title>Cylinder <_title>Cylinder Volume <_names>r:cylinder \x^2*pi*\y <_title>Radius <_title>Height <_title>Surface Area of Cylinder <_names>r:cylinder_sa 2*\x^2*pi+2*pi*\x*\y <_title>Radius <_title>Height <_title>Cone <_title>Cone Volume <_names>r:cone \x^2*pi*\y/3 <_title>Radius <_title>Height <_title>Surface Area of Cone <_names>r:cone_sa \x^2*pi+pi*\x*abs((\y^2+\x^2)^(1/2)) <_title>Radius <_title>Height <_title>Sphere <_title>Sphere Volume <_names>r:sphere \x^3*pi*4/3 <_title>Radius <_title>Surface Area of Sphere <_names>r:sphere_sa \x^2*pi*4 <_title>Radius <_title>Square <_title>Square Area <_names>r:square \x^2 <_title>Length of side <_title>Square Perimeter <_names>r:square_perimeter \x*4 <_title>Length of side <_title>Cube <_title>Cube Volume <_names>r:cube \x^3 <_title>Length of side <_title>Surface Area of Cube <_names>r:cube_sa (\x^2)*6 <_title>Length of side <_title>Rectangle <_title>Rectangle Area <_names>r:rect \x*\y <_title>Length <_title>Width <_title>Rectangle Perimeter <_names>r:rect_perimeter (\x+\y)*2 <_title>Length <_title>Width <_title>Prism <_title>Volume of Rectangular Prism <_names>r:rectprism <_description>Calculates the volume of a prism with rectangular base. \x*\y*\z <_title>Length <_title>Width <_title>Height <_title>Surface Area of Rectangular Prism <_names>r:rectprism_sa <_description>Calculates the surface area of a prism with rectangular base. (\x*\y)*2+(\x*\z)*2+(\y*\z)*2 <_title>Length <_title>Width <_title>Height <_title>Volume of Triangular Prism <_names>r:triangleprism <_description>Calculates the volume of a prism with triangular base. \x*\y*\z/2 <_title>Length <_title>Width <_title>Height <_title>Pyramid <_title>Pyramid Volume <_names>r:pyramid <_description>Calculates the volume of a 3-dimensional shape standing on a rectangular base and terminating in a point at the top. \x*\y*\z/3 <_title>Length of base <_title>Width of base <_title>Height <_title>Volume of Regular Tetrahedron <_names>r:tetrahedron sqrt(2)/12*\x^3 <_title>Length of side <_title>Surface Area of Regular Tetrahedron <_names>r:tetrahedron_sa sqrt(3)*\x^2 <_title>Length of side <_title>Height of Regular Tetrahedron <_names>r:tetrahedron_height sqrt(6)/3*\x <_title>Length of side <_title>Volume of Square Pyramid (Equilateral) <_names>r:sqpyramid sqrt(2)/6*\x^3 <_title>Length of side <_title>Surface Area of Square Pyramid (Equilateral) <_names>r:sqpyramid_sa (1+sqrt(3))*\x^2 <_title>Length of side <_title>Height of Square Pyramid (Equilateral) <_names>r:sqpyramid_height sqrt(2)/2*\x <_title>Length of side <_title>Parallelogram <_title>Parallelogram Area <_names>r:parallelogram <_description>Calculates the area of a four-sided figure whose opposite sides are both parallel and equal in length. \x*\y <_title>Base <_title>Height <_title>Parallelogram Perimeter <_names>r:parallelogram_perimeter <_description>Calculates the perimeter of a four-sided figure whose opposite sides are both parallel and equal in length. (\x+\y)*2 <_title>Side A <_title>Side B <_title>Trapezoid <_title>Trapezoid Area <_names>r:trapezoid <_description>Calculates the area of a four-sided figure with two parallel sides. (\x+\y)/2*\z <_title>Side A <_title>Side B <_title>Height <_title>Economics <_title>Microeconomics <_title>Elasticity <_names>r:elasticity <_description>Calculates the demand elasticity. Also works for supply elasticity, income elasticity, cross-price elasticity, etc. Just replace demand with supply, or price with income... eg. elasticity(100-x^2, 3) calculates the demand elasticity when the price is 3 for the function "Q = 100 - x^2" where x is the default price variable. replace(diff(\x,\Z{x}),\Z,\y,1)*\y/replace(\x,\Z,\y) <_title>Demand function <_title>Price <_title>Price variable <_title>Sum-of-Years Digits Depreciation <_names>r:syd <_description>Calculates the sum-of-years digits depreciation for an asset based on its cost, salvage value, anticipated life, and a particular period. This method accelerates the rate of the depreciation, so that more depreciation expense occurs in earlier periods than in later ones. The depreciable cost is the actual cost minus the salvage value. The useful life is the number of periods (typically years) over which the asset is depreciated. ((\x-\y)*(\z-\a+1)*2)/(\z*(\z+1)) <_title>Cost <_title>Salvage value <_title>Life <_title>Period <_title>Straight Line Depreciation <_names>r:sln <_description>Determines the straight line depreciation of an asset for a single period. Cost is the amount you paid for the asset. Salvage is the value of the asset at the end of the period. Life is the number of periods over which the asset is depreciated. SLN divides the cost evenly over the life of an asset. (\x-\y)/\z <_title>Cost <_title>Salvage value <_title>Life <_title>Present Value <_names>ra:pv <_description>Returns the present value of an investment. If type = 1 then the payment is made at the beginning of the period. If type = 0 (or omitted) it is made at the end of each period. (-\A{0}-\z*(1+\x*\B{0})*(((1+\x)^\y-1)/\x))/((1+\x)^\y) <_title>Interest rate <_title>Number of periods <_title>Payment made each period <_title>Future value <_title>Type <_title>Nominal Interest Rate <_names>r:nominal <_description>Calculates the nominal interest rate from a given effective interest rate compounded at given intervals. \y*(abs((\x+1)^(1/\y))-1) <_title>Effective interest rate <_title>Periods <_title>Zero Coupon <_names>r:zero_coupon <_description>Calculates the value of a zero-coupon (pure discount) bond. \x/((1+\y)^\z) <_title>Face value <_title>Interest rate <_title>Years <_title>Treasury Bill Yield <_names>r:tbillyield <_description>Returns the yield for a treasury bill. (100-\z)/\z*(360/days(\x,\y,1,1)) <_title>Settlement date <_title>Maturity date <_title>Price per $100 face value <_title>Treasury Bill Price <_names>r:tbillprice <_description>Returns the price per $100 value for a treasury bill. 100*(1-(\z*days(\x,\y,1,1))/360) <_title>Settlement date <_title>Maturity date <_title>Discount rate <_title>Treasury Bill Equivalent <_names>r:tbilleq <_description>Returns the bond equivalent for a treasury bill. 365*\z/(360-\z*days(\x,\y,1,1)) <_title>Settlement date <_title>Maturity date <_title>Discount rate <_title>Interest paid on a given period of an investment (ISPMT) <_names>r:ispmt <_description>Calculates the interest paid on a given period of an investment. (-\a*\x)-((-\a*\x)/\z*\y) <_title>Periodic interest rate <_title>Amortizement period 1 <_title>Number of periods 1 <_title>Present value <_title>Payment for a loan <_names>r:pmt <_description>Returns the amount of payment (negative) each period for a loan based on a constant interest rate and constant payments (each payment is equal amount). If type = 1 then the payment is made at the beginning of the period. If type = 0 (or omitted) it is made at the end of each period. Note that the interest rate here refers to the rate for each period and if you calculate with an annual rate, each period will be interpreted as a whole year. To get monthly payments divide the annual interest rate by 12 and enter the total number of months (12 times number of years) in the periods field. $name(2%/12, 10*12, 100000€) = -€920 (-\z*((1+\x)^\y)-\A{0})/((1+\x*\B{0})*(((1+\x)^\y-1)/\x)) <_title>Rate <_title>Number of periods <_title>Present value <_title>Future value <_title>Type <_title>Rate of investment <_names>r:rate <_description>Calculates the rate of return. If type = 1 then the payment is made at the beginning of the period. If type = 0 (or omitted) it is made at the end of each period. Note that the optional guess is needed because there can be more than one valid result. It defaults to 10%. $name(10, -1500, 10000) ≈ 0.0814 newtonsolve(pmt("rate",\x,\z,\A{0},\B{0})=\y,\C{0.1},"rate",0,20) if(isNumber(\1),\1,undefined) <_title>Number of periods 0 <_title>Payment made each period <_title>Present value <_title>Future value <_title>Type <_title>Guess <_title>Periods of an investment <_names>r:nper <_description>Calculates number of periods of an investment based on periodic constant payments and a constant interest rate. Type defines the due date. 1 for payment at the beginning of a period and 0 (default) for payment at the end of a period. ln((\y*(1+\x*\B{0})-\A{0}*\x)/(\z*\x+\y*(1+\x*\B)))/ln(1+\x) <_title>Interest rate <_title>Payment made each period <_title>Present value <_title>Future value <_title>Type <_title>Periods for investment to attain desired value <_names>r:g_duration <_description>Returns the number of periods needed for an investment to attain a desired value. ln(\z/\y)/ln(1+\x) <_title>Rate <_title>Present value <_title>Future value <_title>Payment of an annuity going towards principal (PPMT) <_names>r:ppmt <_description>Calculates the amount of a payment of an annuity going towards principal. Type defines the due date. 1 for payment at the beginning of a period and 0 (default) for payment at the end of a period. ((-\a*(pow(1+\x,\z))-\B{0})/((1+\x*\C{0})*((pow(1+\x,\z)-1)/\x)))+(\a*pow(1+\x,(\y-1))+((-\a*(pow(1+\x,\z))-\B)/((1+\x*\C)*((pow(1+\x,\z)-1)/\x)))*((pow(1+\x,(\y-1))-1)/\x))*\x <_title>Periodic interest rate <_title>Amortizement period 1 <_title>Number of periods 1 <_title>Present value <_title>Desired future value <_title>Type <_title>Effective Interest Rate <_names>r:effect <_description>Calculates the effective interest for a given nominal rate. (1+\x/\y)^\y-1 <_title>Nominal interest rate <_title>Periods <_title>Future Value <_names>ra:fv,a:FV <_description>Computes the future value of an investment. This is based on periodic, constant payments and a constant interest rate. If type = 1 then the payment is made at the beginning of the period. If type = 0 (or omitted) it is made at the end of each period. -(\A{0}*((1+\x)^\y)+\z*(1+\x*\B{0})*(((1+\x)^\y-1)/\x)) <_title>Interest rate <_title>Number of periods <_title>Payment made each period <_title>Present value <_title>Type <_title>Return on continuously compounded interest <_names>r:continuous <_description>Calculates the return on continuously compounded interest, given the principal, nominal rate and time in years. \x*exp(\y*\z) <_title>Principal <_title>Interest rate <_title>Years <_title>Compound <_names>r:compound <_description>Returns the value of an investment, given the principal, nominal interest rate, compounding frequency and time. \x*(1+\y/\z)^(\z*\a) <_title>Principal <_title>Nominal interest rate <_title>Periods per year <_title>Years <_title>Payment of an annuity going towards interest (IPMT) <_names>r:ipmt <_description>Calculates the amount of a payment of an annuity going towards interest. Type defines the due date. 1 for payment at the beginning of a period and 0 (default) for payment at the end of a period. -(\a*pow(1+\x,(\y-1))+((-\a*(pow(1+\x,\z))-\B)/((1+\x*\C)*((pow(1+\x,\z)-1)/\x)))*((pow(1+\x,(\y-1))-1)/\x))*\x <_title>Periodic interest rate <_title>Period 1 <_title>Number of periods 1 <_title>Present value <_title>Future value <_title>Type <_title>Interest rate for a fully invested security <_names>r:intrate <_description>Returns the interest rate for a fully invested security. Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360. (\a-\z)/\z/yearfrac(\x,\y,\B{0},1) <_title>Settlement date <_title>Maturity date <_title>Investment <_title>Redemption <_title>Day counting basis 0 4 <_title>Dollar Fraction <_names>r:dollarfr <_description>Converts a decimal dollar price into a dollar price expressed as a fraction. int(\x)+frac(\x)*\y/10^ceil(log(\y)) <_title>Decimal dollar <_title>Denominator of fraction 1 <_title>Dollar Decimal <_names>r:dollarde <_description>Converts a dollar price expressed as a fraction into a dollar price expressed as a decimal number. int(\x)+frac(\x)*10^ceil(log(\y))/\y <_title>Fractional dollar <_title>Denominator of fraction 1 <_title>Amount received at maturity for a security bond <_names>r:received <_description>Returns the amount received at the maturity date for an invested security. Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360. The settlement date must be before maturity date. \z/(1-\a*yearfrac(\x,\y,\B{0},1)) <_title>Settlement date <_title>Maturity date <_title>Investment <_title>Discount rate <_title>Day counting basis 0 4 <_title>Discount rate for a security <_names>r:disc <_description>Returns the discount rate for a security. Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360. (\a-\z)/\a/yearfrac(\x,\y,\B{0},1)) <_title>Settlement date <_title>Maturity date <_title>Price per $100 face value <_title>Redemption <_title>Day counting basis 0 4 <_title>Accrued interest of security paying at maturity <_names>r:accrintm <_description>Returns the accrued interest for a security which pays interest at maturity date. Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360. \A{1000}*\z*yearfrac(\x,\y,\B{0},1) <_title>Issue date <_title>Settlement date <_title>Annual rate of security <_title>Par value <_title>Day counting basis 0 4 <_title>Accrued interest of security with periodic interest payments <_names>r:accrint <_description>Returns accrued interest for a security which pays periodic interest. Allowed frequencies are 1 - annual, 2 - semi-annual or 4 - quarterly. Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360. \b*\a/\c*\c*yearfrac(\x,\z,\D{0},1)+\y*0 <_title>Issue date <_title>First interest <_title>Settlement date <_title>Annual rate of security <_title>Par value <_title>Frequency 1 4 <_title>Day counting basis 0 4 <_title>Number of coupons to be paid <_names>r:coupnum <_description>Returns the number of coupons to be paid between the settlement and the maturity. Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360. trunc(yearfrac(\x,\y,\A{0},1)*\z) <_title>Settlement date <_title>Maturity date <_title>Frequency 1 12 <_title>Day counting basis 0 4 <_title>Price per $100 face value of a discounted security <_names>r:pricedisc <_description>Calculates and returns the price per $100 face value of a discounted security. The security does not pay interest at maturity. Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360. \a-\z*\a*yearfrac(\x,\y,\B{0},1) <_title>Settlement date <_title>Maturity date <_title>Discount <_title>Redemption <_title>Day counting basis 0 4 <_title>Price per $100 face value of a security <_names>r:pricemat <_description>Calculates and returns the price per $100 face value of a security. The security pays interest at maturity. Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360. (100+yearfrac(\z,\y,\C{0},1)*\a*100)/(1+yearfrac(\x,\y,\C,1)*\b)-yearfrac(\z,\x,\C,1)*\a*100 <_title>Settlement date <_title>Maturity date <_title>Issue date <_title>Discount rate <_title>Annual yield <_title>Day counting basis 0 4 <_title>Level-Coupon Bond <_names>r:level_coupon <_description>Calculates the value of a level-coupon bond. (\y*\x/\z)*((1-1/(((1+(\b/\z))^(\a*\z))))/(\b/\z))+(\x/((1+(\b/\z))^(\a*\z))) <_title>Face value <_title>Coupon rate <_title>Coupons per year <_title>Years <_title>Market interest rate libqalculate-5.5.2/data/planets.xml.in000066400000000000000000000104751476076707200177220ustar00rootroot00000000000000 <_name>Earth 365.256363004 29.7827 0.0167086 0.00005 1 5.972168E24 5.5134 510.072E6 9.80665 287.91 6371.0 <_name>Mars 686.971 24.07 0.0934 1.850 2 6.4171E23 3.9335 1.4437E8 3.72076 213 3389.5+/-0.2 <_name>!planets!Mercury 87.9691 47.36 0.205630 7.005 0 3.3011E23 5.427 7.48E7 3.7 340 2439.7+/-1.0 <_name>Venus 224.701 35.02 0.006772 3.39458 0 4.8675E24 5.243 4.6023E8 8.87 737 6051.8+/-1.0 <_name>Jupiter 4332.59 13.07 0.0489 1.303 95 1.8982E27 1.326 6.1469E10 24.79 165 69911 <_name>Saturn 10755.70 9.68 0.0565 2.485 146 5.6834E26 0.687 4.27E10 10.44 134 58232 <_name>Neptune 60195 5.43 0.008678 1.770 16 1.02409E26 1.638 7.6187E9 11.15 72 24622+/-19 <_name>Pluto 90560 4.743 0.2488 17.16 5 1.3030(30)E22 1.854+/-0.006 1.774443E7 0.620 44 1188.3+/-0.8 <_name>Uranus 30688.5 6.80 0.04717 0.773 28 8.6810(13)E25 1.27 8.1156E9 8.69 76 25362+/-7 <_name>Sun 1.988470(70)E30 1.408 6.09E12 274 695660+/-140 libqalculate-5.5.2/data/prefixes.xml.in000066400000000000000000000063121476076707200200740ustar00rootroot00000000000000 <_names>ar:q,r:quecto -30 <_names>ar:r,r:ronto -27 <_names>ar:y,r:yocto -24 <_names>ar:z,r:zepto -21 <_names>ar:a,r:atto -18 <_names>ar:f,r:femto -15 <_names>ar:p,r:pico -12 <_names>ar:n,r:nano -9 <_names>aur:μ,auor:µ,ar:u,r:micro -6 <_names>ar:m,r:milli -3 <_names>ar:c,r:centi -2 <_names>ar:d,r:deci -1 <_names>ar:da,r:deca 1 <_names>ar:h,r:hecto 2 <_names>ar:k,r:kilo 3 <_names>ar:M,r:mega 6 <_names>ar:G,r:giga 9 <_names>ar:T,r:tera 12 <_names>ar:P,r:peta 15 <_names>ar:E,r:exa 18 <_names>ar:Z,r:zetta 21 <_names>ar:Y,r:yotta 24 <_names>ar:R,r:ronna 27 <_names>ar:Q,r:quetta 30 <_names>ar:Ki,r:kibi 10 <_names>ar:Mi,r:mebi 20 <_names>ar:Gi,r:gibi 30 <_names>ar:Ti,r:tebi 40 <_names>ar:Pi,r:pebi 50 <_names>ar:Ei,r:exbi 60 <_names>ar:Zi,r:zebi 70 <_names>ar:Yi,r:yobi 80 libqalculate-5.5.2/data/rates.json000066400000000000000000000164561476076707200171430ustar00rootroot00000000000000{ "date": "2025-02-17", "eur": { "1inch": 3.87914692, "aave": 0.0040789692, "ada": 1.37251423, "aed": 3.8575183, "afn": 77.04200916, "agix": 3.07790904, "akt": 0.55272063, "algo": 3.77300429, "all": 99.13076446, "amd": 418.97162818, "amp": 182.96613067, "ang": 1.88896398, "aoa": 967.51532303, "ape": 1.43539207, "apt": 0.17845051, "ar": 0.11143912, "arb": 2.19211356, "ars": 1106.41370774, "atom": 0.21860465, "ats": 13.7603, "aud": 1.6500118, "avax": 0.041828974, "awg": 1.8801791, "axs": 0.23782442, "azm": 8928.22351448, "azn": 1.7856447, "bake": 4.48113428, "bam": 1.95583, "bat": 5.61257546, "bbd": 2.10075878, "bch": 0.0031823891, "bdt": 127.42478791, "bef": 40.3399, "bgn": 1.95583, "bhd": 0.39494265, "bif": 3108.35749313, "bmd": 1.05037939, "bnb": 0.00155984, "bnd": 1.40567887, "bob": 7.24170815, "brl": 5.99985471, "bsd": 1.05037939, "bsv": 0.026357756, "bsw": 20.07239543, "btc": 0.000010893695, "btcb": 4.10716882, "btg": 0.19322966, "btn": 91.03074048, "btt": 1203173.62250968, "busd": 1.03862486, "bwp": 14.53186232, "byn": 3.43472428, "byr": 34347.24279075, "bzd": 2.10571281, "cad": 1.48784345, "cake": 0.36451884, "cdf": 3006.18558396, "celo": 2.3057324, "cfx": 8.81926996, "chf": 0.94464859, "chz": 17.25463867, "clp": 996.9194389, "cnh": 7.61353547, "cny": 7.61164956, "comp": 0.018878636, "cop": 4331.33023098, "crc": 531.34069339, "cro": 11.9058849, "crv": 2.02866295, "cspr": 74.64588767, "cuc": 1.05037939, "cup": 25.16222313, "cve": 110.27, "cvx": 0.42664009, "cyp": 0.585274, "czk": 25.03723975, "dai": 1.04987524, "dash": 0.038634977, "dcr": 0.07587331, "dem": 1.95583, "dfi": 88.99883115, "djf": 186.77001633, "dkk": 7.4600566, "doge": 3.92396509, "dop": 65.1691055, "dot": 0.21295641, "dydx": 1.33562471, "dzd": 141.57831234, "eek": 15.64664, "egld": 0.046484999, "egp": 53.12164852, "enj": 8.49768465, "eos": 1.64575289, "ern": 15.75569082, "esp": 166.386, "etb": 132.66224531, "etc": 0.051018454, "eth": 0.00039292666, "eur": 1, "fei": 1.07432425, "fil": 0.30454119, "fim": 5.94573, "fjd": 2.41262453, "fkp": 0.83386867, "flow": 2.0124881, "flr": 48.5275585, "frax": 1.05419569, "frf": 6.55957, "ftt": 0.48134709, "fxs": 0.58343648, "gala": 46.13935806, "gbp": 0.83386867, "gel": 2.97030405, "ggp": 0.83386867, "ghc": 162076.96164242, "ghs": 16.20769616, "gip": 0.83386867, "gmd": 75.74109753, "gmx": 0.050978217, "gnf": 9078.48307325, "gno": 0.0061527115, "grd": 340.75000001, "grt": 7.44649945, "gt": 0.045299922, "gtq": 8.10070207, "gusd": 1.04829373, "gyd": 219.044102, "hbar": 4.72119364, "hkd": 8.17328838, "hnl": 26.77027057, "hnt": 0.27695975, "hot": 639.4268172, "hrk": 7.5345, "ht": 145561.55195224, "htg": 137.2429905, "huf": 402.06170265, "icp": 0.1490476, "idr": 17002.73697266, "iep": 0.787564, "ils": 3.72635147, "imp": 0.83386867, "imx": 1.30473907, "inj": 0.069542334, "inr": 91.03074048, "iqd": 1376.77573482, "irr": 44381.54200253, "isk": 147.11021841, "itl": 1936.27000003, "jep": 0.83386867, "jmd": 165.24698067, "jod": 0.74471899, "jpy": 159.42336672, "kas": 9.46932243, "kava": 2.27345619, "kcs": 0.086867079, "kda": 1.93330077, "kes": 135.53776462, "kgs": 92.12515146, "khr": 4215.83108284, "klay": 8.03572004, "kmf": 491.96775001, "knc": 2.38551968, "kpw": 945.3703078, "krw": 1512.95027693, "ksm": 0.051110509, "kwd": 0.32400405, "kyd": 0.86895628, "kzt": 528.06351793, "lak": 22781.2615971, "lbp": 94042.97816081, "ldo": 0.56825851, "leo": 0.10741755, "link": 0.05585446, "lkr": 311.25158602, "lrc": 7.85604953, "lrd": 209.27749577, "lsl": 19.24791696, "ltc": 0.0081889854, "ltl": 3.4528, "luf": 40.3399, "luna": 3.19085727, "lunc": 13583.79185216, "lvl": 0.7028, "lyd": 5.14370567, "mad": 10.468363, "mana": 3.14251678, "matic": 3.20638742, "mbx": 3.68456292, "mdl": 19.78355952, "mga": 4939.10271844, "mgf": 24695.51359221, "mina": 2.96704154, "mkd": 61.55964952, "mkr": 0.0010539658, "mmk": 2204.68502943, "mnt": 3642.23044786, "mop": 8.41848703, "mro": 417.98586893, "mru": 41.79858689, "mtl": 0.4293, "mur": 48.80498734, "mvr": 16.22257004, "mwk": 1816.97485566, "mxn": 21.31443731, "mxv": 2.54083369, "myr": 4.64939332, "mzm": 67108.73991606, "mzn": 67.10873992, "nad": 19.24791696, "near": 0.30445516, "neo": 0.095656604, "nexo": 0.77888405, "nft": 2308944.55391389, "ngn": 1586.2502704, "nio": 38.61111958, "nlg": 2.20371, "nok": 11.65868541, "npr": 145.71745782, "nzd": 1.82758134, "okb": 0.020467064, "omr": 0.40438466, "one": 68.58051367, "op": 0.92776003, "ordi": 0.084607201, "pab": 1.05037939, "paxg": 0.00036113239, "pen": 3.89635983, "pepe": 107072.22286544, "pgk": 4.21993239, "php": 60.74124287, "pkr": 292.91591641, "pln": 4.1616052, "pte": 200.482, "pyg": 8258.0801756, "qar": 3.82338097, "qnt": 0.010949927, "qtum": 0.32393977, "rol": 49767.43016406, "ron": 4.97674302, "rpl": 0.13368196, "rsd": 117.23474987, "rub": 95.51154934, "rune": 0.84618796, "rvn": 71.9112329, "rwf": 1469.64359383, "sand": 2.64598156, "sar": 3.93892271, "sbd": 8.927214, "scr": 15.10908972, "sdd": 63126.79554082, "sdg": 631.26795541, "sek": 11.22323515, "sgd": 1.40567887, "shib": 65249.66449369, "shp": 0.83386867, "sit": 239.64, "skk": 30.126, "sle": 23.89559537, "sll": 23895.59537085, "snx": 1.04780346, "sol": 0.0055602875, "sos": 596.83006346, "spl": 0.17506323, "srd": 37.12510115, "srg": 37125.10114913, "std": 24685.07574649, "stn": 24.68507575, "stx": 1.11721826, "sui": 0.31862565, "svc": 9.19081965, "syp": 13656.88038991, "szl": 19.24791696, "thb": 35.3926155, "theta": 0.77732319, "tjs": 11.46942704, "tmm": 18433.70007326, "tmt": 3.68674001, "tnd": 3.32998139, "ton": 0.27493411, "top": 2.52526179, "trl": 38050412.01308043, "trx": 4.36183887, "try": 38.05041201, "ttd": 7.12046036, "tusd": 1.05170094, "tvd": 1.6500118, "twd": 34.34280309, "twt": 1.0333002, "tzs": 2716.51231728, "uah": 43.73299385, "ugx": 3864.92328265, "uni": 0.10857638, "usd": 1.05037939, "usdc": 1.0500661, "usdd": 1.04975238, "usdp": 1.05036493, "usdt": 1.04970051, "uyu": 45.51488335, "uzs": 13645.80819006, "val": 1936.27000003, "veb": 6511354579.769289, "ved": 65.11491312, "vef": 6511491.31247596, "ves": 65.11491312, "vet": 31.31590551, "vnd": 26694.43789652, "vuv": 129.78435397, "waves": 0.630557, "wemix": 1.30617059, "woo": 8.23361718, "wst": 2.95481839, "xaf": 655.95700001, "xag": 0.032565353, "xau": 0.00036302876, "xaut": 0.00036297546, "xbt": 0.000010893695, "xcd": 2.84372029, "xch": 0.07480701, "xdc": 10.60924273, "xdr": 0.80112318, "xec": 39535.4095702, "xem": 46.83829896, "xlm": 3.02099176, "xmr": 0.0045630227, "xof": 655.95700001, "xpd": 0.001071329, "xpf": 119.33174225, "xpt": 0.0010609268, "xrp": 0.38135472, "xtz": 1.15701701, "yer": 260.48347614, "zar": 19.24791696, "zec": 0.030124657, "zil": 71.70490847, "zmk": 29490.18822513, "zmw": 29.49018823, "zwd": 380.13230055, "zwg": 28.07853579, "zwl": 70160.51688717 } }libqalculate-5.5.2/data/units.xml.in000066400000000000000000003652401476076707200174210ustar00rootroot00000000000000 <_title>!units!Length SI <_title>Meter <_names>ar:m,meter,p:meters,metre,p:metres true <_title>Kilometer r:km_c m 3 1 <_title>Decimeter r:dm_c m -1 1 <_title>Centimeter r:cm_c m -2 1 <_title>Millimeter r:mm_c m -3 1 <_title>Micrometer r:um_c m -6 1 <_title>Nanometer r:nm_c m -9 1 <_title>Nautical Mile <_names>r:nautical_mile,p:nautical_miles,a:nmi m 1852 1 <_title>Ångström <_names>aru:Å,aou:Å,u:ångström,angstrom true m 1E-10 1 <_title>U.S. Survey Inch US Survey <_names>ar:US_in,US_inch,p:US_inches m 100/3937 1 <_title>Inch Imperial/US <_names>ar:in,inch,p:inches m 0.0254 1 <_title>Hand Imperial/US <_names>r:hand,p:hands in 4 1 2 <_title>Foot Imperial/US <_names>ar:ft,foot,p:feet hand 3 1 1 <_title>U.S. Survey Foot US Survey <_names>ar:US_ft,US_foot,p:US_feet US_in 12 1 1 <_title>Link Imperial/US <_names>ar:li,link,p:links in 7.92 1 3 <_title>Yard Imperial/US <_names>ar:yd,yard,p:yards ft 3 1 1 <_title>Rod (pole/perch) Imperial/US <_names>ar:rd,rod,p:rods ft 16.5 1 2 <_title>U.S. Survey Rod US Survey <_names>ar:US_rd,US_rod,p:US_rods US_ft 16.5 1 2 <_title>Fathom Imperial/US <_names>r:fathom,p:fathoms yd 2 1 2 <_title>Chain Imperial/US <_names>ar:ch,chain,p:chains li 100 1 2 <_title>Furlong Imperial/US <_names>ar:fur,furlong,p:furlongs ch 10 1 2 <_title>Mile Imperial/US <_names>ar:mi,mile,p:miles yd 1760 1 1 <_title>U.S. Survey Mile US Survey <_names>ar:US_mi,US_mile,p:US_miles US_ft 5280 1 1 <_title>Thou/mil (1/1000 in) Imperial/US <_names>r:thou,mil,po:mils in 0.001 1 <_title>Astronomical Unit <_names>ar:AU,astronomical_unit,p:astronomical_units m 149597870700 1 <_title>Light Year <_names>ar:ly,lightyear,p:lightyears m 9460730472580800 1 <_title>Light Second <_names>r:light_second,p:light_seconds ly 1/31557600 1 <_title>Light Minute <_names>r:light_minute,p:light_minutes light_second 60 1 <_title>Light Hour <_names>r:light_hour,p:light_hours light_minute 60 1 <_title>Parsec <_names>ar:pc,parsec,p:parsecs true AU 648000/pi 1 <_title>Solar Radius (nominal) <_names>r:solar_radius,au:R_☉ m 695700000 1 <_title>Pied du roi (French Royal Foot) <_names>r:pied_du_roi,p:pieds_du_roi m 9000/27706 1 <_title>Pouce (French Royal Inch) <_names>r:pouce,p:pouces pied_du_roi 1/12 1 <_title>Ligne <_names>r:ligne,p:lignes pouce 1/12 1 <_title>Toise <_names>r:toise,p:toises pied_du_roi 6 1 <_title>Planck Length r:planck_length,as:l_P Planck m sqrt(planck2pi*newtonian_constant/c^3) 1 <_title>Bohr (Atomic Unit of Length) rs:bohr_unit,as:a_0unit Atomic m bohr_radius 1 <_title>Electronvolt Distance planck_c_p_eV planck_unit 0 1 c_unit 0 1 eV 0 -1 Planck per Electron Mass per Light Speed planck_p_electron_c Natural true planck_unit 0 1 electron_unit 0 -1 c_unit 0 -1 <_title>Natural Unit of Length ars:l_N,aus:ƛ_C Natural planck_p_electron_c 1 1 <_title>Rack Unit Imperial/US <_names>a:U,r:rack_unit,p:rack_units,a:RU in 1.75 1 <_title>!units!Angle <_title>Plane Angle SI <_title>Radian <_names>ar:rad,radian,p:radians false <_title>Degree <_names>ar:deg,au:°,degree,p:degrees false rad pi/180 1 <_title>Gradian (Gon) <_names>ar:gra,gradian,p:gradians,gon,p:gons false rad pi/200 1 <_title>Arcminute <_names>ar:arcmin,arcminute,p:arcminutes deg 1/60 1 <_title>Arcsecond <_names>ar:arcsec,arcsecond,p:arcseconds arcmin 1/60 1 <_title>Turn <_names>a:tr,r:turn,p:turns,a:pla,a:rev,revolution,p:revolutions,a:cyc,cycle,p:cycles deg 360 1 <_title>Solid Angle Square Degree r:sqdeg deg 0 2 SI <_title>Steradian <_names>ar:sr,steradian,p:steradians rad 1 2 <_title>Angular Acceleration SI <_title>Radians per Second Squared r:rad_p_sqs rad 0 1 s 0 -2 <_title>Angular Velocity SI <_title>Radians per Second r:rad_p_s rad 0 1 s 0 -1 true Revolutions per Minute r:turn_p_min turn 0 1 min 0 -1 <_title>Revolutions per Minute (RPM) <_names>ar:rpm turn_p_min 1 1 <_title>!units!Mass SI <_title>Gram <_names>ar:g,gram,p:grams true SI <_title>Kilogram r:kg_c g 3 1 <_title>Hectogram r:hg_c g 2 1 <_title>Metric Ton (Tonne) <_names>ar:t,tonne,p:tonnes,ton,p:tons true g 1000000 1 <_title>Grain Troy <_names>ar:gr,grain,p:grains g 0.06479891 1 <_title>Pennyweight Troy <_names>ar:pwt,pennyweight,p:pennyweights gr 24 1 1 <_title>Ounce (troy) Troy <_names>ars:oz_t,troy_ounce,p:troy_ounces pwt 20 1 1 <_title>Pound (troy) Troy <_names>ars:lb_t,troy_pound,p:troy_pounds oz_t 12 1 1 <_title>Dram Imperial/US <_names>ar:dr,dram,p:drams g 1.7718451953125 1 <_title>Ounce Imperial/US <_names>ar:oz,ounce,p:ounces dr 16 1 <_title>Pound Imperial/US <_names>ar:lb,aou:℔,pound,p:pounds oz 16 1 1 <_title>Short Hundredweight (Cental) US <_names>ar:cwt,hundredweight,cental,p:hundredweights,centals lb 100 1 <_title>Long Hundredweight Imperial <_names>ar:l_cwt,long_hundredweight,p:long_hundredweights lb 112 1 <_title>Short Ton US <_names>ar:s_ton,short_ton,p:short_tons lb 2000 1 <_title>Long Ton Imperial <_names>ar:l_ton,long_ton,p:long_tons lb 2240 1 <_title>Stone Imperial <_names>r:stone,p:stones lb 14 1 2 <_title>Carat <_names>r:carat,p:carats g 0.2 1 <_title>Pfund <_names>r:pfund g 500 1 <_title>Zentner <_names>r:zentner pfund 100 1 <_title>Planck Mass r:planck_mass,as:m_P Planck g sqrt(planck2pi*c/newtonian_constant)*1000 1 <_title>Atomic/Natural Unit of Mass rs:electron_unit,as:m_eunit Atomic/Natural g electron_mass*1000 1 <_title>Electronvolt Mass eV_p_sqc eV 0 1 c_unit 0 -2 <_title>Atomic Mass Unit <_names>ar:u,a:AMU,atomic_mass_unit,p:atomic_mass_units g atomic_mass_constant*1000 1 <_title>Dalton <_names>ar:Da,dalton,p:daltons true g atomic_mass_constant*1000 1 <_title>Kilodalton r:kDa_c Da 3 1 <_title>Solar Mass <_names>r:solar_mass,au:M_☉ g 1.988470(70)E33 1 <_title>Density SI <_title>Kilogram per Cubic Meter r:kg_p_cum g 3 1 m 0 -3 <_title>Gram per Cubic Decimeter r:g_p_cudm g 0 1 m -1 -3 <_title>Gram per Cubic Centimeter r:g_p_cucm g 0 1 m -2 -3 <_title>Atomic Mass <_title>Gram per Mole r:g_p_mol g 0 1 mol 0 -1 <_title>Mass Fraction SI <_title>Kilogram per Kilogram r:kg_p_kg g 3 1 g 3 -1 <_title>Time SI <_title>Second <_names>ar:s,second,p:seconds true <_title>Minute <_names>ar:min,minute,p:minutes s 60 1 1 <_title>Hour <_names>ar:h,hour,p:hours,a:hr,a:hrs min 60 1 1 <_title>Day <_names>ar:d,day,p:days h 24 1 1 <_title>Week <_names>r:week,p:weeks d 7 1 2 <_title>Fortnight <_names>r:fortnight,p:fortnights week 2 1 <_title>Julian Year <_names>r:year,p:years,as:a_j,a:yr,annus <_description>Acts as calendar years when added to or subtracted from dates, but as exactly 365.25 days when converted to other units. Use the yearfrac() function, instead of subtraction, to calculate the exact number of calendar years between two dates. d 365.25 1 2 <_title>Mean Gregorian Year <_names>ars:a_g,gregorian_year,p:gregorian_years d 365.2425 1 <_title>Mean Tropical Year <_names>ars:a_t,tropical_year,p:tropical_years d 365.24219 1 <_title>Month <_names>r:month,p:months d 30.4375 1 <_title>Planck Time r:planck_time,as:t_P Planck s sqrt(planck2pi*newtonian_constant/c^5) 1 <_title>Atomic Unit of Time planck_p_Ha Atomic planck_unit 0 1 Ha 0 -1 <_title>Natural Unit of Time planck_p_electron_sqc Natural planck_unit 0 1 electron_unit 0 -1 c_unit 0 -2 <_title>Electronvolt Time planck_p_eV planck_unit 0 1 eV 0 -1 <_title>!units!Frequency SI <_title>Hertz <_names>ar:Hz,hertz s 1 -1 <_title>Electricity <_title>Electric Current SI <_title>Ampere <_names>ar:A,ampere,p:amperes,a-c:amp CGS <_title>Abampere <_names>r:abampere,a:abA,p:abamperes,a:Bi,biot A 10 1 <_title>Current Density SI <_title>Ampere per Meter Squared r:A_p_sqm A 0 1 m 0 -2 <_title>Electric Charge true Ampere Second r:A_s A 0 1 s 0 1 SI <_title>Coulomb <_names>ar:C,coulomb,p:coulombs A_s 1 1 CGS <_title>Abcoulomb <_names>r:abcoulomb,p:abcoulombs,a:abC,a:aC C 10 1 CGS <_title>Statcoulomb (Franklin) <_names>r:statcoulomb,p:statcoulombs,a:statC,franklin,a:Fr,p:franklins C 1/2997924580 1 <_title>Planck Charge r:planck_charge,as:q_P Planck C sqrt(4pi*electric_constant*planck2pi*c) 1 <_title>Atomic Unit of Charge ars:e_unit,as:q_A Atomic C 1.602176634E-19 1 <_title>Electric Charge Density SI <_title>Coulomb per Cubic Meter r:C_p_cum C 0 1 m 0 -3 <_title>Electric Dipole Moment SI <_title>Coulomb Meter r:C_m C 0 1 m 0 1 CGS Statcoulomb Centimeter true r:statcoulomb_cm statcoulomb 0 1 m -2 1 CGS <_title>Debye <_names>ar:D,debye,p:debyes statcoulomb_cm 1E-18 1 <_title>Electric Flux Density SI <_title>Coulomb per Meter Squared r:C_p_sqm C 0 1 m 0 -2 <_title>Electric Potential true Watt per Ampere r:W_p_A W 0 1 A 0 -1 SI <_title>Volt <_names>ar:V,volt,p:volts W_p_A 1 1 CGS <_title>Statvolt <_names>r:statvolt,p:statvolts,a:statV V 299.792458 1 CGS <_title>Abvolt <_names>r:abvolt,p:abvolts,a:abV V 1E-8 1 <_title>Atomic Unit of Electric Potential Ha_p_e Atomic Ha 0 1 e_unit 0 -1 <_title>Capacitance true Coulomb per Volt r:C_p_V C 0 1 V 0 -1 SI <_title>Farad <_names>ar:F,farad,p:farads C_p_V 1 1 <_title>Electrical Elastance <_title>Volt per Coulomb r:V_p_C V 0 1 C 0 -1 SI <_title>Reciprocal Farad r:recF F 0 -1 <_title>Daraf <_names>r:daraf,p:darafs recF 1 1 <_title>Electric Resistance true Volt per Ampere r:V_p_A V 0 1 A 0 -1 SI <_title>Ohm <_names>au:Ω,r:ohm,p:ohms,auio:Ω V_p_A 1 1 CGS <_title>Abohm <_names>r:abohm,p:abohms,au:abΩ ohm 1E-9 1 CGS <_title>Statohm <_names>r:statohm,p:statohms,au:statΩ ohm 8.9875517873681764E11 1 <_title>Electric Conductance true Ampere per Volt r:A_p_V A 0 1 V 0 -1 SI <_title>Siemens <_names>ar:S,siemens,auio:℧ A_p_V 1 1 <_title>Electric Field Strength SI <_title>Volt per Meter r:V_p_m V 0 1 m 0 -1 <_title>Newton per Coulomb r:N_p_C N 0 1 C 0 -1 <_title>Atomic Unit of Electric Field Ha_p_e_bohr Atomic Ha 0 1 e_unit 0 -1 bohr_unit 0 -1 <_title>Permittivity SI <_title>Farad per Meter r:F_p_m F 0 1 m 0 -1 <_title>Inductance true Weber per Ampere r:Wb_p_A Wb 0 1 A 0 -1 SI <_title>Henry <_names>ar:H,henry,p:henrys Wb_p_A 1 1 CGS <_title>Abhenry <_names>r:abhenry,p:abhenrys,a:abH H 1E-9 1 <_title>Permeability SI <_title>Henry per Meter r:H_p_m H 0 1 m 0 -1 <_title>Temperature SI <_title>Kelvin <_names>ar:K,aou:K,kelvin,p:kelvins SI <_title>Degree Celsius <_names>ar:oC,au:°C,au:℃,r:celsius,p:celsius,centigrade,p:centigrades false K \x + 273.15 \x - 273.15 1 <_title>Degree Rankine Imperial/US <_names>ar:oR,a:oRa,au:°R,au:°Ra,r:rankine K 5/9 1 <_title>Degree Fahrenheit Imperial/US <_names>ar:oF,au:°F,au:℉,r:fahrenheit K (\x+459.67)*5/9 (\x*9/5)-459.67 1 <_title>Planck Temperature r:planck_temperature,as:T_P Planck K sqrt((planck2pi*c^5)/newtonian_constant)/boltzmann 1 <_title>Electronvolt Temperature eV_p_kB eV 0 1 boltzmann_unit 0 -1 <_title>Substance SI <_title>Mole <_names>ar:mol,mole,p:moles <_title>Einstein <_names>r:einstein,p:einsteins <_title>Substance Concentration SI <_title>Mole per Cubic Meter r:mol_p_cum mol 0 1 m 0 -3 <_title>Catalytic Activity true Reciprocal Seconds Mole r:recs_mol mol 0 1 s 0 -1 SI <_title>Katal <_names>ar:kat,katal,p:katals recs_mol 1 1 <_title>Catalytic Concentration SI <_title>Katal per Cubic Meter r:kat_p_cum kat 0 1 m 0 -3 <_title>Light <_title>Luminous Intensity SI <_title>Candela <_names>ar:cd,candela,p:candelas <_title>Luminance SI <_title>Candela per Meter Squared r:cd_p_sqm cd 0 1 m 0 -2 CGS <_title>Stilb <_names>ar:sb,stilb,p:stilbs cd_p_sqm 10000 1 <_title>Luminous Flux true Candela Steradian r:cd_sr cd 0 1 sr 0 1 SI <_title>Lumen <_names>ar:lm,lumen,p:lumens cd_sr 1 1 <_title>Illuminance true Lumen per Meter Squared r:lm_p_sqm lm 0 1 m 0 -2 true Lumen per Foot Squared r:lm_p_sqft lm 0 1 ft 0 -2 SI <_title>Lux <_names>ar:lx,lux lm_p_sqm 1 1 <_title>Foot-Candle Imperial/US <_names>ar:fc,footcandle,p:footcandles lm_p_sqft 1 1 CGS <_title>Phot <_names>ar:ph,phot,p:phots lx 10000 1 <_title>Radiant Intensity SI <_title>Watt per Steradian r:W_p_sr W 0 1 sr 0 -1 <_title>Irradiance SI <_title>Watt per Meter Squared r:W_p_sqm W 0 1 m 0 -2 <_title>Einstein per Meter Squared per Second r:einstein_p_sqm_p_s einstein 0 1 m 0 -2 s 0 -1 <_title>Microeinstein per Meter Squared per Second r:microeinstein_p_sqm_p_s einstein -6 1 m 0 -2 s 0 -1 <_title>Radiance SI <_title>Watt per Square Meter Steradian r:W_p_sqm_sr W 0 1 sr 0 -1 m 0 -2 <_title>Area SI <_title>Square Meter r:sqm m 0 2 <_title>Square Kilometer r:sqkm m 3 2 <_title>Are <_names>ar:a,are,p:ares m 100 2 true <_title>Circular Mil US <_names>r:cmil,p:cmils mil pi/4 2 <_title>Thousand of Circular Mil US r:kcmil,MCM cmil 1000 1 <_title>Hectare <_names>ar:ha,hectare,p:hectares a 100 1 <_title>Decare <_names>a:da,r:decare,p:decares a 10 1 <_title>Barn <_names>ar:b,barn,p:barns m 1E-28 2 <_title>Rood Imperial <_names>r:rood,p:roods yd 1210 2 <_title>Acre Imperial <_names>r:acre,p:acres ch 10 2 <_title>Section US Survey <_names>r:section,p:sections US_mi 1 2 <_title>Township US Survey <_names>r:township,p:townships section 36 1 1 <_title>Square Foot Imperial/US r:sqft ft 0 2 <_title>Square Inch Imperial/US r:sqin in 0 2 <_title>Square Mile Imperial/US r:sqmi mi 0 2 <_title>Volume SI <_title>Cubic Meter r:cum m 0 3 <_title>Liter <_names>ar:L,a:l,aou:ℓ,liter,p:liters,litre,p:litres true m 0.001 3 <_title>Milliliter r:ml_c l -3 1 <_title>Centiliter r:cl_c l -2 1 <_title>Deciliter r:dl_c l -1 1 <_title>Cubic Inch Imperial/US r:cuin in 0 3 <_title>Fuel Economy <_title>Liter per Kilometer r:l_p_km l 0 1 m 3 -1 <_title>Kilometer per Liter r:km_p_l m 3 1 l 0 -1 true Miles per Gallon US r:mile_p_gal mi 0 1 gal 0 -1 <_title>Miles per Gallon US <_names>a-cr:mpg mile_p_gal 1 1 <_title>Cooking <_title>Teaspoon <_names>r:teaspoon,p:teaspoons L 0.005 1 1 <_title>Dessertspoon <_names>r:dessertspoon,p:dessertspoons teaspoon 2 1 2 <_title>Tablespoon <_names>r:tablespoon,p:tablespoons teaspoon 3 1 1 <_title>Cup (U.S.) US <_names>r-c:cup,p-c:cups L 0.2365882365 1 <_title>Imperial Capacity <_title>Imperial Fluid Ounce Imperial <_names>ar:UK_fl_oz,imperial_fluid_ounce,p:imperial_fluid_ounces L 0.0284130625 1 <_title>Imperial Gill Imperial <_names>ar:UK_gi,imperial_gill,p:imperial_gills UK_fl_oz 5 1 2 <_title>Imperial Pint Imperial <_names>ar:UK_pt,imperial_pint,p:imperial_pints UK_gi 4 1 1 <_title>Imperial Quart Imperial <_names>ar:UK_qt,imperial_quart,p:imperial_quarts UK_pt 2 1 2 <_title>Imperial Gallon Imperial <_names>ar:UK_gal,imperial_gallon,p:imperial_gallons UK_qt 4 1 1 <_title>Imperial Minim Imperial <_names>r:imperial_minim,p:imperial_minims UK_fl_oz 1/480 1 <_title>Imperial Fluid Scuple Imperial <_names>r:imperial_fluid_scuple,p:imperial_fluid_scuples imperial_minim 20 1 <_title>Imperial Fluid Drachm Imperial <_names>ar:UK_fl_dr,imperial_fluid_drachm,p:imperial_fluid_drachms imperial_fluid_scuple 3 1 <_title>Imperial Bushel Imperial <_names>ar:UK_bu,imperial_bushel,p:imperial_bushels UK_gal 8 1 1 <_title>U.S. Capacity <_title>U.S. Fluid Ounce US <_names>ar:fl_oz,fluid_ounce,p:fluid_ounces in 231/128 3 <_title>U.S. Gill US <_names>ar:gi,gill,p:gills fl_oz 4 1 <_title>U.S. Liquid Pints US <_names>ar:liq_pt,liquid_pint,p:liquid_pints gi 4 1 <_title>U.S. Liquid Quarts US <_names>ar:liq_qt,liquid_quart,p:liquid_quarts liq_pt 2 1 <_title>U.S. Minim US <_names>r:minim,p:minims fl_oz 1/480 1 <_title>U.S. Fluid Drachm US <_names>ar:fl_dr,fluid_drachm,p:fluid_drachms minim 60 1 <_title>U.S. Dry Pint US <_names>ar:dry_pt,dry_pint,p:dry_pints in 33.6003125 3 <_title>U.S. Dry Quart US <_names>ar:dry_qt,dry_quart,p:dry_quarts dry_pt 2 1 <_title>U.S. Peck US <_names>ar:pk,peck,p:pecks dry_qt 8 1 <_title>U.S. Bushel US <_names>ar:bu,bushel,p:bushels pk 4 1 <_title>U.S. Gallon US <_names>ar:gal,gallon,p:gallons liq_qt 4 1 <_title>U.S. Barrel (oil) US <_names>ar:bbl,barrel,p:barrels gal 42 1 <_title>Acre-Foot US r:acre_ft acre 0 1 ft 0 1 <_title>Specific Volume SI <_title>Cubic Meter per Kilogram r:cum_p_kg m 0 3 g 3 -1 <_title>Volumetric Flow Rate <_title>Liter per Second r:l_p_s L 0 1 s 0 -1 <_title>Liter per Minute r:l_p_min L 0 1 min 0 -1 <_title>Liter per Hour r:l_p_h L 0 1 h 0 -1 <_title>Cubic Meter per Second SI r:cum_p_s m 0 3 s 0 -1 <_title>Cubic Centimeter per Minute SI r:cucm_p_min m -2 3 min 0 -1 true Cumecs r:cumec,p:cumecs cum_p_s 1 1 <_title>Sverdrup <_names>r:sverdrup cum_p_s 1000000 1 <_title>Cubic Foot per Minute Imperial/US r:cuf_p_min ft 0 3 min 0 -1 <_title>Cubic Foot per Minute (CFM) Imperial/US <_names>a-cr:cfm cuf_p_min 1 1 <_title>Cubic Foot per Second Imperial/US r:cuf_p_s ft 0 3 s 0 -1 <_title>Cubic Foot per Second (CFS) Imperial/US <_names>a-cr:cfs cuf_p_s 1 1 true Gallons per Minute US r:gal_p_min gal 0 1 min 0 -1 <_title>Gallons per Minute (U.S.) US <_names>a-cr:gpm gal_p_min 1 1 true Gallons per Hour US r:gal_p_h gal 0 1 h 0 -1 <_title>Gallons per Hour (U.S.) US <_names>a-cr:gph gal_p_h 1 1 <_title>Gallons per Second (U.S.) US r:gal_p_h gal 0 1 s 0 -1 Acre-Foot per Day US r:acre_ft_p_d acre 0 1 ft 0 1 d 0 -1 <_title>Speed SI <_title>Meter per Second r:m_p_s m 0 1 s 0 -1 <_title>Kilometer per Hour r:km_p_h m 3 1 h 0 -1 <_title>Kilometer per Hour true <_names>a-c-r:kph,a-c-r:kmph km_p_h 1 1 <_title>Nautical Mile per Hour r:nautical_mile_p_h nautical_mile 0 1 h 0 -1 <_title>Knot <_names>r:knot,p:knots nautical_mile_p_h 1 1 true Miles per Hour Imperial/US r:mile_p_h mi 0 1 h 0 -1 <_title>Miles per Hour Imperial/US <_names>a-cr:mph mile_p_h 1 1 <_title>Speed of Light (Natural Unit of Velocity) ars:c_unit m_p_s 299792458 1 <_title>Atomic Unit of Velocity bohr_Ha_p_planck Atomic bohr_unit 0 1 Ha 0 1 planck_unit 0 -1 <_title>Acceleration SI <_title>Meter per Second Squared r:m_p_sqs m 0 1 s 0 -2 SI <_title>Meter per Second Cubed (Jerk) r:m_p_scu m 0 1 s 0 -3 SI <_title>Meter per Second to the Fourth (Snap) r:m_p_sfourth m 0 1 s 0 -4 SI <_title>Meter per Second to the Fifth (Crackle) r:m_p_sfifth m 0 1 s 0 -5 SI <_title>Meter per Second to the Sixth (Pop) r:m_p_ssixth m 0 1 s 0 -6 CGS <_title>Galileo <_names>ar:Gal,galileo,p:galileos m_p_sqs 1/100 1 true <_title>Gee <_names>r:gee,p:gees m_p_sqs 9.80665 1 <_title>Magnetism <_title>Wave Number SI <_title>Reciprocal Meter r:recm m 0 -1 <_title>Magnetic Field Strength SI <_title>Ampere per Meter r:A_p_m A 0 1 m 0 -1 CGS <_title>Oersted <_names>ar:Oe,oersted,p:oersteds A_p_m 1000/(4*pi) 1 true <_title>Magnetic Flux true Volt Seconds r:V_s V 0 1 s 0 1 SI <_title>Weber <_names>ar:Wb,weber,p:webers V_s 1 1 CGS <_title>Maxwell <_names>ar:Mx,maxwell,p:maxwells Wb 1E-8 1 <_title>Magnetic Flux Density true Weber per Meter Squared r:Wb_p_sqm Wb 0 1 m 0 -2 SI <_title>Tesla <_names>ar:T,tesla,p:teslas Wb_p_sqm 1 1 CGS <_title>Gauss <_names>r:gauss T 0.0001 1 true <_title>Atomic Unit of Magnetic Flux Density planck_p_e_sqbohr Atomic planck_unit 0 1 e_unit 0 -1 bohr_unit 0 -2 <_title>Magnetic Dipole Moment SI <_title>Ampere Square Meter r:A_sqm A 0 1 m 0 2 <_title>Atomic Unit of Magnetic Dipole Moment e_planck_p_electron Atomic e_unit 0 1 planck_unit 0 1 electron_unit 0 -1 <_title>Force true Meter Kilogram per Second Squared r:m_kg_p_sqs m 0 1 g 3 1 s 0 -2 SI <_title>Newton <_names>ar:N,newton,p:newtons m_kg_p_sqs 1 1 CGS <_title>Dyne <_names>ar:dyn,dyne,p:dynes N 1E-5 1 Imperial <_title>Pound-force <_names>ar:lbf,pound_force N 4.4482216152605 1 Imperial <_title>Ounce-force <_names>ar:ozf,ounce_force lbf 0.0625 1 true Pound Foot per Second Squared r:lb_ft_p_sqs lb 0 1 ft 0 1 s 0 -2 Imperial <_title>Poundal <_names>r:poundal,p:poundals,a:pdl lb_ft_p_sqs 1 1 <_title>Pond (Gram-Force) <_names>r:pond,p:ponds,a:gf true N 0.00980665 1 <_title>Kilopond (Kilogram-Force) r:kpond_c pond 3 1 <_title>Atomic Unit of Force Ha_p_bohr Atomic Ha 0 1 bohr_unit 0 -1 <_title>Moment of Force SI <_title>Newton Meter r:N_m N 0 1 m 0 1 <_title>Momentum SI <_title>Kilogram Meter per Second r:kg_m_p_s g 3 1 m 0 1 s 0 -1 <_title>Electronvolt Momentum eV_p_c eV 0 1 c_unit 0 -1 <_title>Natural Unit of Momentum electron_c Natural electron_unit 0 1 c_unit 0 1 <_title>Atomic Unit of Momentum planck_p_electron_sqc Atomic planck_unit 0 1 bohr_unit 0 -1 <_title>Pressure true Newton per Meter Squared r:N_p_sqm N 0 1 m 0 -2 Pound-force per Square Inch Imperial/US true r:lbf_p_sqin lbf 0 1 in 0 -2 SI <_title>Pascal <_names>ar:Pa,pascal,p:pascals N_p_sqm 1 1 <_title>Kilogram-force per Square Centimetre r:kpond_p_sqcm pond 3 1 m -2 -2 <_title>Pound-force per Square Inch (psi) Imperial/US <_names>a-cr:psi lbf_p_sqin 1 1 <_title>Kilopound-force per Square Inch (ksi) Imperial/US <_names>a-cr:ksi psi 1000 1 <_title>Bar <_names>r:bar,p:bars true Pa 100000 1 <_title>Atmosphere <_names>ar:atm,atmosphere,p:atmospheres Pa 101325 1 <_title>Torr <_names>ar:Torr,torr,p:torrs atm 1/760 1 <_title>Meter of Mercury <_names>ar:mHg true atm 1000/760 1 true <_title>Millimeter of Mercury <_names>ar:mmHg mHg 0.001 1 <_title>Inch of Mercury <_names>ar:inHg mmHg 25.4 1 <_title>Millitorr r:mTorr_c Torr -3 1 CGS Dyne per Square Centimetre r:dyn_p_sqcm true dyn 0 1 m -2 -2 CGS <_title>Barye <_names>ar:Ba,barye dyn_p_sqcm 1 1 <_title>Meter of Water <_names>ar:mWC,a:mwg,au:mH₂O Pa 9806.65 1 <_title>Millimeter of Water mmWC_c mWC -3 1 <_title>Centimeter of Water cmWC_c mWC -2 1 <_title>Inch of Water <_names>ar:inWC,a:iwg,au:inH₂O mWC 0.0254 1 <_title>Dynamic Viscosity SI <_title>Pascal Second r:Pa_s Pa 0 1 s 0 1 CGS <_title>Poise <_names>ar:P,poise,p:poises Pa_s 0.1 1 CGS <_title>Centipoise r:cP_c P -2 1 <_title>Kinematic Viscosity SI <_title>Square Meter per Second r:sqm_p_s m 0 2 s 0 -1 CGS <_title>Stokes <_names>ar:St,stokes sqm_p_s 0.0001 1 CGS <_title>Centistokes r:cSt_c St -2 1 <_title>Surface Tension SI <_title>Newton per Meter r:N_p_m N 0 1 m 0 -1 <_title>Energy SI <_title>Joule <_names>ar:J,joule,p:joules N_m 1 1 <_title>Kilojoule r:kJ_c J 3 1 <_title>Watt Hour r:W_h W 0 1 h 0 1 <_title>Kilowatt Hour r:kW_h W 3 1 h 0 1 <_title>Calorie (international table) <_names>ars:cal_IT J 4.1868 1 <_title>Calorie (thermochemical) <_names>airs:cal_th,a:cal,c:calorie,cp:calories J 4.184 1 <_title>Kilocalorie r:kcal_c cal 3 1 <_title>Calorie (capital C) <_names>cr:Calorie,cp:Calories cal 1000 1 <_title>Gram of TNT <_names>a-cr:gTNT,gramTNT cal_th 1000 1 <_title>Ton of TNT <_names>a-cr:tTNT,tonTNT gTNT 1000000 1 <_title>Calorie (15 degrees Celsius) <_names>ars:cal_fifteen J 4.1855 1 <_title>Calorie (mean) <_names>ars:cal_mean J 4.19002 1 <_title>Calorie (IUNS) <_names>ars:cal_IUNS J 4.182 1 <_title>British Thermal Unit (IT) <_names>ar:Btu cal_IT 45359237/180000 1 <_title>Therm (IT) <_names>r:therm,p:therms,a:thm Btu 100000 1 <_title>Therm (ISO) <_names>r:therm_ISO,p:therms_ISO,a:thm_ISO J 105506000 1 <_title>Therm (U.S.) <_names>r:therm_US,p:therms_US,a:thm_US J 105480400 1 <_title>Thermie <_names>r:thermie,p:thermies,a:th cal_IT 1E6 1 <_title>Electronvolt <_names>ar:eV,electronvolt,p:electronvolts true J 1.602176634E-19 1 CGS <_title>Erg <_names>r:erg,p:ergs J 1E-7 1 <_title>Foe <_names>r:foe,p:foes erg 1E51 1 Imperial <_title>Foot-Pound Force r:ft_lbf ft 0 1 lbf 0 1 <_title>Hartree (Atomic Unit of Energy) ar:Ha,as:E_h,hartree Atomic J 2*rydberg*planck*c 1 <_title>Rydberg (unit) ar:Ry,s:rydberg_unit Ha 0.5 1 <_title>Natural Unit of Energy electron_sqc Natural electron_unit 0 1 c_unit 0 2 <_title>Specific Energy SI <_title>Joule per Kilogram r:J_p_kg J 0 1 g 3 -1 <_title>Kilocalerie per Gram r:kcal_p_g cal 3 1 g 0 -1 <_title>Power true Joule per Second r:J_p_s J 0 1 s 0 -1 SI <_title>Watt <_names>ar:W,watt,p:watts J_p_s 1 1 <_title>Horse Power <_names>ar:hp,horsepower,p:horsepowers W 745.699987158227022 1 <_title>Pferdestärke <_names>ar:PS,u:pferdestärke W 735.49875 1 <_title>Decibel Milliwatt <_names>ar:dBm W 10^((\x-30)/10) 10*log(\x,10)+30 1 <_title>Decibel Watt <_names>ar:dBW W 10^(\x/10) 10*log(\x,10) 1 CGS <_title>Erg per Second r:erg_p_s erg 0 1 s 0 -1 <_title>Solar Luminosity (nominal) <_names>r:solar_luminosity,au:L_☉ W 3.828E26 1 <_title>Entropy SI <_title>Joule per Kelvin r:J_p_K J 0 1 K 0 -1 <_title>Boltzmann (unit) rs:boltzmann_unit,as:k_Bunit J_p_K 1.380649E-23 1 <_title>Specific Entropy SI <_title>Joule per Kilogram Kelvin r:J_p_kg_K J 0 1 g 3 -1 K 0 -1 <_title>Thermal Conductivity SI <_title>Watt per Meter Kelvin r:W_p_m_K W 0 1 m 0 -1 K 0 -1 <_title>Energy Density SI <_title>Joule per Cubic Meter r:J_p_cum J 0 1 m 0 -3 <_title>Molar Energy SI <_title>Joule per Mole r:J_p_mol J 0 1 mol 0 -1 <_title>Molar Entropy SI <_title>Joule per Mole Kelvin r:J_p_mol_K J 0 1 mol 0 -1 K 0 -1 <_title>Action SI <_title>Joule Second r:J_s J 0 1 s 0 1 <_title>Reduced Planck (Atomic/Natural Unit of Action) rs:planck_unit,aus:ℏ_unit Atomic/Natural J_s 3.3130351E-34/pi 1 <_title>Radioactivity SI <_title>Becquerel <_names>ar:Bq,becquerel,p:becquerels s 1 -1 <_title>Curie <_names>ar:Ci,curie,p:curies Bq 3.7E10 1 <_title>Rutherford <_names>ar:Rd,rutherford,p:rutherfords Bq 1E6 1 <_title>Absorbed Dose SI <_title>Gray <_names>ar:Gy,gray,p:grays J_p_kg 1 1 <_title>Rad <_names>rs:rad_radioactivity Gy 1/100 1 <_title>Dose Equivalent SI <_title>Sievert <_names>ar:Sv,sievert,p:sieverts J_p_kg 1 1 CGS <_title>Roentgen Equivalent Man (Rem) <_names>ros:rem_radioactivity,a:rem Sv 1/100 1 CGS <_title>Millirem r:mrem_c rem_radioactivity -3 1 <_title>Erg per Gram r:erg_p_g erg 0 1 g 0 -1 <_title>Exposure SI <_title>Coulomb per Kilogram r:C_p_kg C 0 1 g 3 -1 <_title>Roentgen <_names>ar:R,roentgen,röntgen,p:roentgens,p:röntgens C_p_kg 0.000258 1 <_title>Absorbed Dose Rate SI <_title>Gray per Second r:Gy_p_s Gy 0 1 s 0 -1 CGS <_title>Millirem per Hour r:mrem_p_h rem_radioactivity -3 1 h 0 -1 <_title>Ratio <_title>Neper <_names>ar:Np,neper,p:nepers <_title>Bel <_names>r:bel,p:bels Np 0.5*ln(10) 1 <_title>Decibel <_names>ar:dB,decibel,p:decibels bel 0.1 1 <_title>Information <_title>Bit (Binary Digit) <_names>r:bit,p:bits,shannon,p:shannons,c:Sh,binary_digit,p:binary_digits true <_title>Nat <_names>r:nat,p:nats bit log2(e) 1 <_title>Trit (Ternary Digit) <_names>r:trit,p:trits,trinary_digit,p:trinary_digits,ternary_digit,p:ternary_digits bit log2(3) 1 <_title>Octal Digit <_names>r:octal_digit,p:octal_digits bit 3 1 <_title>Hartley (Decimal Digit) <_names>r:hartley,p:hartleys,a:Hart,dit,p:dits,decimal_digit,p:decimal_digits bit log2(10) 1 <_title>Byte (8-bit) <_names>r:byte,a:B,p:bytes,octet,p:octets,a:o true bit 8 1 <_title>Nibble (Hexadecimal Digit) <_names>r:nibble,p:nibbles,nybble,p:nybbles,semioctet,p:semioctets,hex_digit,p:hex_digits,hexadecimal_digit,p:hexadecimal_digits bit 4 1 <_title>Tribble <_names>r:tribble,p:tribbles nibble 3 1 <_title>Nonet <_names>r:nonet,p:nonets bit 9 1 <_title>Declet <_names>r:declet,p:declets bit 10 1 <_title>Word (16-bit) <_names>r:word,p:words bit 16 1 <_title>Kilobyte r:kbyte_c byte 3 1 <_title>Megabyte r:Mbyte_c byte 6 1 <_title>Gigabyte r:Gbyte_c byte 9 1 <_title>Terabyte r:Tbyte_c byte 12 1 <_title>Petabyte r:Pbyte_c byte 15 1 <_title>Exabyte r:Ebyte_c byte 18 1 <_title>Kibibyte r:Kibyte_c byte 10 1 <_title>Mebibyte r:Mibyte_c byte 20 1 <_title>Gibibyte r:Gibyte_c byte 30 1 <_title>Tebibyte r:Tibyte_c byte 40 1 <_title>Kilobit r:kbit_c bit 3 1 <_title>Megabit r:Mbit_c bit 6 1 <_title>Gigabit r:Gbit_c bit 9 1 <_title>Terabit r:Tbit_c bit 12 1 <_title>Petabit r:Pbit_c bit 15 1 <_title>Kibibit r:Kibit_c bit 10 1 <_title>Mebibit r:Mibit_c bit 20 1 <_title>Gibibit r:Gibit_c bit 30 1 <_title>Typography <_title>PostScript Point <_names>ar:pt,a:pts,point,p:points in 1/72 1 <_title>PostScript Pica <_names>r:pica,p:picas pt 12 1 <_title>ATA Pica <_names>r:ata_pica,p:ata_picas in 0.166 1 <_title>ATA Point <_names>r:ata_point,a:ata_pt,p:ata_points ata_pica 1/12 1 <_title>New Didot Point <_names>r:new_didot m 0.000375 1 <_title>Didot Point <_names>r:didot,a:dd pouce 1/72 1 <_title>Cicero <_names>r:cicero didot 12 1 libqalculate-5.5.2/data/variables.xml.in000066400000000000000000000743541476076707200202320ustar00rootroot00000000000000 <_title>Small Numbers <_title>Per Mille <_names>r:permille,au:‰ <_title>Per Myriad <_names>r:permyriad,au:‱ <_title>Percent <_names>a:%,r:percent <_title>Large Numbers <_title>Googolplex <_names>r:googolplex 10^(10^100) <_title>Googol <_names>r:googol 10^100 <_title>Centillion <_names>-r:centillion 1E303 <_title>Vigintillion <_names>-r:vigintillion 1E63 <_title>Novemdecillion <_names>-r:novemdecillion 1E60 <_title>Octodecillion <_names>-r:octodecillion 1E57 <_title>Septendecillion <_names>-r:septendecillion 1E54 <_title>Sexdecillion <_names>-r:sexdecillion 1E51 <_title>Quindecillion <_names>-r:quindecillion 1E48 <_title>Quattuordecillion <_names>-r:quattuordecillion 1E45 <_title>Tredecillion <_names>-r:tredecillion 1E42 <_title>Duodecillion <_names>-r:duodecillion 1E39 <_title>Undecillion <_names>-r:undecillion 1E36 <_title>Decillion <_names>-r:decillion 1E33 <_title>Nonillion <_names>-r:nonillion 1E30 <_title>Octillion <_names>-r:octillion 1E27 <_title>Septillion <_names>-r:septillion 1E24 <_title>Sextillion <_names>-r:sextillion 1E21 <_title>Quintillion <_names>-r:quintillion 1E18 <_title>Quadrillion <_names>-r:quadrillion 1E15 <_title>Trillion <_names>-r:trillion 1E12 <_title>Billion <_names>-r:billion 1E9 <_title>Million <_names>-r:million 1E6 <_title>Thousand <_names>-r:thousand 1E3 <_title>Hundred <_names>-r:hundred 1E2 <_title>Traditional Numbers <_title>Dozen <_names>-r:dozen,a:dz,a:doz 12 <_title>Baker's Dozen <_names>-r:bakers_dozen 13 <_title>Score <_names>-r:score 20 <_title>Long Hundred <_names>-r:long_hundred,great_hundred,twelfty 120 <_title>Gross <_names>-r:gross,a:gro 144 <_title>Long Thousand <_names>-r:long_thousand 1200 <_title>Great Gross <_names>-r:great_gross 1728 <_title>Physical Constants <_title>Universal Constants <_title>Characteristic Impedance of Vacuum r:characteristic_impedance,as:Z_0 (2*planck*fine_structure)/(elementary_charge^2) <_title>Electric Constant (Permittivity of Free Space) r:electric_constant,asu:ε_0,vacuum_permittivity,aos:epsilon_0 elementary_charge^2/(2*planck*fine_structure*c) <_title>Magnetic Constant (Permeability of Free Space) r:magnetic_constant,asu:μ_0,asou:µ_0,vacuum_permeability,aos:mu_0 (2*planck*fine_structure)/(c*elementary_charge^2) <_title>Planck Constant r:planck,au:ℎ 6.62607015E-34 <_title>Reduced Planck Constant (Dirac constant) r:planck2pi,dirac,au:ℏ,o:hbar planck/(2*pi) <_title>Newtonian Constant of Gravitation r:newtonian_constant,a:G 6.67430E-11 <_title>Speed of Light in Vacuum ar:c,speed_of_light 299792458 <_title>Standard Acceleration due to Gravity r:standard_gravity,asu:g_0,asu:ɡ_0,asu:ɡ_n 9.80665 <_title>Electromagnetic Constants <_title>Bohr Magneton r:bohr_magneton,asu:μ_B,asou:µ_0,aos:mu_B (elementary_charge*planck)/(4*electron_mass*pi) <_title>Conductance Quantum r:conductance_quantum,as:G_0 2*elementary_charge^2/planck <_title>Coulomb's Constant (Electric Force Constant) r:coulombs_constant,as:k_e (magnetic_constant*c^2)/(4pi) <_title>Elementary Charge r:elementary_charge,as:q_e,as:e_charge 1.602176634E-19 <_title>Inverse of Conductance Quantum r:inverse_conductance_quantum planck/(2*elementary_charge^2) <_title>Josephson Constant r:josephson,as:K_J 2*elementary_charge/planck <_title>Josephson Constant (conventional value) rs:josephson_conventional,as:K_J90 4.835979E14 <_title>Magnetic Flux Quantum r:magnetic_flux_quantum,asu:Φ_0,aos:phi_0 planck/(2*elementary_charge) <_title>Nuclear Magneton r:nuclear_magneton,asu:μ_N,asou:µ_N,aos:mu_N elementary_charge*planck2pi/(2*proton_mass) <_title>von Klitzing Constant r:klitzing,as:R_K planck/elementary_charge^2 <_title>von Klitzing Constant (conventional value) rs:klitzing_conventional,as:R_K90 25812.807 <_title>Particle Mass in u <_title>Deuteron Mass (in u) rs:deuteron_u 2.013553212544 <_title>Electron Mass (in u) rs:electron_u 5.485799090441E-4 <_title>Helion Mass (in u) rs:helion_u 3.014932246932 <_title>Neutron Mass (in u) rs:neutron_u 1.00866491606 <_title>Proton Mass (in u) rs:proton_u 1.0072764665789 <_title>Tau Mass (in u) rs:tau_u 1.90754 <_title>Muon Mass (in u) rs:muon_u 0.1134289257 <_title>Triton Mass (in u) rs:triton_u 3.01550071597 <_title>Alpha Particle Mass (in u) rs:alpha_particle_u 4.001506179129 <_title>Particle Mass in MeV*c^(-2) <_title>Electron Mass (in MeV/c^2) rs:electron_eV electron_mass*c^2/electronvolt_constant*1E-6 <_title>Neutron Mass (in MeV/c^2) rs:neutron_eV neutron_mass*c^2/electronvolt_constant*1E-6 <_title>Proton Mass (in MeV/c^2) rs:proton_eV proton_mass*c^2/electronvolt_constant*1E-6 <_title>Tau Mass (in MeV/c^2) rs:tau_eV tau_mass*c^2/electronvolt_constant*1E-6 <_title>Muon Mass (in MeV/c^2) rs:muon_eV muon_mass*c^2/electronvolt_constant*1E-6 <_title>Alpha Particle Mass (in MeV/c^2) rs:alpha_particle_eV alpha_particle_mass*c^2/electronvolt_constant*1E-6 <_title>Up Quark Mass (in MeV/c^2) r:quark_u 2.2 <_title>Down Quark Mass (in MeV/c^2) r:quark_d 4.7 <_title>Charm Quark Mass (in MeV/c^2) r:quark_c 1275 <_title>Strange Quark Mass (in MeV/c^2) r:quark_s 95 <_title>Top Quark Mass (in MeV/c^2) r:quark_t 173210 <_title>Bottom Quark Mass (in MeV/c^2) r:quark_b 4180 <_title>Higgs Boson Mass (in MeV/c^2) r:higgs_boson 125180 <_title>W Boson Mass (in MeV/c^2) r:w_boson 80379 <_title>Z Boson Mass (in MeV/c^2) r:z_boson 91187.6 <_title>Particle Mass in kg <_title>Deuteron Mass rs:deuteron_mass nounit(deuteron_u)*atomic_mass_constant <_title>Electron Mass rs:electron_mass,as:m_e (2*rydberg*planck)/(c*fine_structure^2) <_title>Helion Mass rs:helion_mass,as:m_h nounit(helion_u)*atomic_mass_constant <_title>Neutron Mass rs:neutron_mass,as:m_n nounit(neutron_u)*atomic_mass_constant <_title>Proton Mass rs:proton_mass,as:m_p nounit(proton_u)*atomic_mass_constant <_title>Tau Mass rs:tau_mass,asu:m_τ,aos:m_tau nounit(tau_u)*atomic_mass_constant <_title>Muon Mass rs:muon_mass,asu:m_μ,asou:m_µ,aos:m_mu nounit(muon_u)*atomic_mass_constant <_title>Triton Mass rs:triton_mass nounit(triton_u)*atomic_mass_constant <_title>Alpha Particle Mass rs:alpha_particle_mass,asu:m_α,aos:m_alpha nounit(alpha_particle_u)*atomic_mass_constant <_title>Atomic and Nuclear Constants <_title>Bohr Radius r:bohr_radius,as:a_0 planck2pi/(fine_structure*electron_mass*c) <_title>Classical Electron Radius r:classical_electron_radius,as:r_e elementary_charge^2/(4*pi*electric_constant*electron_mass*c^2) <_title>Fermi Coupling Constant r:fermi_coupling 1.1663787E-5 <_title>Fine-Structure Constant r:fine_structure,au:α,ao:alpha 7.2973525643E-3 <_title>Hartree Energy (constant) rs:hartree_constant,as:Ha_constant 2*rydberg*planck*c <_title>Quantum of Circulation r:quantum_circulation planck/(2*electron_mass) <_title>Quantum of Circulation times 2 r:quantum_circulation_2 quantum_circulation*2 <_title>Rydberg Constant r:rydberg,asu:R_∞ 10973731.568157 <_title>Thomson cross section r:thomson_cross_section,asu:σ_t,aos:sigma_t (8*pi/3)*classical_electron_radius^2 <_title>Weak Mixing Angle (sin²θw) weak_mixing_angle,asu:sin2θ_W,r:weinberg,aos:sin2_theta_W 1-w_z_ratio^2 <_title>W to Z Mass Ratio r:w_z_ratio 0.88145 <_title>Physico-Chemical Constants <_title>Lattice Spacing of Ideal Silicon (220) rs:lattice_spacing_Si220,as:d_220 lattice_parameter_Si/sqrt(8) <_title>Atomic Mass Constant r:atomic_mass_constant,as:m_u (2*rydberg*planck)/(c*fine_structure^2*nounit(electron_u)) <_title>Avogadro Constant r:avogadro,as:N_A 6.02214076E23 <_title>Boltzmann Constant r:boltzmann,as:k_B 1.380649E-23 <_title>Molar Mass Constant r:molar_mass,as:M_u (2*planck*rydberg*avogadro)/(c*fine_structure^2*nounit(electron_u)) <_title>Compton Wavelength r:compton_wavelength,asu:λ_C,aos:lambda_C planck/(electron_mass*c) <_title>Reduced Compton Wavelength r:compton_wavelength_2pi compton_wavelength/(2*pi) <_title>Electronvolt (constant) rs:electronvolt_constant,as:eV_constant elementary_charge/C*J <_title>Faraday Constant r:faraday,au:ℱ avogadro*elementary_charge <_title>First Radiation Constant r:first_radiation,as:c_1 2*pi*planck*c^2 <_title>First Radiation Constant for Spectral Radiance rs:first_radiation_sr,as:c_1L first_radiation/pi <_title>Gas Constant r:gas_constant,ideal_gas boltzmann*avogadro <_title>Lattice Parameter of Silicon rs:lattice_parameter_Si 543.1020511E-12 <_title>Loschmidt Constant (273.15 K, 100 kPa) loschmidt_100 (100000*Pa)/(boltzmann*273.15*K) <_title>Loschmidt Constant (273.15 K, 101.325 kPa) rs:loschmidt,as:n_0 (101325*Pa)/(boltzmann*273.15*K) <_title>Molar Planck Constant r:molar_planck avogadro*planck <_title>Molar Volume of Ideal Gas (273.15 K, 100 kPa) r:ideal_gas_molar,as:V_m (gas_constant*273.15*K)/(100000*Pa) <_title>Molar Volume of Ideal Gas (273.15 K, 101.325 kPa) rs:ideal_gas_molar_101,as:V_m101 (gas_constant*273.15*K)/(101325*Pa) <_title>Sackur-Tetrode constant (1 K, 100 kPa) r:sackur_tetrode -1.15170753496 <_title>Sackur-Tetrode constant (1 K, 101.325 kPa) rs:sackur_tetrode_101 -1.16487052149 <_title>Second Radiation Constant r:second_radiation,as:c_2 planck*c/boltzmann <_title>Stefan-Boltzmann Constant r:stefan,au:σ,ao:sigma (2pi^5*boltzmann^4)/(15*planck^3*c^2) <_title>Wien frequency displacement law constant r:wien_frequency (k_B/planck)×(lambertw(−3/e^3)+3) <_title>Wien wavelength displacement law constant r:wien_displacement,ais:b_energy (planck×c/k_B)/(lambertw(−5/e^5)+5) <_title>Conversion factors for energy equivalents <_title>Hertz - Inverse Meter Relationship r:Hz_to_m 1/c <_title>Hertz - Joule Relationship r:Hz_to_J planck <_title>Hertz - Kelvin Relationship r:Hz_to_K planck/boltzmann <_title>Hertz - Kilogram Relationship r:Hz_to_kg planck/c^2 <_title>Inverse Meter - Hertz Relationship r:m_to_Hz c <_title>Inverse Meter - Joule Relationship r:m_to_J planck*c <_title>Inverse Meter - Kelvin Relationship r:m_to_K planck*c/boltzmann <_title>Inverse Meter - Kilogram Relationship r:m_to_kg planck/c <_title>Joule - Hertz Relationship r:J_to_Hz 1/planck <_title>Joule - Inverse Meter Relationship r:J_to_m 1/(planck*c) <_title>Joule - Kelvin Relationship r:J_to_K 1/boltzmann <_title>Joule - Kilogram Relationship r:J_to_kg 1/c^2 <_title>Kelvin - Hertz Relationship r:K_to_Hz boltzmann/planck <_title>Kelvin - Inverse Meter Relationship r:K_to_m boltzmann/(planck*c) <_title>Kelvin - Joule Relationship r:K_to_J boltzmann <_title>Kelvin - Kilogram Relationship r:K_to_kg boltzmann/c^2 <_title>Kilogram - Hertz Relationship r:kg_to_Hz c^2/planck <_title>Kilogram - Inverse Meter Relationship r:kg_to_m c/planck <_title>Kilogram - Joule Relationship r:kg_to_J c^2 <_title>Kilogram - Kelvin Relationship r:kg_to_K c^2/boltzmann <_title>Basic Constants <_title>Golden Ratio r:golden,au:φ,aos:phi (1+sqrt(5))/2 <_title>Omega Constant r:omega lambertw(1) <_title>Pythagoras' Constant (sqrt 2) r:pythagoras sqrt(2) <_title>Apery's Constant r:apery zeta(3) <_title>Tau (2pi) au:τ,r:tau 2*pi <_title>Plastic Number r:plastic,au:ρ,aos:rho cbrt((9+sqrt(69))/18)+cbrt((9-sqrt(69))/18) <_title>Base of Natural Logarithms (e) r:e <_title>Archimedes' Constant (pi) au:π,r:pi <_title>Euler's Constant au:γ,r:euler <_title>Catalan's Constant r:catalan <_title>Special Numbers <_title>Imaginary i (sqrt -1) r:i <_title>Positive Infinity <_names>a:∞,r:plus_infinity,r:infinity <_title>Negative Infinity <_names>r:minus_infinity <_title>Undefined <_names>r:undefined <_title>False <_names>r:false,r:no 0 <_title>True <_names>r:true,r:yes 1 <_title>Matrices & Vectors <_title>Pauli Matrix 0 <_names>rs:pauli_0,aus:σ_0 [1 0; 0 1] <_title>Pauli Matrix 1 <_names>rs:pauli_1,aus:σ_1 [0 1; 1 0] <_title>Pauli Matrix 2 <_names>rs:pauli_2,aus:σ_2 [0 -i; i 0] <_title>Pauli Matrix 3 <_names>rs:pauli_3,aus:σ_3 [1 0; 0 -1] <_title>Utilities <_title>Precision <_names>r:precision <_title>System Uptime <_names>r:uptime <_title>Unknowns r:x r:y r:z <_title>n (integer) r:n <_title>Date & Time <_title>Today <_names>r:today <_title>Tomorrow <_names>r:tomorrow <_title>Yesterday <_names>r:yesterday <_title>Now (date and time) <_names>r:now libqalculate-5.5.2/docs/000077500000000000000000000000001476076707200151355ustar00rootroot00000000000000libqalculate-5.5.2/docs/Makefile.am000066400000000000000000000000721476076707200171700ustar00rootroot00000000000000# # docs/Makefile.am for qalculate # SUBDIRS = reference libqalculate-5.5.2/docs/reference/000077500000000000000000000000001476076707200170735ustar00rootroot00000000000000libqalculate-5.5.2/docs/reference/Doxyfile000066400000000000000000003562331476076707200206150ustar00rootroot00000000000000# Doxyfile 1.9.7 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). # # Note: # # Use doxygen to compare the used configuration file with the template # configuration file: # doxygen -x [configFile] # Use doxygen to compare the used configuration file with the template # configuration file without replacing the environment variables or CMake type # replacement variables: # doxygen -x_noenv [configFile] #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the configuration # file that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # https://www.gnu.org/software/libiconv/ for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = libqalculate-5.5.1 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096 # sub-directories (in 2 levels) under the output directory of each output format # and will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to # control the number of sub-directories. # The default value is: NO. CREATE_SUBDIRS = NO # Controls the number of sub-directories that will be created when # CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every # level increment doubles the number of directories, resulting in 4096 # directories at level 8 which is the default and also the maximum value. The # sub-directories are organized in 2 levels, the first level always has a fixed # number of 16 directories. # Minimum value: 0, maximum value: 8, default value: 8. # This tag requires that the tag CREATE_SUBDIRS is set to YES. CREATE_SUBDIRS_LEVEL = 8 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, # Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English # (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek, # Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with # English messages), Korean, Korean-en (Korean with English messages), Latvian, # Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, # Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, # Swedish, Turkish, Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found # as the leading text of the brief description, will be stripped from the text # and the result, after processing the whole list, is used as the annotated # text. Otherwise, the brief description is used as-is. If left blank, the # following values are used ($name is automatically replaced with the name of # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = YES # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which # header file to include in order to use a class. If left blank only the name of # the header file containing the class definition is used. Otherwise one should # specify the list of include paths that are normally passed to the compiler # using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = NO # If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line # such as # /*************** # as being the beginning of a Javadoc-style comment "banner". If set to NO, the # Javadoc-style will behave just like regular comments and it will not be # interpreted by doxygen. # The default value is: NO. JAVADOC_BANNER = NO # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # By default Python docstrings are displayed as preformatted text and doxygen's # special commands cannot be used. By setting PYTHON_DOCSTRING to NO the # doxygen's special commands can be used and the contents of the docstring # documentation blocks is shown as doxygen documentation. # The default value is: YES. PYTHON_DOCSTRING = YES # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: # name=value # For example adding # "sideeffect=@par Side Effects:^^" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". Note that you cannot put \n's in the value part of an alias # to insert newlines (in the resulting output). You can put ^^ in the value part # of an alias to insert a newline as if a physical newline was in the original # file. When you need a literal { or } or , in the value part of an alias you # have to escape them by means of a backslash (\), this can lead to conflicts # with the commands \{ and \} for these it is advised to use the version @{ and # @} or use a double escape (\\{ and \\}) ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all # members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice # sources only. Doxygen will then generate output that is more tailored for that # language. For instance, namespaces will be presented as modules, types will be # separated into more groups, etc. # The default value is: NO. OPTIMIZE_OUTPUT_SLICE = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, JavaScript, # Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, # VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # tries to guess whether the code is fixed or free formatted code, this is the # default for Fortran type files). For instance to make doxygen treat .inc files # as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. When specifying no_extension you should add # * to the FILE_PATTERNS. # # Note see also the list of default file extension mappings. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See https://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up # to that level are automatically included in the table of contents, even if # they do not have an id attribute. # Note: This feature currently applies only to Markdown headings. # Minimum value: 0, maximum value: 99, default value: 5. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. TOC_INCLUDE_HEADINGS = 5 # The MARKDOWN_ID_STYLE tag can be used to specify the algorithm used to # generate identifiers for the Markdown headings. Note: Every identifier is # unique. # Possible values are: DOXYGEN Use a fixed 'autotoc_md' string followed by a # sequence number starting at 0. and GITHUB Use the lower case version of title # with any whitespace replaced by '-' and punctations characters removed.. # The default value is: DOXYGEN. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. MARKDOWN_ID_STYLE = DOXYGEN # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make # doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # If one adds a struct or class to a group and this option is enabled, then also # any nested class or struct is added to the same group. By default this option # is disabled and one has to add nested compounds explicitly via \ingroup. # The default value is: NO. GROUP_NESTED_COMPOUNDS = NO # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent # subgrouping. Alternatively, this can be done per class using the # \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically be # useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 # The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use # during processing. When set to 0 doxygen will based this on the number of # cores available in the system. You can set it explicitly to a value larger # than 0 to get more control over the balance between CPU load and processing # speed. At this moment only the input processing can be done using multiple # threads. Since this is still an experimental feature the default is set to 1, # which effectively disables parallel processing. Please report any issues you # encounter. Generating dot graphs in parallel is controlled by the # DOT_NUM_THREADS setting. # Minimum value: 0, maximum value: 32, default value: 1. NUM_PROC_THREADS = 1 # If the TIMESTAMP tag is set different from NO then each generated page will # contain the date or date and time when the page was generated. Setting this to # NO can help when comparing the output of multiple runs. # Possible values are: YES, NO, DATETIME and DATE. # The default value is: NO. TIMESTAMP = NO #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO # If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual # methods of a class will be included in the documentation. # The default value is: NO. EXTRACT_PRIV_VIRTUAL = NO # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined # locally in source files will be included in the documentation. If set to NO, # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. If set to YES, local methods, # which are defined in the implementation section but not in the interface are # included in the documentation. If set to NO, only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of # the file that contains the anonymous namespace. By default anonymous namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If this flag is set to YES, the name of an unnamed parameter in a declaration # will be determined by the corresponding definition. By default unnamed # parameters remain unnamed in the output. # The default value is: YES. RESOLVE_UNNAMED_PARAMS = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option # will also hide undocumented C++ concepts if enabled. This option has no effect # if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # declarations. If set to NO, these declarations will be included in the # documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = NO # With the correct setting of option CASE_SENSE_NAMES doxygen will better be # able to match the capabilities of the underlying filesystem. In case the # filesystem is case sensitive (i.e. it supports files in the same directory # whose names only differ in casing), the option must be set to YES to properly # deal with such files in case they appear in the input. For filesystems that # are not case sensitive the option should be set to NO to properly deal with # output files written for symbols that only differ in casing, such as for two # classes, one named CLASS and the other named Class, and to also support # references to files without having to specify the exact matching casing. On # Windows (including Cygwin) and MacOS, users should typically set this option # to NO, whereas on Linux or other Unix flavors it should typically be set to # YES. # Possible values are: SYSTEM, NO and YES. # The default value is: SYSTEM. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. HIDE_COMPOUND_REFERENCE= NO # If the SHOW_HEADERFILE tag is set to YES then the documentation for a class # will show which file needs to be included to use the class. # The default value is: YES. SHOW_HEADERFILE = YES # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by # fully-qualified names, including namespaces. If set to NO, the class list will # be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the alphabetical # list. # The default value is: NO. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo # list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test # list. This list is created by putting \test commands in the documentation. # The default value is: YES. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the # documentation. If the initializer consists of more lines than specified here # it will be hidden. Use a value of 0 to hide initializers completely. The # appearance of the value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at # the bottom of the documentation of classes and structs. If set to YES, the # list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This # will remove the Files entry from the Quick Index and from the Folder Tree View # (if specified). # The default value is: YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the # Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. See also section "Changing the # layout of pages" for information. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = NO # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = NO # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as documenting some parameters in # a documented function twice, or documenting parameters that don't exist or # using markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = NO # If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete # function parameter documentation. If set to NO, doxygen will accept that some # parameters have no documentation without warning. # The default value is: YES. WARN_IF_INCOMPLETE_DOC = NO # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO, doxygen will only warn about wrong parameter # documentation, but not about the absence of documentation. If EXTRACT_ALL is # set to YES then this flag will automatically be disabled. See also # WARN_IF_INCOMPLETE_DOC # The default value is: NO. WARN_NO_PARAMDOC = NO # If WARN_IF_UNDOC_ENUM_VAL option is set to YES, doxygen will warn about # undocumented enumeration values. If set to NO, doxygen will accept # undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: NO. WARN_IF_UNDOC_ENUM_VAL = NO # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when # a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS # then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but # at the end of the doxygen process doxygen will return with a non-zero status. # If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then doxygen behaves # like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined doxygen will not # write the warning messages in between other messages but write them at the end # of a run, in case a WARN_LOGFILE is defined the warning messages will be # besides being in the defined file also be shown at the end of a run, unless # the WARN_LOGFILE is defined as - i.e. standard output (stdout) in that case # the behavior will remain as with the setting FAIL_ON_WARNINGS. # Possible values are: NO, YES, FAIL_ON_WARNINGS and FAIL_ON_WARNINGS_PRINT. # The default value is: NO. WARN_AS_ERROR = NO # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) # See also: WARN_LINE_FORMAT # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" # In the $text part of the WARN_FORMAT command it is possible that a reference # to a more specific place is given. To make it easier to jump to this place # (outside of doxygen) the user can define a custom "cut" / "paste" string. # Example: # WARN_LINE_FORMAT = "'vi $file +$line'" # See also: WARN_FORMAT # The default value is: at line $line of file $file. WARN_LINE_FORMAT = "at line $line of file $file" # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard # error (stderr). In case the file specified cannot be opened for writing the # warning and error messages are written to standard error. When as file - is # specified the warning and error messages are written to standard output # (stdout). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. INPUT = $(top_srcdir)/libqalculate # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: # https://www.gnu.org/software/libiconv/) for the list of possible encodings. # See also: INPUT_FILE_ENCODING # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # This tag can be used to specify the character encoding of the source files # that doxygen parses The INPUT_FILE_ENCODING tag can be used to specify # character encoding on a per file pattern basis. Doxygen will compare the file # name with each pattern and apply the encoding instead of the default # INPUT_ENCODING) if there is a match. The character encodings are a list of the # form: pattern=encoding (like *.php=ISO-8859-1). See cfg_input_encoding # "INPUT_ENCODING" for further information on supported encodings. INPUT_FILE_ENCODING = # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # read by doxygen. # # Note the list of default checked file patterns might differ from the list of # default file extension mappings. # # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, # *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, # *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C # comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, # *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.h # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = $(top_srcdir)/libqalculate/BuiltinFunctions.h \ $(top_srcdir)/libqalculate/Calculator_p.h \ $(top_srcdir)/libqalculate/MathStructure-support.h # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # ANamespace::AClass, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands # irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be included in the documentation (see the # \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # # # # where is the value of the INPUT_FILTER tag, and is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # # Note that doxygen will use the data processed and written to standard output # for further processing, therefore nothing else, like debug statements or used # commands (so in case of a Windows batch file always use @echo OFF), should be # written to standard output. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: pattern=filter # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and # it is also possible to disable source filtering for a specific pattern using # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = # The Fortran standard specifies that for fixed formatted Fortran code all # characters from position 72 are to be considered as comment. A common # extension is to allow longer lines before the automatic comment starts. The # setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can # be processed before the automatic comment starts. # Minimum value: 7, maximum value: 10000, default value: 72. FORTRAN_COMMENT_AFTER = 72 #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. # # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = NO # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # entity all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES then for each documented function # all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set # to YES then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all # compounds will be generated. Enable this if the project contains a lot of # classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = YES # The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes) # that should be ignored while generating the index headers. The IGNORE_PREFIX # tag works for classes, function and member names. The entity will be placed in # the alphabetical list under the first letter of the entity name that remains # after removing the prefix. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of # the HTML output. If left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the # list). # Note: Since the styling of scrollbars can currently not be overruled in # Webkit/Chromium, the styling will be left out of the default doxygen.css if # one or more extra stylesheets have been specified. So if scrollbar # customization is desired it has to be added explicitly. For an example see the # documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that the # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = # The HTML_COLORSTYLE tag can be used to specify if the generated HTML output # should be rendered with a dark or light theme. # Possible values are: LIGHT always generate light mode output, DARK always # generate dark mode output, AUTO_LIGHT automatically set the mode according to # the user preference, use light mode if no preference is set (the default), # AUTO_DARK automatically set the mode according to the user preference, use # dark mode if no preference is set and TOGGLE allow to user to switch between # light and dark mode via a button. # The default value is: AUTO_LIGHT. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE = AUTO_LIGHT # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a color-wheel, see # https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use gray-scales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 # gradually make the output lighter, whereas values above 100 make the output # darker. The value divided by 100 is the actual gamma applied, so 80 represents # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not # change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # documentation will contain a main index with vertical navigation menus that # are dynamically created via JavaScript. If disabled, the navigation index will # consists of multiple levels of tabs that are statically embedded in every HTML # page. Disable this option to support browsers that do not have JavaScript, # like the Qt help browser. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_MENUS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: # https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To # create a documentation set, doxygen will generate a Makefile in the HTML # output directory. Running make will produce the docset in that directory and # running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy # genXcode/_index.html for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # This tag determines the URL of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDURL = # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # on Windows. In the beginning of 2021 Microsoft took the original page, with # a.o. the download links, offline the HTML help workshop was already many years # in maintenance mode). You can download the HTML help workshop from the web # archives at Installation executable (see: # http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo # ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # The CHM_FILE tag can be used to specify the file name of the resulting .chm # file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated # (YES) or that it should be included in the main .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # The SITEMAP_URL tag is used to specify the full URL of the place where the # generated documentation will be placed on the server by the user during the # deployment of the documentation. The generated sitemap is called sitemap.xml # and placed on the directory specified by HTML_OUTPUT. In case no SITEMAP_URL # is specified no sitemap is generated. For information about the sitemap # protocol see https://www.sitemaps.org # This tag requires that the tag GENERATE_HTML is set to YES. SITEMAP_URL = # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help # (.qch) of the generated HTML documentation. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify # the file name of the resulting .qch file. The path specified is relative to # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location (absolute path # including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to # run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To # install this plugin and make it available under the help contents menu in # Eclipse, the contents of the directory containing the HTML and XML files needs # to be copied into the plugins directory of eclipse. The name of the directory # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. # After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO # A unique identifier for the Eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have this # name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag # value is set to YES, a side panel will be generated containing a tree-like # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine tune the look of the index (see "Fine-tuning the output"). As an # example, the default style sheet generated by doxygen has an example that # shows how to put an image at the root of the tree instead of the PROJECT_NAME. # Since the tree basically has the same information as the tab index, you could # consider setting DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO # When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the # FULL_SIDEBAR option determines if the side bar is limited to only the treeview # area (value NO) or if it should extend to the full height of the window (value # YES). Setting this to YES gives a layout similar to # https://docs.readthedocs.io with more room for contents, but less room for the # project logo, title, and description. If either GENERATE_TREEVIEW or # DISABLE_INDEX is set to NO, this option has no effect. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. FULL_SIDEBAR = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email # addresses. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. OBFUSCATE_EMAILS = YES # If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see # https://inkscape.org) to generate formulas as SVG images instead of PNGs for # the HTML output. These images will generally look nicer at scaled resolutions. # Possible values are: png (the default) and svg (looks nicer but requires the # pdf2svg or inkscape tool). # The default value is: png. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FORMULA_FORMAT = png # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands # to create new LaTeX commands to be used in formulas as building blocks. See # the section "Including formulas" for details. FORMULA_MACROFILE = # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # https://www.mathjax.org) which uses client side JavaScript for the rendering # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO # With MATHJAX_VERSION it is possible to specify the MathJax version to be used. # Note that the different versions of MathJax have different requirements with # regards to the different settings, so it is possible that also other MathJax # settings have to be changed when switching between the different MathJax # versions. # Possible values are: MathJax_2 and MathJax_3. # The default value is: MathJax_2. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_VERSION = MathJax_2 # When MathJax is enabled you can set the default output format to be used for # the MathJax output. For more details about the output format see MathJax # version 2 (see: # http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 # (see: # http://docs.mathjax.org/en/latest/web/components/output.html). # Possible values are: HTML-CSS (which is slower, but has the best # compatibility. This is the name for Mathjax version 2, for MathJax version 3 # this will be translated into chtml), NativeMML (i.e. MathML. Only supported # for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This # is the name for Mathjax version 3, for MathJax version 2 this will be # translated into HTML-CSS) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from https://www.mathjax.org before deployment. The default value is: # - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 # - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/ # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # for MathJax version 2 (see # https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # For example for MathJax version 3 (see # http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): # MATHJAX_EXTENSIONS = ams # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: # http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. # For large projects the javascript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /