Wikifunctions:Type proposals/complex128
Summary
A complex128 is simply a pair of float64.
Uses
Structure
Either stored as a pair of float64, or as a string. If the latter, we also need to consider whether to use i or j to represent the imaginary unit.
Example values
Value 0
{
"type": "complex128",
"real part": {
"type": "float64",
"value": "0.0"
},
"imaginary part": {
"type": "float64",
"value": "0.0"
}
}
|
{
"Z1K1": "Zxx",
"ZxxK1": {
"Z1K1": "Zyy",
"ZyyK1": "0.0"
},
"ZxxK2": {
"Z1K1": "Zyy",
"ZyyK1": "0.0"
}
}
|
Persistent objects
At least we should have an object for i.
Validator
The validator ensures that:
- real part and imaginary part are valid float64
Identity
Similar to Wikifunctions:Type proposals/float64
Converting to code
Python
For example: (3+5j).imag=5.0
JavaScript
JavaScript does not natively support complex number, so we have to represent it as an object.
Renderer
We can display it as a+bj format.
Parsers
First extract a and b (we may also have a-bj or only bj), then parse a and b as float64.
Alternatives
We can have a general type for complex number whose real and imaginary part are specific number type. This can be used to express e.g. Gaussian integer.
Comments
Support Useful, but let's revisit this once we have float64 working well. --99of9 (talk) 02:38, 19 June 2024 (UTC)