FYI:
Hello,
because It's very hard to post binary files as an mail-attachment, at first a
very big thank you to Sammy for helping me out and let me put my FppPack stuff
on his site for download.
Now, what is FppPack - Fpp stands for (F)loating (P)oint (P)arser.
It's a set of macros and exe files to do math and bit manipulating operations.
It contains a lot of functions, to name a few Log() Sin() Tan() Shr() Rotr()
And() Xor() and a lot more.
The way it works is very simple. All the Fpp* macros act as a shell that do the
pre-processing by setting up text files that are passed down to the exe for
evaluation, than do the post-processing of the returned text files and do the
presentation of the result.
FppShell macro an expression calculator
FppSum macro is made for simple sum-building
FppSumLine macro is similar to FppSum, but also gives the sum of each line
A word of warning, FppSum and FppSumLine let you select the number input/output
format. Selecting the wrong format will at best result in an error or at
worst in calculating a wrong sum, like shown below!
None US is correctly used here. US-Standard is wrongly used here.
Item ea. EURO Item ea. EURO
┌─────────────────────────────────┐═════╗ ┌─────────────────────────────────┐═════╗
│Salad = 0,99 : Salad * 2 │ 1,98║ │Salad = 0,99 : Salad * 2 │ 198║
│Bread = 0,39 : Bread * 9 │ 3,51║ │Bread = 0,39 : Bread * 9 │ 351║
│Cheese = 0,59 : Cheese * 6 │ 3,54║ │Cheese = 0,59 : Cheese * 6 │ 354║
│Chocolate = 2,79 : Chocolate * 3 │ 8,37║ │Chocolate = 2,79 : Chocolate * 3 │ 837║
│Peanuts = 2,29 : Peanuts * 2 │ 4,58║ │Peanuts = 2,29 : Peanuts * 2 │ 458║
└─────────────────────────────────┘21,98║ └─────────────────────────────────┘2,198║
╚═════╝ ╚═════╝
A few very short examples where FppSum and FppSumLine differ.
This is what FppSum does: This is what FppSumLine does:
┌────────────────────────────────┐ ┌────────────────────────────────┐═════════╗
│a=1.25:b=5: a * 1,167.2 + 47.112│ │a=1.25:b=5: a * 1,167.2 + 47.112│1,506.112║
│1,120.20 + b │ │1,120.20 + b │1,125.200║
│30.30 / b │ │30.30 / b │ 6.060║
│$ff - 10 / 4 │ │$ff - 10 / 4 │ 252.500║
│ d=47 │ │ d=47 │ ║
│3.1415e2 │ │3.1415e2 │ 314.150║
│40.40 │ │40.40 │ 40.400║
│ i=23 │ │ i=23 │ ║
│- 50.50 │ │- 50.50 │ -50.500║
│ pro(100|19) │ │ pro(100|19) │ 19.000║
│2 * 17.5 : 3 * 20 │ │2 * 17.5 : 3 * 20 │ 95.000║
└────────────────────────────────┘ └────────────────────────────────┘3,307.922║
3,307.922 ╚═════════╝
This can only be done by FppSumLine
┌─────────────────────────────────────┐══════════════════════════════════╗
│step = 10 │ ║
│x = 0: SinDeg(x) // 0 y =│ 0 ║
│x = x + step: SinDeg(x) // 10 y =│ 0.1736481776669303488517166267693║
│x = x + step: SinDeg(x) // 20 y =│ 0.3420201433256687330440996146823║
│x = x + step: SinDeg(x) // 30 y =│ 0.50 ║
│x = x + step: SinDeg(x) // 40 y =│ 0.6427876096865393263226434099073║
│x = x + step: SinDeg(x) // 50 y =│ 0.7660444431189780352023926505554║
│x = x + step: SinDeg(x) // 60 y =│ 0.8660254037844386467637231707529║
│x = x + step: SinDeg(x) // 70 y =│ 0.9396926207859083840541092773247║
│x = x + step: SinDeg(x) // 80 y =│ 0.9848077530122080593667430245895║
│x = x + step: SinDeg(x) // 90 y =│ 1 ║
│x = x + step: SinDeg(x) // 100 y =│ 0.9848077530122080593667430245895║
│x = x + step: SinDeg(x) // 110 y =│ 0.9396926207859083840541092773247║
│x = x + step: SinDeg(x) // 120 y =│ 0.8660254037844386467637231707529║
│x = x + step: SinDeg(x) // 130 y =│ 0.7660444431189780352023926505554║
│x = x + step: SinDeg(x) // 140 y =│ 0.6427876096865393263226434099073║
│x = x + step: SinDeg(x) // 150 y =│ 0.50 ║
│x = x + step: SinDeg(x) // 160 y =│ 0.3420201433256687330440996146823║
│x = x + step: SinDeg(x) // 170 y =│ 0.1736481776669303488517166267693║
│x = x + step: SinDeg(x) // 180 y =│ 0 ║
│x = x + step: SinDeg(x) // 190 y =│-0.1736481776669303488517166267693║
│x = x + step: SinDeg(x) // 200 y =│-0.3420201433256687330440996146823║
│x = x + step: SinDeg(x) // 210 y =│-0.50 ║
│x = x + step: SinDeg(x) // 220 y =│-0.6427876096865393263226434099073║
│x = x + step: SinDeg(x) // 230 y =│-0.7660444431189780352023926505554║
│x = x + step: SinDeg(x) // 240 y =│-0.8660254037844386467637231707529║
│x = x + step: SinDeg(x) // 250 y =│-0.9396926207859083840541092773247║
│x = x + step: SinDeg(x) // 260 y =│-0.9848077530122080593667430245895║
│x = x + step: SinDeg(x) // 270 y =│-1 ║
│x = x + step: SinDeg(x) // 280 y =│-0.9848077530122080593667430245895║
│x = x + step: SinDeg(x) // 290 y =│-0.9396926207859083840541092773247║
│x = x + step: SinDeg(x) // 300 y =│-0.8660254037844386467637231707529║
│x = x + step: SinDeg(x) // 310 y =│-0.7660444431189780352023926505554║
│x = x + step: SinDeg(x) // 320 y =│-0.6427876096865393263226434099073║
│x = x + step: SinDeg(x) // 330 y =│-0.50 ║
│x = x + step: SinDeg(x) // 340 y =│-0.3420201433256687330440996146823║
│x = x + step: SinDeg(x) // 350 y =│-0.1736481776669303488517166267693║
│x = x + step: SinDeg(x) // 360 y =│ 0 ║
└─────────────────────────────────────┘══════════════════════════════════╝
Link to download from SemWare site:
https://semware.com/files/tse-pro/FppPack_1_00.zip
Checksum FppPack_1_00.zip (1143762 Bytes)
MD5: 5c7c93155576361b47518971c030991f
SHA1: 1af49815548b6dd2f35a3e4e611db64176588d82
SHA256: ab3efbb53a58052a38acd4bfe48f842e4a72433d6d5d0fc020e8029bd8c59604
--
Best regards
Eckhard mailto:
or...@ewetel.net