CALCULUS v1.1  INTRUCTIONS

http://www.dp-sol.com/

 

 

Introduction into Calculus

Working with Calculus

Main Calculus form

Entering expressions and Calculus grammar

Variables

Working with matrix

Functions

Basic Functions – built in from Mathlib.h

Special functions

Additional trigonometric functions

Number conversion functions

Units conversion functions

Logical functions

Custom Functions

Matrix functions

Matrix inversion and determinant

Solving linear systems

Pre build constants

Graphs

Drawing graph from command line

Drawing graph from form

Other stuff

Menus

Calculus menu

Work menu

Stack or history control

Sony and Handera hq display support

Number formats

APPENDIX A – functions table

APPENDIX B - Conversion table

APPENDIX C - todo part

Registration

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.


2.   Working with calculus

 

2.1.        Main Calculus form

 

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.

2.2.        Entering expressions and calculus grammar

 

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.

 

2.3.        Variables

 

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

 

 
 

 

 

 

 

 

 

 

 

 

 


2.4.        Working with matrix

 

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.

3.0. Functions

 

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.

 

3.1.        Basic Functions – built in from Mathlib.h

 

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.

 

3.2.        Special functions

 

Calculus has several functions that are add on to mathlib.

 

Additional trigonometric functions

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).

 

Number conversion functions

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.

 

Units conversion functions

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).

Unit conversion from Unit Conversion form

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.

 

 

Unit conversion from command line

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)

 

 

Logical functions

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.

 

 

 

 

 

 

Other functions

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

 

 

 
 

 

 

 

 

 

 


3.3.        Custom Functions

 

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

 
 

 

 

 


3.4.        Matrix functions

 

Matrix inversion and determinant

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

 
 

 

 

 

 


Note: matrix must be square and it must be proper one (not singular).

 

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

 
 

 

 


 

Note: matrix must be square and it must be proper one (not singular).

 

Solving linear systems

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

 
 

 

 

 

 

 


3.5.        Pre build constants

 

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.

 


4.0. Graphs

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.

 

4.1. Drawing graph from command line

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>

 

 
 


4.2. Drawing graph from form

 

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:

 

 

5.0. Other stuff

 

5.1           Menus

 

Calculus menu

 

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.

 

Work menu

·        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.

 

5.2.        Stack or history control

 

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).

5.3.        Sony and Handera hq display support

 

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.

5.4.        Number formats

 

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.

 

 


APPENDIX A – functions table

 

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.

 


APPENDIX B - Conversion tables

 

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²)

 

 

 

 

 

 

 

 


APPENDIX C - todo part

 

TODO1

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.

 

TODO2

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.

 

TODO3

In future I indent to make separate form for editing and viewing matrix and its values, to make matrix manipulation easy.

 

TODO4

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.

 

TODO5

In future for number and units conversion I tend to create forms, for easier usage of there functionalities.

 

TODO6

In future I tend to make logical functions work same as normal operators

(add, sub etc…).

 

TODO7

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).

 

TODO8

For now, Calculus can draw only simple x-y graph. I tend in future to insert more types of graphs.

 


Registration

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/)


Calculus END-USER LICENSE AGREEMENT

 

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

dk@dp-sol.com

Copyright (C) 2003

http://www.dp-sol.com/