Euclid  
Euclid supports integers, rational numbers, and simple algebraic numbers. Euclid does not yet support complicated algebraic numbers or complex numbers. Integers Integers are the numbers ..., 2, 1, 0, 1, 2, ... You can enter hexadecimal numbers using the standard "0x" format: 0x10 is equivalent to 16 (base 10). You can also enter a number of any base by using the format: < number > : < base > . For example, 1001:2 is a binary number with decimal value 9. Rational Numbers Rational numbers are numbers which can be expressed as the ratio of two integers. For example, 1.25 is rational and can be expressed as 5 / 4. You can enter rational numbers as scientific notation if desired. For example, instead of 1025.7, you can enter 1.0257E3. The same number can also be represented as 1.0257 E 3, 1.0257e 3, or simply 1025.7. Simple Algebraic Numbers Euclid supports simple algebraic numbers of the form M * N ^ (1 / R), where M is rational and N and R are integers. It also supports numbers which are the sum of such simple algebraic numbers. Thus, it supports such numbers sqrt(2), 5^(1/3) + 7^(1/5), and 10.2 * sqrt(2). You can safely add, subtract, or multiply such numbers together. You can only divide by numbers of the form A + B, where A is rational and B is a simple algebraic number. Thus, Euclid supports dividing by (1  sqrt(2)), but not (1 + 2^(1/3)). Also, Euclid does not yet support raising a simple algebraic number to any noninteger exponent. Thus, you can do things like (1 + sqrt(2)) / (1  sqrt(2)) and (1 + sqrt(2))^10, but not (1 + sqrt(2))^(3/2). Sets You can define sets using the following format: s = {1, 2, 3} Sets cannot contain the same number more than once (multisets are not yet supported). Basic operations with + and  are supported, both for single values and for other sets: s = {1, 2, 3}  {2, 3} would return the set {1} s = {1, 2, 3}  2 would return the set {1, 3} Matrices You can define matrices using the following format: M = [1, 2; 3, 4] (comma separates values; semicolon separates rows) + and  operators can be used on two matrices. The * operator can be used either on two matrices, or a scalar and a matrix: [1, 2; 3, 4] * 3 would return [3, 6; 9, 12] [1, 2; 3, 4] * [2, 0; 5, 3] would return [12, 6; 26, 12] 
Euclid 
Copyright © 20032006 Kevin L. Gong

