|
|
| ComplexValue (const ComplexValue &)=default |
|
| ComplexValue (ComplexValue &&)=default |
|
ComplexValue & | operator= (const ComplexValue &)=default |
|
ComplexValue & | operator= (ComplexValue &&)=default |
|
| ComplexValue (const RealValue &r, const RealValue &i) |
|
| ComplexValue (const RealValue &r) |
|
| ComplexValue (int kind, const RealValue &r) |
|
| ComplexValue (int kind, const ComplexValue &v) |
|
| ComplexValue (int kind, ComplexValue &&v) |
|
void | print (llvm::raw_ostream &os) const |
|
LLVM_DUMP_METHOD void | dump () const |
| bool | IsNull () const |
|
int | kind () const |
| | The kind of the value currently stored.
|
|
std::size_t | bytesStored () const |
| | Number of bytes accessed by FromRawBytes/StoreRawBytes.
|
|
RealValue | REAL () const |
|
RealValue | AIMAG () const |
|
ComplexValue | CONJG () const |
|
ComplexValue | Negate () const |
|
bool | Equals (const ComplexValue &y) const |
|
bool | operator== (const ComplexValue &y) const |
|
bool | operator!= (const ComplexValue &y) const |
|
bool | IsZero () const |
|
bool | IsInfinite () const |
|
bool | IsNotANumber () const |
|
bool | IsSignalingNaN () const |
|
ValueWithRealFlags< ComplexValue > | Add (const ComplexValue &, Rounding rounding=TargetCharacteristics::defaultRounding) const |
|
ValueWithRealFlags< ComplexValue > | Subtract (const ComplexValue &, Rounding rounding=TargetCharacteristics::defaultRounding) const |
|
ValueWithRealFlags< ComplexValue > | Multiply (const ComplexValue &, Rounding rounding=TargetCharacteristics::defaultRounding) const |
|
ValueWithRealFlags< ComplexValue > | Divide (const ComplexValue &, Rounding rounding=TargetCharacteristics::defaultRounding) const |
|
ValueWithRealFlags< ComplexValue > | KahanSummation (const ComplexValue &y, ComplexValue &correction, Rounding rounding=TargetCharacteristics::defaultRounding) const |
|
ValueWithRealFlags< RealValue > | ABS (Rounding rounding=TargetCharacteristics::defaultRounding) const |
| | ABS/CABS = HYPOT(re_, imag_) = SQRT(re_**2 + im_**2)
|
|
ComplexValue | FlushSubnormalToZero () const |
|
std::string | DumpHexadecimal () const |
|
llvm::raw_ostream & | AsFortran (llvm::raw_ostream &, int kind) const |
|
void | StoreRawBytes (void *dst, size_t size, bool *changed=nullptr) const |
A complex floating-point value with dynamic precision.
The precision is dynamic, but only a predefined set of Fortran kinds are allowed. It is also kind-aware, i.e. knows which COMPLEX kind it currently represents.
The implementation is a pair of RealValue objects.