Alias for multiplying two dense numbers
Alias for multiplying two dense numbers
Harshad Deo
0.1
Alias for adding two dense number
Alias for adding two dense number
Harshad Deo
0.1
Builds a new dense number by consing a bit to an existing dense number.
Builds a new dense number by consing a bit to an existing dense number. The consed bit is the lowest priority bit in the resulting number
Harshad Deo
0.1
Alias for checking if the first dense number is less than the second
Alias for checking if the first dense number is less than the second
Harshad Deo
0.1
Alias for checking whether the first dense number is less than or equal to the second
Alias for checking whether the first dense number is less than or equal to the second
Harshad Deo
0.1
Alias for checking if two dense numbers are equal
Alias for checking if two dense numbers are equal
Harshad Deo
0.1
Alias for checking whether the first dense number is greater than the second
Alias for checking whether the first dense number is greater than the second
Harshad Deo
0.1
Alias for checking whether the first dense number is greater than or equal to the second
Alias for checking whether the first dense number is greater than or equal to the second
Harshad Deo
0.1
Alias for comparing to dense numbers
Alias for comparing to dense numbers
Harshad Deo
0.1
Represents a 0 in the dense encoding of a natural number
Represents a 0 in the dense encoding of a natural number
Harshad Deo
0.1
Represents a 1 in the dense encoding of a natural number
Represents a 1 in the dense encoding of a natural number
Harshad Deo
0.1
Non-zero dense number.
Non-zero dense number. The digit is the least significant bit
Harshad Deo
Lowest priority bit
Rest of the bits, in decreasing order of priority
0.1
Builda a value level representation of a dense type.
Builda a value level representation of a dense type.
Harshad Deo
Type to be converted to a value
0.1
Represents a digit in the dense encoding of a natural number
Represents a digit in the dense encoding of a natural number
Harshad Deo
0.1
Alias for determing the greatest of two dense numbers
Alias for determing the greatest of two dense numbers
Harshad Deo
0.1
Alias for determining the lease of two dense numbers
Alias for determining the lease of two dense numbers
Harshad Deo
0.1
Alias for squaring a dense number.
Alias for squaring a dense number. Makes the code more pleasant to read
Harshad Deo
0.1
Alias for raising the first Dense number to the power of the second
Alias for raising the first Dense number to the power of the second
Harshad Deo
0.1
Dense 0
Dense 0
Harshad Deo
0.1
Dense 1
Dense 1
Harshad Deo
0.1
Dense 10
Dense 10
Harshad Deo
0.1
Dense 11
Dense 11
Harshad Deo
0.1
Dense 12
Dense 12
Harshad Deo
0.1
Dense 13
Dense 13
Harshad Deo
0.1
Dense 14
Dense 14
Harshad Deo
0.1
Dense 15
Dense 15
Harshad Deo
0.1
Dense 16
Dense 16
Harshad Deo
0.1
Dense 17
Dense 17
Harshad Deo
0.1
Dense 18
Dense 18
Harshad Deo
0.1
Dense 19
Dense 19
Harshad Deo
0.1
Dense 2
Dense 2
Harshad Deo
0.1
Dense 20
Dense 20
Harshad Deo
0.1
Dense 21
Dense 21
Harshad Deo
0.1
Dense 22
Dense 22
Harshad Deo
0.1
Dense 3
Dense 3
Harshad Deo
0.1
Dense 4
Dense 4
Harshad Deo
0.1
Dense 5
Dense 5
Harshad Deo
0.1
Dense 6
Dense 6
Harshad Deo
0.1
Dense 7
Dense 7
Harshad Deo
0.1
Dense 8
Dense 8
Harshad Deo
0.1
Dense 9
Dense 9
Harshad Deo
0.1
Dense Zero
Dense Zero
Harshad Deo
0.1
Contains implicit definitions to build the value level representation of a dense type
Contains implicit definitions to build the value level representation of a dense type
Harshad Deo
0.1
Builds value level representation of a Dense
Builds value level representation of a Dense
Harshad Deo
Dense type to be converted to a value
0.1
Contains implementation for Dense and typeconstructor aliases that make usage more pleasant
The operations can be shown to satisfy:
1. Additive commutativity:
+[A, B] =:= +[B, A]
2. Additive associativity:
+[A, +[B, C]] =:= +[+[A, B], C]
3. Additive identity:
+[A, _0] =:= A =:= +[_0, A]
4. Multiplicative commutativity:
*[A, B] =:= *[B, A]
5. Multiplicative associativity:
*[A, *[B, C]] =:= *[*[A, B], C]
6. Multiplicative identity:
*[A, _1] =:= A =:= *[_1, A]
7. Distributivity:
*[A, +[B, C]] =:= +[*[A, B], *[A, C]]
8. Zero exponent:
^[A, _0] =:= _1
9. One exponent:
^[_1, A] =:= _1
10. Exponent Identity:
^[A, _1] =:= A
11. Exponent combination 1:
*[^[A, B], ^[A, C]] =:= ^[A, *[B, C]]
12. Exponent combination 2:
^[^[A, B], C] =:= ^[A, *[B, C]]
13. Exponent combination 3:
^[*[A, B], C] =:= *[^[A, C], ^[B, C]]
14. Total Order
Author:
Harshad Deo
0.1