Skip to content

Commit 7c67312

Browse files
committed
new formatting for operations table that includes more color, better X, centered
1 parent e616965 commit 7c67312

File tree

1 file changed

+33
-26
lines changed

1 file changed

+33
-26
lines changed

docs/devdocs/Writing Smart Contracts/Types-and-Operators.md

+33-26
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ The `ebool` type is not a real boolean type. It is implemented as a `euint8`
9393

9494
## Supported Operations
9595

96+
9697
:::tip
9798
A documented documentation of each and every function in FHE.sol (including inputs and outputs) can be found in [FHE.sol](../Solidity%20API/FHE.md)
9899
:::
@@ -103,31 +104,37 @@ Please refer to the table below for a comprehensive list of supported operations
103104

104105
Note that all functions are supported in both direct function calls and library bindings. However, operator overloading is only supported for the operations listed in the table (solidity please support operator overloading for boolean return types!).
105106

106-
| name | FHE.sol function | Operator | euint8 | euint16 | euint32 | euint64 | euint128 | euint256 | ebool | eaddress |
107-
|-----------------------|------------------|----------|--------|---------|---------|---------|----------|----------|-------|----------|
108-
| Addition | add | + |||||| n/a | n/a | n/a |
109-
| Subtraction | sub | - |||||| n/a | n/a | n/a |
110-
| Multiplication | mul | \* ||||| x | n/a | n/a | n/a |
111-
| Bitwise And | and | & |||||| n/a || n/a |
112-
| Bitwise Or | or | \| |||||| n/a || n/a |
113-
| Bitwise Xor | xor | ^ |||||| n/a || n/a |
114-
| Division | div | / |||| x | x | n/a | n/a | n/a |
115-
| Remainder | rem | % |||| x | x | n/a | n/a | n/a |
116-
| Shift Right | shr | n/a |||||| n/a | n/a | n/a |
117-
| Shift Left | shl | n/a |||||| n/a | n/a | n/a |
118-
| Equal | eq | n/a |||||||||
119-
| Not equal | ne | n/a |||||||||
120-
| Greater than or equal | gte | n/a |||||| n/a | n/a | n/a |
121-
| Greater than | gt | n/a |||||| n/a | n/a | n/a |
122-
| Less than or equal | lte | n/a |||||| n/a | n/a | n/a |
123-
| Less than | lt | n/a |||||| n/a | n/a | n/a |
124-
| Min | min | n/a |||||| n/a | n/a | n/a |
125-
| Max | max | n/a |||||| n/a | n/a | n/a |
126-
| Not | not | n/a |||||| n/a || n/a |
127-
| Select | select | n/a |||||||||
128-
| Require | req | n/a |||||||||
129-
| Decrypt | decrypt | n/a |||||||||
130-
| Seal Output | sealOutput | n/a |||||||||
107+
<style>
108+
r { color: Red }
109+
o { color: Orange }
110+
g { color: Green }
111+
</style>
112+
113+
| Name | FHE.sol function | Operator | euint8 | euint16 | euint32 | euint64 | euint128 | euint256 | ebool | eaddress |
114+
|-----------------------|------------------|:--------:|:------:|:-------:|:-------:|:-------:|:--------:|:--------:|:-----:|:--------:|
115+
| Addition | add | + | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | n/a | n/a |
116+
| Subtraction | sub | - | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | n/a | n/a |
117+
| Multiplication | mul | \* | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <r>✘ | n/a | n/a | n/a |
118+
| Bitwise And | and | & | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | <g>✔ | n/a |
119+
| Bitwise Or | or | \| | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | <g>✔ | n/a |
120+
| Bitwise Xor | xor | ^ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | <g>✔ | n/a |
121+
| Division | div | / | <g>✔ | <g>✔ | <g>✔ | <r>✘ | <r>✘ | n/a | n/a | n/a |
122+
| Remainder | rem | % | <g>✔ | <g>✔ | <g>✔ | <r>✘ | <r>✘ | n/a | n/a | n/a |
123+
| Shift Right | shr | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | n/a | n/a |
124+
| Shift Left | shl | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | n/a | n/a |
125+
| Equal | eq | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ |
126+
| Not equal | ne | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ |
127+
| Greater than or equal | gte | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | n/a | n/a |
128+
| Greater than | gt | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | n/a | n/a |
129+
| Less than or equal | lte | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | n/a | n/a |
130+
| Less than | lt | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | n/a | n/a |
131+
| Min | min | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | n/a | n/a |
132+
| Max | max | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | n/a | n/a |
133+
| Not | not | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | n/a | <g>✔ | n/a |
134+
| Select | select | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ |
135+
| Require | req | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ |
136+
| Decrypt | decrypt | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ |
137+
| Seal Output | sealOutput | n/a | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ | <g>✔ |
131138

132139
:::danger
133140
At the moment it is not possible to do `ebool result = (lhs == rhs)` and others that return a boolean result. This is because FHE.sol expects a `ebool`, while Solidity only allows overloading to return a regular boolean.
@@ -140,4 +147,4 @@ Using require and decrypt in a TX is dangerous as it can break the confidentiali
140147

141148
:::tip
142149
Division and Remainder by `0` will output with an encrypted representation of the maximal value of the uint that is used (Ex. encrypted 255 for euint8)
143-
:::
150+
:::

0 commit comments

Comments
 (0)