SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files
What is "e" ?

"e" is a full expression evaluator in under 10k of code.You can evaluate any arithmetic expression like 3*log(pi+10!) .

It doesn't need bison or anything else other than a C compiler. In fact it is a recursive-descent parser with one character look-ahead.


Why does "e --.+*.*^.+.--e^" work and why does it return -1?

Read the questions at the bottom!


What is supported ?

First of all you can use '[' instead of '(' and ']' instead of ')'. This is to avoid using quotes when writing an expression at the command line. For example, instead of:

$ e '5*log(2+3)'

you can use the following (which is 2 keystrokes and 2 shifts shorter)

$ e 5*log[2+3]

Also you can omit the parenthesis of a function, for example

$ e log1+log2+log3

Finally you can use the usual notation 5e7 = 5 * 10^7.

Ok, now what is available...

operators   explanation                 evaluation        precedence
---------   -----------                 ----------        ----------
 + -        add,subtract                left to right     lower
 * / %      multiply, divide, modulo    left to right
 ^          exponentiate                right to left
 !          factorial                   obvious           higher

constants

e            2.7182818284590452...
pi           3.14159265358979....

functions                   explanation
---------                   ----------
abs, fabs                   absolute value 
floor, ceil, sqrt, exp      like <math.h>
sin, cos, tan               like <math.h>
sinh, cosh, tanh            like <math.h>
asin, acos, atan            like <math.h>
asinh, acosh, atanh         like <math.h>
ln                          natural logarithm (base e)
log                         base 2 logarithm (log256 = 8)

Why does "e +" work and why does it return 0?

Read the next question.


Why does "e 5+" work and why does it return 5?

Have you ever wondered why +5 is a valid expression and 5+ isn't? Read the next question.


Why doesn't "e " return 0 instead of a help message?

Read on...


How many 1-digit numbers are there in the universe?

Pause for a moment and think..
Ok so, deep in the mathematical universe, there are...

9000   4 digit numbers     (from 1000 to 9999)
 900   3 digit numbers     (from 100 to 999)
  90   2 digit numbers     (from 10 to 99)

Therefore you should have guessed that we have...

9 1 digit numbers (from 1 to 9)


Ok, if 0 isn't a 1-digit number, what is it?

It is a 0-digit number! That means you don't have to write anything when you want 0. Writing '0' for 0 is like writing '04' for 4.

So when we write

+

it is equivalent to

0+0

I hope everything is clear now! (for example e^ = e^0 = 1)


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.