class documentation

Parser for real radicals

A TIRealRadical is an exact sum of two square roots with rational scalars. Specifically, a TIRealRadical can represent numbers of the form (± a√b ± c√d) / e. All values are non-negative, with signs tracked separately. Additionally, b > d ≥ 0 and e > 0.

Each value is given three nibbles of storage in BCD format. Sign information for each radical is stored in an additional nibble.

A TIRealRadical can be used to form TIComplexRadical complex numbers.

Method __format__ Undocumented
Method calc_data The data section of the component which is loaded on-calc
Method decimal No summary
Method denominator The denominator of the real radical
Method left_radicand The left radicand of the real radical
Method left_scalar The left scalar of the real radical
Method load_decimal Loads a decimal into this real number
Method load_string Loads this component from a string representation
Method right_radicand The right radicand of the real radical
Method right_scalar The right scalar of the real radical
Method sign_type The sign type of the real radical
Class Variable flash_only Whether this entry only supports flash chips
Class Variable imag_subtype_id The subtype ID this type receives if used as an imaginary part
Class Variable is_exact Whether this numeric type is exact
Class Variable min_calc_data_length The minimum length of this entry's data
Class Variable versions The possible versions of this entry
Property sign No summary
Property signed_left_scalar The left scalar of the real radical, with sign attached
Property signed_right_scalar The right scalar of the real radical, with sign attached
Class Variable _type_id Undocumented

Inherited from RealEntry:

Method __float__ Undocumented
Method __init__ Creates an empty entry with specified meta and data values
Method __int__ Undocumented
Method __neg__ Undocumented
Method clear Clears this entry's data
Method coerce Coerces this component to a subclass if possible using the component's type ID
Method float No summary
Method get_min_os Determines the minimum OS that supports this entry's data
Method graph_bit Whether the entry is used during graphing
Method json_number Encoder for JSON implementations with potentially low precision
Method load_float Loads a float into this real number, upcasting as necessary
Method sign_bit The sign bit for the number
Method subtype_id The subtype ID of the number
Method supported_by Determines whether a given model supports this entry
Class Variable extension The base file extension used for this entry
Class Variable min_exponent The smallest allowed floating point exponent
Property subtype The subtype of this real number

Inherited from TIEntry (via RealEntry):

Class Raw No class docstring; 3/3 properties, 0/1 class variable, 1/1 method documented
Class Method get_extension Determines the file extension for a targeted model based on its contents
Class Method get_type Gets the subclass corresponding to a type ID, type name, or file extension if one is registered
Class Method open Creates a new entry from a file given a filename
Static Method next_entry_length Helper function to determine the length of the next entry in a bytestream
Method __iter__ No summary
Method __len__ No summary
Method archive Archives this entry
Method archived Whether the entry is archived
Method bytes The bytes contained in this entry, without any var file header or metadata.
Method dict No summary
Method export Exports this entry to a TIVarFile with a specified name and header
Method get_version Determines the version byte corresponding to given data for this entry type
Method load_bytes Loads a byte string or bytestream into this entry
Method load_data_section Loads the data of this entry from a bytestream
Method load_dict Loads this component from a JSON dictionary representation
Method load_from_file Loads this entry from a file given a file pointer and offset
Method meta_length The length of the meta section of the entry
Method name The name of the entry
Method save Saves this entry as a var file in the current directory given a filename and optional header and targeted model
Method summary No summary
Method type_id The type ID of the entry
Method unarchive Unarchives this entry
Method version The version number of the entry
Class Variable base_meta_length Undocumented
Class Variable flash_meta_length Undocumented
Class Variable leading_data_bytes Bytes that always begin this entry's data
Class Variable leading_name_byte Byte that always begins the name of this entry
Instance Variable raw Undocumented
Property calc_data_length The length of the data section of the entry
Property flash_bytes The flash bytes of this entry if they exist
Property for_flash Whether this entry supports flash chips
Property meta The meta section of this entry
Method __init_subclass__ Undocumented
Class Variable _type_ids Undocumented

Inherited from TIComponent (via RealEntry, TIEntry):

Class Method get Converts bytes -> TIComponent
Class Method register Registers a subtype with this class for coercion
Class Method set Converts TIComponent -> bytes
Method __bool__ No summary
Method __bytes__ No summary
Method __copy__ No summary
Method __eq__ Determines if two components are the same type and have the same bytes
Method __str__ No summary
Method data The component's user data
Method json No summary
Method load_json Loads this component from a JSON dictionary representation
Method string No summary
Method update Updates this component's metadata
Property is_empty Whether this component's data is empty

Inherited from Dock (via RealEntry, TIEntry, TIComponent):

Method load Loads data into an instance by delegating to Loader methods based on the input's type
Class Variable loaders Undocumented
def __format__(self, format_spec: str) -> str: (source)

The data section of the component which is loaded on-calc

def decimal(self) -> Decimal: (source)
Returns
DecimalA decimal object corresponding to this real number
def denominator(self) -> int: (source)

The denominator of the real radical

def left_radicand(self) -> int: (source)

The left radicand of the real radical

def left_scalar(self) -> int: (source)

The left scalar of the real radical

def load_decimal(self, decimal: Decimal): (source)

Loads a decimal into this real number

Parameters
decimal:DecimalThe decimal to load
def load_string(self, string: str, **kwargs): (source)

Loads this component from a string representation

If there is no dedicated handler for a component type, all subclasses of the type will be considered.

Parameters
string:strThe string to load
**kwargsUndocumented
def right_radicand(self) -> int: (source)

The right radicand of the real radical

def right_scalar(self) -> int: (source)

The right scalar of the real radical

@View(calc_data, Bits[4:8])[1:2]
def sign_type(self) -> int: (source)

The sign type of the real radical

If the sign type is odd (first bit is set), the left scalar is negative. If the sign type is greater than one (second bit is set), the right scalar is negative.

flash_only: bool = (source)

Whether this entry only supports flash chips

imag_subtype_id: int = (source)

The subtype ID this type receives if used as an imaginary part

is_exact: bool = (source)

Whether this numeric type is exact

min_calc_data_length: int = (source)

The minimum length of this entry's data

If an entry's data is fixed in size, this value is necessarily the length of the data

versions: list[int] = (source)

The possible versions of this entry

Returns
The sign of this real number
signed_left_scalar: int = (source)

The left scalar of the real radical, with sign attached

signed_right_scalar: int = (source)

The right scalar of the real radical, with sign attached

_type_id: int = (source)

Undocumented