Entering expressions and Calculus grammar
Basic Functions – built in from Mathlib.h
Additional trigonometric functions
Matrix inversion and determinant
Drawing graph from command line
Sony and Handera hq display support
Calculus END-USER LICENSE AGREEMENT
1. Introduction into Calculus
Calculus is small, easy to use calculation program. It has advanced expression parser with built in mathematical functions. It has capabilities such us: working history list (limited by database size), defining variables and custom functions, built in constants, matrix calculations (basic ones for now), drawing simple graphs, easy to use function menus, units conversion, number conversion. It has two modes of working, as expression parser and advanced calculator (HP 48G like). Number of defined variables and custom functions is limited by database size. Calculus supports Handera and Sony HQ display resolutions.
Purpose of this document is to describe basic calculus functionality and its usage. This document is organized into several chapters. In each chapter specific functionality is described through examples.
Following picture represents main calculus working form with its working areas.
Enter and control field is entry field where you enter all calculating commands, variable and function definitions.
Result and history window is window where all results and actions are displayed. This window is not limited to it actual size, it can be scrolled with Scroll bars just like normal scroll window.
Calculus functions drop down menu is used for quick browsing through its functions. It is divided in ten function groups (not all groups are filled for now). Groups can be browsed with arrows (in upper part of menu – left and right). Each group is divided in sub groups – depending of function type. TODO 1. For each sub group there is choice menu with its components. Each component represents string, which will be inserted into main enter field (depending of choice type calculus will add bracket).
Numeric and control pad is used for easy control of edit field. It consists of number, operator and quick controls for edit entry.
The best way to use calculus is as an expression parser. Each command line entered in entry field is processed with parser (similar like Mathematica or MathLab softwares), and result is displayed in result window. All values in entry field can be entered with calculus numpad, graffiti window or other controls (field supports paste function).
The easiest way to explain calculus grammar is through set of examples.
In entry field enter simple expression (finish entering with pressing ent button or dragging stylus pen as new line).
2+4 <ent>
Calculus will display result:
[6.00000e00
Result is displayed in history window. (note: your command is not added because by default this option is set as false – look calculus preferences for further description). You can latter access this result by touching (with pen) this result in history window, and text will be inserted in edit field.
Try to enter more complex expressions:
sin(1.1) * cos(2-5+3)
<ent> Result is: [8.557e-01]
pow(2, 1+ 4-sin(1)) <ent> Result is: [1.7858e01
Functions sin and pow can be quickly entered with use of quick function menu on right side of screen. You can enter any kind of expression. If you enter wrong expression calculus will inform you of error. (note: calculus is currently limited for expression complexity read todo 2 for further info.
Each parameter in function with multiple parameters is separated with comma (note number format is computer like, decimal point is used and comma is used for function parameter separation). Also check rules for matrix writing, how columns and rows are separated.
Calculus supports definition of variables and their usage in calculations. Variables can be ordinary real values, matrix values, custom functions or graph. All variables are stored in database symtable1, so number of variables is limited with database size.
Following example show variable definition and usage in calculations.
Define two variables, named a and b and assign them to values.
a=10 <ent> b=20 <ent>
Now two variables a and b are defined with their values. You can check their values typing:
a <ent> [1.0000e01 or b <ent> [2.0000e01
Now add those two variables:
a+b <ent> [3.0000e01
Variable can be used in any expression as normal number. For example:
sin(a+b) <ent> [-9.880e-01 or pow(2,b/a) <ent> [4.000e00 or c=b+sin(a) <ent> c <ent> [1.9455e01
In general view each variable in calculus is matrix. Normal real number is defined as matrix with size 1 row and 1 column. Every function can have matrix as parameter. Calculus supports adding, inverting (dividing), multiplying matrixes.
For example, define variable m as matrix of 2x3:
m=[2.11 3.22;4.11 5.44; 1 0] <ent>
Now, enter again name of the variable to see how this variable looks like.
m <ent> [ 2.1100e00 3.2200e00 | 4.1100e00 5.4400e00 [ 1.0000e00 0.0000e00
In matrix definition mxn, m means number of columns and n means number of rows. Each element is separated with space from another, and each row is separated with semi colon from next one. If you define matrix in size that whole matrix cannot be displayed you can scroll view to see parts of matrix that are not display initially todo 3.
While defining matrix if you enter different number of elements in different rows, calculus will automatically insert zero s on elements not defined.
For example
m2=[1 1 1;1;0 1 ] <ent> m <ent> [1.0000e00 1.0000e00 1.0000e00 |1.0000e00 0.0000e00 0.0000e00 [0.0000e00 1.0000e00 0.0000e00
Here are some examples of matrix multiplication, division (inversion):
a=[1 ; 2] <ent> b=[1 2] <ent> a*b <ent> [1.0000e00 a1=[1 2;3 4] <ent> a1*inv(a1) <ent> [ 1.000e00 0.000e00 [ 0.000e00 1.000e00 or a1/a1 <ent> [1.000e00 1.000e00 [0.000e00 1.000e00
Note: careful about matrix dimensions rules for multiplying matrixes and its inversion. Also check how each function deals with matrix parameters.
Important
For matrix that have format 1x1 these two lines have same meaning:
a= [1] <ent> and a=1
Calculus will automatically put variable a as matrix 1x1 size. This rule is applied on all function parameters and variables.
For basic mathematic functionality mathlib (see mathlib homepage http://www.radiks.net/~rhuebner/mathlib.html for more info)
Calculus has around 70 built in functions (todo 4). Functions can be divided in several groups.
Table with all functions built in
calculus is in appendix a.
List of supported functions can be found in appendix a. This example represents usage of function with one variable.
sin( 0.33) <ent> [3.240e-01 or a=0.33 <ent> sin(a) <ent> [3.240e-01
or for matrix usage
sin([0.33 0.32 0.31]) <ent> [3.240e-01 3.145e-01 3.050e-01
All functions return as result matrix with specific size, determined from input parameters. Notice that for functions calculus calculates function value for each matrix element. Any result can be assigned to variable, for example:
a=sin([0.33 0.32 0.31]) <ent> a <ent> [3.240e-01 3.145e-01 3.050e-01
For functions with two variables:
pow(3,4) <ent> [8.1000e01 or pow([3 4],2) <ent> [9.000e00 1.600e01 or pow([3 2],[2 1]) <ent> [9,000e00 2.000e0
When first variable is matrix and second variable is scalar, calculus will do operation on each element of first variable with scalar (second variable).
If both variables are matrix calculus will do operation for each element from first variable with element from second variable (for element nxm in first matrix, operation will be done with element nxm from second matrix). If matrixes don’t have same sizes calculus will create destination matrix as max size between parameter matrixes, and fill those elements with zeroes.
Check appendix a, for list of all supported functions.
Calculus has several functions that are add on to mathlib.
Calculus has additional functions for quick translation from radians to degrees. Functions are r2d (rd2dg), which transforms radians to degrees, and d2r (dg2rd), which transforms degrees to radians. Also calculus has several trigonometric add on functions such as sind which calculates sinus of angle in degrees (default is in radians).
Calculus supports n base number conversion. For example, this line will display binary number 10001 in decimal system.
100001#2 <ent> [1.7000e01
Following lines will display number 17 in binary and octal system.
a =17 <ent> a#2 <ent> [10001 a#8 <ent> [21
Also, direct value of command can be displayed in similar matter. For example:
(3*sin(1))#2 <ent> [10.100001100
To assign some variable from different number base enter following:
a=1001.1001#2 <ent> a <ent> [9.5625e00
Look todo5.
Calculus has units conversion functions. Following functions deals with units conversions:
cnva - angle conversion
cnvw - work conversion
cnvd - distance conversion
cnvm - mass conversion
cnvp – pressure conversion
Unit conversions can be done through command line or form (called from menu forms – Unit Conv).
Following picture shows unit conversion form.
Type of conversion can be selected from list Conversion. Source Unit is selected from list From. Value is entered in field below label from. Right of field is list of additional suffix (such as centi, deci, hekta, Giga etc.). Complete unit is showed in label right of unit type list. Button Clr clears values in fields. Target Unit is chosen in similar way. Button Convert converts units. Result is shown in field below label To (target). List Actions has three choices. It can Copy Expression to hierarchy list (expression in form of calculus command line), Copy Result to hierarchy or paste value to field from.
Format of these functions is following:
cnv? (matrix value, string from, string to)
where
? represents letter for one of above unit conversion functions.
value represents matrix of values for conversion.
from represent source unit format (cm, dm, km, g, kg, W , kW)
to represents destination unit format (Yd, etc…)
(note: in functions menu, whole group is for conversion functions, besides functions there are basic units).
Following examples shows usage of these functions:
-convert 10 meters into centimeters
cnvd(10,m,cm) <ent> [1.0000e03
-convert 5 radians into degrees
cnva(5,rad,o) <ent> [2.8647e02
-convert 1 electron Volt into 1 Joule
cnvw(1,eV,J) <ent> [1.602e-19
For list of all functions and conversion values see appendix c.
Calculus uses following table for unit prefixes conversion.
Prefix |
value |
Y |
1e24 |
Z |
1e21 |
E |
1e18 |
P |
1e15 |
T |
1e12 |
G |
1e09 |
M |
1e06 |
k |
1e03 |
h |
1e02 |
D |
1e01 |
d |
1e-01 |
c |
1e-02 |
m |
1e-03 |
u |
1e-06 |
n |
1e-09 |
p |
1e-12 |
f |
1e-15 |
a |
1e-18 |
(note: in case of number prefixes calculus is always case sensitive)
Calculus has build in logical functions. For now this is implemented as functions not operator (todo6).
Following functions are implemented:
Logical and, AND(matrix m1,matrix m2) or and(matrix m1,matrix m2)
Logical not and, NAND(matrix m1,matrix m2) or nand(matrix m1,matrix m2)
Logical or, OR(matrix m1,matrix m2) or or(matrix m1,matrix m2)
Logical not or, NOR(matrix m1,matrix m2) or nor(matrix m1,matrix m2)
Logical exclusive or, XOR(matrix m1,matrix m2) or xor(matrix m1,matrix m2)
Logical not exclusive or, NXOR(matrix m1,matrix m2) or nxor(matrix m1,matrix m2)
Logical negation, NOT(matrix m1) or not(matrix m1)
(note logical functions only work with integer values so all values are converted to integers before usage)
Try following examples
not ([1 1;0 0]) <ent> [0.000e-01 0.000e-01 [1.000e00 1.0000e00
or
5 * and([33 42],[0 22]) <ent> [ 0.000e00 1.0000e01
All functions return matrix as result. Size of result matrix is maximum size of function operands.
This is list of other functions:
arav ([1 2;0 1]) <ent> [1.5000e00 [5.000e-01
geav ([1 2;0 1]) <ent> [1.4142e00 [0.0000e01
vnorm (2,[1 2;0 1]) <ent> [2.2360e00 [1.0000e01
ludcmp ([1 2;0 1]) <ent> [2.0000e00 5.000e-01 [1.0000e00 –5.000e-01
Calculus has built in functionality for user-defined functions. Those functions are stored in symbolic table in same way as normal variables. Custom functions can have several variables, which are used in calculation and passed as parameters. Following example show definition of custom functions:
s2(x) = sqr ( sin(x)) <ent>
This line defines function s2 as single variable function which performs square of sinus of variable. This example shows usage:
s2(1) <ent> [7.080e-01
This example defines function with three variables:
ff(x,y,z) = sin(x) + cos(y)*sin(z) <ent> ff(1,2,3) <ent> [7.607e-01
Custom functions can be used in normal calculations. For example
[3 3]+ ff([3 3]) <ent> [3.0604e00 3.1411e00
Functions for performing matrix inversion is inv. For example:
inv( [3 1;4 5]) <ent> [ 4.545e-01 –9.090e-02 [-3.636e-01 2.727e-01
To find inverse of each element in matrix, use function inv2.
To find matrix determinant use function det:
det([3 4;5 6]) <ent> [-2.0000e00
Calculus has built in linear systems solver. Algorithm is using LU matrix decomposition for solving. Syntax for command is:
matrix X =
slin(matrix A,matrix B)
Example, solving of following system:
2 * x1 + 3 * x2 = 5
5 * x1 + 4 * x2 = 0
This system has following matrix form:
A * x = B
where matrix A is [2 3;5 4] and matrix B is [5;0] and matrix x is [x1;x2].
Write following lines:
a=[2 3;5 4] <ent> b=[5;0] <ent> x=slin(a,b) <ent> x <ent> [-2.8571e00 [ 2.1428e00
or from single command:
slin([2 3;5 4],[5;0]) <ent> [-2.8571e00 [ 2.1428e00
Calculus has pre build mathematical and physical constants. These constants are inserted as variables with defined values in calculus start up. Following constants are defined:
Var name |
Value |
Description |
c |
2.997924580 e8 m/s |
Speed of light in vacuum, |
H |
6.6260755e-34 J-s |
Planck's constant |
q |
1.60217733e19 coulomb |
electron charge |
Gc |
6.7259e-11 N m**2/kg**2 |
Gravitational Constant |
k |
1.380658e-23 J/K |
Boltzmann's constant |
ec |
1.60217733e-19 C |
Elementary charge |
NA |
6.0221367e23 particles/mol |
Avogadro number |
mu0 |
12.566370614e-7 T2 m3/J |
Permeability of vacuum mu0 |
e0 |
8.854187817e-12 C2/J m |
Permittivity of vacuum
epsilon0 |
me |
9.1093897e-31 kg |
Electron rest mass |
mp |
1.6726231e-27 kg |
Proton rest mass |
mn |
1.6749286e-27 kg |
Neutron rest mass |
amu |
1.66057e-27 kg |
Atomic mass unit |
a0 |
5.29177e-11 m |
Bohr radius |
re |
2.81792e-15 m |
Electron radius |
rgass |
8.31451 m2 kg/s2 K mol |
Gas constant |
Vmol |
22.41383 m3/kmol |
Molar volume |
g |
9.80665 m/s2 |
Acceleration due to gravity |
pi |
3.141592653 |
Pi, Ludoph's number |
pi2 |
1.5707963267 |
Pi/2 |
pi3 |
1.0471975511 |
Pi/3 |
pi4 |
0.7853981633 |
Pi/4 |
pi6 |
0.5235987755 |
Pi/6 |
Sqpi |
1.7724538509 |
Square root of Pi |
Pinv |
0.3183098861 |
Inverse of Pi |
E |
2.7182818284 |
base of Natural logarithm |
Sq2 |
1.41421356237 |
square root of two |
Sq3 |
1.73205080756 |
Square root of three |
Fi |
1.61803398874 |
Golden Ratio |
L2 |
0.69314718055 |
logarith of two |
L3 |
1.09861228866 |
logarith of three |
Note: if you want your constants to be reentered use Reset Constants menu item from Work menu. Also if you notice that you don’t have constants inserted during first time calculus start use this menu item to insert constants.
For now Calculus supports drawing of simple x – y graphs (todo8). Graphs can be drawn in two ways. Through command line or from gui form.
Command for graph drawing is plotxy. It has following syntax.
matrix graph = plotxy( xmin, xmax, string function)
First input parameter is real number which is minimum on x-axis. Second parameter is maximum on x-axis. Third parameter is function, which is drawn. In this function x represents function variable. For example for command plotxy(-4,4,sin(x)) calculus will calculate values from –4 to 4 on x axis for function sin. Calculus calculates 25 points between xmin and xmax and stores them in matrix graph. Try following examples:
First draw simple sinus function for its interval. Enter command
plotxy(0,2*pi,sin(x)) <ent>
Calculus will draw following picture:
Calculus displays brief info about graph, function, and its minimum and maximum value on x and y-axis.
Each graph can be saved in variable. Try following commands:
g1=plotxy(0,2*pi,sin(x)) <ent> g1 <ent>
Result is same as in example above, but graph is stored in variable g1 and can be invoked later.
User defined functions can be used in graph plotting.
f1(x)=sin(x)+cos(x) plotxy(0,2*pi,f1(x)) <ent>
From menu Forms-Draw graph this functionality can be
started. Drawing graph consists of two steps. First step is entering function
and its x-axis minimum and maximum. Function must be written in the same format
as in example above. After input values are entered graph is drawn with pressing
button Draw.
This picture shows graph in viewgraph form.
Controls are following:
Undo, Cut, Paste, Copy are functionalities for usage with main enter field.
Calc preferences open form with calculus preferences.
· Use HQ graphics mode – turns on HQ graphics mode support, calculus must be restarted for effect to take changes.
· Add all text to history – inserts all text to history list. If this option is turned off calculus will filter some of commands.
· Set def mode to calculator – sets default work mode as standard calculator.
· Set def numpad to normal – sets numpad to large numeric pad.
· Use case sensitive grammar – tells calculus if he will use case sensitive variables and commands.
· Numpad wait tick – determines delay after button is pressed.
· Number draw width – maximum chars in number format. More – bigger number details.
About, displays basic information’s about this program.
· Full numpad, displays full numpad in main window – set by default.
· Short numpad, displays brief numpad in main window.
· Stack numpad, displays numpad with basic stack functions.
· Standard calculator changes calculus mode to simulate standard calculator.
· Expression parser is default mode. Each line is parsed and processed as normal command.
· Reset constants loads constants values and variables back into calculus symbol table.
· Reset func menu loads default values to function menu on right side.
History data is placed in main calculus database. Size limit of this database is 64K, so history is limited to size of this database. For now size of this database can be checked from Palm system tools (todo7). Basic stack controls can be invoked from Work menu and choosing stack numpad.
· Del last will delete last entry from history.
· Del page will delete last ten entries from history.
· Empty will empty whole history stack.
(note: user can by pressing pen on history list item put its contents in main entry field).
Calculus supports Sony 320x320 and Handera 240x240 high-resolution display.
Calculus recognizes type of handheld and its capabilities. Calculus resizes main window in a way that history and work area have more space. This option can be turned off in calculus preferences. Some forms like graph gui still doesn’t support hq mode.
Currently calculus has only one number format. This format represents number in decimal way with its exponent. Number of chars avaible for numbers can be adjusted in calculus preferences menu.
Name |
Syntax |
Description |
Sin |
Sin(matrix m) |
Calculates sinus for matrix
m elements in radians |
Cos |
Cos(matrix m) |
Calculates cosines from
matrix m elements in radians |
Tan |
tan(matrix m) or tg(matrix
m) |
Calculates tangent from
matrix m elements in radians |
Ctan |
ctan(matrix m) or ctg(matrix m) |
Calculates cotangent from
matrix m elements in radians |
ASin |
asin(matrix m) |
Calculates arc sinus for
matrix m elements in radians |
ACos |
acos(matrix m) |
Calculates arc cosines from
matrix m elements in radians |
ATan |
atan(matrix m) or
atg(matrix m) |
Calculates arc tangent from
matrix m elements in radians |
ACtan |
actan(matrix m) or ctg(matrix m) |
Calculates arc cotangent
from matrix m elements in radians |
Sinh, Cosh, Tanh, Ctanh, |
sinh, cosh,tanh,ctanh (matrix m) |
Calculates hyperbolic
values of trigonometric functions in radians |
ASinh, ACosh, ATanh, ACtgh,
|
sinh, cosh,tanh,ctanh (matrix m) |
Calculates arc hyperbolic
values of trigonometric functions in radians |
Sind |
Sind(matrix m) |
Calculates sinus for matrix
m elements in degrees |
Cosd |
Cosd(matrix m) |
Calculates cosines from
matrix m elements in degrees |
Tand |
tand(matrix m) or
tgd(matrix m) |
Calculates tangent from
matrix m elements in degrees |
Ctand |
ctand(matrix m) or ctgd(matrix m) |
Calculates cotangent from
matrix m elements in degrees |
ASind |
asind(matrix m) |
Calculates arc sinus for
matrix m elements in degrees |
ACos |
acosd(matrix m) |
Calculates arc cosines from
matrix m elements in degrees |
ATand |
atand(matrix m) or
atgd(matrix m) |
Calculates arc tangent from
matrix m elements in degrees |
ACtand |
actand(matrix m) or ctgd(matrix m) |
Calculates arc cotangent
from matrix m elements in degrees |
r2d,rd2dg |
r2d(matrix m) or rd2dg (matrix m) |
Converts radians to degrees
matrix m. |
d2r,dg2rd |
d2r(matrix m) or dg2rd (matrix m) |
Converts degrees to matrix
matrix m. |
cnvd |
cnvd (matrix m,string
unit_f, string unit_t) |
distance conversion from
unit type unit_f to unit type unit_f see Appendix C |
cnvw |
cnvw (matrix m,string
unit_f, string unit_t) |
work conversion from unit
type unit_f to unit type unit_f see Appendix C |
cnva |
cnva (matrix m,string
unit_f, string unit_t) |
area conversion from unit
type unit_f to unit type unit_f see Appendix C |
cnvm |
cnvm (matrix m,string
unit_f, string unit_t) |
mass conversion from unit
type unit_f to unit type unit_f see Appendix C |
cnvp |
cnvp (matrix m,string
unit_f, string unit_t) |
pressure conversion from
unit type unit_f to unit type unit_f see Appendix C |
and |
and (matrix m1,matrix m2) |
logical and between matrix
m1 and matrix m2, this operations only works on integers. |
nand |
nand (matrix m1,matrix m2) |
logical nand between matrix
m1 and matrix m2, this operations only works on integers. |
or |
or (matrix m1,matrix m2) |
logical or between matrix
m1 and matrix m2, this operations only works on integers. |
nor |
nor (matrix m1,matrix m2) |
logical nor between matrix
m1 and matrix m2, this operations only works on integers. |
xor |
xor (matrix m1,matrix m2) |
exclusive or between matrix
m1 and matrix m2, this operations only works on integers. |
nxor |
nxor (matrix m1,matrix m2) |
n exclusive or between
matrix m1 and matrix m2, this operations only works on integers. |
not |
not (matrix m) |
logical negation of matrix
m, this operations only works on integers. |
Log,lg |
log(matrix m) |
calculates natural logarithm
of elements of matrix m |
log10,lg10 |
log10(matrix m) |
calculates base 10
logarithm of elements of matrix m |
logb,lgb |
logb(matrix m) |
calculates base 2 signed
integral exponent of elements of matrix m |
log1p |
log1p(matrix m) |
calculates log(1+x) of
elements of matrix m |
log2,lg2 |
log2(matrix m) |
calculates base 2 logarithm
of elements of matrix m |
sqrt |
sqrt(matrix m) |
calculates square root of
elements of matrix m |
Exp |
exp(matrix m) |
calculates exponential
function of elements of matrix m |
sqr |
sqr(matrix m) |
calculates square of
elements of matrix m |
pow |
pow(matrix m1,matrix m2) |
calculates power of each
elements of matrix m1 on element of matrix m2 (note this is not matrix pot.) |
hypot |
hypot(matrix m1,matrix m2) |
calculates hypotenuse of
right triangle with elements of
matrix m1 and m2 |
fabs |
fabs(matrix m) |
Absolute value of elements
of matrix m |
floor |
floor(matrix m) |
Largest integral value of
elements of matrix m |
ceil |
ceil(matrix m) |
Smallest integral value of
elements of matrix m |
round |
round(matrix m) |
nearest integer (away from
zero) of elements of matrix m |
trunc |
trunc(matrix m) |
nearest integer ( not
larger than elem) of elements of matrix m |
inv |
inv(matrix m) |
Inversion value of matrix m |
fact |
fact(matrix m) |
Factorial value of elements
of matrix m |
fmod |
fmod(matrix m) |
Modulo remainder of
elements of matrix m |
rem |
rem(matrix m) |
Remainder of integer
division of elements of matrix m1 and m2 |
inv2 |
inv2(matrix m) |
Inversion of each element
in matrix m |
slin |
slin(matrix A,matrix B) |
Solves linear system A x =
B. |
det |
det(matrix m) |
Calculates determinant of
matrix m |
arav |
arav(matrix m) |
Calculates arithmetic
average of elements in each row in matrix |
geav |
geav(matrix m) |
Calculates geometric
average of elements in each row in matrix |
vnorm |
vnorm(type,matrix m) |
Calculates vector norm of
vector (vector is each row) type = 1 for l1,2 for l2 or 0 for l inf norm. |
LUdcmp |
ludcmp(matrix m) |
Calculates LU decomposition
of matrix m. |
Angle:
prefix |
value |
description |
o |
1 |
degree (°) |
s |
2.777778e-04 |
second (s) |
gr |
9e-1 |
grade (gr) |
rev |
3.600000e+02 |
revolution (rev) |
rad |
5.729578e+01 |
radian (rad) |
qud |
90 |
quadrant (quad) |
min |
1.666666666666e-2 |
",},//minute (min) |
|
|
|
|
|
|
Work:
prefix |
value |
description |
j |
1 |
Joule (J) |
btu |
1.055056e+03 |
British thermal unit (international) (BTU int'l) |
btum |
1.055870e+03 |
British thermal unit (mean) (BTU mean)) |
btut |
1.054350e+03 |
British thermal unit (thermodynamic) (BTU thermo) |
theu |
1.054804e+08 |
therms (U.S.) |
calm |
4.190200 |
calorie (mean) |
calt |
4.184000 |
calorie (thermodynamic) (cal thermo) |
erg |
1.000000e-07 |
erg (erg) |
the |
1.055060e+08 |
therms (European) |
ton |
4.184000e+09 |
ton (nuclear equiv. TNT) |
cal |
4.186800 |
calorie (international) (cal int'l) |
ev |
1.602190e-19 |
electron volt (eV) |
wh |
3.600000e+03 |
watt hour (kW-h) |
ws |
1 |
watt second (W-s) |
|
|
|
Distance:
prefix |
value |
description |
m |
1 |
meter (m) |
miu |
1.609347e+03 |
mile (U.S. statute) (mi U.S) |
mi |
2.540000e-05 |
mil (m) |
par |
3.085678e+16 |
parsec (m) |
ftu |
3.048006e-01 |
foot (U.S. survey) (m) |
lyr |
9.460550e+15 |
light year (light yr) |
nmi |
1.852000e+03 |
mile (int'l nautical) (nmi int'l) |
mi |
1.609344e+03 |
mile (international) (mi int'l) |
rd |
5.029210e+00 |
rod (rd) |
yd |
9.144000e-01 |
yard (yd) |
au |
1.500000e+11 |
astronomical unit (au) |
ch |
2.011680e+01 |
Chain (ch) |
fm |
1.000000e-15 |
fermi (fm) |
ft |
3.048000e-01 |
foot (ft) |
in |
2.540000e-02 |
inch (in) |
a |
1.000000e-10 |
angstrom (Å) |
f |
1.828804e+00 |
fathom (f) |
Mass:
prefix |
value |
description |
g |
1 |
gram (g) |
cwtl |
5.080235e+04 |
hundredweight (long) (cwt) |
cwts |
4.535924e+04 |
hundredweight (short) (cwt) |
lbmt |
3.732418e+2 |
pounds mass (troy or apothecary) (lbm troy) |
amu |
1.660540e-24 |
atomic mass unit (amu) |
ozt |
3.110348e+1 |
ounce (troy or apothecary) (oz troy) |
pwt |
1.555170e-00 |
pennyweight (pwt) |
lbm |
4.535924e+2 |
pounds mass (avoirdupois) (lbm) |
slg |
1.459390e+04 |
slug |
stn |
6.350293e+03 |
stone (kg) |
kgf |
9.806650e+00 |
kilogram force seconds squared per meter (kgf-s²/m) |
grn |
6.479891e-02 |
grain (grn) (kg) |
oz |
2.834952e+1 |
ounce (avoirdupois) (oz) |
ta |
2.916670e+1 |
ton (assay) (t assay) |
tl |
1.016047e+06 |
ton (long, 2240 lb) (t long) |
ts |
9.071847e+05 |
ton (short, 2000 lb) (t short) |
ct |
2.000000e-01 |
carat (ct) |
t |
1.000000e6 |
ton (metric) |
Pressure:
prefix |
value |
description |
pa |
1 |
Pascal (Pa) |
atms |
1.013250e+05 |
standard atmosphere (atm std) |
torr |
1.333224e+02 |
torr (mm Hg 0°C) |
cmHg |
1.333220e+03 |
centimeters of mercury (cm Hg 0°C) |
kipi |
6.894757e+06 |
kilopounds per square inch (kip/in²) |
atm |
9.806650e+04 |
atmosphere (atm kgf/cm²) |
psi |
6.894757e+03 |
pounds per square inch (psi) |
bar |
1e+05 |
bar |
cmW |
9.806380e+01 |
centimeters of water (cm water 4°C) |
dyn |
0.1 |
dyne per square centimeter (dyne/cm²) |
ftw |
2.988980e+03 |
foot of water (ft water 39.2°F) |
gf |
9.806650e+01 |
grams force per square centimeter (gf/cm²) |
|
|
|
|
|
|
So far not all groups are used and fully filled. In future as new functions will be inserted groups will be further filled. Also I plan to put one group for user-defined variables, functions or strings.
Calculus is using ll parser – driver technique for parsing expressions. So far ll parser is using dynamic heap for stacks storage. For limited amount of heap in palm os calculus is limited in expression complexity. In future I will try to take off this limitation with different memory usage.
In future I indent to make separate form for editing and viewing matrix and its values, to make matrix manipulation easy.
In future I will insert new functions (finish adding all functions from Mathlib and add new). If you have any ideas about functions please send me mail and I will try to insert them.
In future for number and units conversion I tend to create forms, for easier usage of there functionalities.
In future I tend to make logical functions work same as normal operators
(add, sub etc…).
Calculus will have more functionalities regarding stack controls, space used, variable and function deletion etc. Also I tend to create windows program for easier Calculus database manipulation (system table and history list).
For now, Calculus can draw only simple x-y graph. I tend in future to insert more types of graphs.
Calculus is shareware. If you use it beyond 30 days, Calculus will continue to function, registration screen will continue to pop up. You may register calculus at
Palm Gear (http://www.palmgear.com/)
This license agreement is a legal agreement between you the end user (either as an individual or an entity) and Damir Kolobaric (a owner and developer of the product) herein after referred to as DK.This End User License Agreement accompanies the CALCULUS product ("SOFTWARE"). The term "SOFTWARE" also shall include any upgrades, modified versions or updates of the SOFTWARE licensed to you by DK. Please read this Agreement carefully. If you do not wish to accept this Agreement, you may not install the SOFTWARE on a Palm OS compatible device, simulator, emulator, or otherwise execute the SOFTWARE or make use of its content. Usage of this software implies consent to the terms of this Agreement.
· USE OF THE SOFTWARE. YOU MAY install the SOFTWARE on Palm OS compatible devices. If you purchase the SOFTWARE, you are granted the right to use the SOFTWARE on one Palm OS compatible device. If you do not purchase the SOFTWARE, you may use the software during the Trial Period as enforced by the original and unmodified SOFTWARE. You may not use the SOFTWARE beyond the Trial Period without purchasing the SOFTWARE. The Trial Period will be the shorter of 30 days or the period enforced by the SOFTWARE.
· COPYRIGHT. The SOFTWARE is owned by DK. Portions of this software may or may not be owned by other parties and licensed to you under provisions made by licensing agreements between DK and the said parties. The SOFTWARE is protected by Croatia Copyright Law and International Treaty provisions. This Agreement does not grant you any intellectual property rights to the SOFTWARE.
· NO WARRANTY. This SOFTWARE is being delivered to you AS IS, DK makes no warranty as to its use or performance. DK disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. Neither DK nor anyone else who has been involved in the creation, production or delivery of this product assumes any liability for damages, direct or consequential, which may result from the use of the SOFTWARE.
· RESTRICTIONS. You agree not to modify, adapt, translate, reverse engineer, decompile, disassemble or otherwise attempt to discover the source code of the SOFTWARE. YOU MAY NOT make or distribute copies of the SOFTWARE. YOU MAY NOT distribute modified versions of this SOFTWARE.
· GOVERNING LAW AND GENERAL PROVISIONS. The Agreement will be governed by the law of Croatia. This Agreement will not be governed by the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded. If any part of this Agreement is found void and unenforceable, it will not affect the validity of the balance of the
· Agreement, which shall remain valid and enforceable according to its terms. This Agreement shall automatically terminate upon failure by you to comply with its terms. This Agreement may only be modified in writing signed by an authorized officer of DK.
Calculus by Damir Kolobaric
Copyright (C) 2003