
Wjjsoft Calculator
===================================================


Introduction
=============

Wjjsoft Calculator is a unique calculator program that is based on Expression Parsing and may substitute the default Windows Calculator.

Wjjsoft Calculator offers a multiple-line Edit box whereby you can enter your expressions one per line. Results of the expression are shown in the next Edit box.

Within the multiple-line edit box, entering an expression, or clicking on an expression line, and selecting a portion of an expression immediately updates the Result.



Samples
=========

It is extremely simple to use the calculator. Here's a few expression samples.

1.  1+2+3+4+5+6+7+8+9+10 = 55

2.  123 * 3 - 456/24 + 30 / (45/3^2) = 356

3.  if( 68>60, "PASS", "FAIL") = PASS

3.  2*sin(pi/4)*cos(pi/4) = sin(2*pi/4) = 1

4.  pi = 3.1415926536

5.  e = 2.7182818285

6.  2*sin(pi2/log(10,sqrt(10000)))*cos((33%7)*pi/(ln(e^5)*(cos(0)*ln(e^2))*log10(100))/sin(pi/sqrt(4)))+max(15/(2*sin(pi/4)*cos(pi/2/ln(e^2))),min(3,5)*min(2,5)) = 16

7.  A List of Supported Fucntions:

	_funcs << std::pair<std::string, _TFuncEntry>("time", _TFuncEntry(_do_time)); //::time(NULL);

	_funcs << std::pair<std::string, _TFuncEntry>("int", _TFuncEntry(_do_as_int));

	_funcs << std::pair<std::string, _TFuncEntry>("str", _TFuncEntry(_do_as_string));
	_funcs << std::pair<std::string, _TFuncEntry>("string", _TFuncEntry(_do_as_string));

	_funcs << std::pair<std::string, _TFuncEntry>("sqrt", _TFuncEntry(_do_sqrt));
	_funcs << std::pair<std::string, _TFuncEntry>("sqr", _TFuncEntry(_do_sqr));

	_funcs << std::pair<std::string, _TFuncEntry>("abs", _TFuncEntry(_do_abs));
	_funcs << std::pair<std::string, _TFuncEntry>("fabs", _TFuncEntry(_do_abs));

	_funcs << std::pair<std::string, _TFuncEntry>("ln", _TFuncEntry(_do_ln)); //ln(x)=log(e,x)
	_funcs << std::pair<std::string, _TFuncEntry>("log", _TFuncEntry(_do_log)); //log(x,y);
	_funcs << std::pair<std::string, _TFuncEntry>("log10", _TFuncEntry(_do_log10)); //log10(x);

	_funcs << std::pair<std::string, _TFuncEntry>("exp", _TFuncEntry(_do_exp)); //exp(x)=e^x
	_funcs << std::pair<std::string, _TFuncEntry>("ceil", _TFuncEntry(_do_ceil));
	_funcs << std::pair<std::string, _TFuncEntry>("floor", _TFuncEntry(_do_floor));

	_funcs << std::pair<std::string, _TFuncEntry>("pow", _TFuncEntry(_do_pow)); //pow(10,3)=1000
	_funcs << std::pair<std::string, _TFuncEntry>("pow10", _TFuncEntry(_do_pow10)); //pow10(3)=1000

	_funcs << std::pair<std::string, _TFuncEntry>("sin", _TFuncEntry(_do_sin));
	_funcs << std::pair<std::string, _TFuncEntry>("cos", _TFuncEntry(_do_cos));
	_funcs << std::pair<std::string, _TFuncEntry>("tan", _TFuncEntry(_do_tan));

	_funcs << std::pair<std::string, _TFuncEntry>("asin", _TFuncEntry(_do_asin));
	_funcs << std::pair<std::string, _TFuncEntry>("acos", _TFuncEntry(_do_acos));
	_funcs << std::pair<std::string, _TFuncEntry>("atan", _TFuncEntry(_do_atan));

	_funcs << std::pair<std::string, _TFuncEntry>("rand", _TFuncEntry(_do_rand));
	_funcs << std::pair<std::string, _TFuncEntry>("max", _TFuncEntry(_do_max));
	_funcs << std::pair<std::string, _TFuncEntry>("min", _TFuncEntry(_do_min));


	_funcs << std::pair<std::string, _TFuncEntry>("||", _TFuncEntry(_do_logic_or));
	_funcs << std::pair<std::string, _TFuncEntry>("&&", _TFuncEntry(_do_logic_and));
	_funcs << std::pair<std::string, _TFuncEntry>("if", _TFuncEntry(_do_logic_ifthen));

	_funcs << std::pair<std::string, _TFuncEntry>("!", _TFuncEntry(_do_logic_not));
	_funcs << std::pair<std::string, _TFuncEntry>("<", _TFuncEntry(_do_logic_LT));
	_funcs << std::pair<std::string, _TFuncEntry>(">", _TFuncEntry(_do_logic_GT));
	_funcs << std::pair<std::string, _TFuncEntry>("<=", _TFuncEntry(_do_logic_LE));
	_funcs << std::pair<std::string, _TFuncEntry>(">=", _TFuncEntry(_do_logic_GE));
	_funcs << std::pair<std::string, _TFuncEntry>("!=", _TFuncEntry(_do_logic_notequal));
	_funcs << std::pair<std::string, _TFuncEntry>("==", _TFuncEntry(_do_logic_equal));

	_funcs << std::pair<std::string, _TFuncEntry>("^", _TFuncEntry(_do_pow)); //(-10)^4=10000
	_funcs << std::pair<std::string, _TFuncEntry>("%", _TFuncEntry(_do_mod)); //13%5=3
	_funcs << std::pair<std::string, _TFuncEntry>("/", _TFuncEntry(_do_divide));
	_funcs << std::pair<std::string, _TFuncEntry>("*", _TFuncEntry(_do_multiply));
	_funcs << std::pair<std::string, _TFuncEntry>("-", _TFuncEntry(_do_minus));
	_funcs << std::pair<std::string, _TFuncEntry>("+", _TFuncEntry(_do_plus));


Wjj Software
website: http://www.wjjsoft.com/
Contact: info@wjjsoft.com
