sisl.constant.PhysicalConstant
- class sisl.constant.PhysicalConstant(value, unit)
Bases:
float
Class to create a physical constant with unit-conversion capability, works exactly like a float.
To change the units simply call it like a method with the desired unit:
>>> m = PhysicalConstant(1., 'm') >>> m.unit 'm' >>> m2nm = m('nm') >>> m2nm 1000000000.0 nm >>> m2nm.unit 'nm' >>> m2nm * 2 1000000000.0
Methods
Return a pair of integers, whose ratio is exactly equal to the original float.
Return self, the complex conjugate of any float.
fromhex
()Create a floating-point number from a hexadecimal string.
hex
()Return a hexadecimal representation of a floating-point number.
Return True if the float is an integer.
Attributes
the imaginary part of a complex number
the real part of a complex number
Unit of constant
- __call__(unit=None)[source]
Return the value for the constant in the given unit, otherwise will return the units in SI units
- as_integer_ratio()
Return a pair of integers, whose ratio is exactly equal to the original float.
The ratio is in lowest terms and has a positive denominator. Raise OverflowError on infinities and a ValueError on NaNs.
>>> (10.0).as_integer_ratio() (10, 1) >>> (0.0).as_integer_ratio() (0, 1) >>> (-.25).as_integer_ratio() (-1, 4)
- conjugate()
Return self, the complex conjugate of any float.
- fromhex()
Create a floating-point number from a hexadecimal string.
>>> float.fromhex('0x1.ffffp10') 2047.984375 >>> float.fromhex('-0x1p-1074') -5e-324
- hex()
Return a hexadecimal representation of a floating-point number.
>>> (-0.1).hex() '-0x1.999999999999ap-4' >>> 3.14159.hex() '0x1.921f9f01b866ep+1'
- is_integer()
Return True if the float is an integer.
- imag
the imaginary part of a complex number
- real
the real part of a complex number
- property unit
Unit of constant