Command-line calculator
Find a file
2023-06-10 15:24:37 +01:00
.github/workflows no CD/CI 2023-06-10 08:41:05 -04:00
app reorg for fpm(1) 2023-06-09 19:14:39 -04:00
docs/images prototype 2023-06-09 19:29:13 -04:00
src Improve tests for associative map 2023-06-10 11:48:50 +01:00
test Improve tests for associative map 2023-06-10 11:48:50 +01:00
.gitignore ignore gh-page ford documents 2023-06-09 19:28:09 -04:00
ford.md no CD/CI 2023-06-10 08:41:05 -04:00
fpm.toml reorg for fpm(1) 2023-06-09 19:14:39 -04:00
GNUmakefile Fixed makefile so that project is buildable without fpm 2023-06-10 15:19:15 +01:00
README.md fpm, CD/CI, ford setup 2023-06-09 19:25:34 -04:00

hp

Command-line calculator

This is an rpn calclulator with a maximum stack size of 5. It has full support for real and complex numbers and will calculate summary statistics for a set of reals of real pairs. Spaces are important since they are used to distinguish tokens.

Building

The source code is written in Fortran. The only compilers I've found that will build it are ifort and ifx from Intel's OneApi suite. Makefiles are provides for GNU make (Linux) and nmake (Windows).

hp -h

Command Calculator
==================

Introduction
------------

This is a command-line calculator. It supports both real and complex modes, as well
as degrees/radians selection and precision control. It can be run interactively or as an
expression parser. This help is deliberately terse to encourage exploration.

-------------------------------------------------------------------------------
Operators: + - * / ^ ^/x ^x ^2 ^/2 ^3 ^/3 ^*2 ^*10 || ! %
Constants: pi e g G c two_pi pi_over_2
Functions: sin cos tan asin acos atan sinh cosh tanh log2 log lg len sq sqrt cb cbrt
           alog2 alog alog10 gamma ncr npr rem int nint
 Controls: fix[0-9] clx cl cla 
    Modes: real complex verbose terse degrees radians
 Memories: n=0...9  st<n> sw<n> rc<n> cl<n> m<n>+ m<n>- m<n>* m<n>/ msh
  Complex: ri _ || to_pol to_cart
  Actions: 1/ -- R r ? > < split drop
    Stats: { x1 x2 ... } { x1,y1 x2,y2 ... }
           n ux sx mx lqx uqx uy sy my lqy uqy a b cov corr
    Quits: q

-------------------------------------------------------------------------------

Examples
--------
    hp "fix2 18 2 - 8 2 / * ="                    -> 64.00
    hp "2 -- complex sqrt ="                      -> (0.00000,-1.414214)
    hp -c "radians (1,pi_over_2)p ^ * degrees ="  -> (1.000000,180.000000) p

Build and Test with FPM

To build with fpm(1) ( as described at Fortran Package Manager ) enter:

     git clone https://github.com/sgeard/hp.git
     cd hp
     fpm test
     fpm run 

or just list it as a dependency in your fpm.toml project file.

        [dependencies]
        hp        = { git = "https://github.com/sgeard/hp.git" }