 |
Speakeasy is a powerful tool for solving the most difficult
computational problems!
|
 |
|
Speakeasy
gives you the power to perform wide range of mathematical operations and
more.
|
|
In
simplest terms, Speakeasy is like a powerful, handheld calculator without
the limitations of a calculator. A calculator operates on scalars (a
single value). Speakeasy, however, allows multiple-value variables
to be defined and repetitious calculations to be performed efficiently.
|
|
The links below will introduce you to some of the many
capabilities that Speakeasy has to offer.
|
|
|
|
Getting
Started |
The Speakeasy prompt
( :_ )
indicates that Speakeasy is ready for user
input. A user simply types the desired calculation and presses the
enter key. Speakeasy performs the calculation and displays the
output. It's as simple as that!
|
|
|
Basic Arithmetic |
Speakeasy
provides a convenient means for performing the arithmetic or binary
operator: addition, subtraction, multiplication, division and
exponentiation.
The
most commonly used mathematical operations are also provided,
including: absolute value, average, natural logarithm, base-10 logarithm,
factorial, square root, cube root, and xx modulo nn (the remainder of xx/nn).
Enter
a simple arithmetic statement such as:
:_ 2+3
Speakeasy
replies with the statement:
2+3 = 5
|
|
|
Large and Small Numbers |
Very
large or very
small numbers can be expressed in scientific notation by
numeric field with the letter E
followed by the power
of 10 associated with that number. (No spaces should be inserted
anywhere in such a numeric specification.) For example:
1.057E-5
means
.00001057
236E+6 means 236000000
In contrast to other
computer languages, Speakeasy makes no distinction between integer and
non-integer numbers. The forms 4, 4.0 and 4.E0 are all
equivalent ways of representing the same value.
|
|
|
Trigonometric Functions |
Speakeasy
includes all of the trigonometric
functions:
Standard Functions:
sin-sine, cos-cosine, tan-tangent, cot-cotangent
Arc Functions:
asin-arcsine, acos-arccosine, atan-arctangent, acot-arccotangent
Hyperbolic Functions:
sinh-hyperbolic sine, cosh-hyperbolic cosine, tanh-hyperbolic tangent
A given operation can be
used singly or in any combination within a Speakeasy statement. For
example:
:_sqrt ( (14**2) /
(abs(-7)) + 8*cos(0) )
SQTR ( (14**2) / (ABS(-7)) + 8*COS(0)) = 6
|
|
|
Pre-Programmed Operations |
Unlike other
mathematical packages, Speakeasy provides an extensive set of
numerical operations.
Without the clutter (or the cost) of
extraneous functions, the Speakeasy language remains easy to use.
Each of these operations is invoked with a single, obvious word - a word
you already know!
Speakeasy includes
operations for:
|
|
|
User-Defined Operations |
User-Defined
Operations eliminate repetitious input and
greatly expand the power of Speakeasy.
Speakeasy
can be used to develop new user-defined operations, in the form of a
procedure. A Speakeasy procedure is simply a collection of Speakeasy
statements saved as an object which, in turn, can be executed with a single
statement.
Because
of the intuitive language of Speakeasy, the user does not have to be trained in
conventional programming to create a procedure. Several operations are
provided, however, for creating advanced procedures with loops, branches and/or
queries.
These programming
capabilities closely parallel the features found in other languages.
However, because of the powerful operations available in Speakeasy, the
procedures are relatively compact and thus easily constructed and understood.
|
|
|
Structured Objects |
Using
Speakeasy enables users to have the ability to make a series of
calculations in an interactive manner. This ability becomes
extremely powerful when used with arrays, times series, set, matrices and
vectors.
Speakeasy
supports all of the standard types of structured objects including:
scalars, arrays, time series, sets and matrices/vectors...and, Speakeasy can solve
any arithmetic expression using these objects.
Objects are
easily defined, as shown in the following statement which defines an
array. The following example of an array has three rows and three
columns:
:_x =
array(3, 3 : 1 2 3 4 5 6 7 8 9)
:_y
= matrix(3, 3 : 1 2 3 4 5 6 7 8 9)
:_x
X
(A 3 by 3 Array)
1 2 3
4 5 6
7 8 9
Algebraic
operations in Speakeasy are context sensitive. They examine the
structure and the family associated with objects involved in order to
determine the proper operation to perform. For example,
multiplication for arrays and matrices are performed differently. In
the commands below, we multiply x*x and y*y. Note that each command
produces the appropriate result:
:_x*x
X*X
(A 3 by 3 Array)
1
4 9
16 25 36
49 64 81
:_y*y
Y*Y
(A 3 by 3 Matrix)
30 36 42
66 81 96
102 126 150
Speakeasy
also incorporates elaborate syntax and logic checking. Whenever two
objects are combined in an operation, they are examined for compatibility
and structure information that may direct the overall operation. If
an error occurs a helpful and easily understood message will lead you to
your solution.
|
|
|
Applications with Front Ends |
Speakeasy's
high-level language is well suited to the development of powerful, customized
applications.
Self-contained applications written in Speakeasy have been developed for a
number of vertical applications. The Paneleasy component of Speakeasy,
provides developers the opportunity to create custom applications designed for a
specific end-user application.
Since
Speakeasy's numeric and graphical capabilities are fully integrated, you can
also create applications with mouse-driven front ends.
|
|
|
Analytical Graphing |
Graphing operations are as easy to use as the rest of Speakeasy's operations: a
single word is typically all you need to create presentation-quality images.
Speakeasy
provides powerful graphical operations that generate:
|
|
|
Literal Data |
Speakeasy
provides literal
data processing tools in addition to its superior numeric capabilities. Scalars, sets and arrays can be defined with
literal elements.
Two
forms of literal data are available:
|
 | character-literal
data which are strings of letters, and |
|
|
 | name-literal
data, which are collections of words. |
|
Character-Literal
data is specified by enclosing the information in quotation marks.
Each character or space is an element in such data:
"ABCDEFGHIJKLMN"
specifies
a fourteen element character-literal containing all upper-case characters.
Character-literals are generally used for textual information. Both
upper-case and lower-case characters can be specified in a character-literal
object.
Name-Literal
data is specified by enclosing the information in apostrophes. An
element of a name-literal has, at most, eight characters. Thus
'N'
specifies
a name-literal containing the letter N.
Name-literals are generally used for names of defined objects. Lower-case
characters are automatically converted into upper-case characters in a
name-literal object.
|
|